Folder buttons UI refactoring

This commit is contained in:
Čarodej
2022-01-25 13:39:21 +01:00
parent 5725753052
commit 630cefee41
11 changed files with 122 additions and 58 deletions

View File

@@ -230,7 +230,7 @@ return [
'actions.print' => 'Print item',
'actions.share' => 'Share item',
'actions.sorting_view' => 'Sorting and View',
'actions.upload' => 'Upload file',
'actions.upload' => 'Upload Files',
'admin_menu.dashboard' => 'Dashboard',
'admin_menu.pages' => 'Pages',
'admin_menu.settings' => 'Settings',
@@ -750,6 +750,6 @@ return [
'sharelink.share_via_email' => 'Share Link on Emails',
'sharelink.copy_embed' => 'Copy Web Insert Code',
'popup.move_into_team_disclaimer' => 'Your folder <b class="text-theme dark-text-theme">will be moved</b> into Team Folders.',
'actions.upload_folder' => 'Upload folder',
'actions.upload_folder' => 'Upload Folder',
],
];

View File

@@ -12,7 +12,7 @@
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.js?id=34845d890e9e65d2adc0",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js?id=195797158a27ef294ad5",
"/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js?id=3d3f164e568760d8a9cf",
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=e95c77b157ce6cfe4bb9",
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=3f11fe45f7b999d1e375",
"/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=d0f80fceb2f27a39b283",
"/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=845ba11d36e357420492",
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=e40dcf843c95a51cd397",
@@ -39,7 +39,7 @@
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6c86916c6c6f679fa86b",
"/chunks/email-verified.js": "/chunks/email-verified.js?id=fcba9acf60a855b730d5",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=cb6691f996a6ea765b4d",
"/chunks/files.js": "/chunks/files.js?id=3272553b716bd1cc9d32",
"/chunks/files.js": "/chunks/files.js?id=692eff6c814b00ac7d97",
"/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~c7960950.js": "/chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~chunks/share~c7960950.js?id=f41b30739fcbba3ae537",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.js?id=94ead73a2f7abcbc3214",
"/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js?id=6489d55d6d88986008c9",
@@ -63,7 +63,7 @@
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=7f623c8a4002f17eecef",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=24e47be06cbf2fedbf05",
"/chunks/plans.js": "/chunks/plans.js?id=20dc794bb02887a46f04",
"/chunks/platform.js": "/chunks/platform.js?id=fd672984a6ee69181b87",
"/chunks/platform.js": "/chunks/platform.js?id=c571ce8c6e3dcdc87c31",
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=be5c13376dec07e289ff",
"/chunks/platform~chunks/shared~chunks/shared-with-me~chunks/team-folders.js": "/chunks/platform~chunks/shared~chunks/shared-with-me~chunks/team-folders.js?id=66e964be4ab127b1f723",
"/chunks/profile.js": "/chunks/profile.js?id=0ecdd636c92f2f1172d2",
@@ -75,10 +75,10 @@
"/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=aafc9cd6aa47b01bc25a",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=651d5accf401908724c5",
"/chunks/shared.js": "/chunks/shared.js?id=a140c15b483547b020e9",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=f8da9fc2e251efc885f5",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=e38098eca4e38683a83b",
"/chunks/shared-with-me~chunks/team-folders.js": "/chunks/shared-with-me~chunks/team-folders.js?id=abf65131397ea2b12355",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=09f54f209289c79ccc33",
"/chunks/shared/files.js": "/chunks/shared/files.js?id=b0fafdbbc4d47bf2b2c0",
"/chunks/shared/files.js": "/chunks/shared/files.js?id=84377b3190940b5196f6",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=1abb5dd58d0ed626cd6e",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=e716349738364703249e",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=fad3661258b19f8fafbb",
@@ -87,7 +87,7 @@
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=5238c711e2b9af197b22",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=3fffee3b8bab3e23ba18",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=35bad12ad938c334ce10",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=db36b092a62ab2f8b7dd",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=d0b1bb2f9e63fa36dd50",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=145f1b0766214eee1aad",
"/chunks/trash.js": "/chunks/trash.js?id=1f5f349fb9ec23ba2e93",
"/chunks/user.js": "/chunks/user.js?id=d47acfdc8985d8823872",
@@ -129,5 +129,45 @@
"/js/main.8991975ceba117ae57f1.hot-update.js": "/js/main.8991975ceba117ae57f1.hot-update.js",
"/js/main.64274f4f0fe48d3147f2.hot-update.js": "/js/main.64274f4f0fe48d3147f2.hot-update.js",
"/js/main.3374a65da71319e6a575.hot-update.js": "/js/main.3374a65da71319e6a575.hot-update.js",
"/js/main.844e62da81c4f8d6861d.hot-update.js": "/js/main.844e62da81c4f8d6861d.hot-update.js"
"/js/main.844e62da81c4f8d6861d.hot-update.js": "/js/main.844e62da81c4f8d6861d.hot-update.js",
"/js/main.8b4c6ec9b91a0a6e6dda.hot-update.js": "/js/main.8b4c6ec9b91a0a6e6dda.hot-update.js",
"/chunks/team-folders.9358cbe2ed288ae71d16.hot-update.js": "/chunks/team-folders.9358cbe2ed288ae71d16.hot-update.js",
"/chunks/files.c5f3cf6c3c8fb6224f15.hot-update.js": "/chunks/files.c5f3cf6c3c8fb6224f15.hot-update.js",
"/chunks/shared-with-me.c5f3cf6c3c8fb6224f15.hot-update.js": "/chunks/shared-with-me.c5f3cf6c3c8fb6224f15.hot-update.js",
"/chunks/shared/files.c5f3cf6c3c8fb6224f15.hot-update.js": "/chunks/shared/files.c5f3cf6c3c8fb6224f15.hot-update.js",
"/chunks/files.757ae164d013511f98ca.hot-update.js": "/chunks/files.757ae164d013511f98ca.hot-update.js",
"/chunks/team-folders.3ca4b57973557c860e87.hot-update.js": "/chunks/team-folders.3ca4b57973557c860e87.hot-update.js",
"/chunks/admin~chunks/platform.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/admin~chunks/platform.1ceb1013a7cdfe69714a.hot-update.js",
"/chunks/files.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/files.1ceb1013a7cdfe69714a.hot-update.js",
"/chunks/platform.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/platform.1ceb1013a7cdfe69714a.hot-update.js",
"/chunks/shared-with-me.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/shared-with-me.1ceb1013a7cdfe69714a.hot-update.js",
"/chunks/shared/files.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/shared/files.1ceb1013a7cdfe69714a.hot-update.js",
"/chunks/team-folders.1ceb1013a7cdfe69714a.hot-update.js": "/chunks/team-folders.1ceb1013a7cdfe69714a.hot-update.js",
"/js/main.bb3b5823197e4d826a04.hot-update.js": "/js/main.bb3b5823197e4d826a04.hot-update.js",
"/js/main.7ec463185df154c6765a.hot-update.js": "/js/main.7ec463185df154c6765a.hot-update.js",
"/js/main.d6cc91ca3ca36210c750.hot-update.js": "/js/main.d6cc91ca3ca36210c750.hot-update.js",
"/js/main.73c12b2472efda107a1a.hot-update.js": "/js/main.73c12b2472efda107a1a.hot-update.js",
"/js/main.bafc73e54b9d47e972ef.hot-update.js": "/js/main.bafc73e54b9d47e972ef.hot-update.js",
"/js/main.3ff40bc89566efb16fbe.hot-update.js": "/js/main.3ff40bc89566efb16fbe.hot-update.js",
"/js/main.5d31cceb42ba6cef914d.hot-update.js": "/js/main.5d31cceb42ba6cef914d.hot-update.js",
"/js/main.ad54630ae5ca4f766bd2.hot-update.js": "/js/main.ad54630ae5ca4f766bd2.hot-update.js",
"/js/main.6f86ea97ffc75935dbe5.hot-update.js": "/js/main.6f86ea97ffc75935dbe5.hot-update.js",
"/js/main.441bd7768be25261d03a.hot-update.js": "/js/main.441bd7768be25261d03a.hot-update.js",
"/js/main.cbddf57fc0c1fd9416b3.hot-update.js": "/js/main.cbddf57fc0c1fd9416b3.hot-update.js",
"/js/main.ac9786974c1d778c9da2.hot-update.js": "/js/main.ac9786974c1d778c9da2.hot-update.js",
"/js/main.09631dab8941a3f90ad3.hot-update.js": "/js/main.09631dab8941a3f90ad3.hot-update.js",
"/js/main.16991895d34210d26516.hot-update.js": "/js/main.16991895d34210d26516.hot-update.js",
"/js/main.57be6e0b39f0688d6ab6.hot-update.js": "/js/main.57be6e0b39f0688d6ab6.hot-update.js",
"/js/main.07e8496a8807f79c9935.hot-update.js": "/js/main.07e8496a8807f79c9935.hot-update.js",
"/js/main.2d74a3c10669ea9a5d67.hot-update.js": "/js/main.2d74a3c10669ea9a5d67.hot-update.js",
"/js/main.24516007923af0acc93f.hot-update.js": "/js/main.24516007923af0acc93f.hot-update.js",
"/js/main.3153d7944037905243e1.hot-update.js": "/js/main.3153d7944037905243e1.hot-update.js",
"/js/main.dcd4c14b96fced7d43dc.hot-update.js": "/js/main.dcd4c14b96fced7d43dc.hot-update.js",
"/js/main.08cc4828988b3049149a.hot-update.js": "/js/main.08cc4828988b3049149a.hot-update.js",
"/js/main.8ddf469456398b3b09a9.hot-update.js": "/js/main.8ddf469456398b3b09a9.hot-update.js",
"/js/main.7149d3c7f9dc2295dde2.hot-update.js": "/js/main.7149d3c7f9dc2295dde2.hot-update.js",
"/js/main.7da8f08b5985f2cb1e52.hot-update.js": "/js/main.7da8f08b5985f2cb1e52.hot-update.js",
"/js/main.a7c264d42ac3970793b6.hot-update.js": "/js/main.a7c264d42ac3970793b6.hot-update.js",
"/js/main.e0400bbdadc0d63c2f01.hot-update.js": "/js/main.e0400bbdadc0d63c2f01.hot-update.js",
"/chunks/files.4ef10c89ddef7d89aae8.hot-update.js": "/chunks/files.4ef10c89ddef7d89aae8.hot-update.js"
}

View File

@@ -2,14 +2,14 @@
<MenuMobile name="file-filter">
<MenuMobileGroup>
<OptionGroup>
<Option @click.native="goToFiles" :title="$t('sidebar.home')" icon="hard-drive" :is-active="$isThisRoute($route, 'Files')" is-hover-disabled="true" />
<Option @click.native="goToLatest" :title="$t('menu.latest')" icon="upload-cloud" :is-active="$isThisRoute($route, 'RecentUploads')" is-hover-disabled="true" />
<Option @click.native="goToShared" :title="$t('sidebar.my_shared')" icon="share" :is-active="$isThisRoute($route, 'MySharedItems')" is-hover-disabled="true" />
<Option @click.native="goToTrash" :title="$t('menu.trash')" icon="trash" :is-active="$isThisRoute($route, 'Trash')" is-hover-disabled="true" />
<Option @click.native="goToFiles" :title="$t('sidebar.home')" icon="hard-drive" :is-active="$isThisRoute($route, 'Files')" :is-hover-disabled="true" />
<Option @click.native="goToLatest" :title="$t('menu.latest')" icon="upload-cloud" :is-active="$isThisRoute($route, 'RecentUploads')" :is-hover-disabled="true" />
<Option @click.native="goToShared" :title="$t('sidebar.my_shared')" icon="share" :is-active="$isThisRoute($route, 'MySharedItems')" :is-hover-disabled="true" />
<Option @click.native="goToTrash" :title="$t('menu.trash')" icon="trash" :is-active="$isThisRoute($route, 'Trash')" :is-hover-disabled="true" />
</OptionGroup>
<OptionGroup>
<Option @click.native="goToTeamFolders" :title="$t('Team Folders')" icon="users" :is-active="$isThisRoute($route, 'TeamFolders')" is-hover-disabled="true" />
<Option @click.native="goToSharedWithMe" :title="$t('Shared with Me')" icon="user-check" :is-active="$isThisRoute($route, 'SharedWithMe')" is-hover-disabled="true" />
<Option @click.native="goToTeamFolders" :title="$t('Team Folders')" icon="users" :is-active="$isThisRoute($route, 'TeamFolders')" :is-hover-disabled="true" />
<Option @click.native="goToSharedWithMe" :title="$t('Shared with Me')" icon="user-check" :is-active="$isThisRoute($route, 'SharedWithMe')" :is-hover-disabled="true" />
</OptionGroup>
</MenuMobileGroup>
</MenuMobile>

View File

@@ -29,41 +29,41 @@
<!--Main navigation-->
<OptionGroup v-if="!clickedSubmenu">
<Option @click.native="goToFiles" :title="$t('menu.files')" icon="hard-drive" is-hover-disabled="true"/>
<Option @click.native.stop="showSubmenu('settings')" :title="$t('menu.settings')" icon="user" arrow="right" is-hover-disabled="true"/>
<Option v-if="isAdmin" @click.native.stop="showSubmenu('admin')" :title="$t('menu.admin')" icon="settings" arrow="right" is-hover-disabled="true"/>
<Option @click.native="goToFiles" :title="$t('menu.files')" icon="hard-drive" :is-hover-disabled="true"/>
<Option @click.native.stop="showSubmenu('settings')" :title="$t('menu.settings')" icon="user" arrow="right" :is-hover-disabled="true"/>
<Option v-if="isAdmin" @click.native.stop="showSubmenu('admin')" :title="$t('menu.admin')" icon="settings" arrow="right" :is-hover-disabled="true"/>
</OptionGroup>
<OptionGroup v-if="!clickedSubmenu">
<Option @click.native="logOut" :title="$t('menu.logout')" icon="power" is-hover-disabled="true" />
<Option @click.native="logOut" :title="$t('menu.logout')" icon="power" :is-hover-disabled="true" />
</OptionGroup>
<!--Submenu: User settings-->
<OptionGroup v-if="clickedSubmenu === 'settings'">
<Option @click.native="goToRoute('Profile')" :title="$t('menu.profile')" icon="user" is-hover-disabled="true" />
<Option @click.native="goToRoute('Password')" :title="$t('menu.password')" icon="lock" is-hover-disabled="true" />
<Option @click.native="goToRoute('Storage')" :title="$t('menu.storage')" icon="hard-drive" is-hover-disabled="true" />
<Option @click.native="goToRoute('Billing')" v-if="config.isSaaS" :title="$t('Billing')" icon="cloud" is-hover-disabled="true" />
<Option @click.native="goToRoute('Profile')" :title="$t('menu.profile')" icon="user" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Password')" :title="$t('menu.password')" icon="lock" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Storage')" :title="$t('menu.storage')" icon="hard-drive" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Billing')" v-if="config.isSaaS" :title="$t('Billing')" icon="cloud" :is-hover-disabled="true" />
</OptionGroup>
<!--Submenu: Admin settings-->
<OptionGroup v-if="clickedSubmenu === 'admin'">
<Option @click.native="goToRoute('Dashboard')" :title="$t('admin_menu.dashboard')" icon="box" is-hover-disabled="true" />
<Option @click.native="goToRoute('Users')" :title="$t('admin_menu.users')" icon="users" is-hover-disabled="true" />
<Option @click.native="goToRoute('AppOthers')" :title="$t('admin_menu.settings')" icon="settings" is-hover-disabled="true" />
<Option @click.native="goToRoute('Dashboard')" :title="$t('admin_menu.dashboard')" icon="box" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Users')" :title="$t('admin_menu.users')" icon="users" :is-hover-disabled="true" />
<Option @click.native="goToRoute('AppOthers')" :title="$t('admin_menu.settings')" icon="settings" :is-hover-disabled="true" />
</OptionGroup>
<!--Submenu: Content settings-->
<OptionGroup v-if="clickedSubmenu === 'admin'">
<Option @click.native="goToRoute('Pages')" :title="$t('admin_menu.pages')" icon="monitor" is-hover-disabled="true" />
<Option @click.native="goToRoute('Language')" :title="$t('languages')" icon="globe" is-hover-disabled="true" />
<Option @click.native="goToRoute('Pages')" :title="$t('admin_menu.pages')" icon="monitor" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Language')" :title="$t('languages')" icon="globe" :is-hover-disabled="true" />
</OptionGroup>
<!--Submenu: Billing settings-->
<OptionGroup v-if="clickedSubmenu === 'admin' && config.isSaaS">
<Option @click.native="goToRoute('AppPayments')" :title="$t('Payments')" icon="credit-card" is-hover-disabled="true" />
<Option @click.native="goToRoute('Subscriptions')" v-if="config.subscriptionType === 'fixed'" :title="$t('Subscriptions')" icon="credit-card" is-hover-disabled="true" />
<Option @click.native="goToRoute('Plans')" :title="$t('admin_menu.plans')" icon="database" is-hover-disabled="true" />
<Option @click.native="goToRoute('Invoices')" :title="$t('Transactions')" icon="file-text" is-hover-disabled="true" />
<Option @click.native="goToRoute('AppPayments')" :title="$t('Payments')" icon="credit-card" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Subscriptions')" v-if="config.subscriptionType === 'fixed'" :title="$t('Subscriptions')" icon="credit-card" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Plans')" :title="$t('admin_menu.plans')" icon="database" :is-hover-disabled="true" />
<Option @click.native="goToRoute('Invoices')" :title="$t('Transactions')" icon="file-text" :is-hover-disabled="true" />
</OptionGroup>
</MenuMobileGroup>
</MenuMobile>

View File

@@ -1,5 +1,6 @@
import {debounce, isArray, orderBy} from "lodash"
import i18n from '/resources/js/i18n/index'
import router from '/resources/js/router'
import store from '../store/index'
import {events} from '../bus'
import axios from 'axios'
@@ -334,15 +335,15 @@ const FunctionHelpers = {
Vue.prototype.$getDataByLocation = function () {
let routes = {
'Files': ['getFolder', this.$route.params.id],
'Files': ['getFolder', router.currentRoute.params.id || undefined],
'RecentUploads': ['getRecentUploads'],
'MySharedItems': ['getMySharedItems'],
'Trash': ['getTrash', this.$route.params.id],
'TeamFolders': ['getTeamFolder', this.$route.params.id],
'SharedWithMe': ['getSharedWithMeFolder', this.$route.params.id],
'Trash': ['getTrash', router.currentRoute.params.id || undefined],
'TeamFolders': ['getTeamFolder', router.currentRoute.params.id || undefined],
'SharedWithMe': ['getSharedWithMeFolder', router.currentRoute.params.id || undefined],
}
this.$store.dispatch(...routes[this.$router.currentRoute.name])
store.dispatch(...routes[router.currentRoute.name])
}
Vue.prototype.$getPaymentLogo = function (driver) {

View File

@@ -213,8 +213,11 @@ const actions = {
if (!getters.fileQueue.length) {
commit('CLEAR_UPLOAD_PROGRESS')
// Reload folder tree
dispatch('getFolderTree')
// Reload files after upload is done
dispatch('getFolder', [{folder: getters.currentFolder, back: true, init: false}])
Vue.prototype.$getDataByLocation()
}
}
})
@@ -223,7 +226,7 @@ const actions = {
console.log(error);
/* let messages = {
let messages = {
'423': {
title: i18n.t('popup_exceed_limit.title'),
message: i18n.t('popup_exceed_limit.message')
@@ -245,7 +248,7 @@ const actions = {
emoji: '😬😬😬',
title: messages[error.response.status]['title'],
message: messages[error.response.status]['message'] || null
})*/
})
commit('PROCESSING_FILE', false)
commit('CLEAR_UPLOAD_PROGRESS')

View File

@@ -22,11 +22,12 @@
<MobileCreateMenu>
<OptionGroup>
<OptionUpload :class="{'is-inactive': !hasCapacity }" :title="$t('actions.upload')" is-hover-disabled="true" />
<OptionUpload :class="{'is-inactive': !hasCapacity }" :title="$t('actions.upload')" type="file" :is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" />
</OptionGroup>
<OptionGroup>
<Option @click.stop.native="$createTeamFolder" :title="$t('Create Team Folder')" icon="users" is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" is-hover-disabled="true" />
<Option @click.stop.native="$createTeamFolder" :title="$t('Create Team Folder')" icon="users" :is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" :is-hover-disabled="true" />
</OptionGroup>
</MobileCreateMenu>
@@ -39,7 +40,8 @@
<ContextMenu>
<template v-slot:empty-select>
<OptionGroup>
<OptionUpload :title="$t('actions.upload')" />
<OptionUpload :title="$t('actions.upload')" type="file" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" />
</OptionGroup>
<OptionGroup>
<Option @click.native="$createFolder" :title="$t('context_menu.create_folder')" icon="create-folder" />

View File

@@ -20,10 +20,11 @@
<MobileCreateMenu>
<OptionGroup>
<OptionUpload :title="$t('actions.upload')" is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload')" type="file" :is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" :is-hover-disabled="true" />
</OptionGroup>
<OptionGroup>
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" :is-hover-disabled="true" />
</OptionGroup>
</MobileCreateMenu>
@@ -41,7 +42,8 @@
<ContextMenu>
<template v-slot:empty-select v-if="$checkPermission('editor')">
<OptionGroup>
<OptionUpload :title="$t('actions.upload')" />
<OptionUpload :title="$t('actions.upload')" type="file" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" />
</OptionGroup>
<OptionGroup>
<Option @click.native="$createFolder" :title="$t('context_menu.create_folder')" icon="create-folder" />

View File

@@ -13,10 +13,11 @@
<MobileCreateMenu>
<OptionGroup>
<OptionUpload :title="$t('actions.upload')" is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload')" type="file" :is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" :is-hover-disabled="true" />
</OptionGroup>
<OptionGroup>
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" :is-hover-disabled="true" />
</OptionGroup>
</MobileCreateMenu>
@@ -35,7 +36,10 @@
<ContextMenu>
<template v-slot:empty-select v-if="canEdit">
<OptionGroup v-if="! isTeamFolderHomepage">
<OptionUpload :title="$t('actions.upload')" />
<OptionUpload :title="$t('actions.upload')" type="file" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" />
</OptionGroup>
<OptionGroup v-if="! isTeamFolderHomepage">
<Option @click.stop.native="$createFolder" :title="$t('actions.create_folder')" icon="folder-plus" />
</OptionGroup>
</template>

View File

@@ -22,11 +22,12 @@
<MobileCreateMenu>
<OptionGroup>
<OptionUpload :title="$t('actions.upload')" is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload')" type="file" :is-hover-disabled="true" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" :is-hover-disabled="true" />
</OptionGroup>
<OptionGroup>
<Option @click.stop.native="$createTeamFolder" :title="$t('Create Team Folder')" icon="users" is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" is-hover-disabled="true" />
<Option @click.stop.native="$createTeamFolder" :title="$t('Create Team Folder')" icon="users" :is-hover-disabled="true" />
<Option @click.stop.native="createFolder" :title="$t('actions.create_folder')" icon="folder-plus" :is-hover-disabled="true" />
</OptionGroup>
</MobileCreateMenu>
@@ -46,7 +47,8 @@
<ContextMenu>
<template v-slot:empty-select>
<OptionGroup v-if="! isTeamFolderHomepage">
<OptionUpload :title="$t('actions.upload')" />
<OptionUpload :title="$t('actions.upload')" type="file" />
<OptionUpload :title="$t('actions.upload_folder')" type="folder" />
<Option @click.stop.native="$createFolder" :title="$t('actions.create_folder')" icon="folder-plus" />
</OptionGroup>
<OptionGroup v-if="isTeamFolderHomepage">

View File

@@ -1,4 +1,5 @@
<?php
namespace Domain\Files\Actions;
use Domain\Folders\Models\Folder;
@@ -19,7 +20,7 @@ class GetFileParentId
return $request->input('parent_id');
}
return $this->getOrCreateParentFolders($directoryPath, $userId, null);
return $this->getOrCreateParentFolders($directoryPath, $userId, $request->input('parent_id'));
}
private function getOrCreateParentFolders(Collection $directoryPath, string $userId, ?string $parentId): ?string
@@ -60,10 +61,19 @@ class GetFileParentId
private function createFolder($directoryName, $userId, $parentId): Folder
{
/*
* Check if exist parent team folder, if yes,
* then get the latest parent folder to detect whether it is team_folder
*/
if ($parentId) {
$isTeamFolder = Folder::find($parentId)->getLatestParent()->team_folder;
}
return Folder::create([
'name' => $directoryName,
'parent_id' => $parentId,
'user_id' => $userId,
'name' => $directoryName,
'parent_id' => $parentId,
'user_id' => $userId,
'team_folder' => $isTeamFolder ?? false,
]);
}
}