mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-29 03:10:51 +00:00
- Mobile menu components refactoring
- Components name renaming
This commit is contained in:
+209
-75
@@ -1,77 +1,211 @@
|
|||||||
{
|
{
|
||||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=d8dac775684711abc6e2",
|
"/js/main.js": "/js/main.js",
|
||||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js?id=d85e8bc2bb4fc4b9cd7e",
|
"/css/app.css": "/css/app.css",
|
||||||
"/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=7e636c58637634393ebd",
|
"/chunks/admin.js": "/chunks/admin.js?id=7bb0da90be946f1f239f",
|
||||||
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=27dc0a5d34766399afb9",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=5ad2162bf1689c20bccb",
|
||||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=d55509cf07031fb3460f",
|
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=d21b5946c88a87e9099d",
|
||||||
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=d3728bf80112000ff2ea",
|
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~5f8db287.js?id=07a5f340da451bf2ae5d",
|
||||||
"/chunks/not-found.js": "/chunks/not-found.js?id=05b1ba4bacdc129f2b9d",
|
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=319ba6f55c8fb5dca6ac",
|
||||||
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=a72c50e0fd5289000d7c",
|
"/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=6f6e038b64009a752638",
|
||||||
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=665543709ee6cfd0ac32",
|
"/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=e8c676f0b1add89a391f",
|
||||||
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=0e6d6979c32214f01a99",
|
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=f34c3f924e632de0bc6e",
|
||||||
"/js/main.js": "/js/main.js?id=9ff46b8434eebed4b593",
|
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=f779d10bf0f57bf3b08c",
|
||||||
"/css/app.css": "/css/app.css?id=5ef36155a311dd4539c1",
|
"/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=075ff381293e1a20d167",
|
||||||
"/chunks/admin.js": "/chunks/admin.js?id=ad2fdd7add13510a6869",
|
"/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=5f27527c258dada4aeb9",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=74832d1136b70db80e68",
|
"/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=b6c9565875974d8c350c",
|
||||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=58baefeb9cb14a9638de",
|
"/chunks/app-billings.js": "/chunks/app-billings.js?id=22ad87a460950d32721a",
|
||||||
"/chunks/app-billings.js": "/chunks/app-billings.js?id=56fa0e764a7e34d33e26",
|
"/chunks/app-email.js": "/chunks/app-email.js?id=db0423ca77d7b92a1d52",
|
||||||
"/chunks/app-email.js": "/chunks/app-email.js?id=cd9d6ed9e9d015da9d91",
|
"/chunks/app-index.js": "/chunks/app-index.js?id=e3e2403810a4f1fd94e9",
|
||||||
"/chunks/app-index.js": "/chunks/app-index.js?id=cb3498e406901deb0930",
|
"/chunks/app-language.js": "/chunks/app-language.js?id=3e5407ae9576a0edc760",
|
||||||
"/chunks/app-language.js": "/chunks/app-language.js?id=82471b889e0bac03d269",
|
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=5e8dfc5ac3b67b3009f8",
|
||||||
"/chunks/app-others.js": "/chunks/app-others.js?id=034793903665db47a0bc",
|
"/chunks/app-others.js": "/chunks/app-others.js?id=73a4e8a13652e2b7ed83",
|
||||||
"/chunks/app-payments.js": "/chunks/app-payments.js?id=f034a7f9f588fd0665f5",
|
"/chunks/app-payments.js": "/chunks/app-payments.js?id=4b8627cfd6546bd56caa",
|
||||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=adf82ebe3b4afab7f145",
|
"/chunks/app-settings.js": "/chunks/app-settings.js?id=92003b708b3a043078d3",
|
||||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=61eaa35b1807d26ed3a0",
|
"/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=c6c12c5a2f5ee26888a3",
|
||||||
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=c7bcc29436bb9821e65d",
|
"/chunks/app-setup.js": "/chunks/app-setup.js?id=a0ef7ae0d22e995093d2",
|
||||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=e3c45469a83f82938eef",
|
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=d0da577903083a891b00",
|
||||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=f67f77d78c62e27feb8d",
|
"/chunks/contact-us.js": "/chunks/contact-us.js?id=1702da1aa1818e97dda1",
|
||||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=ec22cf79f03a7e5b2704",
|
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=7abdbac43596d1deb664",
|
||||||
"/chunks/database.js": "/chunks/database.js?id=4c4925b5e68f9da983db",
|
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=ed92e7337efbd2afaa52",
|
||||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6a4f59eb5a9b27c9bcea",
|
"/chunks/dashboard.js": "/chunks/dashboard.js?id=a9a199caa6709ebb48f2",
|
||||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=5081b5846c5446ed6801",
|
"/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=ef163f8da51054f89d5c",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=f1a6299d0a8e7a23868c",
|
"/chunks/database.js": "/chunks/database.js?id=7cf91421350f68985889",
|
||||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=5760d4df726d6fb823f0",
|
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=ffff5333522a1116d856",
|
||||||
"/chunks/homepage.js": "/chunks/homepage.js?id=2f62cb7c5a4f4cc81cd5",
|
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=de64a0ce7c737b106d96",
|
||||||
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=7375c45f9ccd94429286",
|
"/chunks/files.js": "/chunks/files.js?id=1731c1b3a8bfbbeaa301",
|
||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=49b9d6c93e2eaf172598",
|
"/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js?id=a930cc4a4f5af02460bb",
|
||||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=1c3a7c3a0b35ebd4c9ef",
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=dcd82a6b80a31f229b5a",
|
||||||
"/chunks/pages.js": "/chunks/pages.js?id=4f1a076b098b090bc0a5",
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=ac54ac828e9a8667410f",
|
||||||
"/chunks/plan.js": "/chunks/plan.js?id=c6eb3b2ce2ced3b5fddb",
|
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=a0dd218c154e83af8dee",
|
||||||
"/chunks/plan-create.js": "/chunks/plan-create.js?id=def653848a1b8d9271c7",
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=c5009a3c2463bfb02c36",
|
||||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=9f42b1eb10d062c5b57c",
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=7f84c4b09fcf5b890775",
|
||||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=f35db87931ff3ea8d417",
|
"/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=ff8043fe2c43e13a74e2",
|
||||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=1147d630ed7ab79581eb",
|
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=daaffc43387587cf4b57",
|
||||||
"/chunks/plans.js": "/chunks/plans.js?id=f954b7046f69ab147ab0",
|
"/chunks/homepage.js": "/chunks/homepage.js?id=4395ca4eb2abdbe487c0",
|
||||||
"/chunks/platform.js": "/chunks/platform.js?id=fa5822cff1f4e16bf243",
|
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=6b17b649280761c01c5a",
|
||||||
"/chunks/profile.js": "/chunks/profile.js?id=eb42c69ad64ffb1f1d9c",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=49e5e88b85d0bcfa04c2",
|
||||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f49c482d232b2036dd1d",
|
"/chunks/not-found.js": "/chunks/not-found.js?id=e0eb924527b6f9b20e3f",
|
||||||
"/chunks/settings.js": "/chunks/settings.js?id=ba49333bd61079e1c647",
|
"/chunks/page-edit.js": "/chunks/page-edit.js?id=23bb8bddee499a6b1061",
|
||||||
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=42594b68cecda23f3092",
|
"/chunks/pages.js": "/chunks/pages.js?id=513b48ab860bfe24bed9",
|
||||||
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=ce22879a0d39da904ea0",
|
"/chunks/plan.js": "/chunks/plan.js?id=980ecbb2c550ecc08b6d",
|
||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=af99ddcdc5baac89f34b",
|
"/chunks/plan-create.js": "/chunks/plan-create.js?id=3392652808dff5264c28",
|
||||||
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=055208393eac740b539b",
|
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=bb0d06be8e675c88bd0f",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ffadbefe2d239fe2bd64",
|
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=7a6acca368d11e2a4815",
|
||||||
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=9b58101f1a0cb73b5d4c",
|
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=260d274a422706d71809",
|
||||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=d60972a2216523642850",
|
"/chunks/plans.js": "/chunks/plans.js?id=6d14bd88ebd6cf82fdc6",
|
||||||
"/chunks/shared.js": "/chunks/shared.js?id=070dcf971c21f4f1d30b",
|
"/chunks/platform.js": "/chunks/platform.js?id=97c929acc6aa40ee32cc",
|
||||||
"/chunks/shared-files.js": "/chunks/shared-files.js?id=c473caf528377b2bacf6",
|
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=ffbda8c58183915cb55a",
|
||||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=c679dd7737bbad19700a",
|
"/chunks/profile.js": "/chunks/profile.js?id=bdc92d734851c0d09b8c",
|
||||||
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=4733ba7889f5b31760e2",
|
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=a5e7ed872d1430177922",
|
||||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=d57e261a133924a8857f",
|
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=b35e751cdc1946a4fb60",
|
||||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=6a92a83db12f0d425dff",
|
"/chunks/settings.js": "/chunks/settings.js?id=1a5e37e67eb534cbda1b",
|
||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=d9a106720f1b216845ee",
|
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=17428f129a14c15323e5",
|
||||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=4515bb31ce9a54898b27",
|
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=9bf3504a262af35fa997",
|
||||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=ec88acaf8d126f646628",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=dd27209e827e96b49917",
|
||||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=59c036318ba1785a7f5a",
|
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=e5437f00d24224997f86",
|
||||||
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=cf092c2a6c1816855f83",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=aa34712346ed9a2fc12d",
|
||||||
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=81bf57d7eb737eca6071",
|
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=1bffa4ae7d545af08355",
|
||||||
"/chunks/user.js": "/chunks/user.js?id=68e688174b27864a8f1f",
|
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=c6b88005b133268ed88f",
|
||||||
"/chunks/user-create.js": "/chunks/user-create.js?id=d99c25d654617ca95af7",
|
"/chunks/shared.js": "/chunks/shared.js?id=68165b2df75fd836ec22",
|
||||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=4fd6e3a2a671370b695a",
|
"/chunks/shared-files.js": "/chunks/shared-files.js?id=e8961791d642db47b77e",
|
||||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=bfe7fdb83731e9278ec8",
|
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=aab96d6900885ccb90ed",
|
||||||
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=d48ebd039b9651b667d0",
|
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=b2fbe95c0ed7074377ce",
|
||||||
"/chunks/user-password.js": "/chunks/user-password.js?id=9d1c9cdac5b2d51fb905",
|
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=e11f79244629896c95db",
|
||||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=a665c14aca1c9d9b2dbd",
|
"/chunks/sign-in.js": "/chunks/sign-in.js?id=f8ed9524d42eac1b22cc",
|
||||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=5d8e905cd39d44f54b1e",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=f82eac926eccda791f9e",
|
||||||
"/chunks/users.js": "/chunks/users.js?id=bfe65b425d1c218a62ea"
|
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=6cd6006913355a32f2dc",
|
||||||
|
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=0da9ece2d7d853f2bb27",
|
||||||
|
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=a09dc140a3914fb64a1a",
|
||||||
|
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=b49a1f662c7dadee59ac",
|
||||||
|
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=66b9183a2e51801b81a5",
|
||||||
|
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=05a7779a4d6bb2dda84e",
|
||||||
|
"/chunks/user.js": "/chunks/user.js?id=c72518ac51fba4af725d",
|
||||||
|
"/chunks/user-create.js": "/chunks/user-create.js?id=ccbd9c25bb268bb084c8",
|
||||||
|
"/chunks/user-delete.js": "/chunks/user-delete.js?id=4a7ec6133d2e735229aa",
|
||||||
|
"/chunks/user-detail.js": "/chunks/user-detail.js?id=afa8a3f0f5972909e62a",
|
||||||
|
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=5700c76f6041d7b0ed2d",
|
||||||
|
"/chunks/user-password.js": "/chunks/user-password.js?id=de180838609bb88ffe90",
|
||||||
|
"/chunks/user-storage.js": "/chunks/user-storage.js?id=dc33def6d2b4390869b5",
|
||||||
|
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c6ec1b7215530cfdbceb",
|
||||||
|
"/chunks/users.js": "/chunks/users.js?id=a6a20d23eaef40e24740",
|
||||||
|
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=5007f400f6b506ab23f4",
|
||||||
|
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js?id=2b11dd8f37c3c2421f2f",
|
||||||
|
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=8f589cb0d5e028068d09",
|
||||||
|
"/chunks/platform~chunks/shared.dd0933f81c0c06787f9f.hot-update.js": "/chunks/platform~chunks/shared.dd0933f81c0c06787f9f.hot-update.js",
|
||||||
|
"/chunks/platform.58d67c82033c1297eeba.hot-update.js": "/chunks/platform.58d67c82033c1297eeba.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.58d67c82033c1297eeba.hot-update.js": "/chunks/platform~chunks/shared.58d67c82033c1297eeba.hot-update.js",
|
||||||
|
"/chunks/shared.58d67c82033c1297eeba.hot-update.js": "/chunks/shared.58d67c82033c1297eeba.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.9cd207a6d4f0cfb7a143.hot-update.js": "/chunks/platform~chunks/shared.9cd207a6d4f0cfb7a143.hot-update.js",
|
||||||
|
"/chunks/platform.e438fc1e539608f3d09b.hot-update.js": "/chunks/platform.e438fc1e539608f3d09b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.e438fc1e539608f3d09b.hot-update.js": "/chunks/platform~chunks/shared.e438fc1e539608f3d09b.hot-update.js",
|
||||||
|
"/chunks/shared.e438fc1e539608f3d09b.hot-update.js": "/chunks/shared.e438fc1e539608f3d09b.hot-update.js",
|
||||||
|
"/chunks/platform.8be87d602a93a72b44b4.hot-update.js": "/chunks/platform.8be87d602a93a72b44b4.hot-update.js",
|
||||||
|
"/js/main.686d37ebb385dca2f5d6.hot-update.js": "/js/main.686d37ebb385dca2f5d6.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~96958efc.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~96958efc.js?id=dd4d11bf1f9b19df4768",
|
||||||
|
"/chunks/platform.686d37ebb385dca2f5d6.hot-update.js": "/chunks/platform.686d37ebb385dca2f5d6.hot-update.js",
|
||||||
|
"/js/main.f1cbcf7fe85514ae5abf.hot-update.js": "/js/main.f1cbcf7fe85514ae5abf.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform.f1cbcf7fe85514ae5abf.hot-update.js": "/chunks/admin~chunks/platform.f1cbcf7fe85514ae5abf.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.f1cbcf7fe85514ae5abf.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f1cbcf7fe85514ae5abf.hot-update.js",
|
||||||
|
"/chunks/platform.f1cbcf7fe85514ae5abf.hot-update.js": "/chunks/platform.f1cbcf7fe85514ae5abf.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.f1cbcf7fe85514ae5abf.hot-update.js": "/chunks/platform~chunks/shared.f1cbcf7fe85514ae5abf.hot-update.js",
|
||||||
|
"/chunks/shared.4ad84f567976f8d3bc21.hot-update.js": "/chunks/shared.4ad84f567976f8d3bc21.hot-update.js",
|
||||||
|
"/chunks/admin.14eb57fa554b61ff8683.hot-update.js": "/chunks/admin.14eb57fa554b61ff8683.hot-update.js",
|
||||||
|
"/chunks/platform.14eb57fa554b61ff8683.hot-update.js": "/chunks/platform.14eb57fa554b61ff8683.hot-update.js",
|
||||||
|
"/chunks/admin.185fd275a1de7ebef3ae.hot-update.js": "/chunks/admin.185fd275a1de7ebef3ae.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform.185fd275a1de7ebef3ae.hot-update.js": "/chunks/admin~chunks/platform.185fd275a1de7ebef3ae.hot-update.js",
|
||||||
|
"/chunks/platform.185fd275a1de7ebef3ae.hot-update.js": "/chunks/platform.185fd275a1de7ebef3ae.hot-update.js",
|
||||||
|
"/chunks/platform.09b1061e0780b787489b.hot-update.js": "/chunks/platform.09b1061e0780b787489b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.09b1061e0780b787489b.hot-update.js": "/chunks/platform~chunks/shared.09b1061e0780b787489b.hot-update.js",
|
||||||
|
"/chunks/shared.09b1061e0780b787489b.hot-update.js": "/chunks/shared.09b1061e0780b787489b.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.1594551a22ec7ca0c57b.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.1594551a22ec7ca0c57b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.1594551a22ec7ca0c57b.hot-update.js": "/chunks/platform~chunks/shared.1594551a22ec7ca0c57b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.cd715703115a0afa6430.hot-update.js": "/chunks/platform~chunks/shared.cd715703115a0afa6430.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.06197771d9e750d5d765.hot-update.js": "/chunks/platform~chunks/shared.06197771d9e750d5d765.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.4f3142dd4ed4de8b8630.hot-update.js": "/chunks/platform~chunks/shared.4f3142dd4ed4de8b8630.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.4b13d28cdd9e06c00eb3.hot-update.js": "/chunks/platform~chunks/shared.4b13d28cdd9e06c00eb3.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.c11140130f2464ecebed.hot-update.js": "/chunks/platform~chunks/shared.c11140130f2464ecebed.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.5989062c7a1bd87a2fe1.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.5989062c7a1bd87a2fe1.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.4da7be6c51fb765e3f3a.hot-update.js": "/chunks/platform~chunks/shared.4da7be6c51fb765e3f3a.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.b57812a1c17c084a1dc7.hot-update.js": "/chunks/platform~chunks/shared.b57812a1c17c084a1dc7.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.d1b35477441ba484cd33.hot-update.js": "/chunks/platform~chunks/shared.d1b35477441ba484cd33.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.dd8117e8d03b846e17fd.hot-update.js": "/chunks/platform~chunks/shared.dd8117e8d03b846e17fd.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.a50ebf529b5a7d7becdc.hot-update.js": "/chunks/platform~chunks/shared.a50ebf529b5a7d7becdc.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.81f4b0f5a38c25479500.hot-update.js": "/chunks/platform~chunks/shared.81f4b0f5a38c25479500.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.5b0dff4ac0e0a41d56de.hot-update.js": "/chunks/platform~chunks/shared.5b0dff4ac0e0a41d56de.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.0273af08eacb06edd47f.hot-update.js": "/chunks/platform~chunks/shared.0273af08eacb06edd47f.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.02d8a42b0bae66d417d7.hot-update.js": "/chunks/platform~chunks/shared.02d8a42b0bae66d417d7.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.596c12f22edc607e504b.hot-update.js": "/chunks/platform~chunks/shared.596c12f22edc607e504b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.a09f163cb817128df7a0.hot-update.js": "/chunks/platform~chunks/shared.a09f163cb817128df7a0.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.f03741c15f42e092ad65.hot-update.js": "/chunks/platform~chunks/shared.f03741c15f42e092ad65.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.ba88ef29b4bfbcb64a08.hot-update.js": "/chunks/platform~chunks/shared.ba88ef29b4bfbcb64a08.hot-update.js",
|
||||||
|
"/js/main.8f64bf335cef67dcb962.hot-update.js": "/js/main.8f64bf335cef67dcb962.hot-update.js",
|
||||||
|
"/js/main.66b9d73658ae67853407.hot-update.js": "/js/main.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/platform.66b9d73658ae67853407.hot-update.js": "/chunks/admin~chunks/platform.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.66b9d73658ae67853407.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.66b9d73658ae67853407.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/platform.66b9d73658ae67853407.hot-update.js": "/chunks/platform.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.66b9d73658ae67853407.hot-update.js": "/chunks/platform~chunks/shared.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/shared.66b9d73658ae67853407.hot-update.js": "/chunks/shared.66b9d73658ae67853407.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.6d4d89cd3ebd8a5948b6.hot-update.js": "/chunks/platform~chunks/shared.6d4d89cd3ebd8a5948b6.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.e349ad386ff7244cf4d4.hot-update.js": "/chunks/platform~chunks/shared.e349ad386ff7244cf4d4.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.5dc831112b25ed5bd5c9.hot-update.js": "/chunks/platform~chunks/shared.5dc831112b25ed5bd5c9.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.e408d01d3d583eafbc27.hot-update.js": "/chunks/platform~chunks/shared.e408d01d3d583eafbc27.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.01a1aea19d1c52ffd54d.hot-update.js": "/chunks/platform~chunks/shared.01a1aea19d1c52ffd54d.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.bc5906eb02278190f17d.hot-update.js": "/chunks/platform~chunks/shared.bc5906eb02278190f17d.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.bcf97d153907d502e651.hot-update.js": "/chunks/platform~chunks/shared.bcf97d153907d502e651.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.2498249eb28d6ea7c7de.hot-update.js": "/chunks/platform~chunks/shared.2498249eb28d6ea7c7de.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.9cb7197e53af0311d657.hot-update.js": "/chunks/platform~chunks/shared.9cb7197e53af0311d657.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.381f776802c068f9198a.hot-update.js": "/chunks/platform~chunks/shared.381f776802c068f9198a.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.815c0828ff5ca52ff68d.hot-update.js": "/chunks/platform~chunks/shared.815c0828ff5ca52ff68d.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.2df30c8cefb817c6e158.hot-update.js": "/chunks/platform~chunks/shared.2df30c8cefb817c6e158.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.177c1e18b11c54145db6.hot-update.js": "/chunks/platform~chunks/shared.177c1e18b11c54145db6.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.b720f6a39f34ea3fa824.hot-update.js": "/chunks/platform~chunks/shared.b720f6a39f34ea3fa824.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.7c343d74aaedac327895.hot-update.js": "/chunks/platform~chunks/shared.7c343d74aaedac327895.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.26d7af48dbe1212ee9fb.hot-update.js": "/chunks/platform~chunks/shared.26d7af48dbe1212ee9fb.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.18026b96f60a6f69230f.hot-update.js": "/chunks/platform~chunks/shared.18026b96f60a6f69230f.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.d7f64ef1231d4a780934.hot-update.js": "/chunks/platform~chunks/shared.d7f64ef1231d4a780934.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.b1f0ceebe8140c039b8a.hot-update.js": "/chunks/platform~chunks/shared.b1f0ceebe8140c039b8a.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6f2348f89a409b0e556a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6f2348f89a409b0e556a.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.7ac0a28f2225808b4613.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.7ac0a28f2225808b4613.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.7ac0a28f2225808b4613.hot-update.js": "/chunks/platform~chunks/shared.7ac0a28f2225808b4613.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.44310db7254238804c0b.hot-update.js": "/chunks/platform~chunks/shared.44310db7254238804c0b.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.df38c4bf391a2575e3af.hot-update.js": "/chunks/platform~chunks/shared.df38c4bf391a2575e3af.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.29776da85f9521230847.hot-update.js": "/chunks/platform~chunks/shared.29776da85f9521230847.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.9572ec7385ecf23757e2.hot-update.js": "/chunks/platform~chunks/shared.9572ec7385ecf23757e2.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.315a38198dd3acb81dce.hot-update.js": "/chunks/platform~chunks/shared.315a38198dd3acb81dce.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.8d57e08f4db8c5ff6268.hot-update.js": "/chunks/platform~chunks/shared.8d57e08f4db8c5ff6268.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.46c010a33461cd7c2341.hot-update.js": "/chunks/platform~chunks/shared.46c010a33461cd7c2341.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.439d0278621fb178f758.hot-update.js": "/chunks/platform~chunks/shared.439d0278621fb178f758.hot-update.js",
|
||||||
|
"/js/main.c0cc833f4bb5fb51021c.hot-update.js": "/js/main.c0cc833f4bb5fb51021c.hot-update.js",
|
||||||
|
"/chunks/platform.a6dfd284423b109939ac.hot-update.js": "/chunks/platform.a6dfd284423b109939ac.hot-update.js",
|
||||||
|
"/chunks/platform.4372379062e90811d40d.hot-update.js": "/chunks/platform.4372379062e90811d40d.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.5d63dcda4a85f6deddd4.hot-update.js": "/chunks/platform~chunks/shared.5d63dcda4a85f6deddd4.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.19fb3b4d8ec97dc21a93.hot-update.js": "/chunks/platform~chunks/shared.19fb3b4d8ec97dc21a93.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.8e3a4e2397bcb067188c.hot-update.js": "/chunks/platform~chunks/shared.8e3a4e2397bcb067188c.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.412a4d6ca87763c1b9d5.hot-update.js": "/chunks/platform~chunks/shared.412a4d6ca87763c1b9d5.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.44e77142781a9e16eb25.hot-update.js": "/chunks/platform~chunks/shared.44e77142781a9e16eb25.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.b3af2d4eb3f343abbab8.hot-update.js": "/chunks/platform~chunks/shared.b3af2d4eb3f343abbab8.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.39b32e7ebd36143c7630.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.39b32e7ebd36143c7630.hot-update.js",
|
||||||
|
"/js/main.c6875c881bb90531a832.hot-update.js": "/js/main.c6875c881bb90531a832.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.c6875c881bb90531a832.hot-update.js": "/chunks/platform~chunks/shared.c6875c881bb90531a832.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.72b9f293239b9d604ac9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.72b9f293239b9d604ac9.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.8ccafde208cd7a1dffb7.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.8ccafde208cd7a1dffb7.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.8ccafde208cd7a1dffb7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.8ccafde208cd7a1dffb7.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.8469152e311439f8cb70.hot-update.js": "/chunks/platform~chunks/shared.8469152e311439f8cb70.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.1496d35248fc37a71f4c.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.1496d35248fc37a71f4c.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.d9f12ac2ffed93e49fbd.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.d9f12ac2ffed93e49fbd.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.c65fca4ccf225e410338.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.c65fca4ccf225e410338.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.17b65f80fabb223da0cf.hot-update.js": "/chunks/platform~chunks/shared.17b65f80fabb223da0cf.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.25cd01d9f05803b71aca.hot-update.js": "/chunks/platform~chunks/shared.25cd01d9f05803b71aca.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.76dc0afabcd373f6de1d.hot-update.js": "/chunks/platform~chunks/shared.76dc0afabcd373f6de1d.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.91dacb62931448cef9ad.hot-update.js": "/chunks/platform~chunks/shared.91dacb62931448cef9ad.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.76ff94b6d0a557a6a81c.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.76ff94b6d0a557a6a81c.hot-update.js",
|
||||||
|
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.9565183c03ffb13adfe1.hot-update.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.9565183c03ffb13adfe1.hot-update.js",
|
||||||
|
"/chunks/files~chunks/shared-files~chunks/shared/file-browser.9565183c03ffb13adfe1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.9565183c03ffb13adfe1.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.9565183c03ffb13adfe1.hot-update.js": "/chunks/platform~chunks/shared.9565183c03ffb13adfe1.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.1f30f829c0b184357bf1.hot-update.js": "/chunks/platform~chunks/shared.1f30f829c0b184357bf1.hot-update.js",
|
||||||
|
"/chunks/platform~chunks/shared.d82c4cbe4bcee26a499a.hot-update.js": "/chunks/platform~chunks/shared.d82c4cbe4bcee26a499a.hot-update.js",
|
||||||
|
"/chunks/shared.5ef9810a79a9b9f21044.hot-update.js": "/chunks/shared.5ef9810a79a9b9f21044.hot-update.js",
|
||||||
|
"/js/main.7b86ccc4038937e14422.hot-update.js": "/js/main.7b86ccc4038937e14422.hot-update.js",
|
||||||
|
"/chunks/platform.610f56f1f5ffe3dd7fdb.hot-update.js": "/chunks/platform.610f56f1f5ffe3dd7fdb.hot-update.js"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,14 @@
|
|||||||
<Alert />
|
<Alert />
|
||||||
<ToastrWrapper />
|
<ToastrWrapper />
|
||||||
<CookieDisclaimer />
|
<CookieDisclaimer />
|
||||||
<Vignette />
|
|
||||||
|
|
||||||
<!--Show spinner before translations is loaded-->
|
<!--Show spinner before translations is loaded-->
|
||||||
<Spinner v-if="! isLoadedTranslations"/>
|
<Spinner v-if="! isLoadedTranslations"/>
|
||||||
|
|
||||||
<!--App view-->
|
<!--App view-->
|
||||||
<router-view v-if="isLoadedTranslations" />
|
<router-view v-if="isLoadedTranslations" />
|
||||||
|
|
||||||
|
<Vignette />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="isVisible" class="sorting-preview">
|
<div v-if="isVisible" class="sorting-preview">
|
||||||
<SortingAndPreviewMenu />
|
<FileSortingOptions />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SortingAndPreviewMenu from '@/components/FilesView/SortingAndPreviewMenu'
|
import FileSortingOptions from '@/components/FilesView/FileSortingOptions'
|
||||||
import { events } from '@/bus'
|
import { events } from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DesktopSortingAndPreview',
|
name: 'DesktopSortingOptions',
|
||||||
components: {SortingAndPreviewMenu},
|
components: {
|
||||||
|
FileSortingOptions
|
||||||
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
isVisible: false
|
isVisible: false
|
||||||
|
|||||||
+43
-34
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="mobile-actions-wrapper">
|
<div id="mobile-actions-wrapper">
|
||||||
|
|
||||||
<!--Actions for trash location with MASTER permission--->
|
<!--Actions for trash location--->
|
||||||
<div v-if="trashLocationMenu && ! multiSelectMode" class="mobile-actions">
|
<div v-if="trashLocationMenu && ! multiSelectMode" class="mobile-actions">
|
||||||
<MobileActionButton @click.native="$store.dispatch('emptyTrash')" icon="trash">
|
<MobileActionButton @click.native="$store.dispatch('emptyTrash')" icon="trash">
|
||||||
{{ $t('context_menu.empty_trash') }}
|
{{ $t('context_menu.empty_trash') }}
|
||||||
@@ -9,25 +9,28 @@
|
|||||||
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
||||||
{{ $t('context_menu.select') }}
|
{{ $t('context_menu.select') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
|
<MobileActionButton @click.native="showViewOptions" icon="preview-sorting">
|
||||||
{{$t('preview_sorting.preview_sorting_button')}}
|
{{ $t('preview_sorting.preview_sorting_button') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--ContextMenu for Base location with MASTER permission-->
|
<!--Actions for Base location-->
|
||||||
<transition name="button">
|
<transition name="button">
|
||||||
<div v-if="baseLocationMasterMenu && ! multiSelectMode" class="mobile-actions">
|
<div v-if="baseLocationMasterMenu && ! multiSelectMode" class="mobile-actions">
|
||||||
<MobileActionButton @click.native="createFolder" icon="folder-plus" :class="{'is-inactive' : multiSelectMode}">
|
<MobileActionButton @click.native="showLocations" icon="filter">
|
||||||
|
{{ filterLocationTitle }}
|
||||||
|
</MobileActionButton>
|
||||||
|
<MobileActionButton @click.native="createFolder" icon="folder-plus">
|
||||||
{{ $t('context_menu.add_folder') }}
|
{{ $t('context_menu.add_folder') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButtonUpload :class="{'is-inactive' : multiSelectMode}">
|
<MobileActionButtonUpload>
|
||||||
{{ $t('context_menu.upload') }}
|
{{ $t('context_menu.upload') }}
|
||||||
</MobileActionButtonUpload>
|
</MobileActionButtonUpload>
|
||||||
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
||||||
{{ $t('context_menu.select') }}
|
{{ $t('context_menu.select') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
|
<MobileActionButton @click.native="showViewOptions" icon="preview-sorting">
|
||||||
{{$t('preview_sorting.preview_sorting_button')}}
|
{{ $t('preview_sorting.preview_sorting_button') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
@@ -36,24 +39,24 @@
|
|||||||
<transition name="button">
|
<transition name="button">
|
||||||
<div v-if="multiSelectMode" class="mobile-actions">
|
<div v-if="multiSelectMode" class="mobile-actions">
|
||||||
<MobileActionButton @click.native="selectAll" icon="check-square">
|
<MobileActionButton @click.native="selectAll" icon="check-square">
|
||||||
{{$t('mobile_selecting.select_all')}}
|
{{ $t('mobile_selecting.select_all') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton @click.native="deselectAll" icon="x-square">
|
<MobileActionButton @click.native="deselectAll" icon="x-square">
|
||||||
{{$t('mobile_selecting.deselect_all')}}
|
{{ $t('mobile_selecting.deselect_all') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton @click.native="disableMultiSelectMode" icon="check">
|
<MobileActionButton @click.native="disableMultiSelectMode" icon="check">
|
||||||
{{$t('mobile_selecting.done')}}
|
{{ $t('mobile_selecting.done') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
<!--ContextMenu for Base location with VISITOR permission-->
|
<!--Actions for Base location in shared folder with visit permission-->
|
||||||
<div v-if="baseLocationVisitorMenu && ! multiSelectMode" class="mobile-actions">
|
<div v-if="baseLocationVisitorMenu && ! multiSelectMode" class="mobile-actions">
|
||||||
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
|
||||||
{{ $t('context_menu.select') }}
|
{{ $t('context_menu.select') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton class="preview-sorting" @click.native="showViewOptions" icon="preview-sorting">
|
<MobileActionButton @click.native="showViewOptions" icon="preview-sorting">
|
||||||
{{$t('preview_sorting.preview_sorting_button')}}
|
{{ $t('preview_sorting.preview_sorting_button') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -68,18 +71,23 @@
|
|||||||
import UploadProgress from '@/components/FilesView/UploadProgress'
|
import UploadProgress from '@/components/FilesView/UploadProgress'
|
||||||
import {mapGetters} from 'vuex'
|
import {mapGetters} from 'vuex'
|
||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
import store from "../../store";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MobileActions',
|
name: 'FileActionsMobile',
|
||||||
components: {
|
components: {
|
||||||
MobileActionButtonUpload,
|
MobileActionButtonUpload,
|
||||||
MobileActionButton,
|
MobileActionButton,
|
||||||
UploadProgress,
|
UploadProgress,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['FilePreviewType']),
|
...mapGetters([
|
||||||
|
'FilePreviewType'
|
||||||
|
]),
|
||||||
previewIcon() {
|
previewIcon() {
|
||||||
return this.FilePreviewType === 'list' ? 'th' : 'th-list'
|
return this.FilePreviewType === 'list'
|
||||||
|
? 'th'
|
||||||
|
: 'th-list'
|
||||||
},
|
},
|
||||||
trashLocationMenu() {
|
trashLocationMenu() {
|
||||||
return this.$isThisLocation(['trash', 'trash-root']) && this.$checkPermission('master')
|
return this.$isThisLocation(['trash', 'trash-root']) && this.$checkPermission('master')
|
||||||
@@ -90,14 +98,27 @@
|
|||||||
baseLocationVisitorMenu() {
|
baseLocationVisitorMenu() {
|
||||||
return (this.$isThisLocation(['base', 'shared', 'public']) && this.$checkPermission('visitor')) || (this.$isThisLocation(['latest', 'shared']) && this.$checkPermission('master'))
|
return (this.$isThisLocation(['base', 'shared', 'public']) && this.$checkPermission('visitor')) || (this.$isThisLocation(['latest', 'shared']) && this.$checkPermission('master'))
|
||||||
},
|
},
|
||||||
|
filterLocationTitle() {
|
||||||
|
return {
|
||||||
|
'base': 'Files',
|
||||||
|
'public': 'Files',
|
||||||
|
'shared': 'Shared',
|
||||||
|
'latest': 'Latest',
|
||||||
|
'trash': 'Trash',
|
||||||
|
'trash-root': 'Trash',
|
||||||
|
'participant_uploads': 'Participants',
|
||||||
|
}[this.$store.getters.currentFolder.location]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data() {
|
||||||
return {
|
return {
|
||||||
multiSelectMode: false,
|
multiSelectMode: false,
|
||||||
mobileSortingAndPreview: false,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
showLocations() {
|
||||||
|
|
||||||
|
},
|
||||||
selectAll() {
|
selectAll() {
|
||||||
this.$store.commit('SELECT_ALL_FILES')
|
this.$store.commit('SELECT_ALL_FILES')
|
||||||
},
|
},
|
||||||
@@ -115,19 +136,14 @@
|
|||||||
events.$emit('mobileSelecting:stop')
|
events.$emit('mobileSelecting:stop')
|
||||||
},
|
},
|
||||||
showViewOptions() {
|
showViewOptions() {
|
||||||
this.mobileSortingAndPreview = ! this.mobileSortingAndPreview
|
events.$emit('mobile-menu:show', 'file-sorting')
|
||||||
|
|
||||||
// Toggle mobile sorting
|
|
||||||
events.$emit('mobileSortingAndPreview', this.mobileSortingAndPreview)
|
|
||||||
events.$emit('mobileSortingAndPreviewVignette', this.mobileSortingAndPreview)
|
|
||||||
},
|
},
|
||||||
createFolder() {
|
createFolder() {
|
||||||
events.$emit('popup:open', {name: 'create-folder'})
|
events.$emit('popup:open', {name: 'create-folder'})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted() {
|
||||||
events.$on('mobileSelecting:stop', () => this.multiSelectMode = false)
|
events.$on('mobileSelecting:stop', () => this.multiSelectMode = false)
|
||||||
events.$on('mobileSortingAndPreview', state => this.mobileSortingAndPreview = state)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -163,13 +179,6 @@
|
|||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mobile-action-button {
|
|
||||||
&.is-inactive {
|
|
||||||
opacity: 0.25;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-actions {
|
.mobile-actions {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<SearchBar class="mobile-search" />
|
<SearchBar class="mobile-search" />
|
||||||
|
|
||||||
<!--Mobile Actions-->
|
<!--Mobile Actions-->
|
||||||
<MobileActions />
|
<FileActionsMobile />
|
||||||
|
|
||||||
<!--Item previews list-->
|
<!--Item previews list-->
|
||||||
<div v-if="isList" class="file-list-wrapper">
|
<div v-if="isList" class="file-list-wrapper">
|
||||||
@@ -92,8 +92,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import FileActionsMobile from '@/components/FilesView/FileActionsMobile'
|
||||||
import MobileToolbar from '@/components/FilesView/MobileToolbar'
|
import MobileToolbar from '@/components/FilesView/MobileToolbar'
|
||||||
import MobileActions from '@/components/FilesView/MobileActions'
|
|
||||||
import MultiSelected from '@/components/FilesView/MultiSelected'
|
import MultiSelected from '@/components/FilesView/MultiSelected'
|
||||||
import FileInfoPanel from '@/components/FilesView/FileInfoPanel'
|
import FileInfoPanel from '@/components/FilesView/FileInfoPanel'
|
||||||
import FileItemList from '@/components/FilesView/FileItemList'
|
import FileItemList from '@/components/FilesView/FileItemList'
|
||||||
@@ -107,8 +107,8 @@
|
|||||||
export default {
|
export default {
|
||||||
name: 'FilesContainer',
|
name: 'FilesContainer',
|
||||||
components: {
|
components: {
|
||||||
|
FileActionsMobile,
|
||||||
MobileToolbar,
|
MobileToolbar,
|
||||||
MobileActions,
|
|
||||||
MultiSelected,
|
MultiSelected,
|
||||||
FileInfoPanel,
|
FileInfoPanel,
|
||||||
FileItemList,
|
FileItemList,
|
||||||
|
|||||||
@@ -1,96 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div
|
|
||||||
v-if="showFullPreview"
|
|
||||||
class="file-full-preview-wrapper"
|
|
||||||
id="fileFullPreview"
|
|
||||||
ref="filePreview"
|
|
||||||
tabindex="-1"
|
|
||||||
@click="closeContextMenu"
|
|
||||||
@keydown.esc=";(showFullPreview = false), hideContextMenu()"
|
|
||||||
@keydown.right="next"
|
|
||||||
@keydown.left="prev"
|
|
||||||
>
|
|
||||||
<FilePreviewNavigationPanel />
|
|
||||||
<MediaFullPreview />
|
|
||||||
<FilePreviewActions />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { events } from '@/bus'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import MediaFullPreview from '@/components/FilesView/MediaFullPreview'
|
|
||||||
import FilePreviewActions from '@/components/FilesView/FilePreviewActions'
|
|
||||||
import FilePreviewNavigationPanel from '@/components/FilesView/FilePreviewNavigationPanel'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'FileFullPreview',
|
|
||||||
components: {
|
|
||||||
MediaFullPreview,
|
|
||||||
FilePreviewNavigationPanel,
|
|
||||||
FilePreviewActions
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapGetters(['fileInfoDetail', 'data'])
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showFullPreview: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
closeContextMenu(event) {
|
|
||||||
if ((event.target.parentElement.id || event.target.id) === 'fast-preview-menu') {
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
events.$emit('showContextMenuPreview:hide')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
next: function() {
|
|
||||||
events.$emit('filePreviewAction:next')
|
|
||||||
},
|
|
||||||
prev: function() {
|
|
||||||
events.$emit('filePreviewAction:prev')
|
|
||||||
},
|
|
||||||
hideContextMenu() {
|
|
||||||
events.$emit('showContextMenuPreview:hide')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
updated() {
|
|
||||||
//Focus file preview for key binding
|
|
||||||
if (this.showFullPreview) {
|
|
||||||
this.$refs.filePreview.focus()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
events.$on('fileFullPreview:show', () => {
|
|
||||||
this.showFullPreview = true
|
|
||||||
})
|
|
||||||
events.$on('fileFullPreview:hide', () => {
|
|
||||||
this.showFullPreview = false
|
|
||||||
|
|
||||||
events.$emit('hide:mobile-navigation')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
@import '@assets/vuefilemanager/_variables';
|
|
||||||
|
|
||||||
.file-full-preview-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 7;
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.file-full-preview-wrapper {
|
|
||||||
background-color: $dark_mode_background;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="file-info-content" v-if="fileInfoDetail.length === 1">
|
<div class="file-info-content" v-if="fileInfoDetail.length === 1">
|
||||||
<div class="file-headline" spellcheck="false">
|
<div class="file-headline" spellcheck="false">
|
||||||
<FilePreview/>
|
<FilePreviewDetail/>
|
||||||
|
|
||||||
<!--File info-->
|
<!--File info-->
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {Edit2Icon, LockIcon, UnlockIcon, ImageIcon, VideoIcon, FolderIcon, FileIcon} from 'vue-feather-icons'
|
import {Edit2Icon, LockIcon, UnlockIcon, ImageIcon, VideoIcon, FolderIcon, FileIcon} from 'vue-feather-icons'
|
||||||
|
import FilePreviewDetail from '@/components/Others/FilePreviewDetail'
|
||||||
import ImageMetaData from '@/components/FilesView/ImageMetaData'
|
import ImageMetaData from '@/components/FilesView/ImageMetaData'
|
||||||
import FilePreview from '@/components/FilesView/FilePreview'
|
|
||||||
import CopyInput from '@/components/Others/Forms/CopyInput'
|
import CopyInput from '@/components/Others/Forms/CopyInput'
|
||||||
import ListInfoItem from '@/components/Others/ListInfoItem'
|
import ListInfoItem from '@/components/Others/ListInfoItem'
|
||||||
import ListInfo from '@/components/Others/ListInfo'
|
import ListInfo from '@/components/Others/ListInfo'
|
||||||
@@ -77,10 +77,10 @@
|
|||||||
export default {
|
export default {
|
||||||
name: 'FileInfoPanel',
|
name: 'FileInfoPanel',
|
||||||
components: {
|
components: {
|
||||||
|
FilePreviewDetail,
|
||||||
ImageMetaData,
|
ImageMetaData,
|
||||||
ListInfoItem,
|
ListInfoItem,
|
||||||
ListInfo,
|
ListInfo,
|
||||||
FilePreview,
|
|
||||||
FolderIcon,
|
FolderIcon,
|
||||||
UnlockIcon,
|
UnlockIcon,
|
||||||
VideoIcon,
|
VideoIcon,
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ export default {
|
|||||||
this.$store.commit('CLEAR_FILEINFO_DETAIL')
|
this.$store.commit('CLEAR_FILEINFO_DETAIL')
|
||||||
this.$store.commit('GET_FILEINFO_DETAIL', this.item)
|
this.$store.commit('GET_FILEINFO_DETAIL', this.item)
|
||||||
|
|
||||||
events.$emit('mobileMenu:show')
|
events.$emit('mobile-menu:show', 'file-menu')
|
||||||
},
|
},
|
||||||
dragEnter() {
|
dragEnter() {
|
||||||
if (this.item.type !== 'folder') return
|
if (this.item.type !== 'folder') return
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ export default {
|
|||||||
this.$store.commit('CLEAR_FILEINFO_DETAIL')
|
this.$store.commit('CLEAR_FILEINFO_DETAIL')
|
||||||
this.$store.commit('GET_FILEINFO_DETAIL', this.item)
|
this.$store.commit('GET_FILEINFO_DETAIL', this.item)
|
||||||
|
|
||||||
events.$emit('mobileMenu:show')
|
events.$emit('mobile-menu:show', 'file-menu')
|
||||||
},
|
},
|
||||||
dragEnter() {
|
dragEnter() {
|
||||||
if (this.item.type !== 'folder') return
|
if (this.item.type !== 'folder') return
|
||||||
|
|||||||
@@ -0,0 +1,182 @@
|
|||||||
|
<template>
|
||||||
|
<MenuMobile name="file-menu">
|
||||||
|
<ThumbnailItem class="item-thumbnail" :item="fileInfoDetail[0]" info="metadata" />
|
||||||
|
|
||||||
|
<!--Trash location-->
|
||||||
|
<MenuMobileGroup v-if="$isThisLocation(['trash', 'trash-root']) && $checkPermission('master')">
|
||||||
|
<OptionGroup v-if="fileInfoDetail[0]">
|
||||||
|
<Option @click.native="restoreItem" :title="$t('context_menu.restore')" icon="restore" />
|
||||||
|
<Option @click.native="deleteItem" :title="$t('context_menu.delete')" icon="delete" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="!isFolder" @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
|
||||||
|
<Option v-if="isFolder" @click.native="downloadFolder" :title="$t('context_menu.zip_folder')" icon="zip-folder" />
|
||||||
|
</OptionGroup>
|
||||||
|
</MenuMobileGroup>
|
||||||
|
|
||||||
|
<!--Shared location-->
|
||||||
|
<MenuMobileGroup v-if="$isThisLocation(['shared']) && $checkPermission('master')">
|
||||||
|
<OptionGroup v-if="fileInfoDetail[0] && isFolder">
|
||||||
|
<Option @click.native="addToFavourites" :title="favouritesTitle" icon="star" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup v-if="fileInfoDetail[0]">
|
||||||
|
<Option @click.native="renameItem" :title="$t('context_menu.rename')" icon="rename" />
|
||||||
|
<Option @click.native="shareItem" :title="fileInfoDetail[0].shared ? $t('context_menu.share_edit') : $t('context_menu.share')" icon="share" />
|
||||||
|
<Option @click.native="deleteItem" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="!isFolder" @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
|
||||||
|
<Option v-if="isFolder" @click.native="downloadFolder" :title="$t('context_menu.zip_folder')" icon="zip-folder" />
|
||||||
|
</OptionGroup>
|
||||||
|
</MenuMobileGroup>
|
||||||
|
|
||||||
|
<!--Base location for user-->
|
||||||
|
<MenuMobileGroup v-if="$isThisLocation(['base', 'participant_uploads', 'latest']) && $checkPermission('master')">
|
||||||
|
<OptionGroup v-if="fileInfoDetail[0] && isFolder">
|
||||||
|
<Option @click.native="addToFavourites" :title="favouritesTitle" icon="star" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup v-if="fileInfoDetail[0]">
|
||||||
|
<Option @click.native="renameItem" :title="$t('context_menu.rename')" icon="rename" />
|
||||||
|
<Option @click.native="moveItem" :title="$t('context_menu.move')" icon="move-item" />
|
||||||
|
<Option @click.native="shareItem" :title="fileInfoDetail[0].shared ? $t('context_menu.share_edit') : $t('context_menu.share')" icon="share" />
|
||||||
|
<Option @click.native="deleteItem" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="!isFolder" @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
|
||||||
|
<Option v-if="isFolder" @click.native="downloadFolder" :title="$t('context_menu.zip_folder')" icon="zip-folder" />
|
||||||
|
</OptionGroup>
|
||||||
|
</MenuMobileGroup>
|
||||||
|
|
||||||
|
<!--Base location for guest-->
|
||||||
|
<MenuMobileGroup v-if="$isThisLocation(['base', 'public']) && $checkPermission('editor')">
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="fileInfoDetail[0]" @click.native="renameItem" :title="$t('context_menu.rename')" icon="rename" />
|
||||||
|
<Option v-if="fileInfoDetail[0]" @click.native="moveItem" :title="$t('context_menu.move')" icon="move-item" />
|
||||||
|
<Option @click.native="deleteItem" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
|
</OptionGroup>
|
||||||
|
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="!isFolder" @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
|
||||||
|
<Option v-if="isFolder" @click.native="downloadFolder" :title="$t('context_menu.zip_folder')" icon="zip-folder" />
|
||||||
|
</OptionGroup>
|
||||||
|
</MenuMobileGroup>
|
||||||
|
|
||||||
|
<!--Base location for guest with visit permission-->
|
||||||
|
<MenuMobileGroup v-if="$isThisLocation(['base', 'public']) && $checkPermission('visitor')">
|
||||||
|
<OptionGroup>
|
||||||
|
<Option v-if="!isFolder" @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
|
||||||
|
<Option v-if="isFolder" @click.native="downloadFolder" :title="$t('context_menu.zip_folder')" icon="zip-folder" />
|
||||||
|
</OptionGroup>
|
||||||
|
</MenuMobileGroup>
|
||||||
|
</MenuMobile>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup'
|
||||||
|
import MenuMobile from '@/components/Mobile/MenuMobile'
|
||||||
|
import ThumbnailItem from '@/components/Others/ThumbnailItem'
|
||||||
|
import OptionGroup from '@/components/FilesView/OptionGroup'
|
||||||
|
import Option from '@/components/FilesView/Option'
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
import {events} from '@/bus'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FileMenuMobile',
|
||||||
|
components: {
|
||||||
|
MenuMobileGroup,
|
||||||
|
MenuMobile,
|
||||||
|
ThumbnailItem,
|
||||||
|
OptionGroup,
|
||||||
|
Option,
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters([
|
||||||
|
'fileInfoDetail',
|
||||||
|
'user',
|
||||||
|
]),
|
||||||
|
favourites() {
|
||||||
|
return this.user.data.relationships.favourites.data.attributes.folders
|
||||||
|
},
|
||||||
|
favouritesTitle() {
|
||||||
|
return this.isInFavourites
|
||||||
|
? this.$t('context_menu.remove_from_favourites')
|
||||||
|
: this.$t('context_menu.add_to_favourites')
|
||||||
|
},
|
||||||
|
isInFavourites() {
|
||||||
|
return this.favourites.find(el => el.id === this.fileInfoDetail[0].id)
|
||||||
|
},
|
||||||
|
isFile() {
|
||||||
|
return !this.isImage && !this.isFolder
|
||||||
|
},
|
||||||
|
isImage() {
|
||||||
|
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === 'image'
|
||||||
|
},
|
||||||
|
isFolder() {
|
||||||
|
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === 'folder'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isVisible: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
downloadFolder() {
|
||||||
|
this.$store.dispatch('downloadFolder', this.fileInfoDetail[0])
|
||||||
|
},
|
||||||
|
moveItem() {
|
||||||
|
events.$emit('popup:open', {name: 'move', item: [this.fileInfoDetail[0]]})
|
||||||
|
},
|
||||||
|
shareItem() {
|
||||||
|
if (this.fileInfoDetail[0].shared) {
|
||||||
|
events.$emit('popup:open', {
|
||||||
|
name: 'share-edit',
|
||||||
|
item: this.fileInfoDetail[0]
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
events.$emit('popup:open', {
|
||||||
|
name: 'share-create',
|
||||||
|
item: this.fileInfoDetail[0]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
addToFavourites() {
|
||||||
|
if (this.favourites && !this.favourites.find(el => el.id === this.fileInfoDetail[0].id)) {
|
||||||
|
this.$store.dispatch('addToFavourites', this.fileInfoDetail[0])
|
||||||
|
} else {
|
||||||
|
this.$store.dispatch('removeFromFavourites', this.fileInfoDetail[0])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
downloadItem() {
|
||||||
|
this.$downloadFile(
|
||||||
|
this.fileInfoDetail[0].file_url,
|
||||||
|
this.fileInfoDetail[0].name + '.' + this.fileInfoDetail[0].mimetype
|
||||||
|
)
|
||||||
|
},
|
||||||
|
deleteItem() {
|
||||||
|
this.$store.dispatch('deleteItem')
|
||||||
|
},
|
||||||
|
restoreItem() {
|
||||||
|
this.$store.dispatch('restoreItem', this.fileInfoDetail[0])
|
||||||
|
},
|
||||||
|
renameItem() {
|
||||||
|
events.$emit('popup:open', {name: 'rename-item', item: this.fileInfoDetail[0]})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
@import "@assets/vuefilemanager/_variables";
|
||||||
|
@import "@assets/vuefilemanager/_mixins";
|
||||||
|
|
||||||
|
.item-thumbnail {
|
||||||
|
padding: 20px 20px 10px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,61 +1,96 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="canBePreview" class="preview">
|
<div
|
||||||
<img v-if="fileInfoDetail[0].type == 'image' && fileInfoDetail[0].thumbnail" :src="fileInfoDetail[0].thumbnail" :alt="fileInfoDetail[0].name" />
|
v-if="showFullPreview"
|
||||||
<audio v-else-if="fileInfoDetail[0].type == 'audio'" :src="fileInfoDetail[0].file_url" controlsList="nodownload" controls></audio>
|
class="file-full-preview-wrapper"
|
||||||
<video v-else-if="fileInfoDetail[0].type == 'video'" controlsList="nodownload" disablePictureInPicture playsinline controls>
|
id="fileFullPreview"
|
||||||
<source :src="fileInfoDetail[0].file_url" type="video/mp4">
|
ref="filePreview"
|
||||||
</video>
|
tabindex="-1"
|
||||||
</div>
|
@click="closeContextMenu"
|
||||||
|
@keydown.esc=";(showFullPreview = false), hideContextMenu()"
|
||||||
|
@keydown.right="next"
|
||||||
|
@keydown.left="prev"
|
||||||
|
>
|
||||||
|
<FilePreviewNavigationPanel />
|
||||||
|
<MediaFullPreview />
|
||||||
|
<FilePreviewActions />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex'
|
import { events } from '@/bus'
|
||||||
import { includes } from 'lodash'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
import MediaFullPreview from '@/components/FilesView/MediaFullPreview'
|
||||||
name: 'FilePreview',
|
import FilePreviewActions from '@/components/FilesView/FilePreviewActions'
|
||||||
computed: {
|
import FilePreviewNavigationPanel from '@/components/FilesView/FilePreviewNavigationPanel'
|
||||||
...mapGetters(['fileInfoDetail']),
|
|
||||||
canBePreview() {
|
export default {
|
||||||
return this.fileInfoDetail[0] && ! includes([
|
name: 'FilePreview',
|
||||||
'folder', 'file'
|
components: {
|
||||||
], this.fileInfoDetail[0].type)
|
MediaFullPreview,
|
||||||
}
|
FilePreviewNavigationPanel,
|
||||||
},
|
FilePreviewActions
|
||||||
}
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['fileInfoDetail', 'data'])
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showFullPreview: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
closeContextMenu(event) {
|
||||||
|
if ((event.target.parentElement.id || event.target.id) === 'fast-preview-menu') {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
events.$emit('showContextMenuPreview:hide')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
next: function() {
|
||||||
|
events.$emit('filePreviewAction:next')
|
||||||
|
},
|
||||||
|
prev: function() {
|
||||||
|
events.$emit('filePreviewAction:prev')
|
||||||
|
},
|
||||||
|
hideContextMenu() {
|
||||||
|
events.$emit('showContextMenuPreview:hide')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
updated() {
|
||||||
|
//Focus file preview for key binding
|
||||||
|
if (this.showFullPreview) {
|
||||||
|
this.$refs.filePreview.focus()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
events.$on('fileFullPreview:show', () => {
|
||||||
|
this.showFullPreview = true
|
||||||
|
})
|
||||||
|
events.$on('fileFullPreview:hide', () => {
|
||||||
|
this.showFullPreview = false
|
||||||
|
|
||||||
|
events.$emit('mobile-navigation:hide')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style lang="scss" scoped>
|
||||||
@import '@assets/vuefilemanager/_variables';
|
@import '@assets/vuefilemanager/_variables';
|
||||||
@import '@assets/vuefilemanager/_mixins';
|
|
||||||
|
|
||||||
.preview {
|
.file-full-preview-wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: block;
|
height: 100%;
|
||||||
margin-bottom: 7px;
|
position: absolute;
|
||||||
|
z-index: 7;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
img {
|
@media (prefers-color-scheme: dark) {
|
||||||
border-radius: 4px;
|
.file-full-preview-wrapper {
|
||||||
overflow: hidden;
|
background-color: $dark_mode_background;
|
||||||
width: 100%;
|
}
|
||||||
object-fit: cover;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
audio {
|
|
||||||
width: 100%;
|
|
||||||
&::-webkit-media-controls-panel {
|
|
||||||
background-color: $light_background;
|
|
||||||
}
|
|
||||||
|
|
||||||
&::-webkit-media-controls-play-button {
|
|
||||||
color: $theme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
video {
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@@ -93,7 +93,7 @@ export default {
|
|||||||
},
|
},
|
||||||
menuOpen() {
|
menuOpen() {
|
||||||
if (this.$isMobile()) {
|
if (this.$isMobile()) {
|
||||||
events.$emit('mobileMenu:show', 'showFromMediaPreview')
|
events.$emit('mobile-menu:show', 'file-menu')
|
||||||
} else {
|
} else {
|
||||||
events.$emit('showContextMenuPreview:show', this.fileInfoDetail[0])
|
events.$emit('showContextMenuPreview:show', this.fileInfoDetail[0])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<template>
|
||||||
|
<MenuMobile name="file-sorting">
|
||||||
|
<MenuMobileGroup>
|
||||||
|
<FileSortingOptions />
|
||||||
|
</MenuMobileGroup>
|
||||||
|
</MenuMobile>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import FileSortingOptions from '@/components/FilesView/FileSortingOptions'
|
||||||
|
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup'
|
||||||
|
import MenuMobile from '@/components/Mobile/MenuMobile'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FilterSortingMobile',
|
||||||
|
components: {
|
||||||
|
FileSortingOptions,
|
||||||
|
MenuMobileGroup,
|
||||||
|
MenuMobile,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
+9
-107
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="menu-options" id="menu-list">
|
<div>
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup>
|
||||||
<Option v-if="isList" @click.native="changePreview('grid')" :title="$t('preview_sorting.grid_view')" icon="grid" />
|
<Option v-if="isList" @click.native="changePreview('grid')" :title="$t('preview_sorting.grid_view')" icon="grid" />
|
||||||
<Option v-if="isGrid" @click.native="changePreview('list')" :title="$t('preview_sorting.list_view')" icon="list" />
|
<Option v-if="isGrid" @click.native="changePreview('list')" :title="$t('preview_sorting.list_view')" icon="list" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup>
|
||||||
<Option @click.native.stop="sort('created_at')" :title="$t('preview_sorting.sort_date')" icon="calendar" />
|
<Option @click.native.stop="sort('created_at')" :title="$t('preview_sorting.sort_date')" icon="calendar" />
|
||||||
<Option @click.native.stop="sort('name')" :title="$t('preview_sorting.sort_alphabet')" icon="alphabet" />
|
<Option @click.native.stop="sort('name')" :title="$t('preview_sorting.sort_alphabet')" icon="alphabet" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
@@ -19,25 +19,20 @@
|
|||||||
|
|
||||||
import OptionGroup from '@/components/FilesView/OptionGroup'
|
import OptionGroup from '@/components/FilesView/OptionGroup'
|
||||||
import Option from '@/components/FilesView/Option'
|
import Option from '@/components/FilesView/Option'
|
||||||
import { CalendarIcon, ListIcon, GridIcon, ArrowUpIcon, CheckIcon } from 'vue-feather-icons'
|
import { ArrowUpIcon } from 'vue-feather-icons'
|
||||||
import AlphabetIcon from '@/components/FilesView/Icons/AlphabetIcon'
|
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { events } from '@/bus'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SortingAndPreviewMenu',
|
name: 'FileSortingOptions',
|
||||||
components: {
|
components: {
|
||||||
OptionGroup,
|
OptionGroup,
|
||||||
Option,
|
|
||||||
CalendarIcon,
|
|
||||||
AlphabetIcon,
|
|
||||||
ArrowUpIcon,
|
ArrowUpIcon,
|
||||||
CheckIcon,
|
Option,
|
||||||
ListIcon,
|
|
||||||
GridIcon
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['FilePreviewType']),
|
...mapGetters([
|
||||||
|
'FilePreviewType'
|
||||||
|
]),
|
||||||
isGrid() {
|
isGrid() {
|
||||||
return this.FilePreviewType === 'grid'
|
return this.FilePreviewType === 'grid'
|
||||||
},
|
},
|
||||||
@@ -55,7 +50,6 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
sort(field) {
|
sort(field) {
|
||||||
|
|
||||||
this.filter.field = field
|
this.filter.field = field
|
||||||
|
|
||||||
// Set sorting direction
|
// Set sorting direction
|
||||||
@@ -74,16 +68,10 @@ export default {
|
|||||||
this.$getDataByLocation()
|
this.$getDataByLocation()
|
||||||
},
|
},
|
||||||
changePreview(previewType) {
|
changePreview(previewType) {
|
||||||
|
|
||||||
this.$store.dispatch('changePreviewType', previewType)
|
this.$store.dispatch('changePreviewType', previewType)
|
||||||
|
|
||||||
if (this.$isMobile())
|
|
||||||
events.$emit('mobileSortingAndPreview', false)
|
|
||||||
events.$emit('mobileSortingAndPreviewVignette', this.mobileSortingAndPreview)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
||||||
let sorting = JSON.parse(localStorage.getItem('sorting'))
|
let sorting = JSON.parse(localStorage.getItem('sorting'))
|
||||||
|
|
||||||
// Set default sorting if in not setup in LocalStorage
|
// Set default sorting if in not setup in LocalStorage
|
||||||
@@ -92,89 +80,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
@import "@assets/vuefilemanager/_variables";
|
|
||||||
@import "@assets/vuefilemanager/_mixins";
|
|
||||||
|
|
||||||
.show-icon {
|
|
||||||
margin-left: auto;
|
|
||||||
max-height: 19px;
|
|
||||||
|
|
||||||
.arrow-down {
|
|
||||||
@include transform(rotate(180deg));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
margin-right: 20px;
|
|
||||||
line-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-label {
|
|
||||||
@include font-size(16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sorting-preview {
|
|
||||||
min-width: 250px;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
box-shadow: $shadow;
|
|
||||||
background: white;
|
|
||||||
border-radius: 8px;
|
|
||||||
overflow: hidden;
|
|
||||||
right: 66px;
|
|
||||||
top: 63px;
|
|
||||||
|
|
||||||
&.showed {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-options {
|
|
||||||
list-style: none;
|
|
||||||
width: 100%;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
.menu-option-group {
|
|
||||||
padding: 5px 0;
|
|
||||||
border-bottom: 1px solid $light_mode_border;
|
|
||||||
|
|
||||||
&:first-child {
|
|
||||||
padding-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
padding-bottom: 0;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
white-space: nowrap;
|
|
||||||
font-weight: 700;
|
|
||||||
@include font-size(14);
|
|
||||||
padding: 15px 20px;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 100%;
|
|
||||||
color: $text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.menu-options {
|
|
||||||
.menu-option-group {
|
|
||||||
border-color: $dark_mode_border_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
color: $dark_mode_text_primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<button class="mobile-action-button">
|
<button class="mobile-action-button">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
<filter-icon v-if="icon === 'filter'" size="15" class="icon dark-text-theme" />
|
||||||
<credit-card-icon v-if="icon === 'credit-card'" size="15" class="icon dark-text-theme" />
|
<credit-card-icon v-if="icon === 'credit-card'" size="15" class="icon dark-text-theme" />
|
||||||
<folder-plus-icon v-if="icon === 'folder-plus'" size="15" class="icon dark-text-theme" />
|
<folder-plus-icon v-if="icon === 'folder-plus'" size="15" class="icon dark-text-theme" />
|
||||||
<list-icon v-if="icon === 'th-list'" size="15" class="icon dark-text-theme" />
|
<list-icon v-if="icon === 'th-list'" size="15" class="icon dark-text-theme" />
|
||||||
@@ -21,7 +22,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { DollarSignIcon, CheckIcon, XSquareIcon, CheckSquareIcon, FolderPlusIcon, ListIcon, GridIcon, TrashIcon, UserPlusIcon, PlusIcon, CreditCardIcon } from 'vue-feather-icons'
|
import { FilterIcon, DollarSignIcon, CheckIcon, XSquareIcon, CheckSquareIcon, FolderPlusIcon, ListIcon, GridIcon, TrashIcon, UserPlusIcon, PlusIcon, CreditCardIcon } from 'vue-feather-icons'
|
||||||
import SortingAndPreviewIcon from '@/components/FilesView/Icons/SortingAndPreviewIcon'
|
import SortingAndPreviewIcon from '@/components/FilesView/Icons/SortingAndPreviewIcon'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -37,6 +38,7 @@
|
|||||||
FolderPlusIcon,
|
FolderPlusIcon,
|
||||||
UserPlusIcon,
|
UserPlusIcon,
|
||||||
XSquareIcon,
|
XSquareIcon,
|
||||||
|
FilterIcon,
|
||||||
CheckIcon,
|
CheckIcon,
|
||||||
TrashIcon,
|
TrashIcon,
|
||||||
PlusIcon,
|
PlusIcon,
|
||||||
|
|||||||
@@ -1,560 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="options-wrapper">
|
|
||||||
<transition name="context-menu">
|
|
||||||
<div v-if="isVisible" ref="contextmenu" class="options" @click="closeAndResetContextMenu">
|
|
||||||
|
|
||||||
<div class="menu-wrapper">
|
|
||||||
|
|
||||||
<!--Item Thumbnail-->
|
|
||||||
<ThumbnailItem class="item-thumbnail" :item="fileInfoDetail[0]" info="metadata"/>
|
|
||||||
|
|
||||||
<!--Mobile for trash location-->
|
|
||||||
<div v-if="$isThisLocation(['trash', 'trash-root']) && $checkPermission('master')" class="menu-options">
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="$store.dispatch('restoreItem', fileInfoDetail[0])" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<life-buoy-icon size="17"></life-buoy-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.restore') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option delete" @click="deleteItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<trash-2-icon size="17"></trash-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.delete') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group" >
|
|
||||||
<li class="menu-option" @click="downloadItem" v-if="!isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<download-cloud-icon size="17"></download-cloud-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.download') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="menu-option" @click="downloadFolder" v-if="isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<paperclip-icon size="17"></paperclip-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.zip_folder') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Mobile for Base location-->
|
|
||||||
<div v-if="$isThisLocation(['shared']) && $checkPermission('master')" class="menu-options">
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="addToFavourites" v-if="fileInfoDetail[0] && isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<star-icon size="17"></star-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{
|
|
||||||
isInFavourites
|
|
||||||
? $t('context_menu.remove_from_favourites')
|
|
||||||
: $t('context_menu.add_to_favourites')
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<edit-2-icon size="17"></edit-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.rename') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<link-icon size="17"></link-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{
|
|
||||||
fileInfoDetail[0].shared
|
|
||||||
? $t('context_menu.share_edit')
|
|
||||||
: $t('context_menu.share')
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option delete" @click="deleteItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<trash-2-icon size="17"></trash-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.delete') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="downloadItem" v-if="!isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<download-cloud-icon size="17"></download-cloud-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.download') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="menu-option" @click="downloadFolder" v-if="isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<paperclip-icon size="17"></paperclip-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.zip_folder') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Mobile for Base location-->
|
|
||||||
<div v-if="$isThisLocation(['base', 'participant_uploads', 'latest']) && $checkPermission('master')" class="menu-options">
|
|
||||||
<ul class="menu-option-group" v-if="fileInfoDetail[0] && isFolder">
|
|
||||||
<li class="menu-option" @click="addToFavourites">
|
|
||||||
<div class="icon">
|
|
||||||
<star-icon size="17"></star-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{
|
|
||||||
isInFavourites
|
|
||||||
? $t('context_menu.remove_from_favourites')
|
|
||||||
: $t('context_menu.add_to_favourites')
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<edit-2-icon size="17"></edit-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.rename') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<corner-down-right-icon size="17"></corner-down-right-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.move') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<link-icon size="17"></link-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{
|
|
||||||
fileInfoDetail[0].shared
|
|
||||||
? $t('context_menu.share_edit')
|
|
||||||
: $t('context_menu.share')
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option delete" @click="deleteItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<trash-2-icon size="17"></trash-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.delete') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="downloadItem" v-if="!isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<download-cloud-icon size="17"></download-cloud-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.download') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="menu-option" @click="downloadFolder" v-if="isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<paperclip-icon size="17"></paperclip-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.zip_folder') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Mobile for Base location with EDITOR permission-->
|
|
||||||
<div v-if="$isThisLocation(['base', 'public']) && $checkPermission('editor')" class="menu-options">
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<edit-2-icon size="17"></edit-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.rename') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail[0]">
|
|
||||||
<div class="icon">
|
|
||||||
<corner-down-right-icon size="17"></corner-down-right-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.move') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="menu-option" @click="deleteItem">
|
|
||||||
<div class="icon">
|
|
||||||
<trash-2-icon size="17"></trash-2-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.delete') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="downloadItem" v-if="!isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<download-cloud-icon size="17"></download-cloud-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.download') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="menu-option" @click="downloadFolder" v-if="isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<paperclip-icon size="17"></paperclip-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.zip_folder') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Mobile for Base location with VISITOR permission-->
|
|
||||||
<div v-if="$isThisLocation(['base', 'public']) && $checkPermission('visitor')" class="menu-options">
|
|
||||||
<ul class="menu-option-group">
|
|
||||||
<li class="menu-option" @click="downloadItem" v-if="!isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<download-cloud-icon size="17"></download-cloud-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.download') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="menu-option" @click="downloadFolder" v-if="isFolder">
|
|
||||||
<div class="icon">
|
|
||||||
<paperclip-icon size="17"></paperclip-icon>
|
|
||||||
</div>
|
|
||||||
<div class="text-label">
|
|
||||||
{{ $t('context_menu.zip_folder') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
<transition name="fade">
|
|
||||||
<div v-show="isVisible" class="vignette" @click="closeAndResetContextMenu"></div>
|
|
||||||
</transition>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import ThumbnailItem from '@/components/Others/ThumbnailItem'
|
|
||||||
|
|
||||||
import {
|
|
||||||
CornerDownRightIcon,
|
|
||||||
DownloadCloudIcon,
|
|
||||||
FolderPlusIcon,
|
|
||||||
PaperclipIcon,
|
|
||||||
LifeBuoyIcon,
|
|
||||||
Trash2Icon,
|
|
||||||
Edit2Icon,
|
|
||||||
TrashIcon,
|
|
||||||
StarIcon,
|
|
||||||
LinkIcon,
|
|
||||||
EyeIcon
|
|
||||||
} from 'vue-feather-icons'
|
|
||||||
import { events } from '@/bus'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'MobileMenu',
|
|
||||||
components: {
|
|
||||||
CornerDownRightIcon,
|
|
||||||
DownloadCloudIcon,
|
|
||||||
FolderPlusIcon,
|
|
||||||
PaperclipIcon,
|
|
||||||
ThumbnailItem,
|
|
||||||
LifeBuoyIcon,
|
|
||||||
Trash2Icon,
|
|
||||||
Edit2Icon,
|
|
||||||
TrashIcon,
|
|
||||||
LinkIcon,
|
|
||||||
StarIcon,
|
|
||||||
EyeIcon
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapGetters(['fileInfoDetail', 'user']),
|
|
||||||
favourites() {
|
|
||||||
return this.user.data.relationships.favourites.data.attributes.folders
|
|
||||||
},
|
|
||||||
isInFavourites() {
|
|
||||||
return this.favourites.find(
|
|
||||||
(el) => el.id == this.fileInfoDetail[0].id
|
|
||||||
)
|
|
||||||
},
|
|
||||||
isFile() {
|
|
||||||
return (
|
|
||||||
this.fileInfoDetail[0] &&
|
|
||||||
this.fileInfoDetail[0].type !== 'folder' &&
|
|
||||||
this.fileInfoDetail[0] &&
|
|
||||||
this.fileInfoDetail[0].type !== 'image'
|
|
||||||
)
|
|
||||||
},
|
|
||||||
isImage() {
|
|
||||||
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === 'image'
|
|
||||||
},
|
|
||||||
isFolder() {
|
|
||||||
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === 'folder'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isVisible: false,
|
|
||||||
showFromMediaPreview: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
downloadFolder(){
|
|
||||||
this.$store.dispatch( 'downloadFolder' , this.fileInfoDetail[0] )
|
|
||||||
},
|
|
||||||
moveItem() {
|
|
||||||
events.$emit('popup:open', { name: 'move', item: [this.fileInfoDetail[0]] })
|
|
||||||
},
|
|
||||||
shareItem() {
|
|
||||||
if (this.fileInfoDetail[0].shared) {
|
|
||||||
// Open share item popup
|
|
||||||
events.$emit('popup:open', {
|
|
||||||
name: 'share-edit',
|
|
||||||
item: this.fileInfoDetail[0]
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
// Open share item popup
|
|
||||||
events.$emit('popup:open', {
|
|
||||||
name: 'share-create',
|
|
||||||
item: this.fileInfoDetail[0]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
addToFavourites() {
|
|
||||||
if (
|
|
||||||
this.favourites &&
|
|
||||||
!this.favourites.find(
|
|
||||||
(el) => el.id == this.fileInfoDetail[0].id
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
this.$store.dispatch('addToFavourites', this.fileInfoDetail[0])
|
|
||||||
} else {
|
|
||||||
this.$store.dispatch('removeFromFavourites', this.fileInfoDetail[0])
|
|
||||||
}
|
|
||||||
},
|
|
||||||
downloadItem() {
|
|
||||||
this.$downloadFile(
|
|
||||||
this.fileInfoDetail[0].file_url,
|
|
||||||
this.fileInfoDetail[0].name + '.' + this.fileInfoDetail[0].mimetype
|
|
||||||
)
|
|
||||||
},
|
|
||||||
deleteItem() {
|
|
||||||
this.$store.dispatch('deleteItem')
|
|
||||||
},
|
|
||||||
renameItem() {
|
|
||||||
events.$emit('popup:open', { name: 'rename-item', item: this.fileInfoDetail[0] })
|
|
||||||
},
|
|
||||||
closeAndResetContextMenu() {
|
|
||||||
//If emit to show menu coming from MediaFullPreview dont reset data
|
|
||||||
this.isVisible = false
|
|
||||||
this.showFromMediaPreview = false
|
|
||||||
events.$emit('hide:mobile-navigation')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
events.$on('mobileMenu:show', showFromMedia => {
|
|
||||||
// If emit come from MediaFullPreview
|
|
||||||
if (showFromMedia) {
|
|
||||||
this.isVisible = true
|
|
||||||
this.showFromMediaPreview = true
|
|
||||||
} else {
|
|
||||||
this.isVisible = !this.isVisible
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// Hide mobile menu
|
|
||||||
events.$on('mobileMenu:hide', () => {
|
|
||||||
this.isVisible = false
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
@import "@assets/vuefilemanager/_variables";
|
|
||||||
@import "@assets/vuefilemanager/_mixins";
|
|
||||||
|
|
||||||
.mobile-selected-menu {
|
|
||||||
display: flex;
|
|
||||||
margin-left: 15px;
|
|
||||||
margin-right: 15px;
|
|
||||||
|
|
||||||
.close-icon {
|
|
||||||
margin-left: auto !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
margin-right: 20px;
|
|
||||||
line-height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-label {
|
|
||||||
@include font-size(16);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.vignette {
|
|
||||||
background: rgba(0, 0, 0, 0.35);
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 9;
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.options {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 99;
|
|
||||||
overflow: hidden;
|
|
||||||
background: white;
|
|
||||||
border-top-left-radius: 12px;
|
|
||||||
border-top-right-radius: 12px;
|
|
||||||
|
|
||||||
&.showed {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item-thumbnail {
|
|
||||||
padding: 20px 20px 10px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-options {
|
|
||||||
margin-top: 10px;
|
|
||||||
list-style: none;
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
.menu-option-group {
|
|
||||||
padding: 5px 0;
|
|
||||||
border-bottom: 1px solid $light_mode_border;
|
|
||||||
|
|
||||||
&:first-child {
|
|
||||||
padding-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
padding-bottom: 0;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
font-weight: 700;
|
|
||||||
letter-spacing: 0.15px;
|
|
||||||
@include font-size(14);
|
|
||||||
cursor: pointer;
|
|
||||||
width: 100%;
|
|
||||||
padding: 17px 20px;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.vignette {
|
|
||||||
background: $dark_mode_vignette;
|
|
||||||
}
|
|
||||||
|
|
||||||
.options {
|
|
||||||
background: $dark_mode_foreground;
|
|
||||||
|
|
||||||
.menu-options {
|
|
||||||
background: $dark_mode_foreground;
|
|
||||||
|
|
||||||
.menu-option-group {
|
|
||||||
border-color: $dark_mode_border_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-option {
|
|
||||||
color: $dark_mode_text_primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transition
|
|
||||||
.context-menu-enter-active,
|
|
||||||
.fade-enter-active {
|
|
||||||
transition: all 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
.context-menu-leave-active,
|
|
||||||
.fade-leave-active {
|
|
||||||
transition: all 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-enter,
|
|
||||||
.fade-leave-to {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.context-menu-enter,
|
|
||||||
.context-menu-leave-to {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.context-menu-leave-active {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<template>
|
|
||||||
<transition v-if="isVisible" name="preview-menu" >
|
|
||||||
<SortingAndPreviewMenu class="options"/>
|
|
||||||
</transition>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import SortingAndPreviewMenu from '@/components/FilesView/SortingAndPreviewMenu'
|
|
||||||
import { events } from '@/bus'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'MobileSortingAndPreview',
|
|
||||||
components: {SortingAndPreviewMenu},
|
|
||||||
data () {
|
|
||||||
return {
|
|
||||||
isVisible: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
events.$on('mobileSortingAndPreview', (state) => {
|
|
||||||
this.isVisible = state
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
@import "@assets/vuefilemanager/_variables";
|
|
||||||
@import "@assets/vuefilemanager/_mixins";
|
|
||||||
|
|
||||||
.options {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 99;
|
|
||||||
overflow: hidden;
|
|
||||||
background: white;
|
|
||||||
border-top-left-radius: 12px;
|
|
||||||
border-top-right-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.options {
|
|
||||||
background: $dark_mode_foreground;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Transition
|
|
||||||
.preview-menu-enter-active,
|
|
||||||
.fade-enter-active {
|
|
||||||
transition: all 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview-menu-leave-active,
|
|
||||||
.fade-leave-active {
|
|
||||||
transition: all 200ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-enter,
|
|
||||||
.fade-leave-to {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview-menu-enter,
|
|
||||||
.preview-menu-leave-to {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview-menu-leave-active {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
showMobileNavigation() {
|
showMobileNavigation() {
|
||||||
events.$emit('show:mobile-navigation')
|
events.$emit('mobile-navigation:show')
|
||||||
events.$emit('mobileSelecting:stop')
|
events.$emit('mobileSelecting:stop')
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
|
|||||||
+36
-36
@@ -1,27 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<transition name="context-menu">
|
<transition name="context-menu">
|
||||||
<div class="multiselect-actions" v-if="mobileMultiSelect">
|
<div class="multiselect-actions" v-if="mobileMultiSelect">
|
||||||
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['trash', 'trash-root' , 'shared', 'latest']) && $checkPermission('master') || $checkPermission('editor')" source="move" :action="$t('actions.move')" :class="{'is-inactive' : fileInfoDetail.length < 1}" @click.native="moveItem"/>
|
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['trash', 'trash-root' , 'shared', 'latest']) && $checkPermission('master') || $checkPermission('editor')" source="move" :action="$t('actions.move')" :class="{'is-inactive' : fileInfoDetail.length < 1}" @click.native="moveItem" />
|
||||||
|
|
||||||
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['shared']) && $checkPermission('master') || $checkPermission('editor')" source="trash" :class="{'is-inactive' : fileInfoDetail.length < 1}" :action="$t('actions.delete')" @click.native="deleteItem"/>
|
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['shared']) && $checkPermission('master') || $checkPermission('editor')" source="trash" :class="{'is-inactive' : fileInfoDetail.length < 1}" :action="$t('actions.delete')" @click.native="deleteItem" />
|
||||||
|
|
||||||
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['shared'])" source="download" :class="{'is-inactive': canDownloadItems}" :action="$t('actions.delete')" @click.native="downloadItem"/>
|
<ToolbarButton class="action-btn" v-if="!$isThisLocation(['shared'])" source="download" :class="{'is-inactive': canDownloadItems}" :action="$t('actions.delete')" @click.native="downloadItem" />
|
||||||
|
|
||||||
<ToolbarButton class="action-btn" source="shared-off" @click.native="shareCancel" v-if="$isThisLocation(['shared'])"/>
|
<ToolbarButton class="action-btn" source="shared-off" @click.native="shareCancel" v-if="$isThisLocation(['shared'])" />
|
||||||
|
|
||||||
<ToolbarButton class="action-btn close-icon" source="close" :action="$t('actions.close')" @click.native="closeSelecting"/>
|
<ToolbarButton class="action-btn close-icon" source="close" :action="$t('actions.close')" @click.native="closeSelecting" />
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ToolbarButton from '@/components/FilesView/ToolbarButton'
|
import ToolbarButton from '@/components/FilesView/ToolbarButton'
|
||||||
import { events } from '@/bus'
|
import {events} from '@/bus'
|
||||||
import { mapGetters } from 'vuex'
|
import {mapGetters} from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MobileMultiSelectMenu',
|
name: 'MultiSelectToolbarMobile',
|
||||||
components: { ToolbarButton },
|
components: {ToolbarButton},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['fileInfoDetail']),
|
...mapGetters(['fileInfoDetail']),
|
||||||
canDownloadItems() {
|
canDownloadItems() {
|
||||||
@@ -34,7 +34,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
shareCancel() {
|
shareCancel() {
|
||||||
this.$store.dispatch('shareCancel')
|
this.$store.dispatch('shareCancel')
|
||||||
this.closeSelecting()
|
this.closeSelecting()
|
||||||
},
|
},
|
||||||
@@ -51,7 +51,7 @@ export default {
|
|||||||
},
|
},
|
||||||
moveItem() {
|
moveItem() {
|
||||||
// Open move item popup
|
// Open move item popup
|
||||||
events.$emit('popup:open', { name: 'move', item: [this.fileInfoDetail[0]] })
|
events.$emit('popup:open', {name: 'move', item: [this.fileInfoDetail[0]]})
|
||||||
},
|
},
|
||||||
deleteItem() {
|
deleteItem() {
|
||||||
//Delete items
|
//Delete items
|
||||||
@@ -120,37 +120,37 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
|
|
||||||
.multiselect-actions {
|
.multiselect-actions {
|
||||||
background: $dark_mode_foreground;
|
background: $dark_mode_foreground;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Transition
|
// Transition
|
||||||
.context-menu-enter-active,
|
.context-menu-enter-active,
|
||||||
.fade-enter-active {
|
.fade-enter-active {
|
||||||
transition: all 200ms;
|
transition: all 200ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.context-menu-leave-active,
|
.context-menu-leave-active,
|
||||||
.fade-leave-active {
|
.fade-leave-active {
|
||||||
transition: all 200ms;
|
transition: all 200ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-enter,
|
.fade-enter,
|
||||||
.fade-leave-to {
|
.fade-leave-to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.context-menu-enter,
|
.context-menu-enter,
|
||||||
.context-menu-leave-to {
|
.context-menu-leave-to {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transform: translateY(100%);
|
transform: translateY(100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.context-menu-leave-active {
|
.context-menu-leave-active {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
<smile-icon v-if="icon === 'no-options'" size="17" class="group-hover-text-theme"/>
|
<smile-icon v-if="icon === 'no-options'" size="17" class="group-hover-text-theme"/>
|
||||||
<paperclip-icon v-if="icon === 'zip-folder'" size="17" class="group-hover-text-theme"/>
|
<paperclip-icon v-if="icon === 'zip-folder'" size="17" class="group-hover-text-theme"/>
|
||||||
<alphabet-icon v-if="icon === 'alphabet'" size="17" class="group-hover-text-theme"/>
|
<alphabet-icon v-if="icon === 'alphabet'" size="17" class="group-hover-text-theme"/>
|
||||||
|
<star-icon v-if="icon === 'star'" size="17" class="group-hover-text-theme"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-label group-hover-text-theme">
|
<div class="text-label group-hover-text-theme">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
<template>
|
<template>
|
||||||
<ul class="link-group">
|
<ul class="link-group">
|
||||||
<router-link :to="{name: link.routeName}" v-for="(link, i) in navigation" :key="i" v-if="link.isVisible" :class="link.icon" class="link-item" @click.native="$emit('menu', link.icon)">
|
<li @click="goToItem(link)" v-for="(link, i) in navigation" :key="i" v-if="link.isVisible" :class="link.icon" class="link-item">
|
||||||
<div class="menu-icon">
|
<div class="menu-icon">
|
||||||
<hard-drive-icon v-if="link.icon === 'hard-drive'" size="17"></hard-drive-icon>
|
<hard-drive-icon v-if="link.icon === 'hard-drive'" size="17" />
|
||||||
<share-icon v-if="link.icon === 'share'" size="17"></share-icon>
|
<share-icon v-if="link.icon === 'share'" size="17" />
|
||||||
<trash2-icon v-if="link.icon === 'trash'" size="17"></trash2-icon>
|
<trash2-icon v-if="link.icon === 'trash'" size="17" />
|
||||||
<power-icon v-if="link.icon === 'power'" size="17"></power-icon>
|
<power-icon v-if="link.icon === 'power'" size="17" />
|
||||||
<settings-icon v-if="link.icon === 'settings'" size="17"></settings-icon>
|
<settings-icon v-if="link.icon === 'settings'" size="17" />
|
||||||
<upload-cloud-icon v-if="link.icon === 'latest'" size="17"></upload-cloud-icon>
|
<upload-cloud-icon v-if="link.icon === 'latest'" size="17" />
|
||||||
<user-icon v-if="link.icon === 'user'" size="17"></user-icon>
|
<user-icon v-if="link.icon === 'user'" size="17" />
|
||||||
<users-icon v-if="link.icon === 'users'" size="17"></users-icon>
|
<users-icon v-if="link.icon === 'users'" size="17" />
|
||||||
<lock-icon v-if="link.icon === 'lock'" size="17"></lock-icon>
|
<lock-icon v-if="link.icon === 'lock'" size="17" />
|
||||||
<file-text-icon v-if="link.icon === 'file-text'" size="17"></file-text-icon>
|
<file-text-icon v-if="link.icon === 'file-text'" size="17" />
|
||||||
<database-icon v-if="link.icon === 'database'" size="17"></database-icon>
|
<database-icon v-if="link.icon === 'database'" size="17" />
|
||||||
<credit-card-icon v-if="link.icon === 'credit-card'" size="17"></credit-card-icon>
|
<credit-card-icon v-if="link.icon === 'credit-card'" size="17" />
|
||||||
<cloud-icon v-if="link.icon === 'cloud'" size="17"></cloud-icon>
|
<cloud-icon v-if="link.icon === 'cloud'" size="17" />
|
||||||
<monitor-icon v-if="link.icon === 'monitor'" size="17"></monitor-icon>
|
<monitor-icon v-if="link.icon === 'monitor'" size="17" />
|
||||||
<box-icon v-if="link.icon === 'box'" size="17"></box-icon>
|
<box-icon v-if="link.icon === 'box'" size="17" />
|
||||||
<globe-icon v-if="link.icon === 'language'" size="17"></globe-icon>
|
<globe-icon v-if="link.icon === 'language'" size="17" />
|
||||||
</div>
|
</div>
|
||||||
<b class="menu-link">
|
<b class="menu-link">
|
||||||
<span>{{ link.title }}</span>
|
<span>{{ link.title }}</span>
|
||||||
<chevron-right-icon size="15" class="arrow-right"></chevron-right-icon>
|
<chevron-right-icon size="15" class="arrow-right"/>
|
||||||
</b>
|
</b>
|
||||||
</router-link>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
} from 'vue-feather-icons'
|
} from 'vue-feather-icons'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MenuBar',
|
name: 'MenuItemList',
|
||||||
components: {
|
components: {
|
||||||
BoxIcon,
|
BoxIcon,
|
||||||
MonitorIcon,
|
MonitorIcon,
|
||||||
@@ -72,6 +72,15 @@
|
|||||||
props: [
|
props: [
|
||||||
'navigation'
|
'navigation'
|
||||||
],
|
],
|
||||||
|
methods: {
|
||||||
|
goToItem(link) {
|
||||||
|
this.$emit('menu', link.icon)
|
||||||
|
|
||||||
|
// Go to next route
|
||||||
|
if (link.routeName !== this.$route.name)
|
||||||
|
this.$router.push({name: link.routeName})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -85,20 +94,6 @@
|
|||||||
padding: 17px 0;
|
padding: 17px 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
&.power {
|
|
||||||
|
|
||||||
.menu-icon {
|
|
||||||
|
|
||||||
path, line, polyline, rect, circle, ellipse {
|
|
||||||
stroke: $red;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-link {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-icon {
|
.menu-icon {
|
||||||
display: block;
|
display: block;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
<template>
|
||||||
|
<transition name="context-menu">
|
||||||
|
<div v-if="isVisible" @click="closeMenu" class="options">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {events} from '@/bus'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'MenuMobile',
|
||||||
|
props: [
|
||||||
|
'name'
|
||||||
|
],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isVisible: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
closeMenu() {
|
||||||
|
this.isVisible = false
|
||||||
|
|
||||||
|
events.$emit('mobile-menu:hide')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
events.$on('mobile-menu:show', name => {
|
||||||
|
if (name === this.name)
|
||||||
|
this.isVisible = !this.isVisible
|
||||||
|
})
|
||||||
|
|
||||||
|
events.$on('mobile-menu:hide', () => this.isVisible = false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
@import "@assets/vuefilemanager/_variables";
|
||||||
|
@import "@assets/vuefilemanager/_mixins";
|
||||||
|
|
||||||
|
.options {
|
||||||
|
position: absolute;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 99;
|
||||||
|
overflow: hidden;
|
||||||
|
background: white;
|
||||||
|
border-top-left-radius: 12px;
|
||||||
|
border-top-right-radius: 12px;
|
||||||
|
|
||||||
|
&.showed {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Transition
|
||||||
|
.context-menu-enter-active,
|
||||||
|
.fade-enter-active {
|
||||||
|
transition: all 200ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-leave-active,
|
||||||
|
.fade-leave-active {
|
||||||
|
transition: all 200ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-enter,
|
||||||
|
.fade-leave-to {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-enter,
|
||||||
|
.context-menu-leave-to {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.context-menu-leave-active {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
|
||||||
|
.options {
|
||||||
|
background: $dark_mode_foreground;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<template>
|
||||||
|
<div class="menu-options">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'MenuMobileGroup',
|
||||||
|
components: {
|
||||||
|
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['config']),
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
@import "@assets/vuefilemanager/_variables";
|
||||||
|
@import "@assets/vuefilemanager/_mixins";
|
||||||
|
|
||||||
|
.menu-options {
|
||||||
|
margin-top: 10px;
|
||||||
|
list-style: none;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
} from 'vue-feather-icons'
|
} from 'vue-feather-icons'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MenuBar',
|
name: 'MobileHeader',
|
||||||
props: [
|
props: [
|
||||||
'title'
|
'title'
|
||||||
],
|
],
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
showMobileNavigation() {
|
showMobileNavigation() {
|
||||||
events.$emit('show:mobile-navigation')
|
events.$emit('mobile-navigation:show')
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
this.$router.back();
|
this.$router.back();
|
||||||
|
|||||||
+1
-1
@@ -55,7 +55,7 @@
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CreateFolder',
|
name: 'CreateFolderPopup',
|
||||||
components: {
|
components: {
|
||||||
ValidationProvider,
|
ValidationProvider,
|
||||||
ValidationObserver,
|
ValidationObserver,
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="canBePreview" class="preview">
|
||||||
|
<img v-if="fileInfoDetail[0].type == 'image' && fileInfoDetail[0].thumbnail" :src="fileInfoDetail[0].thumbnail" :alt="fileInfoDetail[0].name" />
|
||||||
|
<audio v-else-if="fileInfoDetail[0].type == 'audio'" :src="fileInfoDetail[0].file_url" controlsList="nodownload" controls></audio>
|
||||||
|
<video v-else-if="fileInfoDetail[0].type == 'video'" controlsList="nodownload" disablePictureInPicture playsinline controls>
|
||||||
|
<source :src="fileInfoDetail[0].file_url" type="video/mp4">
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import { includes } from 'lodash'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'FilePreview',
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['fileInfoDetail']),
|
||||||
|
canBePreview() {
|
||||||
|
return this.fileInfoDetail[0] && ! includes([
|
||||||
|
'folder', 'file'
|
||||||
|
], this.fileInfoDetail[0].type)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
@import '@assets/vuefilemanager/_variables';
|
||||||
|
@import '@assets/vuefilemanager/_mixins';
|
||||||
|
|
||||||
|
.preview {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
border-radius: 4px;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
audio {
|
||||||
|
width: 100%;
|
||||||
|
&::-webkit-media-controls-panel {
|
||||||
|
background-color: $light_background;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-media-controls-play-button {
|
||||||
|
color: $theme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -4,25 +4,18 @@
|
|||||||
<nav v-if="isVisible" class="mobile-navigation">
|
<nav v-if="isVisible" class="mobile-navigation">
|
||||||
|
|
||||||
<!--User Info-->
|
<!--User Info-->
|
||||||
<div class="user-info">
|
<UserHeadline class="user-info"/>
|
||||||
<UserAvatar size="large"/>
|
|
||||||
<UserHeadline/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--Navigation-->
|
<!--Navigation-->
|
||||||
<MenuItemList :navigation="navigation" @menu="action"/>
|
<MenuItemList :navigation="navigation" @menu="action"/>
|
||||||
</nav>
|
</nav>
|
||||||
</transition>
|
</transition>
|
||||||
<transition name="fade">
|
|
||||||
<div v-show="isVisible" class="vignette" @click="closeAndResetContextMenu"></div>
|
|
||||||
</transition>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import UserHeadline from '@/components/Sidebar/UserHeadline'
|
import UserHeadline from '@/components/Sidebar/UserHeadline'
|
||||||
import MenuItemList from '@/components/Mobile/MenuItemList'
|
import MenuItemList from '@/components/Mobile/MenuItemList'
|
||||||
import UserAvatar from '@/components/Others/UserAvatar'
|
|
||||||
import {mapGetters} from 'vuex'
|
import {mapGetters} from 'vuex'
|
||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
@@ -31,7 +24,6 @@
|
|||||||
components: {
|
components: {
|
||||||
MenuItemList,
|
MenuItemList,
|
||||||
UserHeadline,
|
UserHeadline,
|
||||||
UserAvatar,
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['user', 'homeDirectory']),
|
...mapGetters(['user', 'homeDirectory']),
|
||||||
@@ -43,7 +35,7 @@
|
|||||||
routeName: 'Files',
|
routeName: 'Files',
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
},
|
},
|
||||||
{
|
/*{
|
||||||
icon: 'latest',
|
icon: 'latest',
|
||||||
title: this.$t('menu.latest'),
|
title: this.$t('menu.latest'),
|
||||||
routeName: 'Files',
|
routeName: 'Files',
|
||||||
@@ -60,7 +52,7 @@
|
|||||||
title: this.$t('menu.trash'),
|
title: this.$t('menu.trash'),
|
||||||
routeName: 'Files',
|
routeName: 'Files',
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
},
|
},*/
|
||||||
{
|
{
|
||||||
icon: 'user',
|
icon: 'user',
|
||||||
title: this.$t('menu.settings'),
|
title: this.$t('menu.settings'),
|
||||||
@@ -90,13 +82,13 @@
|
|||||||
methods: {
|
methods: {
|
||||||
action(name) {
|
action(name) {
|
||||||
|
|
||||||
if (name === 'latest') {
|
/*if (name === 'latest') {
|
||||||
this.$store.dispatch('getLatest')
|
this.$store.dispatch('getLatest')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name === 'trash') {
|
if (name === 'trash') {
|
||||||
this.$store.dispatch('getTrash')
|
this.$store.dispatch('getTrash')
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if (name === 'hard-drive') {
|
if (name === 'hard-drive') {
|
||||||
this.$store.dispatch('getFolder', [{folder: this.homeDirectory, back: false, init: true}])
|
this.$store.dispatch('getFolder', [{folder: this.homeDirectory, back: false, init: true}])
|
||||||
@@ -106,18 +98,12 @@
|
|||||||
this.$store.dispatch('logOut')
|
this.$store.dispatch('logOut')
|
||||||
}
|
}
|
||||||
|
|
||||||
this.closeAndResetContextMenu()
|
events.$emit('mobile-navigation:hide')
|
||||||
},
|
},
|
||||||
closeAndResetContextMenu() {
|
|
||||||
this.isVisible = false
|
|
||||||
|
|
||||||
events.$emit('hide:mobile-navigation')
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
events.$on('show:mobile-navigation', () => {
|
events.$on('mobile-navigation:show', () => this.isVisible = true)
|
||||||
this.isVisible = true
|
events.$on('mobile-navigation:hide', () => this.isVisible = false)
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -137,33 +123,14 @@
|
|||||||
background: white;
|
background: white;
|
||||||
border-top-left-radius: 12px;
|
border-top-left-radius: 12px;
|
||||||
border-top-right-radius: 12px;
|
border-top-right-radius: 12px;
|
||||||
min-height: 440px;
|
|
||||||
max-height: 80%;
|
max-height: 80%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vignette {
|
|
||||||
background: rgba(0, 0, 0, 0.35);
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
z-index: 9;
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-info {
|
.user-info {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 690px) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
.mobile-navigation {
|
.mobile-navigation {
|
||||||
background: $dark_mode_background;
|
background: $dark_mode_background;
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MoveItem',
|
name: 'MoveItemPopup',
|
||||||
components: {
|
components: {
|
||||||
ThumbnailItem,
|
ThumbnailItem,
|
||||||
PopupWrapper,
|
PopupWrapper,
|
||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper>
|
<PopupWrapper>
|
||||||
|
|
||||||
<div class="popup-image">
|
<div class="popup-image">
|
||||||
<span class="emoji">{{ emoji }}</span>
|
<span class="emoji">{{ emoji }}</span>
|
||||||
</div>
|
</div>
|
||||||
+1
-1
@@ -59,7 +59,7 @@ import {required} from 'vee-validate/dist/rules'
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RenameItem',
|
name: 'RenameItemPopup',
|
||||||
components: {
|
components: {
|
||||||
ValidationProvider,
|
ValidationProvider,
|
||||||
ValidationObserver,
|
ValidationObserver,
|
||||||
+1
-1
@@ -112,7 +112,7 @@ import {events} from '@/bus'
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ShareCreate',
|
name: 'ShareCreatePopup',
|
||||||
components: {
|
components: {
|
||||||
ValidationProvider,
|
ValidationProvider,
|
||||||
ValidationObserver,
|
ValidationObserver,
|
||||||
+1
-1
@@ -115,7 +115,7 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ShareEdit',
|
name: 'ShareEditPopup',
|
||||||
components: {
|
components: {
|
||||||
ValidationProvider,
|
ValidationProvider,
|
||||||
ValidationObserver,
|
ValidationObserver,
|
||||||
@@ -26,22 +26,23 @@
|
|||||||
methods: {
|
methods: {
|
||||||
closePopup() {
|
closePopup() {
|
||||||
events.$emit('popup:close')
|
events.$emit('popup:close')
|
||||||
events.$emit('mobileMenu:hide')
|
events.$emit('mobile-menu:hide')
|
||||||
events.$emit('mobileSortingAndPreview', false)
|
events.$emit('mobile-navigation:hide')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
||||||
// Hide vignette
|
|
||||||
events.$on('popup:close', () => this.isVisibleVignette = false)
|
|
||||||
|
|
||||||
// Show vignette
|
// Show vignette
|
||||||
events.$on('popup:open', () => this.isVisibleVignette = true)
|
events.$on('popup:open', () => this.isVisibleVignette = true)
|
||||||
|
events.$on('mobile-menu:show', () => this.isVisibleVignette = true)
|
||||||
events.$on('alert:open', () => this.isVisibleVignette = true)
|
events.$on('alert:open', () => this.isVisibleVignette = true)
|
||||||
events.$on('success:open', () => this.isVisibleVignette = true)
|
events.$on('success:open', () => this.isVisibleVignette = true)
|
||||||
events.$on('confirm:open', () => this.isVisibleVignette = true)
|
events.$on('confirm:open', () => this.isVisibleVignette = true)
|
||||||
events.$on('mobileSortingAndPreviewVignette', (state) => this.isVisibleVignette = state)
|
events.$on('mobile-navigation:show', () => this.isVisibleVignette = true)
|
||||||
|
|
||||||
|
// Hide vignette
|
||||||
|
events.$on('mobile-navigation:hide', () => this.isVisibleVignette = false)
|
||||||
|
events.$on('mobile-menu:hide', () => this.isVisibleVignette = false)
|
||||||
|
events.$on('popup:close', () => this.isVisibleVignette = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+1
-1
@@ -57,7 +57,7 @@
|
|||||||
} from 'vue-feather-icons'
|
} from 'vue-feather-icons'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'MenuBar',
|
name: 'SidebarNavigation',
|
||||||
components: {
|
components: {
|
||||||
HardDriveIcon,
|
HardDriveIcon,
|
||||||
SettingsIcon,
|
SettingsIcon,
|
||||||
@@ -1,18 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="user-meta" v-if="user">
|
<div class="user-headline">
|
||||||
<b class="name">{{ user.data.relationships.settings.data.attributes.name }}</b>
|
<UserAvatar size="large"/>
|
||||||
<span class="email text-theme">{{ user.data.attributes.email }}</span>
|
<div class="user-meta">
|
||||||
|
<b class="name">{{ user.data.relationships.settings.data.attributes.name }}</b>
|
||||||
|
<span class="email text-theme">{{ user.data.attributes.email }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import UserAvatar from '@/components/Others/UserAvatar'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import {events} from '@/bus'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserHeadline',
|
name: 'UserHeadline',
|
||||||
|
components: {
|
||||||
|
UserAvatar,
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['user']),
|
...mapGetters([
|
||||||
|
'user'
|
||||||
|
]),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -21,6 +29,11 @@
|
|||||||
@import '@assets/vuefilemanager/_variables';
|
@import '@assets/vuefilemanager/_variables';
|
||||||
@import '@assets/vuefilemanager/_mixins';
|
@import '@assets/vuefilemanager/_mixins';
|
||||||
|
|
||||||
|
.user-headline {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
.user-meta {
|
.user-meta {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
|
|
||||||
@@ -35,12 +48,4 @@
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 690px) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,14 +4,14 @@
|
|||||||
<!--Mobile Navigation-->
|
<!--Mobile Navigation-->
|
||||||
<MobileNavigation />
|
<MobileNavigation />
|
||||||
|
|
||||||
<!--Confirm Popup-->
|
<!--ConfirmPopup Popup-->
|
||||||
<Confirm />
|
<ConfirmPopup />
|
||||||
|
|
||||||
<!-- Create language popup -->
|
<!-- Create language popup -->
|
||||||
<CreateLanguage/>
|
<CreateLanguage/>
|
||||||
|
|
||||||
<!--Navigation Sidebar-->
|
<!--Navigation Sidebar-->
|
||||||
<MenuBar/>
|
<SidebarNavigation/>
|
||||||
|
|
||||||
<ContentSidebar>
|
<ContentSidebar>
|
||||||
|
|
||||||
@@ -90,12 +90,12 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon, GlobeIcon } from 'vue-feather-icons'
|
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon, GlobeIcon } from 'vue-feather-icons'
|
||||||
|
import SidebarNavigation from '@/components/Sidebar/SidebarNavigation'
|
||||||
import MobileNavigation from '@/components/Others/MobileNavigation'
|
import MobileNavigation from '@/components/Others/MobileNavigation'
|
||||||
import ContentSidebar from '@/components/Sidebar/ContentSidebar'
|
import ContentSidebar from '@/components/Sidebar/ContentSidebar'
|
||||||
import CreateLanguage from '@/components/Others/CreateLanguage'
|
import CreateLanguage from '@/components/Others/CreateLanguage'
|
||||||
import ContentGroup from '@/components/Sidebar/ContentGroup'
|
import ContentGroup from '@/components/Sidebar/ContentGroup'
|
||||||
import Confirm from '@/components/Others/Popup/Confirm'
|
import ConfirmPopup from '@/components/Others/Popup/ConfirmPopup'
|
||||||
import MenuBar from '@/components/Sidebar/MenuBar'
|
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -104,6 +104,7 @@
|
|||||||
...mapGetters(['config']),
|
...mapGetters(['config']),
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
SidebarNavigation,
|
||||||
MobileNavigation,
|
MobileNavigation,
|
||||||
CreateLanguage,
|
CreateLanguage,
|
||||||
ContentSidebar,
|
ContentSidebar,
|
||||||
@@ -115,8 +116,7 @@
|
|||||||
MonitorIcon,
|
MonitorIcon,
|
||||||
UsersIcon,
|
UsersIcon,
|
||||||
GlobeIcon,
|
GlobeIcon,
|
||||||
Confirm,
|
ConfirmPopup,
|
||||||
MenuBar,
|
|
||||||
BoxIcon,
|
BoxIcon,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,118 +1,102 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="application-wrapper">
|
<div id="application-wrapper">
|
||||||
|
|
||||||
<!--Full File Preview-->
|
<!--File preview window-->
|
||||||
<FileFullPreview />
|
<FilePreview />
|
||||||
|
|
||||||
<!--Mobile Navigation-->
|
<!--Popups-->
|
||||||
<MobileNavigation />
|
|
||||||
|
|
||||||
<!--Processing popup-->
|
|
||||||
<ProcessingPopup />
|
<ProcessingPopup />
|
||||||
|
<ConfirmPopup />
|
||||||
|
|
||||||
<!--Confirm Popup-->
|
<ShareCreatePopup />
|
||||||
<Confirm />
|
<ShareEditPopup />
|
||||||
|
|
||||||
<!--Share Item popup-->
|
<CreateFolderPopup />
|
||||||
<ShareCreate />
|
<RenameItemPopup />
|
||||||
<ShareEdit />
|
|
||||||
|
|
||||||
<!--Rename folder/file item-->
|
<MoveItemPopup />
|
||||||
<RenameItem />
|
|
||||||
|
|
||||||
<!--Create folder mobile UI-->
|
<!--Mobile components-->
|
||||||
<CreateFolder />
|
<FileSortingMobile />
|
||||||
|
<FileMenuMobile />
|
||||||
|
|
||||||
<!--Move item popup-->
|
<MultiSelectToolbarMobile />
|
||||||
<MoveItem />
|
|
||||||
|
|
||||||
<!-- Mobile Menu for Multi selected items -->
|
<!--Navigations-->
|
||||||
<MobileMultiSelectMenu />
|
<MobileNavigation />
|
||||||
|
<SidebarNavigation />
|
||||||
|
|
||||||
<!--Drag UI-->
|
<!--Others-->
|
||||||
<DragUI />
|
<DragUI />
|
||||||
|
|
||||||
<!--Mobile menu for selecting view and sorting-->
|
<router-view :class="{'is-scaled-down': isScaledDown}" />
|
||||||
<MobileSortingAndPreview />
|
|
||||||
|
|
||||||
<!--Mobile Menu-->
|
|
||||||
<MobileMenu />
|
|
||||||
|
|
||||||
<!--Navigation Sidebar-->
|
|
||||||
<MenuBar />
|
|
||||||
|
|
||||||
<!--File page-->
|
|
||||||
<keep-alive :include="['Admin', 'Users']">
|
|
||||||
<router-view :class="{'is-scaled-down': isScaledDown}" />
|
|
||||||
</keep-alive>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MobileSortingAndPreview from '@/components/FilesView/MobileSortingAndPreview'
|
import MultiSelectToolbarMobile from '@/components/FilesView/MultiSelectToolbarMobile'
|
||||||
import MobileMultiSelectMenu from '@/components/FilesView/MobileMultiSelectMenu'
|
import FileSortingMobile from '@/components/FilesView/FileSortingMobile'
|
||||||
import ProcessingPopup from '@/components/FilesView/ProcessingPopup'
|
import SidebarNavigation from '@/components/Sidebar/SidebarNavigation'
|
||||||
import FileFullPreview from '@/components/FilesView/FileFullPreview'
|
import CreateFolderPopup from '@/components/Others/CreateFolderPopup'
|
||||||
import MobileNavigation from '@/components/Others/MobileNavigation'
|
import ProcessingPopup from '@/components/FilesView/ProcessingPopup'
|
||||||
import CreateFolder from '@/components/Others/CreateFolder'
|
import MobileNavigation from '@/components/Others/MobileNavigation'
|
||||||
import MobileMenu from '@/components/FilesView/MobileMenu'
|
import ShareCreatePopup from '@/components/Others/ShareCreatePopup'
|
||||||
import ShareCreate from '@/components/Others/ShareCreate'
|
import FileMenuMobile from '@/components/FilesView/FileMenuMobile'
|
||||||
import Confirm from '@/components/Others/Popup/Confirm'
|
import ConfirmPopup from '@/components/Others/Popup/ConfirmPopup'
|
||||||
import RenameItem from '@/components/Others/RenameItem'
|
import RenameItemPopup from '@/components/Others/RenameItemPopup'
|
||||||
import ShareEdit from '@/components/Others/ShareEdit'
|
import ShareEditPopup from '@/components/Others/ShareEditPopup'
|
||||||
import MoveItem from '@/components/Others/MoveItem'
|
import MoveItemPopup from '@/components/Others/MoveItemPopup'
|
||||||
import DragUI from '@/components/FilesView/DragUI'
|
import FilePreview from '@/components/FilesView/FilePreview'
|
||||||
import MenuBar from '@/components/Sidebar/MenuBar'
|
import DragUI from '@/components/FilesView/DragUI'
|
||||||
import {includes} from 'lodash'
|
import {mapGetters} from 'vuex'
|
||||||
import {mapGetters} from 'vuex'
|
import {events} from '@/bus'
|
||||||
import {events} from '@/bus'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Platform',
|
name: 'Platform',
|
||||||
components: {
|
components: {
|
||||||
MobileSortingAndPreview,
|
MultiSelectToolbarMobile,
|
||||||
MobileMultiSelectMenu,
|
CreateFolderPopup,
|
||||||
MobileNavigation,
|
FileSortingMobile,
|
||||||
FileFullPreview,
|
SidebarNavigation,
|
||||||
ProcessingPopup,
|
MobileNavigation,
|
||||||
CreateFolder,
|
ShareCreatePopup,
|
||||||
ShareCreate,
|
ProcessingPopup,
|
||||||
MobileMenu,
|
RenameItemPopup,
|
||||||
RenameItem,
|
ShareEditPopup,
|
||||||
ShareEdit,
|
FileMenuMobile,
|
||||||
MoveItem,
|
MoveItemPopup,
|
||||||
Confirm,
|
ConfirmPopup,
|
||||||
MenuBar,
|
FilePreview,
|
||||||
DragUI,
|
DragUI,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'config'
|
'config'
|
||||||
]),
|
]),
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isScaledDown: false
|
isScaledDown: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
events.$on('mobile-navigation:show', () => this.isScaledDown = true)
|
||||||
|
events.$on('mobile-menu:show', () => this.isScaledDown = true)
|
||||||
|
|
||||||
|
events.$on('mobile-navigation:hide', () => this.isScaledDown = false)
|
||||||
|
events.$on('fileItem:deselect', () => this.isScaledDown = false)
|
||||||
|
events.$on('mobile-menu:hide', () => this.isScaledDown = false)
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
events.$on('show:mobile-navigation', () => this.isScaledDown = true)
|
|
||||||
events.$on('hide:mobile-navigation', () => this.isScaledDown = false)
|
|
||||||
events.$on('mobileMenu:show', () => this.isScaledDown = true)
|
|
||||||
events.$on('fileItem:deselect', () => this.isScaledDown = false)
|
|
||||||
events.$on('mobileSortingAndPreview', state => this.isScaledDown = state)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '@assets/vuefilemanager/_variables';
|
@import '@assets/vuefilemanager/_mixins';
|
||||||
@import '@assets/vuefilemanager/_mixins';
|
|
||||||
|
|
||||||
@media only screen and (max-width: 690px) {
|
@media only screen and (max-width: 690px) {
|
||||||
|
|
||||||
.is-scaled-down {
|
.is-scaled-down {
|
||||||
@include transform(scale(0.95));
|
@include transform(scale(0.95));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,108 +1,114 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="application-wrapper">
|
<div id="application-wrapper">
|
||||||
|
|
||||||
<!--Full File Preview-->
|
|
||||||
<FileFullPreview />
|
|
||||||
|
|
||||||
<!--Loading Spinner-->
|
<!--Loading Spinner-->
|
||||||
<Spinner v-if="isLoading" />
|
<Spinner v-if="isLoading" />
|
||||||
|
|
||||||
<!--Move item popup-->
|
<!--File preview window-->
|
||||||
<MoveItem />
|
<FilePreview />
|
||||||
|
|
||||||
<!-- Processing popup for zip -->
|
<!--Popups-->
|
||||||
<ProcessingPopup />
|
<ProcessingPopup />
|
||||||
|
|
||||||
<!-- Mobile Menu for Multi selected items -->
|
<CreateFolderPopup />
|
||||||
<MobileMultiSelectMenu />
|
<RenameItemPopup />
|
||||||
|
|
||||||
<!--Rename folder/file item-->
|
<MoveItemPopup />
|
||||||
<RenameItem />
|
|
||||||
|
|
||||||
<!--Create folder mobile UI-->
|
<!-- Mobile components -->
|
||||||
<CreateFolder />
|
<FileSortingMobile />
|
||||||
|
<FileMenuMobile />
|
||||||
|
|
||||||
<!--Drag UI-->
|
<MultiSelectToolbarMobile />
|
||||||
|
|
||||||
|
<!--Others-->
|
||||||
|
<Vignette />
|
||||||
<DragUI />
|
<DragUI />
|
||||||
|
|
||||||
<!--Mobile Menu-->
|
|
||||||
<MobileMenu />
|
|
||||||
|
|
||||||
<!--Mobile menu for selecting view and sorting-->
|
|
||||||
<MobileSortingAndPreview />
|
|
||||||
|
|
||||||
<!--System alerts-->
|
|
||||||
<Alert />
|
<Alert />
|
||||||
|
|
||||||
<!--Background vignette-->
|
<router-view :class="{'is-scaled-down': isScaledDown}" />
|
||||||
<Vignette />
|
|
||||||
|
|
||||||
<!--Pages-->
|
|
||||||
<router-view />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import MobileSortingAndPreview from '@/components/FilesView/MobileSortingAndPreview'
|
import MultiSelectToolbarMobile from '@/components/FilesView/MultiSelectToolbarMobile'
|
||||||
import MobileMultiSelectMenu from '@/components/FilesView/MobileMultiSelectMenu'
|
import FileSortingMobile from '@/components/FilesView/FileSortingMobile'
|
||||||
import ProcessingPopup from '@/components/FilesView/ProcessingPopup'
|
import CreateFolderPopup from '@/components/Others/CreateFolderPopup'
|
||||||
import FileFullPreview from '@/components/FilesView/FileFullPreview'
|
import ProcessingPopup from '@/components/FilesView/ProcessingPopup'
|
||||||
import CreateFolder from '@/components/Others/CreateFolder'
|
import FileMenuMobile from '@/components/FilesView/FileMenuMobile'
|
||||||
import MobileMenu from '@/components/FilesView/MobileMenu'
|
import RenameItemPopup from '@/components/Others/RenameItemPopup'
|
||||||
import RenameItem from '@/components/Others/RenameItem'
|
import MoveItemPopup from '@/components/Others/MoveItemPopup'
|
||||||
import Spinner from '@/components/FilesView/Spinner'
|
import FilePreview from '@/components/FilesView/FilePreview'
|
||||||
import MoveItem from '@/components/Others/MoveItem'
|
import Spinner from '@/components/FilesView/Spinner'
|
||||||
import Vignette from '@/components/Others/Vignette'
|
import Vignette from '@/components/Others/Vignette'
|
||||||
import DragUI from '@/components/FilesView/DragUI'
|
import DragUI from '@/components/FilesView/DragUI'
|
||||||
import Alert from '@/components/FilesView/Alert'
|
import Alert from '@/components/FilesView/Alert'
|
||||||
import {mapGetters} from 'vuex'
|
import {events} from '@/bus'
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Platform',
|
name: 'Platform',
|
||||||
components: {
|
components: {
|
||||||
MobileSortingAndPreview,
|
MultiSelectToolbarMobile,
|
||||||
MobileMultiSelectMenu,
|
CreateFolderPopup,
|
||||||
FileFullPreview,
|
FileSortingMobile,
|
||||||
ProcessingPopup,
|
ProcessingPopup,
|
||||||
CreateFolder,
|
RenameItemPopup,
|
||||||
MobileMenu,
|
FileMenuMobile,
|
||||||
RenameItem,
|
MoveItemPopup,
|
||||||
MoveItem,
|
FilePreview,
|
||||||
Vignette,
|
Vignette,
|
||||||
Spinner,
|
Spinner,
|
||||||
DragUI,
|
DragUI,
|
||||||
Alert,
|
Alert,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
'config'
|
'config'
|
||||||
]),
|
]),
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
|
isScaledDown: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
events.$on('mobile-navigation:show', () => this.isScaledDown = true)
|
||||||
|
events.$on('mobile-navigation:hide', () => this.isScaledDown = false)
|
||||||
|
events.$on('mobile-menu:show', () => this.isScaledDown = true)
|
||||||
|
events.$on('fileItem:deselect', () => this.isScaledDown = false)
|
||||||
|
|
||||||
|
this.$store.dispatch('getShareDetail', this.$route.params.token)
|
||||||
|
.then(response => {
|
||||||
|
this.isLoading = false
|
||||||
|
|
||||||
|
// Show public file browser
|
||||||
|
if (response.data.data.attributes.type === 'folder' && !response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedFileBrowser') {
|
||||||
|
this.$router.push({name: 'SharedFileBrowser'})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show public single file
|
||||||
|
if (response.data.data.attributes.type !== 'folder' && !response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedSingleFile') {
|
||||||
|
this.$router.push({name: 'SharedSingleFile'})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show authentication page
|
||||||
|
if (response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedAuthentication') {
|
||||||
|
this.$router.push({name: 'SharedAuthentication'})
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.$store.dispatch('getShareDetail', this.$route.params.token)
|
|
||||||
.then(response => {
|
|
||||||
this.isLoading = false
|
|
||||||
|
|
||||||
// Show public file browser
|
|
||||||
if (response.data.data.attributes.type === 'folder' && !response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedFileBrowser') {
|
|
||||||
this.$router.push({name: 'SharedFileBrowser'})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show public single file
|
|
||||||
if (response.data.data.attributes.type !== 'folder' && !response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedSingleFile') {
|
|
||||||
this.$router.push({name: 'SharedSingleFile'})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show authentication page
|
|
||||||
if (response.data.data.attributes.is_protected && this.$router.currentRoute.name !== 'SharedAuthentication') {
|
|
||||||
this.$router.push({name: 'SharedAuthentication'})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
@import '@assets/vuefilemanager/_mixins';
|
||||||
|
|
||||||
|
@media only screen and (max-width: 690px) {
|
||||||
|
|
||||||
|
.is-scaled-down {
|
||||||
|
@include transform(scale(0.95));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
{{-- Emoji Picker --}}
|
{{-- Emoji Picker --}}
|
||||||
.active-menu.focus-border-theme {border-color: {{ $color }} !important;}
|
.active-menu.focus-border-theme {border-color: {{ $color }} !important;}
|
||||||
|
|
||||||
{{-- Menubar --}}
|
{{-- Sidebar Navigation --}}
|
||||||
.router-link-active.home .button-icon {background: {{ $color }}10}
|
.router-link-active.home .button-icon {background: {{ $color }}10}
|
||||||
|
|
||||||
{{-- Content Panel --}}
|
{{-- Content Panel --}}
|
||||||
|
|||||||
Vendored
+2
-2
@@ -33,12 +33,12 @@ mix.js('resources/js/main.js', 'public/js')
|
|||||||
clientLogLevel: 'none'
|
clientLogLevel: 'none'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
/*.options({
|
.options({
|
||||||
hmrOptions: {
|
hmrOptions: {
|
||||||
host: '192.168.1.198',
|
host: '192.168.1.198',
|
||||||
port: '8080'
|
port: '8080'
|
||||||
},
|
},
|
||||||
})*/
|
})
|
||||||
.disableNotifications();
|
.disableNotifications();
|
||||||
|
|
||||||
if (mix.inProduction()) {
|
if (mix.inProduction()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user