team folder generator

This commit is contained in:
Peter Papp
2021-08-30 09:16:48 +02:00
parent eb38ca8c9a
commit e751a6bc90
8 changed files with 153 additions and 24 deletions

View File

@@ -12,6 +12,7 @@
"ext-json": "*",
"brianium/paratest": "^6.3",
"cartalyst/stripe-laravel": "^13.1",
"cocur/slugify": "^4.0",
"doctrine/dbal": "^2.13.2",
"fideloper/proxy": "^4.4.1",
"fruitcake/laravel-cors": "^2.0.4",

76
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "b97469c2ea6b8b1e89c432391ec6ffc2",
"content-hash": "bcd10f3eae3b80b155c555c14b6c1224",
"packages": [
{
"name": "amphp/amp",
@@ -645,6 +645,80 @@
},
"time": "2020-12-23T13:33:41+00:00"
},
{
"name": "cocur/slugify",
"version": "v4.0.0",
"source": {
"type": "git",
"url": "https://github.com/cocur/slugify.git",
"reference": "3f1ffc300f164f23abe8b64ffb3f92d35cec8307"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/cocur/slugify/zipball/3f1ffc300f164f23abe8b64ffb3f92d35cec8307",
"reference": "3f1ffc300f164f23abe8b64ffb3f92d35cec8307",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=7.0"
},
"conflict": {
"symfony/config": "<3.4 || >=4,<4.3",
"symfony/dependency-injection": "<3.4 || >=4,<4.3",
"symfony/http-kernel": "<3.4 || >=4,<4.3",
"twig/twig": "<2.12.1"
},
"require-dev": {
"laravel/framework": "~5.1",
"latte/latte": "~2.2",
"league/container": "^2.2.0",
"mikey179/vfsstream": "~1.6.8",
"mockery/mockery": "^1.3",
"nette/di": "~2.4",
"phpunit/phpunit": "^5.7.27",
"pimple/pimple": "~1.1",
"plumphp/plum": "~0.1",
"symfony/config": "^3.4 || ^4.3 || ^5.0",
"symfony/dependency-injection": "^3.4 || ^4.3 || ^5.0",
"symfony/http-kernel": "^3.4 || ^4.3 || ^5.0",
"twig/twig": "^2.12.1 || ~3.0",
"zendframework/zend-modulemanager": "~2.2",
"zendframework/zend-servicemanager": "~2.2",
"zendframework/zend-view": "~2.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Cocur\\Slugify\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Florian Eckerstorfer",
"email": "florian@eckerstorfer.co",
"homepage": "https://florian.ec"
},
{
"name": "Ivo Bathke",
"email": "ivo.bathke@gmail.com"
}
],
"description": "Converts a string into a slug.",
"keywords": [
"slug",
"slugify"
],
"support": {
"issues": "https://github.com/cocur/slugify/issues",
"source": "https://github.com/cocur/slugify/tree/master"
},
"time": "2019-12-14T13:04:14+00:00"
},
{
"name": "composer/package-versions-deprecated",
"version": "1.11.99.2",

View File

@@ -7,12 +7,12 @@
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=d36b3eb20b4899f2d899",
"/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~6fce3876.js": "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~6fce3876.js?id=3dc49e837aec52b13e76",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~26d67489.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~26d67489.js?id=f2b55e546b918c1df018",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~d04310d2.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~d04310d2.js?id=35e4681bc1b7641bfb8e",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~26d67489.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~26d67489.js?id=977bdac1e4c42dee619d",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~d04310d2.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~d04310d2.js?id=8bf2a8d179ff6f44542a",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~f312a84e.js?id=004c11df35e63517608d",
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=0e511f0ceaac7257bf25",
"/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=f3bc2f8030f1dd06472a",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=10dfcdaf479cf0f947e4",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=853c70dd666e6efffbf8",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=5f8d3e698c1fd5b9b5a5",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=055d17c4463d3ef30218",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=fd6936cca8f3b8b4de9a",
@@ -38,11 +38,11 @@
"/chunks/email-verified.js": "/chunks/email-verified.js?id=dc4aa33310fc98be6749",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=a547f8b4e9a83935a777",
"/chunks/files.js": "/chunks/files.js?id=e67d0bb15c66cd46cf65",
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks~ad7e36b9.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks~ad7e36b9.js?id=be2d7938bf33c26784fd",
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks~ad7e36b9.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared/files~chunks~ad7e36b9.js?id=edc7990c82c3758e3f85",
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~b068369d.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~b068369d.js?id=e04827456ff09a9c4c4d",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/settings-subscription~chunks/shared~ab58556a.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/settings-subscription~chunks/shared~ab58556a.js?id=afa7d2dd8e1cc9c5947c",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/shared/single-f~f04cfcbc.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/shared/single-f~f04cfcbc.js?id=443ca519270fc6d80879",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/team-folders~ch~ba7d6097.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/team-folders~ch~ba7d6097.js?id=6748bd741a6c96c1344e",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/team-folders~ch~ba7d6097.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared/files~chunks/team-folders~ch~ba7d6097.js?id=074a6044bcb3a4db65e1",
"/chunks/files~chunks/shared/files~chunks/team-folders.js": "/chunks/files~chunks/shared/files~chunks/team-folders.js?id=ed4e72b9cb1946e582c8",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=61fb98fd41324af9cfea",
"/chunks/homepage.js": "/chunks/homepage.js?id=6f2aac612b4c6eaabf61",
@@ -83,7 +83,7 @@
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=2802cde66f7d12ec8442",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=5dbfd83cfacad270a636",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=721e855dff920e5e6996",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=7ce1c2d563d466ad1c7e",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=2ea9d0795842c8de2349",
"/chunks/trash.js": "/chunks/trash.js?id=b098bf0e2f2df3e67539",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=8879f5c458f08648405a",
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=e365ae16373be9dbd458",
@@ -343,5 +343,12 @@
"/chunks/platform~chunks/shared.5de1f71813311f7ec30a.hot-update.js": "/chunks/platform~chunks/shared.5de1f71813311f7ec30a.hot-update.js",
"/chunks/platform~chunks/shared.dc0f077c261e70697cd3.hot-update.js": "/chunks/platform~chunks/shared.dc0f077c261e70697cd3.hot-update.js",
"/js/main.57a6d75d4f2764f144f8.hot-update.js": "/js/main.57a6d75d4f2764f144f8.hot-update.js",
"/chunks/platform.27acd412f4f57a1fed1c.hot-update.js": "/chunks/platform.27acd412f4f57a1fed1c.hot-update.js"
"/chunks/platform.27acd412f4f57a1fed1c.hot-update.js": "/chunks/platform.27acd412f4f57a1fed1c.hot-update.js",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.78f96d663e96f01fde20.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.78f96d663e96f01fde20.hot-update.js",
"/js/main.a6306b78051d324b08e5.hot-update.js": "/js/main.a6306b78051d324b08e5.hot-update.js",
"/chunks/team-folders.a6306b78051d324b08e5.hot-update.js": "/chunks/team-folders.a6306b78051d324b08e5.hot-update.js",
"/js/main.6209473d318a6d0edd65.hot-update.js": "/js/main.6209473d318a6d0edd65.hot-update.js",
"/js/main.a9a32bc3bfbcba7d9a42.hot-update.js": "/js/main.a9a32bc3bfbcba7d9a42.hot-update.js",
"/js/main.3048df27c3901574fdb2.hot-update.js": "/js/main.3048df27c3901574fdb2.hot-update.js",
"/js/main.82197a4600cc46177a7c.hot-update.js": "/js/main.82197a4600cc46177a7c.hot-update.js"
}

View File

@@ -89,7 +89,7 @@ export default {
methods: {
proceedToSelect(e) {
// Preserve select and reload native shortcut
if (! ['a', 'r'].includes(e.key)) {
if (! ['a', 'r', 'v'].includes(e.key)) {
e.preventDefault()
}

View File

@@ -52,8 +52,8 @@ const actions = {
axios
.get(`${getters.api}/teams/folders/${id}/${getters.sorting.URI}`)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data.content})
commit('SET_CURRENT_FOLDER', response.data.folder)
commit('LOADING_STATE', {loading: false, data: response.data.folders.data})
commit('SET_CURRENT_FOLDER', response.data.root)
events.$emit('scrollTop')
})
@@ -116,7 +116,7 @@ const actions = {
let files = response.data.files.data
commit('LOADING_STATE', {loading: false, data: folders.concat(files)})
commit('SET_CURRENT_FOLDER', response.data.folder)
commit('SET_CURRENT_FOLDER', response.data.root)
events.$emit('scrollTop')
})

View File

@@ -28,7 +28,7 @@ const actions = {
.get(`/api/browse/folders/${id}/${router.currentRoute.params.token}${getters.sorting.URI}`)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data.content})
commit('SET_CURRENT_FOLDER', response.data.folder)
commit('SET_CURRENT_FOLDER', response.data.root)
events.$emit('scrollTop')

View File

@@ -199,7 +199,6 @@
this.$store.dispatch('removeFromFavourites', this.item)
}
},
},
createFolder() {
events.$emit('popup:open', {name: 'create-folder'})
},

View File

@@ -1,7 +1,10 @@
<?php
namespace App\Console\Commands;
use App\Users\Models\User;
use Domain\Teams\Models\TeamFolderInvitation;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Domain\Files\Models\File;
use Illuminate\Console\Command;
@@ -35,7 +38,8 @@ class SetupDevEnvironment extends Command
private SeedDefaultSettingsAction $seedDefaultSettings,
private SeedDefaultLanguageAction $seedDefaultLanguage,
private SeedDefaultPagesAction $seedDefaultPages,
) {
)
{
parent::__construct();
$this->setUpFaker();
}
@@ -66,8 +70,9 @@ class SetupDevEnvironment extends Command
$this->info('Creating demo users...');
$this->create_demo_users();
$this->info('Creating default admin content...');
$this->info('Creating default demo content...');
$this->create_admin_default_content();
$this->create_team_folders_content();
$this->create_share_records();
$this->info('Clearing application cache...');
@@ -166,10 +171,10 @@ class SetupDevEnvironment extends Command
// 1.
$shared_folder = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
'author' => 'user',
'name' => 'Shared Folder',
'emoji' => [
'user_id' => $user->id,
'author' => 'user',
'name' => 'Shared Folder',
'emoji' => [
'codes' => '1F680',
'char' => '🚀',
'name' => 'rocket',
@@ -202,10 +207,10 @@ class SetupDevEnvironment extends Command
// 2.
$random_pics = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
'author' => 'user',
'name' => 'Random Pics',
'emoji' => [
'user_id' => $user->id,
'author' => 'user',
'name' => 'Random Pics',
'emoji' => [
'codes' => '1F4F7',
'char' => '📷',
'name' => 'camera',
@@ -702,6 +707,49 @@ class SetupDevEnvironment extends Command
});
}
private function create_team_folders_content(): void
{
$user = User::whereEmail('howdy@hi5ve.digital')
->first();
$teamProjectFolder = Folder::factory()
->create([
'user_id' => $user->id,
'team_folder' => true,
'name' => 'Company Project',
]);
// Attach members
$members = User::whereNotIn('email', ['howdy@hi5ve.digital'])
->get();
$members->each(fn($member) => DB::table('team_folder_members')
->insert([
'folder_id' => $teamProjectFolder->id,
'user_id' => $member->id,
'permission' => 'can-edit',
])
);
// Create invitations
$users = User::factory()
->count(2)
->create([
'password' => bcrypt('vuefilemanager'),
'email_verified_at' => now(),
]);
$users->each(fn($user) => TeamFolderInvitation::factory()
->create([
'email' => $user->email,
'folder_id' => $teamProjectFolder->id,
'status' => 'pending',
'permission' => 'can-edit',
])
);
}
private function create_share_records(): void
{
$user = User::whereEmail('howdy@hi5ve.digital')