- Folder tree in navigator now has correct ordering with folder list in file view

- added translation to alert popup
- SCOUT_QUEUE default to true
This commit is contained in:
Peter Papp
2020-12-05 11:18:37 +01:00
parent 77e29852a5
commit 08bf6654fc
7 changed files with 244 additions and 230 deletions

View File

@@ -198,6 +198,7 @@ class User extends Authenticatable
return FileManagerFolder::with(['folders.shared', 'shared:token,id,item_id,permission,protected,expire_in']) return FileManagerFolder::with(['folders.shared', 'shared:token,id,item_id,permission,protected,expire_in'])
->where('parent_id', 0) ->where('parent_id', 0)
->where('user_id', $this->id) ->where('user_id', $this->id)
->orderByDesc('created_at')
->get(); ->get();
} }

View File

@@ -41,7 +41,7 @@ return [
| |
*/ */
'queue' => env('SCOUT_QUEUE', false), 'queue' => env('SCOUT_QUEUE', true),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@@ -1,65 +1,87 @@
{ {
"/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=41af466b1f4273001d7c", "/js/main.js": "/js/main.js",
"/js/main.js": "/js/main.js?id=0d14ab3cf3a4d202ddad", "/css/app.css": "/css/app.css",
"/css/app.css": "/css/app.css?id=f8c73c820aec223765b3", "/chunks/admin.js": "/chunks/admin.js?id=5807ec412746448047f9",
"/chunks/admin.js": "/chunks/admin.js?id=30267f37fc2ee75dbd7a", "/chunks/admin-account.js": "/chunks/admin-account.js?id=d820e99a25f40cc97570",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=23a7cfd36a51c3108c97", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=1ad1b7b56512338223eb",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=6e9fb4caf19c3b9c37a2", "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=6c02fe91a2e167b63a98",
"/chunks/app-billings.js": "/chunks/app-billings.js?id=5d361c9f75b7c7872983", "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=312acc0ff7daa010eea5",
"/chunks/app-email.js": "/chunks/app-email.js?id=8850f09b2db5fdc3277b", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=03e587de7dd10fba3ead",
"/chunks/app-index.js": "/chunks/app-index.js?id=aca4089fe408efe5cffe", "/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=fd3c7242b5c765b469e4",
"/chunks/app-others.js": "/chunks/app-others.js?id=07873e46aeb50d72ff4d", "/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=ebb1b6ed1df237b56cd9",
"/chunks/app-payments.js": "/chunks/app-payments.js?id=1d4de15342581e2e8fd5", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=9df028786df5d3279ab9",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=e3d9880ee3e81686d7a7", "/chunks/app-billings.js": "/chunks/app-billings.js?id=2b87899e656ed382d260",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=9f7296a31778d3f91d03", "/chunks/app-email.js": "/chunks/app-email.js?id=2e5a1b525d335367cfc1",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=1f0a7d35c12bc9c55bf0", "/chunks/app-index.js": "/chunks/app-index.js?id=05747ca2c86a1daea9cd",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=a5150dcf81c8e1ab23a4", "/chunks/app-others.js": "/chunks/app-others.js?id=55e1ec30bdca87c1adef",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=58c543c4f92b5ca9a284", "/chunks/app-payments.js": "/chunks/app-payments.js?id=796c7c2cfb9c6c39c8a7",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=c7bc864167d4f66fe171", "/chunks/app-settings.js": "/chunks/app-settings.js?id=b85ce942737e25c37b8a",
"/chunks/database.js": "/chunks/database.js?id=d9c01852701bebeb6823", "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=99eb5ed6af46738c97e0",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=08a0c2de8f93e0222600", "/chunks/app-setup.js": "/chunks/app-setup.js?id=78bbf0b2065cf270dbe6",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=e1b7c5899f04051746b2", "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=573e29a00589cb5d3489",
"/chunks/files.js": "/chunks/files.js?id=1b7a8cdb019ffb1f4e01", "/chunks/contact-us.js": "/chunks/contact-us.js?id=7ded3c3e9668eea6c15c",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=7ff98232e7b4cc5d2c2a", "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=96ac1ede73f3fc9afa37",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=4299b18a1c2e8d4290e9", "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=278eef02eace89698f20",
"/chunks/invoices.js": "/chunks/invoices.js?id=38bb6599098c0546af78", "/chunks/dashboard.js": "/chunks/dashboard.js?id=67d8b906c2200d7ddeb0",
"/chunks/landing-page.js": "/chunks/landing-page.js?id=193e04f070db423f74d0", "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=d7795f20187163939276",
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=53d4f9c58bdac1e568c7", "/chunks/database.js": "/chunks/database.js?id=c7aa7caa9126b1ecdffa",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=43423a35c4cc6ff303d7", "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=1d8ee4bfbcde69c97021",
"/chunks/pages.js": "/chunks/pages.js?id=577701e480c9c4822d0e", "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=86093752b39920044fda",
"/chunks/plan.js": "/chunks/plan.js?id=847d80475259bf406a7b", "/chunks/files.js": "/chunks/files.js?id=5b67bf937fbdaf671618",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=4b0287960ac5a412a035", "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=e285e842f58178d681c4",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=80045ea6ac5f363093ae", "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=aa4de4e667af0da539c3",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=04ae9080882a5e768704", "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=825fdc29b64056380220",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=a3b7031fb88c457f2b04", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=06fc72f0d9a057bb8f18",
"/chunks/plans.js": "/chunks/plans.js?id=eaad048a451823f8a446", "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=8a5dfc3d2d07db1102db",
"/chunks/profile.js": "/chunks/profile.js?id=7a7b9b376fb0063f0074", "/chunks/invoices.js": "/chunks/invoices.js?id=ed09e9eb75df449d92da",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=38fd64171bb89640c22d", "/chunks/landing-page.js": "/chunks/landing-page.js?id=dabf50b10edb2ae2f388",
"/chunks/settings.js": "/chunks/settings.js?id=da4b9c0158d113702541", "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=6666b81edc5ff6f60e82",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=591c3d3e6d9814e957bf", "/chunks/page-edit.js": "/chunks/page-edit.js?id=f7e24a5841604313332a",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=9168282b651f72d2f2aa", "/chunks/pages.js": "/chunks/pages.js?id=fd95e621e5a9de421d34",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=977cb91885e63a15b7ba", "/chunks/plan.js": "/chunks/plan.js?id=cc041fb9c2cb9ad8f0ff",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=0b5cfc3e5290bdd2cc4f", "/chunks/plan-create.js": "/chunks/plan-create.js?id=a66d8ae3a6edd08b755b",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=380d3bfdfa2326444ef9", "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=0732885b6e0839afe66e",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=99682d85d30b2d6f46b7", "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=445ca1affcefaf37cbfc",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855", "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8372954a6c160302859d",
"/chunks/shared-files.js": "/chunks/shared-files.js?id=8206e3b2e1011455d406", "/chunks/plans.js": "/chunks/plans.js?id=33aeae014e80cf2dd177",
"/chunks/shared-page.js": "/chunks/shared-page.js?id=6782abbfd2c43f37dad9", "/chunks/profile.js": "/chunks/profile.js?id=b91a5757f57bdaee120d",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=ec080714b24154cf1081", "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=a44394b1fa09f996a9fd",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=0d8b571bcf5a54f073fd", "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=8c92667fa59dc9fd7ac7",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=d62e8ecdbb0c45be9d27", "/chunks/settings.js": "/chunks/settings.js?id=0be829a409b9cbcb9bfc",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=01f83b986d87cf9d7c4e", "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=25225a758b04d6d48617",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=f7ad97672e4c3aebaee6", "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=c7499d2d79bf9620dfa5",
"/chunks/upgrade.js": "/chunks/upgrade.js?id=b742eda77c2ba257a7a0", "/chunks/settings-password.js": "/chunks/settings-password.js?id=015ead5623aee1a543cf",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=8b5dc6a6947384a903ea", "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=7c45369792974d83352e",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=001a77d89b37f23bc9d7", "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=013b6f15f907caaecd1e",
"/chunks/user.js": "/chunks/user.js?id=fbca3a769bd00a28c777", "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=6172a89afe3b27cb76cd",
"/chunks/user-create.js": "/chunks/user-create.js?id=e78773c0c7a5da4f4e0a", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=99b4f321902fe6b0eb23",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=ae185fc4ad035c7a4d99", "/chunks/shared-files.js": "/chunks/shared-files.js?id=a1262ec81010fb16f1e8",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=08393537e5264c994764", "/chunks/shared-page.js": "/chunks/shared-page.js?id=1843d4b70b6a1f2ee744",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=f1fca4967545a2be5db9", "/chunks/sign-in.js": "/chunks/sign-in.js?id=ddb0ae9561462e691ce3",
"/chunks/user-password.js": "/chunks/user-password.js?id=646e5cb76aab50d51c16", "/chunks/sign-up.js": "/chunks/sign-up.js?id=be89f6dcf7372d23668f",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=c3f72412f350e51a9ecd", "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=0e09f1509a73646c3198",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=526de31006f799134093", "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=7a4e1ba1d08b0bb37453",
"/chunks/users.js": "/chunks/users.js?id=9a0a7dc6fac9084764f8" "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=f672876adcf877e6e126",
"/chunks/upgrade.js": "/chunks/upgrade.js?id=1c94ed3f8c2c366f730b",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=638ac716c4995894563c",
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=7e805915ede7c330c6d1",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=ecc3c773b7c8ff422cf7",
"/chunks/user.js": "/chunks/user.js?id=1e0f9c8cab76e5ef871f",
"/chunks/user-create.js": "/chunks/user-create.js?id=fb808e071ab049b55490",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=9c7eb4dab2be288cb884",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=43545e2d110b40a47756",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=b05dcb7e7ad2f4959e52",
"/chunks/user-password.js": "/chunks/user-password.js?id=57fe622e9a03e834d6fa",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=76465e9a36a2ab78eff3",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=e9528debb38dc1654cef",
"/chunks/users.js": "/chunks/users.js?id=05709c5a34d052a69d16",
"/js/main.20bb95cdabea8a32786f.hot-update.js": "/js/main.20bb95cdabea8a32786f.hot-update.js",
"/chunks/files.20bb95cdabea8a32786f.hot-update.js": "/chunks/files.20bb95cdabea8a32786f.hot-update.js",
"/js/main.329e3330d9f1305fee55.hot-update.js": "/js/main.329e3330d9f1305fee55.hot-update.js",
"/js/main.e9dde629c4e3bc2ee1e2.hot-update.js": "/js/main.e9dde629c4e3bc2ee1e2.hot-update.js",
"/js/main.c654a85fd7545790ca68.hot-update.js": "/js/main.c654a85fd7545790ca68.hot-update.js",
"/chunks/files.f866a861dfffb7a28cd5.hot-update.js": "/chunks/files.f866a861dfffb7a28cd5.hot-update.js",
"/chunks/files.578c6cbac487a813c614.hot-update.js": "/chunks/files.578c6cbac487a813c614.hot-update.js",
"/chunks/files.425c69829cf8b3d39b06.hot-update.js": "/chunks/files.425c69829cf8b3d39b06.hot-update.js",
"/chunks/files.f31081ecd5aa4a951b9e.hot-update.js": "/chunks/files.f31081ecd5aa4a951b9e.hot-update.js"
} }

View File

@@ -256,6 +256,7 @@
}, },
"alerts": { "alerts": {
"error_confirm": "哦,出了个问题!", "error_confirm": "哦,出了个问题!",
"leave_to_sign_in": "Do you really want to leave?",
"success_confirm": "太棒了!" "success_confirm": "太棒了!"
}, },
"context_menu": { "context_menu": {

View File

@@ -258,6 +258,7 @@
}, },
"alerts": { "alerts": {
"error_confirm": "Thats horrible!", "error_confirm": "Thats horrible!",
"leave_to_sign_in": "Do you really want to leave?",
"success_confirm": "Awesome!" "success_confirm": "Awesome!"
}, },
"context_menu": { "context_menu": {

View File

@@ -258,6 +258,7 @@
}, },
"alerts": { "alerts": {
"error_confirm": "To je hrozné!", "error_confirm": "To je hrozné!",
"leave_to_sign_in": "Naozaj chcete odísť?",
"success_confirm": "Skvelé!" "success_confirm": "Skvelé!"
}, },
"context_menu": { "context_menu": {

View File

@@ -1,11 +1,11 @@
<template> <template>
<section id="viewport" v-if="user"> <section id="viewport" v-if="user">
<ContentSidebar> <ContentSidebar>
<!--Empty storage warning--> <!--Empty storage warning-->
<ContentGroup v-if="config.storageLimit && storage.used > 95"> <ContentGroup v-if="config.storageLimit && storage.used > 95">
<UpgradeSidebarBanner /> <UpgradeSidebarBanner/>
</ContentGroup> </ContentGroup>
<!--Locations--> <!--Locations-->
@@ -19,8 +19,7 @@
{{ $t('sidebar.home') }} {{ $t('sidebar.home') }}
</div> </div>
</a> </a>
<a class="menu-list-item link" :class="{'is-active': $isThisLocation(['latest'])}" <a class="menu-list-item link" :class="{'is-active': $isThisLocation(['latest'])}" @click="getLatest">
@click="getLatest">
<div class="icon"> <div class="icon">
<upload-cloud-icon size="17"></upload-cloud-icon> <upload-cloud-icon size="17"></upload-cloud-icon>
</div> </div>
@@ -28,8 +27,7 @@
{{ $t('sidebar.latest') }} {{ $t('sidebar.latest') }}
</div> </div>
</a> </a>
<a class="menu-list-item link trash" :class="{'is-active-trash': $isThisLocation(['trash', 'trash-root'])}" <a class="menu-list-item link trash" :class="{'is-active-trash': $isThisLocation(['trash', 'trash-root'])}" @click="getTrash">
@click="getTrash">
<div class="icon"> <div class="icon">
<trash2-icon size="17"></trash2-icon> <trash2-icon size="17"></trash2-icon>
</div> </div>
@@ -45,29 +43,19 @@
<span class="empty-note navigator" v-if="tree.length == 0"> <span class="empty-note navigator" v-if="tree.length == 0">
{{ $t('sidebar.folders_empty') }} {{ $t('sidebar.folders_empty') }}
</span> </span>
<TreeMenuNavigator class="folder-tree" :depth="0" :nodes="items" v-for="items in tree" <TreeMenuNavigator class="folder-tree" :depth="0" :nodes="items" v-for="items in tree" :key="items.unique_id"/>
:key="items.unique_id"/>
</ContentGroup> </ContentGroup>
<!--Favourites--> <!--Favourites-->
<ContentGroup :title="$t('sidebar.favourites')" slug="favourites" :can-collapse="true"> <ContentGroup :title="$t('sidebar.favourites')" slug="favourites" :can-collapse="true">
<div class="menu-list-wrapper vertical favourites" <div class="menu-list-wrapper vertical favourites" :class="{ 'is-dragenter': area }" @dragover.prevent="dragEnter" @dragleave="dragLeave" @drop="dragFinish($event)">
:class="{ 'is-dragenter': area }"
@dragover.prevent="dragEnter"
@dragleave="dragLeave"
@drop="dragFinish($event)"
>
<transition-group tag="div" class="menu-list" name="folder-item"> <transition-group tag="div" class="menu-list" name="folder-item">
<span class="empty-note favourites" v-if="favourites.length == 0" :key="0"> <span class="empty-note favourites" v-if="favourites.length == 0" :key="0">
{{ $t('sidebar.favourites_empty') }} {{ $t('sidebar.favourites_empty') }}
</span> </span>
<a @click.stop="openFolder(folder)" <a @click.stop="openFolder(folder)" class="menu-list-item" :class="{'is-current': (folder && currentFolder) && (currentFolder.unique_id === folder.unique_id)}" v-for="folder in favourites" :key="folder.unique_id">
class="menu-list-item"
:class="{'is-current': (folder && currentFolder) && (currentFolder.unique_id === folder.unique_id)}"
v-for="folder in favourites"
:key="folder.unique_id">
<div> <div>
<folder-icon size="17" class="folder-icon"></folder-icon> <folder-icon size="17" class="folder-icon"></folder-icon>
<span class="label">{{ folder.name }}</span> <span class="label">{{ folder.name }}</span>
@@ -85,190 +73,190 @@
</template> </template>
<script> <script>
import UpgradeSidebarBanner from '@/components/Others/UpgradeSidebarBanner' import UpgradeSidebarBanner from '@/components/Others/UpgradeSidebarBanner'
import TreeMenuNavigator from '@/components/Others/TreeMenuNavigator' import TreeMenuNavigator from '@/components/Others/TreeMenuNavigator'
import MultiSelected from '@/components/FilesView/MultiSelected' import MultiSelected from '@/components/FilesView/MultiSelected'
import ContentFileView from '@/components/Others/ContentFileView' import ContentFileView from '@/components/Others/ContentFileView'
import ContentSidebar from '@/components/Sidebar/ContentSidebar' import ContentSidebar from '@/components/Sidebar/ContentSidebar'
import ContentGroup from '@/components/Sidebar/ContentGroup' import ContentGroup from '@/components/Sidebar/ContentGroup'
import {mapGetters} from 'vuex' import { mapGetters } from 'vuex'
import {events} from '@/bus' import { events } from '@/bus'
import { import {
UploadCloudIcon,
FolderIcon,
Trash2Icon,
HomeIcon,
XIcon
} from 'vue-feather-icons'
export default {
name: 'FilesView',
components: {
UpgradeSidebarBanner,
TreeMenuNavigator,
ContentFileView,
MultiSelected,
ContentSidebar,
UploadCloudIcon, UploadCloudIcon,
ContentGroup,
FolderIcon, FolderIcon,
Trash2Icon, Trash2Icon,
HomeIcon, HomeIcon,
XIcon, XIcon
} from 'vue-feather-icons' },
computed: {
export default { ...mapGetters(['user', 'homeDirectory', 'currentFolder', 'config', 'fileInfoDetail']),
name: 'FilesView', favourites() {
components: { return this.user.relationships.favourites.data.attributes.folders
UpgradeSidebarBanner,
TreeMenuNavigator,
ContentFileView,
MultiSelected,
ContentSidebar,
UploadCloudIcon,
ContentGroup,
FolderIcon,
Trash2Icon,
HomeIcon,
XIcon,
}, },
computed: { tree() {
...mapGetters(['user', 'homeDirectory', 'currentFolder', 'config', 'fileInfoDetail']), return this.user.relationships.tree.data.attributes.folders
favourites() {
return this.user.relationships.favourites.data.attributes.folders
},
tree() {
return this.user.relationships.tree.data.attributes.folders
},
storage() {
return this.$store.getters.user.relationships.storage.data.attributes
}
}, },
data() { storage() {
return { return this.$store.getters.user.relationships.storage.data.attributes
area: false, }
draggedItem: undefined, },
} data() {
return {
area: false,
draggedItem: undefined
}
},
methods: {
getTrash() {
this.$store.dispatch('getTrash')
}, },
methods: { getLatest() {
getTrash() { this.$store.dispatch('getLatest')
this.$store.dispatch('getTrash') },
}, goHome() {
getLatest() { this.$store.dispatch('getFolder', [{ folder: this.homeDirectory, back: false, init: true }])
this.$store.dispatch('getLatest') },
}, openFolder(folder) {
goHome() { this.$store.dispatch('getFolder', [{ folder: folder, back: false, init: false }])
this.$store.dispatch('getFolder', [{folder: this.homeDirectory, back: false, init: true}]) },
}, dragEnter() {
openFolder(folder) { if (this.draggedItem && this.draggedItem.type !== 'folder') return
this.$store.dispatch('getFolder', [{folder: folder, back: false, init: false}])
},
dragEnter() {
if (this.draggedItem && this.draggedItem.type !== 'folder') return
if(this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return if (this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return
this.area = true this.area = true
}, },
dragLeave() { dragLeave() {
this.area = false this.area = false
}, },
dragFinish() { dragFinish() {
this.area = false this.area = false
events.$emit('drop') events.$emit('drop')
// Check if dragged item is folder // Check if dragged item is folder
if (this.draggedItem && this.draggedItem.type !== 'folder') return if (this.draggedItem && this.draggedItem.type !== 'folder') return
// Check if folder exist in favourites // Check if folder exist in favourites
if (this.favourites.find(folder => folder.unique_id == this.draggedItem.unique_id)) return if (this.favourites.find(folder => folder.unique_id == this.draggedItem.unique_id)) return
// Prevent to move folders to self // Prevent to move folders to self
if(this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return if (this.fileInfoDetail.length > 0 && this.fileInfoDetail.find(item => item.type !== 'folder')) return
// Store favourites folder // Store favourites folder
//Add to favourites non selected folder //Add to favourites non selected folder
if(!this.fileInfoDetail.includes(this.draggedItem)){ if (!this.fileInfoDetail.includes(this.draggedItem)) {
this.$store.dispatch('addToFavourites', this.draggedItem) this.$store.dispatch('addToFavourites', this.draggedItem)
}
//Add to favourites selected folders
if(this.fileInfoDetail.includes(this.draggedItem)) {
this.$store.dispatch('addToFavourites', null)
}
},
removeFavourite(folder) {
this.$store.dispatch('removeFromFavourites', folder)
} }
//Add to favourites selected folders
if (this.fileInfoDetail.includes(this.draggedItem)) {
this.$store.dispatch('addToFavourites', null)
}
}, },
created() { removeFavourite(folder) {
this.goHome() this.$store.dispatch('removeFromFavourites', folder)
}
},
created() {
this.goHome()
// Listen for dragstart folder items // Listen for dragstart folder items
events.$on('dragstart', (item) => { this.draggedItem = item , this.dragInProgress = true}) events.$on('dragstart', (item) => {
this.draggedItem = item , this.dragInProgress = true
})
events.$on('drop', () => { events.$on('drop', () => {
this.dragInProgress = false this.dragInProgress = false
}) })
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
// Inquire user about his willing to step back to sign in page // Inquire user about his willing to step back to sign in page
if (to.name === 'SignIn') { if (to.name === 'SignIn') {
const answer = window.confirm('Do you really want to leave?') if (window.confirm(this.$t('alerts.leave_to_sign_in'))) {
if (answer) {
next()
} else {
next(false)
}
} else {
next() next()
} else {
next(false)
} }
}, } else {
next()
}
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.empty-note {
&.navigator {
padding: 5px 25px 10px;
}
&.favourites {
padding: 5px 23px 10px;
}
}
.navigator {
width: 100%;
overflow-x: auto;
}
@media only screen and (max-width: 1024px) {
.empty-note { .empty-note {
&.navigator { &.navigator {
padding: 5px 25px 10px; padding: 5px 20px 10px;
} }
&.favourites { &.favourites {
padding: 5px 23px 10px; padding: 5px 18px 10px;
} }
} }
}
.navigator { // Transition
width: 100%; .folder-item-move {
overflow-x: auto; transition: transform 300s ease;
} }
@media only screen and (max-width: 1024px) { .folder-item-enter-active {
transition: all 300ms ease;
}
.empty-note { .folder-item-leave-active {
transition: all 300ms;
}
&.navigator { .folder-item-enter, .folder-item-leave-to /* .list-leave-active below version 2.1.8 */
padding: 5px 20px 10px; {
} opacity: 0;
transform: translateX(30px);
}
&.favourites { .folder-item-leave-active {
padding: 5px 18px 10px; position: absolute;
} }
}
}
// Transition
.folder-item-move {
transition: transform 300s ease;
}
.folder-item-enter-active {
transition: all 300ms ease;
}
.folder-item-leave-active {
transition: all 300ms;
}
.folder-item-enter, .folder-item-leave-to /* .list-leave-active below version 2.1.8 */
{
opacity: 0;
transform: translateX(30px);
}
.folder-item-leave-active {
position: absolute;
}
</style> </style>