Merge remote-tracking branch 'origin/spotlight'

# Conflicts:
#	public/mix-manifest.json
This commit is contained in:
Peter Papp
2021-08-11 09:18:47 +02:00
207 changed files with 2272 additions and 1879 deletions

View File

@@ -727,6 +727,7 @@ return [
'dark_mode_toggle' => 'Toggle Dark Mode', 'dark_mode_toggle' => 'Toggle Dark Mode',
'actions.convert_into_team_folder' => 'Convert into Team Folder', 'actions.convert_into_team_folder' => 'Convert into Team Folder',
'actions.create' => 'Create Something', 'actions.create' => 'Create Something',
'actions.search' => 'Search',
'mobile.create' => 'Create', 'mobile.create' => 'Create',
], ],
]; ];

View File

@@ -1,77 +1,126 @@
{ {
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js?id=64f717578505436ae488", "/js/main.js": "/js/main.js",
"/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=32d8cee473f6642940d6", "/css/app.css": "/css/app.css",
"/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=7beceb53c74df81af720", "/chunks/admin.js": "/chunks/admin.js?id=a33d31a0a91bc6d3004f",
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=7023d3c8f54b1f6d1b0a", "/chunks/admin-account.js": "/chunks/admin-account.js?id=56cc77f883fefc50bf1f",
"/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js?id=c24eaaa524ad495e68c4", "/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=91adf6625e49f0b93731",
"/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=a477c9e1bc09d796f451", "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee",
"/chunks/not-found.js": "/chunks/not-found.js?id=3ee1d87443ce098fd254", "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=f580c1668c202a4542d2",
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=dea1f07a6a8c697598df", "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=2d893fdcf54f0c3577ff",
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=bc26c252f2ba5f4d6360", "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js?id=6632ba96ef28b8ec0c98",
"/js/main.js": "/js/main.js?id=0f3fba09a04eadc2ee69", "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=6ecc8cc8a2134eb223b5",
"/css/app.css": "/css/app.css?id=fa3cd373a49197af626e", "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=e976808d1195ec63d3c4",
"/chunks/admin.js": "/chunks/admin.js?id=326ed30780c89d3b8b7f", "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=673ff118200894d37cd5",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=259a4006b19767a6bce6", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=845c52bd8814c35b0c5d",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=389afb114060d2a5849d", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=055d17c4463d3ef30218",
"/chunks/app-billings.js": "/chunks/app-billings.js?id=12990548dcf8451cfeaa", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=fd6936cca8f3b8b4de9a",
"/chunks/app-email.js": "/chunks/app-email.js?id=c1a205939e07bbd7216b", "/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=23e7404558f1fca267cc",
"/chunks/app-index.js": "/chunks/app-index.js?id=624041f9d9c45b0a50b9", "/chunks/app-billings.js": "/chunks/app-billings.js?id=ec23ca301dc808c68057",
"/chunks/app-language.js": "/chunks/app-language.js?id=5e047f0bc12258390280", "/chunks/app-email.js": "/chunks/app-email.js?id=988dd8fdd6310d6aca21",
"/chunks/app-others.js": "/chunks/app-others.js?id=51189092e1de9f182079", "/chunks/app-index.js": "/chunks/app-index.js?id=88ca1730dace87ed219c",
"/chunks/app-payments.js": "/chunks/app-payments.js?id=a44eacf5eed3da88b73c", "/chunks/app-language.js": "/chunks/app-language.js?id=10870457855898e3bc5f",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=ed6f7c2d7fd163a7bff6", "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js?id=202a18d809f2b528c866",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=e5b5c82f9b873c34d968", "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/p~98b23ba6.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/p~98b23ba6.js?id=9f9ebe286a608c25d8ab",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=be11054d2fa2453a6a2b", "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~0d12a0aa.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~0d12a0aa.js?id=94a3e04716b70d182885",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=7cf61cfdf42d7e6ee0cf", "/chunks/app-others.js": "/chunks/app-others.js?id=a6fa4f59739a0b71ead0",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=8503ce4b037e5d54f90c", "/chunks/app-payments.js": "/chunks/app-payments.js?id=376d60ec3c9e1d0279b7",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=106343a3bb5e83e6650d", "/chunks/app-settings.js": "/chunks/app-settings.js?id=10130ece72610f242434",
"/chunks/database.js": "/chunks/database.js?id=cf64de45d0949f66a5dc", "/chunks/app-setup.js": "/chunks/app-setup.js?id=9728ba68872751c06524",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=d9c0356096574b5ca1ae", "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=8f1f64cd67e8c46c65d1",
"/chunks/email-verified.js": "/chunks/email-verified.js?id=983d21a098888f92441d", "/chunks/contact-us.js": "/chunks/contact-us.js?id=122a566a9d1a4381d5d6",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=6e02382ca9ac04846e55", "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=a964545445eef7615f9f",
"/chunks/files.js": "/chunks/files.js?id=ad250c38ecbb6a909933", "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2338d4d370e7c259be4a",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=04b155f73bede72e6f32", "/chunks/dashboard.js": "/chunks/dashboard.js?id=c5f1d6723d7a412a1b2a",
"/chunks/homepage.js": "/chunks/homepage.js?id=72facdc89bcaf0013f03", "/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=6fdeb3af6356206511e5",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=6705c0805b320726d38a", "/chunks/database.js": "/chunks/database.js?id=61a257c132bda8564957",
"/chunks/invoices.js": "/chunks/invoices.js?id=55e2aae2da3ba318587e", "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=1e02112873d0b86eb1ac",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=845e83791f9cf00052ec", "/chunks/email-verified.js": "/chunks/email-verified.js?id=dc4aa33310fc98be6749",
"/chunks/pages.js": "/chunks/pages.js?id=e3fb14b25826c7705f0b", "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=bd4e92ffbabf80186757",
"/chunks/plan.js": "/chunks/plan.js?id=d646b52a67d79c463461", "/chunks/files.js": "/chunks/files.js?id=b7e2ed7375508a61be92",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=9b745bb6ef6e98d34ce2", "/chunks/files~chunks/platform~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared/file-browser.js?id=db2a624579a640445f78",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=16e01a55698cd592708a", "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=7242f90e77f7484eb6d8",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=4b54cef1e83731c7d73e", "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=88923b168d8fbb48f8cb",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=fb8f635d841ea5483462", "/chunks/files~chunks/settings-subscription~chunks/shared/file-browser~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared/file-browser~chunks/user-subscription.js?id=c5ec9502bcfad35c502e",
"/chunks/plans.js": "/chunks/plans.js?id=a96d6d72b18371612ba9", "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=b73f850827d5bc1c37fa",
"/chunks/platform.js": "/chunks/platform.js?id=cf2eb6a7c1ab1273afa7", "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js?id=405a76566fbfd86d809b",
"/chunks/profile.js": "/chunks/profile.js?id=b54eea886b53467df4ad", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=61fb98fd41324af9cfea",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=96ed28ebdec329e59159", "/chunks/homepage.js": "/chunks/homepage.js?id=6f2aac612b4c6eaabf61",
"/chunks/settings.js": "/chunks/settings.js?id=7e46cad15d6cbe5ab400", "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=423f09d1096003656a6a",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=1c6aa5fcbb6ac1b7e7d8", "/chunks/invoices.js": "/chunks/invoices.js?id=f0360ddfb0f1e1a9058b",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=f2da18a711d7a7fef743", "/chunks/not-found.js": "/chunks/not-found.js?id=8e5c99340188c2a7b215",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=1ebb69362381a21b1b94", "/chunks/page-edit.js": "/chunks/page-edit.js?id=46e715cd3ef98a5bad69",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=997af6eb9ae27ba03bbb", "/chunks/pages.js": "/chunks/pages.js?id=bfd9a2e2c52e60ed025e",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=bec527d403bee780ec9a", "/chunks/plan.js": "/chunks/plan.js?id=464cf3c8bc0652d81260",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=1423cf38a52ce49c62ce", "/chunks/plan-create.js": "/chunks/plan-create.js?id=748f541e9afbdf9fecee",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=cf5250a97c1faeff5c66", "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=8b33958ad548ee120a1e",
"/chunks/shared.js": "/chunks/shared.js?id=a8b0481a39b07291e9e4", "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=0a58ac27794dcf7311d7",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=5e02e5861f87b4488fbf", "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=3eced87160eb30141bd1",
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=72b0747c31534d3235e3", "/chunks/plans.js": "/chunks/plans.js?id=5a3c28288952fcad96e5",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=bcf6cb6e0660dc491e57", "/chunks/platform.js": "/chunks/platform.js?id=5faa49d34eee3fabf09f",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=fb4adfc295bb60afb7d7", "/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=b47bdf397d1ae11f0019",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=91c5c22c73fac333a97f", "/chunks/profile.js": "/chunks/profile.js?id=05472829fff8f71027c4",
"/chunks/status-check.js": "/chunks/status-check.js?id=8fa7bc32b62bf17d1d67", "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=ddb7be518c092ed392ca",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=ac023f5bc67b84306b4b", "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=4b176796d100a2b24d71",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=792d3f01dd8ff366e154", "/chunks/settings.js": "/chunks/settings.js?id=f2af9119c66ca1d62040",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=8f1ac6bd453456de8026", "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=87ab46f8d15c37921b18",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=7661cc55083126d2c45b", "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=bdc59f72378026423747",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=502ae0bc63e225f124e7", "/chunks/settings-password.js": "/chunks/settings-password.js?id=adaa9eee5b9213ccab33",
"/chunks/user.js": "/chunks/user.js?id=1e3f468498cbe50ca639", "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=dec8ebea4e54c8cdb373",
"/chunks/user-create.js": "/chunks/user-create.js?id=fe5edd454d34ac399299", "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=31581f755a45c24a8184",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=6376a836a95c10a55dac", "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=51b246c660e78c9263b5",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=55b521a549db37881933", "/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=680f99e2021f19ff1af8",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=945eb13ff23590c859a4", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=8a499266af9527039582",
"/chunks/user-password.js": "/chunks/user-password.js?id=e54ad2c95acfa33fe8e6", "/chunks/shared.js": "/chunks/shared.js?id=5cd19a2f00303f1937e7",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=f7b40636bbafd5ecc1e5", "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=30b0b0d1930a1952648a",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=76ebee37168ab5d33859", "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=cf5842c6856902e2aaf8",
"/chunks/users.js": "/chunks/users.js?id=b266b40624047d178dd1" "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=b733dc84cd8e05a8f6f3",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=d5eed76acdad4d2c0b9b",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=f092210474e42bfd4525",
"/chunks/status-check.js": "/chunks/status-check.js?id=6c3ee0e065503d38d666",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=3c4ba7a6ef3f306c4889",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=862f07c718d96decd67e",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=721e855dff920e5e6996",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=65c2ff19a6f06f4689f7",
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=e365ae16373be9dbd458",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=3320a77be717dba5e9e1",
"/chunks/user.js": "/chunks/user.js?id=3bc9f72a474f639b72a6",
"/chunks/user-create.js": "/chunks/user-create.js?id=cafcd17c942541acb0f3",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=fdfc78f04690b118c2cf",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=04e17412bd32bb66ed69",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=2546c88d5f0d3de87b5e",
"/chunks/user-password.js": "/chunks/user-password.js?id=b5ad9850f815a7e9f133",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=fefc8c9c4f7b53963402",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=05df25220335d40c6173",
"/chunks/users.js": "/chunks/users.js?id=a81a3279b008ec766290",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js?id=0de519ac9b2c2754e0c2",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js?id=ca3b57f70682c1c315f7",
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=9d10953d3b088324dfe3",
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=7d09e0b0658e140a7ffa",
"/chunks/platform.2876dd0b16f06f9eb245.hot-update.js": "/chunks/platform.2876dd0b16f06f9eb245.hot-update.js",
"/chunks/platform.3db1089240b445e2b2eb.hot-update.js": "/chunks/platform.3db1089240b445e2b2eb.hot-update.js",
"/chunks/platform.322f2878d92b428f906c.hot-update.js": "/chunks/platform.322f2878d92b428f906c.hot-update.js",
"/chunks/platform.072214a197bbc34fecef.hot-update.js": "/chunks/platform.072214a197bbc34fecef.hot-update.js",
"/chunks/platform.432a2467039af68343c1.hot-update.js": "/chunks/platform.432a2467039af68343c1.hot-update.js",
"/chunks/platform.7c3acd6fc0076338a9c2.hot-update.js": "/chunks/platform.7c3acd6fc0076338a9c2.hot-update.js",
"/chunks/platform.3f4884d1104ff61bce92.hot-update.js": "/chunks/platform.3f4884d1104ff61bce92.hot-update.js",
"/chunks/files~chunks/platform~chunks/shared/file-browser.38377906eda346908b23.hot-update.js": "/chunks/files~chunks/platform~chunks/shared/file-browser.38377906eda346908b23.hot-update.js",
"/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.38377906eda346908b23.hot-update.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.38377906eda346908b23.hot-update.js",
"/chunks/platform~chunks/shared.38377906eda346908b23.hot-update.js": "/chunks/platform~chunks/shared.38377906eda346908b23.hot-update.js",
"/chunks/platform.adabd0bb25da76a70280.hot-update.js": "/chunks/platform.adabd0bb25da76a70280.hot-update.js",
"/chunks/platform.1e5b817d775fd62d35a5.hot-update.js": "/chunks/platform.1e5b817d775fd62d35a5.hot-update.js",
"/chunks/platform.7c8d6221343c9c592877.hot-update.js": "/chunks/platform.7c8d6221343c9c592877.hot-update.js",
"/chunks/platform.ae7dd0e062282c15636f.hot-update.js": "/chunks/platform.ae7dd0e062282c15636f.hot-update.js",
"/chunks/platform.6a20e43857200d19c8bf.hot-update.js": "/chunks/platform.6a20e43857200d19c8bf.hot-update.js",
"/chunks/platform.f9b7a014f86350df5d02.hot-update.js": "/chunks/platform.f9b7a014f86350df5d02.hot-update.js",
"/chunks/platform.21cd38e96cfe72ff0019.hot-update.js": "/chunks/platform.21cd38e96cfe72ff0019.hot-update.js",
"/chunks/platform.d714be181a9ac16984d8.hot-update.js": "/chunks/platform.d714be181a9ac16984d8.hot-update.js",
"/chunks/platform.fdb1658815fcde74cc86.hot-update.js": "/chunks/platform.fdb1658815fcde74cc86.hot-update.js",
"/chunks/platform.74022de667f7aff7c5e9.hot-update.js": "/chunks/platform.74022de667f7aff7c5e9.hot-update.js",
"/chunks/platform.ae612ea31b48c49a12ac.hot-update.js": "/chunks/platform.ae612ea31b48c49a12ac.hot-update.js",
"/chunks/platform.fa336d466cfc2e7283d2.hot-update.js": "/chunks/platform.fa336d466cfc2e7283d2.hot-update.js",
"/chunks/platform.d2cff765a4e3b7c26afb.hot-update.js": "/chunks/platform.d2cff765a4e3b7c26afb.hot-update.js",
"/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.184af13d3848a9e4e6c8.hot-update.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.184af13d3848a9e4e6c8.hot-update.js",
"/chunks/platform.184af13d3848a9e4e6c8.hot-update.js": "/chunks/platform.184af13d3848a9e4e6c8.hot-update.js",
"/chunks/platform~chunks/shared.184af13d3848a9e4e6c8.hot-update.js": "/chunks/platform~chunks/shared.184af13d3848a9e4e6c8.hot-update.js",
"/chunks/files~chunks/platform~chunks/shared/file-browser.ee7e9e07663fd2314a2e.hot-update.js": "/chunks/files~chunks/platform~chunks/shared/file-browser.ee7e9e07663fd2314a2e.hot-update.js"
} }

View File

@@ -3,7 +3,7 @@
<!--UI components--> <!--UI components-->
<Alert /> <Alert />
<ToastrWrapper /> <ToasterWrapper />
<CookieDisclaimer /> <CookieDisclaimer />
<!--Show spinner before translations is loaded--> <!--Show spinner before translations is loaded-->
@@ -17,11 +17,11 @@
</template> </template>
<script> <script>
import ToastrWrapper from '@/components/Others/Notifications/ToastrWrapper' import ToasterWrapper from '/resources/js/components/Others/Notifications/ToasterWrapper'
import CookieDisclaimer from '@/components/Others/CookieDisclaimer' import CookieDisclaimer from '/resources/js/components/Others/CookieDisclaimer'
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
import Vignette from '@/components/Others/Vignette' import Vignette from '/resources/js/components/Others/Vignette'
import Alert from '@/components/FilesView/Alert' import Alert from '/resources/js/components/FilesView/Alert'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from './bus' import {events} from './bus'
@@ -29,7 +29,7 @@ export default {
name: 'app', name: 'app',
components: { components: {
CookieDisclaimer, CookieDisclaimer,
ToastrWrapper, ToasterWrapper,
Vignette, Vignette,
Spinner, Spinner,
Alert Alert
@@ -115,8 +115,8 @@ export default {
<style lang="scss"> <style lang="scss">
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;600;700;800;900&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Nunito:wght@200;300;400;600;700;800;900&display=swap');
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
[v-cloak], [v-cloak],
[v-cloak] > * { [v-cloak] > * {

View File

@@ -44,11 +44,11 @@
</template> </template>
<script> <script>
import DatatableCellImage from '@/components/Others/Tables/DatatableCellImage' import DatatableCellImage from '/resources/js/components/Others/Tables/DatatableCellImage'
import DatatableWrapper from '@/components/Others/Tables/DatatableWrapper' import DatatableWrapper from '/resources/js/components/Others/Tables/DatatableWrapper'
import WidgetWrapper from '@/components/Admin/WidgetWrapper' import WidgetWrapper from '/resources/js/components/Admin/WidgetWrapper'
import {Trash2Icon, Edit2Icon} from "vue-feather-icons" import {Trash2Icon, Edit2Icon} from "vue-feather-icons"
import ColorLabel from '@/components/Others/ColorLabel' import ColorLabel from '/resources/js/components/Others/ColorLabel'
import axios from 'axios' import axios from 'axios'
export default { export default {
@@ -110,8 +110,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.dark-mode { .dark-mode {

View File

@@ -11,7 +11,7 @@
</template> </template>
<script> <script>
import WidgetWrapper from '@/components/Admin/WidgetWrapper' import WidgetWrapper from '/resources/js/components/Admin/WidgetWrapper'
import { UsersIcon, StarIcon, HardDriveIcon, ChevronRightIcon } from 'vue-feather-icons' import { UsersIcon, StarIcon, HardDriveIcon, ChevronRightIcon } from 'vue-feather-icons'
export default { export default {
@@ -28,8 +28,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.widget-value { .widget-value {
margin-top: 10px; margin-top: 10px;

View File

@@ -30,8 +30,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.widget-content { .widget-content {
@include widget-card; @include widget-card;

View File

@@ -28,8 +28,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.button { .button {
cursor: pointer; cursor: pointer;

View File

@@ -5,7 +5,7 @@
</template> </template>
<script> <script>
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'PopoverItem', name: 'PopoverItem',
@@ -33,8 +33,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.popover-item { .popover-item {
min-width: 250px; min-width: 250px;

View File

@@ -11,8 +11,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.toolbar-tools { .toolbar-tools {
text-align: right; text-align: right;

View File

@@ -14,9 +14,9 @@
</template> </template>
<script> <script>
import FilePreviewToolbar from '@/components/FilesView/FilePreviewToolbar' import FilePreviewToolbar from '/resources/js/components/FilePreview/FilePreviewToolbar'
import FilePreviewMedia from '@/components/FilesView/FilePreviewMedia' import FilePreviewMedia from '/resources/js/components/FilePreview/FilePreviewMedia'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FilePreview', name: 'FilePreview',
@@ -32,6 +32,7 @@
methods: { methods: {
closeFilePreview() { closeFilePreview() {
this.isFullPreview = false this.isFullPreview = false
this.$store.commit('FAST_PREVIEW_CLEAR')
}, },
next() { next() {
events.$emit('file-preview:next') events.$emit('file-preview:next')
@@ -46,18 +47,14 @@
} }
}, },
mounted() { mounted() {
events.$on('file-preview:show', () => { events.$on('file-preview:show', () => this.isFullPreview = true)
this.isFullPreview = true events.$on('file-preview:hide', () => this.closeFilePreview())
})
events.$on('file-preview:hide', () => {
this.isFullPreview = false
})
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
.file-preview { .file-preview {
width: 100%; width: 100%;

View File

@@ -0,0 +1,263 @@
<template>
<div v-if="currentFile" class="file-preview-wrapper">
<!--Arrow navigation-->
<div v-if="files.length > 1" class="navigation-arrows">
<div @click.prevent="prev" class="prev">
<chevron-left-icon size="17" />
</div>
<div @click.prevent="next" class="next">
<chevron-right-icon size="17" />
</div>
</div>
<!--File preview-->
<div class="file-wrapper-preview">
<!--Show PDF-->
<PdfFile v-if="isPDF" :file="currentFile"/>
<!--Show Audio, Video and Image-->
<div v-if="isAudio || isImage || isVideo" class="file-wrapper">
<Audio v-if="isAudio" :file="currentFile"/>
<Video v-if="isVideo" :file="currentFile"/>
<ImageFile v-if="isImage" :file="currentFile"/>
</div>
</div>
</div>
</template>
<script>
import {ChevronLeftIcon, ChevronRightIcon} from 'vue-feather-icons'
import ToolbarButton from '/resources/js/components/FilesView/ToolbarButton'
import ImageFile from '/resources/js/components/FilePreview/Media/ImageFile'
import PdfFile from '/resources/js/components/FilePreview/Media/PdfFile'
import Audio from '/resources/js/components/FilePreview/Media/Audio'
import Video from '/resources/js/components/FilePreview/Media/Video'
import Spinner from '/resources/js/components/FilesView/Spinner'
import {mapGetters} from 'vuex'
import {events} from '/resources/js/bus'
export default {
name: 'FilePreviewMedia',
components: {
ChevronRightIcon,
ChevronLeftIcon,
ToolbarButton,
ImageFile,
PdfFile,
Spinner,
Audio,
Video,
},
computed: {
...mapGetters([
'fastPreview',
'clipboard',
'entries',
]),
currentFile() {
return this.fastPreview
? this.fastPreview
: this.files[Math.abs(this.currentIndex) % this.files.length]
},
isPDF() {
return this.currentFile.mimetype === 'pdf'
},
isVideo() {
return this.currentFile.type === 'video'
},
isAudio() {
return this.currentFile.type === 'audio'
},
isImage() {
return this.currentFile.type === 'image'
}
},
data() {
return {
currentIndex: 0,
files: [],
}
},
watch: {
files() {
if (this.files.length === 0)
events.$emit('file-preview-wrapper:hide')
},
currentFile() {
if (this.clipboard[0]) {
this.$store.commit('CLIPBOARD_CLEAR')
this.$store.commit('ADD_ITEM_TO_CLIPBOARD', this.currentFile)
}
},
clipboard() {
if (!this.clipboard[0]) {
this.currentIndex -= 1
this.$store.commit('ADD_ITEM_TO_CLIPBOARD', this.currentFile)
this.files = []
}
},
data(newValue, oldValue) {
if (newValue !== oldValue) {
this.files = []
}
},
},
methods: {
getFilesForView() {
let requestedFile = this.clipboard[0]
this.entries.map(element => {
if (requestedFile.mimetype === 'pdf') {
if (element.mimetype === 'pdf')
this.files.push(element)
} else {
if (element.type === requestedFile.type)
this.files.push(element)
}
})
this.files.forEach((element, index) => {
if (element.id === this.clipboard[0].id) {
this.currentIndex = index
}
})
},
next() {
if (!this.files.length > 1) return
this.currentIndex += 1
if (this.currentIndex > this.files.length - 1) {
this.currentIndex = 0
}
},
prev() {
if (!this.files.length > 1) return
this.currentIndex -= 1
if (this.currentIndex < 0) {
this.currentIndex = this.files.length - 1
}
}
},
created() {
events.$on('file-preview:next', () => this.next())
events.$on('file-preview:prev', () => this.prev())
this.getFilesForView()
}
}
</script>
<style lang="scss">
@import '/resources/sass/vuefilemanager/_variables';
@import '/resources/sass/vuefilemanager/_mixins';
.navigation-arrows {
.prev, .next {
cursor: pointer;
position: absolute;
top: 45%;
display: flex;
justify-content: center;
color: $text;
border-radius: 50%;
text-decoration: none;
user-select: none;
filter: drop-shadow(0px 1px 0 rgba(255, 255, 255, 1));
padding: 10px;
z-index: 2;
}
.next {
right: 0;
}
.prev {
left: 0;
}
}
.file-preview-wrapper {
height: calc(100% - 72px);
top: 72px;
position: relative;
background-color: white;
}
.file-wrapper-preview {
width: 100%;
height: 100%;
padding: 30px 0px;
display: flex;
overflow: hidden;
justify-content: center;
align-items: center;
background-color: white;
.file-wrapper {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
.file-shadow {
box-shadow: 0 8px 40px rgba(17, 26, 52, 0.05);
}
.file {
max-width: 100%;
max-height: 100%;
align-self: center;
}
.audio {
border-radius: 28px;
}
img {
border-radius: 4px;
}
}
}
@media only screen and (max-width: 960px) {
.file-preview-wrapper {
top: 53px;
}
}
.dark-mode {
.navigation-arrows {
.prev, .next {
color: $light-text;
filter: drop-shadow(0px 1px 0 rgba(17, 19, 20, 1));
}
}
.file-wrapper-preview {
background-color: $dark_mode_background;
.file-wrapper {
.file-shadow {
box-shadow: 0 8px 40px rgba(0, 0, 0, 0.1);
}
}
}
}
</style>

View File

@@ -1,10 +1,10 @@
<template> <template>
<div class="navigation-panel" v-if="clipboard[0]"> <div class="navigation-panel" v-if="currentFile">
<div class="name-wrapper"> <div class="name-wrapper">
<x-icon @click="closeFullPreview" size="22" class="icon-close hover-text-theme" /> <x-icon @click="closeFullPreview" size="22" class="icon-close hover-text-theme" />
<div class="name-count-wrapper"> <div class="name-count-wrapper">
<p class="title">{{ clipboard[0].name }}</p> <p class="title">{{ currentFile.name }}</p>
<span class="file-count"> ({{ showingImageIndex + ' ' + $t('pronouns.of') + ' ' + files.length }}) </span> <span v-if="! fastPreview" class="file-count"> ({{ showingImageIndex + ' ' + $t('pronouns.of') + ' ' + files.length }}) </span>
</div> </div>
<PopoverWrapper> <PopoverWrapper>
<span @click.stop="showItemContextMenu" id="fast-preview-menu" class="fast-menu-icon group"> <span @click.stop="showItemContextMenu" id="fast-preview-menu" class="fast-menu-icon group">
@@ -12,10 +12,10 @@
</span> </span>
<PopoverItem name="file-preview-contextmenu" side="right"> <PopoverItem name="file-preview-contextmenu" side="right">
<OptionGroup class="menu-option-group"> <OptionGroup class="menu-option-group">
<Option @click.native="$renameFileOrFolder(clipboard[0])" :title="$t('context_menu.rename')" icon="rename" /> <Option @click.native="$renameFileOrFolder(currentFile)" :title="$t('context_menu.rename')" icon="rename" />
<Option @click.native="$moveFileOrFolder(clipboard[0])" :title="$t('context_menu.move')" icon="move-item" /> <Option @click.native="$moveFileOrFolder(currentFile)" :title="$t('context_menu.move')" icon="move-item" />
<Option @click.native="$shareFileOrFolder(clipboard[0])" :title="sharingTitle" icon="share" v-if="$checkPermission('master')" /> <Option @click.native="$shareFileOrFolder(currentFile)" :title="sharingTitle" icon="share" v-if="$checkPermission('master')" />
<Option @click.native="$deleteFileOrFolder(clipboard[0])" :title="$t('context_menu.delete')" icon="trash" class="menu-option" /> <Option @click.native="$deleteFileOrFolder(currentFile)" :title="$t('context_menu.delete')" icon="trash" class="menu-option" />
</OptionGroup> </OptionGroup>
<OptionGroup> <OptionGroup>
<Option @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" /> <Option @click.native="downloadItem" :title="$t('context_menu.download')" icon="download" />
@@ -25,7 +25,7 @@
</div> </div>
<div class="created-at-wrapper"> <div class="created-at-wrapper">
<p>{{ clipboard[0].filesize }}, {{ clipboard[0].created_at }}</p> <p>{{ currentFile.filesize }}, {{ currentFile.created_at }}</p>
</div> </div>
<div class="navigation-icons"> <div class="navigation-icons">
@@ -35,7 +35,7 @@
</div> </div>
<div class="navigation-tool-wrapper"> <div class="navigation-tool-wrapper">
<ToolbarButton @click.native="downloadItem" class="mobile-hide" source="download" :action="$t('actions.download')" /> <ToolbarButton @click.native="downloadItem" class="mobile-hide" source="download" :action="$t('actions.download')" />
<ToolbarButton v-if="canShareItem" @click.native="$shareFileOrFolder(clipboard[0])" class="mobile-hide" :class="{ 'is-inactive': !canShareItem }" source="share" :action="$t('actions.share')" /> <ToolbarButton v-if="canShareItem" @click.native="$shareFileOrFolder(currentFile)" class="mobile-hide" :class="{ 'is-inactive': !canShareItem }" source="share" :action="$t('actions.share')" />
<ToolbarButton v-if="isImage" @click.native="printMethod()" source="print" :action="$t('actions.print')" /> <ToolbarButton v-if="isImage" @click.native="printMethod()" source="print" :action="$t('actions.print')" />
</div> </div>
</div> </div>
@@ -43,56 +43,60 @@
</template> </template>
<script> <script>
import PopoverWrapper from '@/components/Desktop/PopoverWrapper' import PopoverWrapper from '/resources/js/components/Desktop/PopoverWrapper'
import PopoverItem from '@/components/Desktop/PopoverItem' import PopoverItem from '/resources/js/components/Desktop/PopoverItem'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import ToolbarButton from '@/components/FilesView/ToolbarButton' import ToolbarButton from '/resources/js/components/FilesView/ToolbarButton'
import {XIcon, MoreHorizontalIcon} from 'vue-feather-icons' import {XIcon, MoreHorizontalIcon} from 'vue-feather-icons'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FilePreviewToolbar', name: 'FilePreviewToolbar',
components: { components: {
MoreHorizontalIcon,
PopoverWrapper, PopoverWrapper,
ToolbarButton,
PopoverItem, PopoverItem,
OptionGroup, OptionGroup,
Option, Option,
MoreHorizontalIcon,
ToolbarButton,
XIcon, XIcon,
}, },
computed: { computed: {
...mapGetters([ ...mapGetters([
'fastPreview',
'clipboard', 'clipboard',
'entries' 'entries'
]), ]),
currentFile() {
return this.fastPreview ? this.fastPreview : this.clipboard[0]
},
sharingTitle() { sharingTitle() {
return this.clipboard[0].shared return this.currentFile.shared
? this.$t('context_menu.share_edit') ? this.$t('context_menu.share_edit')
: this.$t('context_menu.share') : this.$t('context_menu.share')
}, },
isImage() { isImage() {
return this.clipboard[0].type === 'image' return this.currentFile.type === 'image'
}, },
isPdf() { isPdf() {
return this.clipboard[0].mimetype === 'pdf' return this.currentFile.mimetype === 'pdf'
}, },
files() { files() {
let files = [] let files = []
this.entries.map(element => { this.entries.map(element => {
if (this.clipboard[0].mimetype === 'pdf') { if (this.currentFile.mimetype === 'pdf') {
if (element.mimetype === 'pdf') if (element.mimetype === 'pdf')
files.push(element) files.push(element)
} else { } else {
if (element.type === this.clipboard[0].type) if (element.type === this.currentFile.type)
files.push(element) files.push(element)
} }
}) })
@@ -103,7 +107,7 @@
let activeIndex = undefined let activeIndex = undefined
this.files.forEach((element, index) => { this.files.forEach((element, index) => {
if (element.id === this.clipboard[0].id) { if (element.id === this.currentFile.id) {
activeIndex = index + 1 activeIndex = index + 1
} }
}) })
@@ -140,8 +144,8 @@
}, },
downloadItem() { downloadItem() {
this.$downloadFile( this.$downloadFile(
this.clipboard[0].file_url, this.currentFile.file_url,
this.clipboard[0].name + '.' + this.clipboard[0].mimetype this.currentFile.name + '.' + this.currentFile.mimetype
) )
}, },
closeFullPreview() { closeFullPreview() {
@@ -152,8 +156,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.name-wrapper { .name-wrapper {
width: 33%; width: 33%;

View File

@@ -0,0 +1,17 @@
<template>
<audio
:class="{'file-shadow': ! $isMobile() }"
class="file audio"
:src="file.file_url"
controls>
</audio>
</template>
<script>
export default {
name: 'Audio',
props: [
'file'
],
}
</script>

View File

@@ -0,0 +1,17 @@
<template>
<img
id="printable-file"
class="file"
:class="{'file-shadow': ! $isMobile() }"
:src="file.file_url"
/>
</template>
<script>
export default {
name: 'ImageFile',
props: [
'file'
],
}
</script>

View File

@@ -0,0 +1,114 @@
<template>
<div id="pdf-wrapper" :style="{width: documentSize + '%'}">
<pdf :src="pdfData" v-for="i in numPages" :key="i" :resize="true" :page="i" scale="page-width" style="width:100%; margin:0 auto 35px;" id="printable-file" class="pdf-file">
<template slot="loading">
<h1>loading content...</h1>
</template>
</pdf>
</div>
</template>
<script>
import {events} from '/resources/js/bus'
import pdf from 'pdfvuer'
export default {
name: 'PdfFile',
components: {
pdf,
},
props: [
'file'
],
watch: {
file() {
this.getPdf()
}
},
data() {
return {
pdfData: undefined,
numPages: 0,
documentSize: 50,
}
},
methods: {
getPdf() {
this.pdfData = undefined
this.numPages = 0
let self = this;
self.pdfData = pdf.createLoadingTask(this.file.file_url);
self.pdfData.then(pdf => self.numPages = pdf.numPages);
},
getDocumentSize() {
if (window.innerWidth < 960) {
this.documentSize = 100
}
if (window.innerWidth > 960){
this.documentSize = localStorage.getItem('documentSize')
? parseInt(localStorage.getItem('documentSize'))
: 50;
}
},
zoomIn() {
if (this.documentSize < 100) {
this.documentSize += 10
localStorage.setItem('documentSize', this.documentSize)
}
},
zoomOut() {
if (this.documentSize > 40) {
this.documentSize -= 10
localStorage.setItem('documentSize', this.documentSize)
}
}
},
created() {
this.getDocumentSize()
this.getPdf()
events.$on('document-zoom:in', () => this.zoomIn())
events.$on('document-zoom:out', () => this.zoomOut())
}
}
</script>
<style src="pdfvuer/dist/pdfvuer.css" lang="css"></style>
<style lang="scss" scoped>
@import '/resources/sass/vuefilemanager/_variables';
#pdf-wrapper {
border-radius: 8px;
overflow-y: scroll;
margin: 0 auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
padding: 40px;
.pdf-file {
box-shadow: $light_mode_popup_shadow;
border-radius: 8px;
overflow: hidden;
}
}
@media only screen and (max-width: 960px) {
#pdf-wrapper {
border-radius: 0;
padding: 0;
.pdf-file {
box-shadow: none;
border-radius: 0;
}
}
}
</style>

View File

@@ -0,0 +1,60 @@
<template>
<div class="video-wrapper">
<video
:src="file.file_url"
class="video"
:class="{'file-shadow': !$isMobile() }"
controlsList="nodownload"
disablePictureInPicture
playsinline
controls
autoplay
/>
</div>
</template>
<script>
export default {
name: 'Video',
props: [
'file'
],
}
</script>
<style lang="scss" scoped>
@import '/resources/sass/vuefilemanager/_variables';
.video-wrapper {
max-width: 1080px;
max-height: 100%;
@media (min-width: 1200px) {
& {
max-width: 800px;
}
}
@media (min-width: 1920px) and (max-width: 2560px) {
& {
max-width: 1080px;
}
}
@media (min-width: 2560px) and (max-width: 3840px) {
& {
max-width: 1440px;
}
}
@media (min-width: 3840px) {
& {
max-width: 2160px;
}
}
.video {
max-width: 100%;
max-height: 100%;
align-self: center;
}
}
</style>

View File

@@ -23,8 +23,8 @@
</template> </template>
<script> <script>
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'AlertPopup', name: 'AlertPopup',
@@ -96,8 +96,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.popup { .popup {
position: absolute; position: absolute;

View File

@@ -22,8 +22,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.button-base { .button-base {
@include font-size(15); @include font-size(15);

View File

@@ -31,8 +31,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.button-base { .button-base {
@include font-size(15); @include font-size(15);

View File

@@ -15,7 +15,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
.select-box { .select-box {
min-width: 20px; min-width: 20px;

View File

@@ -157,10 +157,10 @@
</template> </template>
<script> <script>
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'ContextMenu', name: 'ContextMenu',
@@ -331,8 +331,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.no-options { .no-options {
/deep/ .text-label { /deep/ .text-label {

View File

@@ -10,13 +10,13 @@
</template> </template>
<script> <script>
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup' import MenuMobileGroup from '/resources/js/components/Mobile/MenuMobileGroup'
import OptionUpload from '@/components/FilesView/OptionUpload' import OptionUpload from '/resources/js/components/FilesView/OptionUpload'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import MenuMobile from '@/components/Mobile/MenuMobile' import MenuMobile from '/resources/js/components/Mobile/MenuMobile'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FileMenuMobile', name: 'FileMenuMobile',
@@ -27,6 +27,24 @@ export default {
MenuMobile, MenuMobile,
Option, Option,
}, },
computed: {
canUploadInView() {
return !this.$isThisLocation(['base', 'public'])
},
hasCapacity() {
// Check if storage limitation is set
if (!this.$store.getters.config.storageLimit) return true
// Check if user is loaded
if (!this.$store.getters.user) return true
// Check if user has storage
return this.$store.getters.user.data.attributes.storage.used <= 100
},
canCreateFolderInView() {
return !this.$isThisLocation(['base', 'public'])
},
},
methods: { methods: {
createFolder() { createFolder() {
events.$emit('popup:open', {name: 'create-folder'}) events.$emit('popup:open', {name: 'create-folder'})

View File

@@ -18,7 +18,7 @@
<!--Search bar--> <!--Search bar-->
<ToolbarGroup style="margin-left: 0"> <ToolbarGroup style="margin-left: 0">
<SearchBar v-model="query" @reset-query="query = ''" :placeholder="$t('inputs.placeholder_search_files')" /> <SearchBar />
</ToolbarGroup> </ToolbarGroup>
<!--Creating controls--> <!--Creating controls-->
@@ -64,20 +64,20 @@
</template> </template>
<script> <script>
import FileSortingOptions from '@/components/FilesView/FileSortingOptions' import FileSortingOptions from '/resources/js/components/FilesView/FileSortingOptions'
import {ChevronLeftIcon, MoreHorizontalIcon} from 'vue-feather-icons' import {ChevronLeftIcon, MoreHorizontalIcon} from 'vue-feather-icons'
import UploadProgress from '@/components/FilesView/UploadProgress' import UploadProgress from '/resources/js/components/FilesView/UploadProgress'
import PopoverWrapper from '@/components/Desktop/PopoverWrapper' import PopoverWrapper from '/resources/js/components/Desktop/PopoverWrapper'
import ToolbarWrapper from '@/components/Desktop/ToolbarWrapper' import ToolbarWrapper from '/resources/js/components/Desktop/ToolbarWrapper'
import ToolbarButton from '@/components/FilesView/ToolbarButton' import ToolbarButton from '/resources/js/components/FilesView/ToolbarButton'
import OptionUpload from '@/components/FilesView/OptionUpload' import OptionUpload from '/resources/js/components/FilesView/OptionUpload'
import ToolbarGroup from '@/components/Desktop/ToolbarGroup' import ToolbarGroup from '/resources/js/components/Desktop/ToolbarGroup'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import PopoverItem from '@/components/Desktop/PopoverItem' import PopoverItem from '/resources/js/components/Desktop/PopoverItem'
import SearchBar from '@/components/FilesView/SearchBar' import SearchBar from '/resources/js/components/FilesView/SearchBar'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import {last} from 'lodash' import {last} from 'lodash'
export default { export default {
@@ -169,16 +169,6 @@
return this.$isThisLocation(locations) && this.clipboard.length === 1 && this.clipboard[0].type === 'folder' return this.$isThisLocation(locations) && this.clipboard.length === 1 && this.clipboard[0].type === 'folder'
} }
}, },
data() {
return {
query: '',
}
},
watch: {
query(val) {
this.$searchFiles(val)
}
},
methods: { methods: {
showCreateMenu() { showCreateMenu() {
events.$emit('popover:open', 'desktop-create') events.$emit('popover:open', 'desktop-create')
@@ -239,8 +229,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.is-inactive { .is-inactive {
opacity: 0.25; opacity: 0.25;

View File

@@ -9,9 +9,9 @@
</template> </template>
<script> <script>
import TitlePreview from '@/components/FilesView/TitlePreview' import TitlePreview from '/resources/js/components/FilesView/TitlePreview'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { events } from '@/bus' import { events } from '/resources/js/bus'
export default { export default {
name: 'DragUI', name: 'DragUI',
@@ -80,8 +80,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
#drag-ui { #drag-ui {
max-width: 300px; max-width: 300px;

View File

@@ -33,8 +33,8 @@
</template> </template>
<script> <script>
import ButtonUpload from '@/components/FilesView/ButtonUpload' import ButtonUpload from '/resources/js/components/FilesView/ButtonUpload'
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
export default { export default {
@@ -54,15 +54,15 @@
'entries', 'entries',
]), ]),
isEmpty() { isEmpty() {
return this.entries && this.entries.length == 0 return this.entries && this.entries.length === 0
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.empty-page { .empty-page {
position: absolute; position: absolute;

View File

@@ -20,8 +20,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.empty-message { .empty-message {
text-align: center; text-align: center;

View File

@@ -3,15 +3,15 @@
<!--Base location--> <!--Base location-->
<div v-if="$isThisLocation(['base']) && $checkPermission(['master', 'editor']) && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation(['base']) && $checkPermission(['master', 'editor']) && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showLocations" icon="filter"> <MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="showLocations" icon="filter">
{{ filterLocationTitle }} {{ filterLocationTitle }}
</MobileActionButton> </MobileActionButton>
<MobileActionButton @click.native="createItems" icon="cloud-plus"> <MobileActionButton @click.native="createItems" icon="cloud-plus">
{{ $t('mobile.create') }} {{ $t('mobile.create') }}
</MobileActionButton> </MobileActionButton>
<!-- <MobileActionButtonUpload>
{{ $t('context_menu.upload') }}
</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>
@@ -22,6 +22,9 @@
<!--Base location editor--> <!--Base location editor-->
<div v-if="$isThisLocation('public') && $checkPermission('editor') && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation('public') && $checkPermission('editor') && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="createFolder" icon="folder-plus"> <MobileActionButton @click.native="createFolder" icon="folder-plus">
{{ $t('context_menu.add_folder') }} {{ $t('context_menu.add_folder') }}
</MobileActionButton> </MobileActionButton>
@@ -38,6 +41,9 @@
<!--Base location visitor--> <!--Base location visitor-->
<div v-if="$isThisLocation('public') && $checkPermission('visitor') && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation('public') && $checkPermission('visitor') && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="enableMultiSelectMode" icon="check-square"> <MobileActionButton @click.native="enableMultiSelectMode" icon="check-square">
{{ $t('context_menu.select') }} {{ $t('context_menu.select') }}
</MobileActionButton> </MobileActionButton>
@@ -48,6 +54,9 @@
<!--Recent uploads location--> <!--Recent uploads location-->
<div v-if="$isThisLocation('latest') && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation('latest') && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="showLocations" icon="filter"> <MobileActionButton @click.native="showLocations" icon="filter">
{{ filterLocationTitle }} {{ filterLocationTitle }}
</MobileActionButton> </MobileActionButton>
@@ -64,6 +73,9 @@
<!--Trash location---> <!--Trash location--->
<div v-if="$isThisLocation(['trash', 'trash-root']) && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation(['trash', 'trash-root']) && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="showLocations" icon="filter"> <MobileActionButton @click.native="showLocations" icon="filter">
{{ filterLocationTitle }} {{ filterLocationTitle }}
</MobileActionButton> </MobileActionButton>
@@ -80,6 +92,9 @@
<!--Shared location---> <!--Shared location--->
<div v-if="$isThisLocation(['shared']) && ! isSelectMode" class="mobile-actions"> <div v-if="$isThisLocation(['shared']) && ! isSelectMode" class="mobile-actions">
<MobileActionButton @click.native="showSpotlight" icon="search">
{{ $t('actions.search')}}
</MobileActionButton>
<MobileActionButton @click.native="showLocations" icon="filter"> <MobileActionButton @click.native="showLocations" icon="filter">
{{ filterLocationTitle }} {{ filterLocationTitle }}
</MobileActionButton> </MobileActionButton>
@@ -110,11 +125,11 @@
</template> </template>
<script> <script>
import MobileActionButtonUpload from '@/components/FilesView/MobileActionButtonUpload' import MobileActionButtonUpload from '/resources/js/components/FilesView/MobileActionButtonUpload'
import MobileActionButton from '@/components/FilesView/MobileActionButton' import MobileActionButton from '/resources/js/components/FilesView/MobileActionButton'
import UploadProgress from '@/components/FilesView/UploadProgress' import UploadProgress from '/resources/js/components/FilesView/UploadProgress'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import store from "../../store"; import store from "../../store";
export default { export default {
@@ -150,6 +165,9 @@
} }
}, },
methods: { methods: {
showSpotlight() {
events.$emit('spotlight:show')
},
showLocations() { showLocations() {
events.$emit('mobile-menu:show', 'file-filter') events.$emit('mobile-menu:show', 'file-filter')
}, },
@@ -183,8 +201,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.button-enter-active, .button-enter-active,
.button-leave-active { .button-leave-active {

View File

@@ -18,8 +18,6 @@
> >
<MobileToolbar /> <MobileToolbar />
<SearchBar v-model="query" @reset-query="query = ''" class="mobile-search" :placeholder="$t('inputs.placeholder_search_files')" />
<!--Mobile Actions--> <!--Mobile Actions-->
<FileActionsMobile /> <FileActionsMobile />
@@ -66,14 +64,7 @@
</div> </div>
<!--Show empty page if folder is empty--> <!--Show empty page if folder is empty-->
<EmptyFilePage v-if="! isSearching" /> <EmptyFilePage />
<!--Show empty page if no search results-->
<EmptyMessage
v-if="isSearching && isEmpty"
:message="$t('messages.nothing_was_found')"
icon="eye-slash"
/>
</div> </div>
<!--File Info Panel--> <!--File Info Panel-->
@@ -84,16 +75,15 @@
</template> </template>
<script> <script>
import FileActionsMobile from '@/components/FilesView/FileActionsMobile' import FileActionsMobile from '/resources/js/components/FilesView/FileActionsMobile'
import MobileToolbar from '@/components/FilesView/MobileToolbar' import MobileToolbar from '/resources/js/components/FilesView/MobileToolbar'
import EmptyFilePage from '@/components/FilesView/EmptyFilePage' import EmptyFilePage from '/resources/js/components/FilesView/EmptyFilePage'
import EmptyMessage from '@/components/FilesView/EmptyMessage' import EmptyMessage from '/resources/js/components/FilesView/EmptyMessage'
import FileItemList from '@/components/FilesView/FileItemList' import FileItemList from '/resources/js/components/FilesView/FileItemList'
import FileItemGrid from '@/components/FilesView/FileItemGrid' import FileItemGrid from '/resources/js/components/FilesView/FileItemGrid'
import InfoSidebar from '@/components/FilesView/InfoSidebar' import InfoSidebar from '/resources/js/components/FilesView/InfoSidebar'
import SearchBar from '@/components/FilesView/SearchBar'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import {debounce} from "lodash"; import {debounce} from "lodash";
export default { export default {
@@ -106,7 +96,6 @@
FileItemGrid, FileItemGrid,
EmptyMessage, EmptyMessage,
InfoSidebar, InfoSidebar,
SearchBar,
}, },
computed: { computed: {
...mapGetters([ ...mapGetters([
@@ -114,7 +103,6 @@
'isVisibleSidebar', 'isVisibleSidebar',
'FilePreviewType', 'FilePreviewType',
'currentFolder', 'currentFolder',
'isSearching',
'clipboard', 'clipboard',
'isLoading', 'isLoading',
'entries' 'entries'
@@ -126,7 +114,7 @@
return this.FilePreviewType === 'list' return this.FilePreviewType === 'list'
}, },
isEmpty() { isEmpty() {
return this.entries.length == 0 return this.entries.length === 0
}, },
draggedItems() { draggedItems() {
//Set opacity for dragged items //Set opacity for dragged items
@@ -258,8 +246,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.file-list { .file-list {
.dragged { .dragged {

View File

@@ -15,10 +15,10 @@
</template> </template>
<script> <script>
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup' import MenuMobileGroup from '/resources/js/components/Mobile/MenuMobileGroup'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import MenuMobile from '@/components/Mobile/MenuMobile' import MenuMobile from '/resources/js/components/Mobile/MenuMobile'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
export default { export default {

View File

@@ -2,7 +2,7 @@
<div class="file-wrapper" @mouseup.stop="clickedItem" @dblclick="goToItem" spellcheck="false"> <div class="file-wrapper" @mouseup.stop="clickedItem" @dblclick="goToItem" spellcheck="false">
<div :draggable="canDrag" @dragstart="$emit('dragstart')" @drop=" <div :draggable="canDrag" @dragstart="$emit('dragstart')" @drop="
drop() drop()
area = false" @dragleave="dragLeave" @dragover.prevent="dragEnter" class="file-item" :class="{'is-clicked' : isClicked , 'no-clicked' : !isClicked && this.$isMobile(), 'is-dragenter': area }"> area = false" @dragleave="dragLeave" @dragover.prevent="dragEnter" class="file-item" :class="{'is-clicked' : isClicked , 'no-clicked' : !isClicked && $isMobile(), 'is-dragenter': area }">
<!--Thumbnail for item--> <!--Thumbnail for item-->
<div class="icon-item"> <div class="icon-item">
@@ -62,11 +62,11 @@
<script> <script>
import {LinkIcon, UserPlusIcon, MoreHorizontalIcon} from 'vue-feather-icons' import {LinkIcon, UserPlusIcon, MoreHorizontalIcon} from 'vue-feather-icons'
import FolderIcon from '@/components/FilesView/FolderIcon' import FolderIcon from '/resources/js/components/FilesView/FolderIcon'
import CheckBox from '@/components/FilesView/CheckBox' import CheckBox from '/resources/js/components/FilesView/CheckBox'
import {debounce} from 'lodash' import {debounce} from 'lodash'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FileItemGrid', name: 'FileItemGrid',
@@ -302,8 +302,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.check-box { .check-box {
margin-right: 10px; margin-right: 10px;

View File

@@ -6,7 +6,7 @@
@drop="drop()" @drop="drop()"
@dragleave="dragLeave" @dragleave="dragLeave"
@dragover.prevent="dragEnter" @dragover.prevent="dragEnter"
class="file-item" :class="{'is-clicked' : isClicked , 'no-clicked' : !isClicked && this.$isMobile(), 'is-dragenter': area }" class="file-item" :class="{'is-clicked' : isClicked , 'no-clicked' : !isClicked && $isMobile(), 'is-dragenter': area }"
> >
<!-- MultiSelecting for the mobile version --> <!-- MultiSelecting for the mobile version -->
<transition name="slide-from-left"> <transition name="slide-from-left">
@@ -69,16 +69,17 @@
<script> <script>
import {LinkIcon, UserPlusIcon, MoreVerticalIcon} from 'vue-feather-icons' import {LinkIcon, UserPlusIcon, MoreVerticalIcon} from 'vue-feather-icons'
import FolderIcon from '@/components/FilesView/FolderIcon' import FolderIcon from '/resources/js/components/FilesView/FolderIcon'
import CheckBox from '@/components/FilesView/CheckBox' import CheckBox from '/resources/js/components/FilesView/CheckBox'
import {debounce} from 'lodash' import {debounce} from 'lodash'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FileItemList', name: 'FileItemList',
props: [ props: [
'item' 'item',
'disableHighlight'
], ],
components: { components: {
MoreVerticalIcon, MoreVerticalIcon,
@@ -94,7 +95,7 @@ export default {
'entries' 'entries'
]), ]),
isClicked() { isClicked() {
return this.clipboard.some(element => element.id === this.item.id) return !this.disableHighlight && this.clipboard.some(element => element.id === this.item.id)
}, },
isFolder() { isFolder() {
return this.item.type === 'folder' return this.item.type === 'folder'
@@ -305,8 +306,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.slide-from-left-move { .slide-from-left-move {

View File

@@ -72,13 +72,13 @@
</template> </template>
<script> <script>
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup' import MenuMobileGroup from '/resources/js/components/Mobile/MenuMobileGroup'
import MenuMobile from '@/components/Mobile/MenuMobile' import MenuMobile from '/resources/js/components/Mobile/MenuMobile'
import ThumbnailItem from '@/components/Others/ThumbnailItem' import ThumbnailItem from '/resources/js/components/Others/ThumbnailItem'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FileMenuMobile', name: 'FileMenuMobile',
@@ -140,8 +140,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.item-thumbnail { .item-thumbnail {
padding: 20px 20px 10px; padding: 20px 20px 10px;

View File

@@ -1,399 +0,0 @@
<template>
<div class="media-full-preview" id="mediaPreview" v-if="clipboard[0]">
<!--Arrow navigation-->
<div v-if="files.length > 1" class="navigation-arrows">
<div @click.prevent="prev" class="prev">
<chevron-left-icon size="17" />
</div>
<div @click.prevent="next" class="next">
<chevron-right-icon size="17" />
</div>
</div>
<!--File preview-->
<div class="file-wrapper-preview">
<!--Show PDF-->
<div v-if="isPDF" id="pdf-wrapper" :style="{width: documentSize + '%'}">
<pdf :src="pdfdata" v-for="i in numPages" :key="i" :resize="true" :page="i" scale="page-width" style="width:100%; margin:0 auto 35px;" id="printable-file" class="pdf-file">
<template slot="loading">
<h1>loading content...</h1>
</template>
</pdf>
</div>
<!--Show Audio, Video and Image-->
<div v-if="!isPDF" class="file-wrapper">
<audio
v-if="isAudio"
:class="{ 'file-shadow': !$isMobile() }"
class="file audio"
:src="currentFile.file_url"
controls>
</audio>
<img
id="printable-file"
v-if="isImage"
class="file"
:class="{'file-shadow': !$isMobile() }"
:src="currentFile.file_url"
/>
<div class="video-wrapper" v-if="isVideo">
<video
:src="currentFile.file_url"
class="video"
:class="{'file-shadow': !$isMobile() }"
controlsList="nodownload"
disablePictureInPicture
playsinline
controls
autoplay
/>
</div>
</div>
</div>
</div>
</template>
<script>
import {ChevronLeftIcon, ChevronRightIcon} from 'vue-feather-icons'
import ToolbarButton from '@/components/FilesView/ToolbarButton'
import Spinner from '@/components/FilesView/Spinner'
import {mapGetters} from 'vuex'
import {events} from '@/bus'
import pdf from 'pdfvuer'
export default {
name: 'FilePreviewMedia',
components: {
ChevronRightIcon,
ChevronLeftIcon,
ToolbarButton,
Spinner,
pdf,
},
computed: {
...mapGetters([
'clipboard',
'entries',
]),
currentFile() {
return this.files[Math.abs(this.currentIndex) % this.files.length]
},
isPDF() {
return this.clipboard[0].mimetype === 'pdf'
},
isVideo() {
return this.clipboard[0].type === 'video'
},
isAudio() {
return this.clipboard[0].type === 'audio'
},
isImage() {
return this.clipboard[0].type === 'image'
}
},
data() {
return {
pdfdata: undefined,
numPages: 0,
currentIndex: 0,
files: [],
documentSize: 50,
}
},
watch: {
files() {
if (this.files.length === 0)
events.$emit('file-preview:hide')
},
currentFile() {
if (this.clipboard[0]) {
this.$store.commit('CLIPBOARD_CLEAR')
this.$store.commit('ADD_ITEM_TO_CLIPBOARD', this.currentFile)
// Init pdf instance
if (this.clipboard[0].mimetype === 'pdf') {
this.getPdf()
}
}
},
clipboard() {
if (!this.clipboard[0]) {
this.currentIndex -= 1
this.$store.commit('ADD_ITEM_TO_CLIPBOARD', this.currentFile)
this.files = []
}
},
data(newValue, oldValue) {
if (newValue !== oldValue) {
this.files = []
}
},
},
methods: {
next() {
if (!this.files.length > 1) return
this.pdfdata = undefined
this.currentIndex += 1
if (this.currentIndex > this.files.length - 1) {
this.currentIndex = 0
}
},
prev() {
if (!this.files.length > 1) return
this.pdfdata = undefined
this.currentIndex -= 1
if (this.currentIndex < 0) {
this.currentIndex = this.files.length - 1
}
},
getPdf() {
this.pdfdata = undefined
this.numPages = 0
let self = this;
self.pdfdata = pdf.createLoadingTask(this.currentFile.file_url);
self.pdfdata.then(pdf => self.numPages = pdf.numPages);
},
getFilesForView() {
let requestedFile = this.clipboard[0]
this.entries.map(element => {
if (requestedFile.mimetype === 'pdf') {
if (element.mimetype === 'pdf')
this.files.push(element)
} else {
if (element.type === requestedFile.type)
this.files.push(element)
}
})
this.files.forEach((element, index) => {
if (element.id === this.clipboard[0].id) {
this.currentIndex = index
}
})
},
getDocumentSize() {
if (window.innerWidth < 960) {
this.documentSize = 100
}
if (window.innerWidth > 960){
this.documentSize = localStorage.getItem('documentSize')
? parseInt(localStorage.getItem('documentSize'))
: 50;
}
}
},
created() {
events.$on('file-preview:next', () => this.next())
events.$on('file-preview:prev', () => this.prev())
events.$on('document-zoom:in', () => {
if (this.documentSize < 100) {
this.documentSize += 10
localStorage.setItem('documentSize', this.documentSize)
}
})
events.$on('document-zoom:out', () => {
if (this.documentSize > 40) {
this.documentSize -= 10
localStorage.setItem('documentSize', this.documentSize)
}
})
this.getDocumentSize()
this.getFilesForView()
}
}
</script>
<style src="pdfvuer/dist/pdfvuer.css" lang="css"></style>
<style lang="scss">
@import '@assets/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins';
.navigation-arrows {
.prev, .next {
cursor: pointer;
position: absolute;
top: 45%;
display: flex;
justify-content: center;
color: $text;
border-radius: 50%;
text-decoration: none;
user-select: none;
filter: drop-shadow(0px 1px 0 rgba(255, 255, 255, 1));
padding: 10px;
z-index: 2;
}
.next {
right: 0;
}
.prev {
left: 0;
}
}
#pdf-wrapper {
border-radius: 8px;
overflow-y: scroll;
margin: 0 auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
padding: 40px;
.pdf-file {
box-shadow: $light_mode_popup_shadow;
border-radius: 8px;
overflow: hidden;
}
}
.media-full-preview {
height: calc(100% - 72px);
top: 72px;
position: relative;
background-color: white;
}
.file-wrapper-preview {
width: 100%;
height: 100%;
padding: 30px 0px;
display: flex;
overflow: hidden;
justify-content: center;
align-items: center;
background-color: white;
.file-wrapper {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
.file-shadow {
box-shadow: 0 8px 40px rgba(17, 26, 52, 0.05);
}
.file {
max-width: 100%;
max-height: 100%;
align-self: center;
}
.audio {
border-radius: 28px;
}
img {
border-radius: 4px;
}
.video-wrapper {
max-width: 1080px;
max-height: 100%;
@media (min-width: 1200px) {
& {
max-width: 800px;
}
}
@media (min-width: 1920px) and (max-width: 2560px) {
& {
max-width: 1080px;
}
}
@media (min-width: 2560px) and (max-width: 3840px) {
& {
max-width: 1440px;
}
}
@media (min-width: 3840px) {
& {
max-width: 2160px;
}
}
.video {
max-width: 100%;
max-height: 100%;
align-self: center;
}
}
}
}
@media only screen and (max-width: 960px) {
.media-full-preview {
top: 53px;
}
#pdf-wrapper {
border-radius: 0;
padding: 0;
.pdf-file {
box-shadow: none;
border-radius: 0;
}
}
}
.dark-mode {
.navigation-arrows {
.prev, .next {
color: $light-text;
filter: drop-shadow(0px 1px 0 rgba(17, 19, 20, 1));
}
}
.file-wrapper-preview {
background-color: $dark_mode_background;
.file-wrapper {
.file-shadow {
box-shadow: 0 8px 40px rgba(0, 0, 0, 0.1);
}
}
}
}
</style>

View File

@@ -7,9 +7,9 @@
</template> </template>
<script> <script>
import FileSortingOptions from '@/components/FilesView/FileSortingOptions' import FileSortingOptions from '/resources/js/components/FilesView/FileSortingOptions'
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup' import MenuMobileGroup from '/resources/js/components/Mobile/MenuMobileGroup'
import MenuMobile from '@/components/Mobile/MenuMobile' import MenuMobile from '/resources/js/components/Mobile/MenuMobile'
export default { export default {
name: 'FilterSortingMobile', name: 'FilterSortingMobile',

View File

@@ -13,8 +13,8 @@
<script> <script>
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import { ArrowUpIcon } from 'vue-feather-icons' import { ArrowUpIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'

View File

@@ -15,7 +15,7 @@
</template> </template>
<script> <script>
import Emoji from '@/components/Others/Emoji' import Emoji from '/resources/js/components/Others/Emoji'
export default { export default {
name: 'FolderIcon', name: 'FolderIcon',
@@ -52,8 +52,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
// Locations // Locations
.file-item-list { .file-item-list {

View File

@@ -108,8 +108,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.meta-data-list { .meta-data-list {
list-style: none; list-style: none;

View File

@@ -90,16 +90,16 @@
</template> </template>
<script> <script>
import FilePreviewDetail from '@/components/Others/FilePreviewDetail' import FilePreviewDetail from '/resources/js/components/Others/FilePreviewDetail'
import {Edit2Icon, LockIcon, UnlockIcon} from 'vue-feather-icons' import {Edit2Icon, LockIcon, UnlockIcon} from 'vue-feather-icons'
import ImageMetaData from '@/components/FilesView/ImageMetaData' import ImageMetaData from '/resources/js/components/FilesView/ImageMetaData'
import EmptyMessage from '@/components/FilesView/EmptyMessage' import EmptyMessage from '/resources/js/components/FilesView/EmptyMessage'
import TitlePreview from '@/components/FilesView/TitlePreview' import TitlePreview from '/resources/js/components/FilesView/TitlePreview'
import CopyShareLink from '@/components/Others/Forms/CopyShareLink' import CopyShareLink from '/resources/js/components/Others/Forms/CopyShareLink'
import ListInfoItem from '@/components/Others/ListInfoItem' import ListInfoItem from '/resources/js/components/Others/ListInfoItem'
import ListInfo from '@/components/Others/ListInfo' import ListInfo from '/resources/js/components/Others/ListInfo'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from "@/bus" import {events} from '/resources/js/bus'
export default { export default {
name: 'InfoSidebar', name: 'InfoSidebar',

View File

@@ -1,6 +1,7 @@
<template> <template>
<button class="mobile-action-button"> <button class="mobile-action-button">
<div class="flex"> <div class="flex">
<search-icon v-if="icon === 'search'" size="15" class="icon dark-text-theme" />
<refresh-cw-icon v-if="icon === 'refresh'" size="15" class="icon dark-text-theme" /> <refresh-cw-icon v-if="icon === 'refresh'" size="15" class="icon dark-text-theme" />
<download-icon v-if="icon === 'download'" size="15" class="icon dark-text-theme" /> <download-icon v-if="icon === 'download'" size="15" class="icon dark-text-theme" />
<copy-icon v-if="icon === 'copy'" size="15" class="icon dark-text-theme" /> <copy-icon v-if="icon === 'copy'" size="15" class="icon dark-text-theme" />
@@ -18,7 +19,7 @@
<dollar-sign-icon v-if="icon === 'dollar-sign'" size="15" class="icon dark-text-theme" /> <dollar-sign-icon v-if="icon === 'dollar-sign'" size="15" class="icon dark-text-theme" />
<sorting-icon v-if="icon === 'preview-sorting'" class="icon dark-text-theme preview-sorting" /> <sorting-icon v-if="icon === 'preview-sorting'" class="icon dark-text-theme preview-sorting" />
<cloud-plus-icon v-if="icon === 'cloud-plus'" class="icon dark-text-theme preview-sorting" /> <cloud-plus-icon v-if="icon === 'cloud-plus'" class="icon dark-text-theme preview-sorting" />
<span class="label"> <span v-if="$slots.default" class="label">
<slot></slot> <slot></slot>
</span> </span>
</div> </div>
@@ -26,9 +27,9 @@
</template> </template>
<script> <script>
import { RefreshCwIcon, DownloadIcon, CopyIcon, FilterIcon, DollarSignIcon, CheckIcon, XSquareIcon, CheckSquareIcon, FolderPlusIcon, ListIcon, GridIcon, TrashIcon, UserPlusIcon, PlusIcon, CreditCardIcon } from 'vue-feather-icons' import { SearchIcon, RefreshCwIcon, DownloadIcon, CopyIcon, FilterIcon, DollarSignIcon, CheckIcon, XSquareIcon, CheckSquareIcon, FolderPlusIcon, ListIcon, GridIcon, TrashIcon, UserPlusIcon, PlusIcon, CreditCardIcon } from 'vue-feather-icons'
import CloudPlusIcon from '@/components/FilesView/Icons/CloudPlusIcon' import CloudPlusIcon from '/resources/js/components/FilesView/Icons/CloudPlusIcon'
import SortingIcon from '@/components/FilesView/Icons/SortingIcon' import SortingIcon from '/resources/js/components/FilesView/Icons/SortingIcon'
export default { export default {
name: 'MobileActionButton', name: 'MobileActionButton',
@@ -47,6 +48,7 @@
SortingIcon, SortingIcon,
XSquareIcon, XSquareIcon,
FilterIcon, FilterIcon,
SearchIcon,
CheckIcon, CheckIcon,
TrashIcon, TrashIcon,
PlusIcon, PlusIcon,
@@ -58,8 +60,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.mobile-action-button { .mobile-action-button {
background: $light_background; background: $light_background;
@@ -76,7 +78,6 @@
} }
.icon { .icon {
margin-right: 10px;
@include font-size(14); @include font-size(14);
path, line, polyline, rect, circle, polygon { path, line, polyline, rect, circle, polygon {
@@ -89,7 +90,8 @@
@include font-size(14); @include font-size(14);
font-weight: 700; font-weight: 700;
color: $text; color: $text;
} padding-left: 10px;
}
&:active { &:active {
@include transform(scale(0.95)); @include transform(scale(0.95));

View File

@@ -34,8 +34,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.mobile-action-button { .mobile-action-button {
background: $light_background; background: $light_background;

View File

@@ -2,14 +2,14 @@
<div class="mobile-toolbar"> <div class="mobile-toolbar">
<!-- Go back--> <!-- Go back-->
<div @click="goBack" class="go-back-button" :class="{'is-visible': browseHistory.length > 1}"> <div @click="goBack" class="go-back-button">
<chevron-left-icon size="17" class="icon-back" /> <chevron-left-icon size="17" class="icon-back" :class="{'is-visible': browseHistory.length > 1}" />
</div>
<!--Folder Title--> <!--Folder Title-->
<div class="directory-name"> <div class="directory-name">
{{ directoryName }} {{ directoryName }}
</div> </div>
</div>
<!--More Actions--> <!--More Actions-->
<div class="more-actions-button"> <div class="more-actions-button">
@@ -21,11 +21,11 @@
</template> </template>
<script> <script>
import ToolbarButton from '@/components/FilesView/ToolbarButton' import ToolbarButton from '/resources/js/components/FilesView/ToolbarButton'
import SearchBar from '@/components/FilesView/SearchBar' import SearchBar from '/resources/js/components/FilesView/SearchBar'
import { MenuIcon, ChevronLeftIcon } from 'vue-feather-icons' import { MenuIcon, ChevronLeftIcon } from 'vue-feather-icons'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import {last} from 'lodash' import {last} from 'lodash'
export default { export default {
@@ -82,8 +82,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.mobile-toolbar { .mobile-toolbar {
background: white; background: white;
@@ -104,26 +104,25 @@
.go-back-button { .go-back-button {
text-align: left; text-align: left;
flex: 1; flex: 1;
opacity: 0;
visibility: hidden;
pointer-events: none;
.icon-back { .icon-back {
pointer-events: none;
opacity: 0.15;
vertical-align: middle; vertical-align: middle;
cursor: pointer; cursor: pointer;
margin-top: -2px; margin-top: -2px;
} margin-right: 4px;
&.is-visible { &.is-visible {
pointer-events: initial; pointer-events: initial;
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
}
} }
} }
.directory-name { .directory-name {
line-height: 1; line-height: 1;
text-align: center;
width: 100%; width: 100%;
vertical-align: middle; vertical-align: middle;
@include font-size(16); @include font-size(16);

View File

@@ -15,9 +15,9 @@
</template> </template>
<script> <script>
import ToolbarButton from '@/components/FilesView/ToolbarButton' import ToolbarButton from '/resources/js/components/FilesView/ToolbarButton'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'MultiSelectToolbarMobile', name: 'MultiSelectToolbarMobile',
@@ -67,8 +67,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.multiselect-actions { .multiselect-actions {
display: flex; display: flex;

View File

@@ -46,7 +46,7 @@
</template> </template>
<script> <script>
import AlphabetIcon from '@/components/FilesView/Icons/AlphabetIcon' import AlphabetIcon from '/resources/js/components/FilesView/Icons/AlphabetIcon'
import { import {
ArrowUpIcon, ArrowUpIcon,
ArrowDownIcon, ArrowDownIcon,
@@ -130,8 +130,8 @@ import {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.menu-option { .menu-option {
white-space: nowrap; white-space: nowrap;

View File

@@ -11,8 +11,8 @@
</script> </script>
<style scoped lang="scss" scoped> <style scoped lang="scss" scoped>
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.menu-option-group { .menu-option-group {
padding: 5px 0; padding: 5px 0;

View File

@@ -18,7 +18,7 @@
</template> </template>
<script> <script>
import {events} from '@/bus' import {events} from '/resources/js/bus'
import { import {
UploadCloudIcon, UploadCloudIcon,
} from 'vue-feather-icons' } from 'vue-feather-icons'
@@ -41,8 +41,8 @@ import {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.menu-option { .menu-option {
white-space: nowrap; white-space: nowrap;

View File

@@ -15,7 +15,7 @@
</template> </template>
<script> <script>
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
@@ -32,8 +32,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.spinner-wrapper { .spinner-wrapper {
padding-bottom: 90px; padding-bottom: 90px;

View File

@@ -12,8 +12,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.progress-bar { .progress-bar {
width: 100%; width: 100%;

View File

@@ -1,144 +1,86 @@
<template> <template>
<div class="search-bar"> <div @click="showSpotlight" class="search-bar">
<div class="icon" v-if="!isQuery"> <div class="message">
<search-icon size="19" /> <span>
</div> {{ $t('inputs.placeholder_search_files') }}
<div class="icon" v-if="isQuery" @click="resetQuery"> </span>
<x-icon class="pointer" size="19" /> <span>
</div> {{ metaKeyIcon }}+K
<input </span>
v-model="query" </div>
@input="$emit('input', query)"
class="query focus-border-theme"
type="text"
:placeholder="placeholder"
/>
</div> </div>
</template> </template>
<script> <script>
import {SearchIcon, XIcon} from 'vue-feather-icons' import {SearchIcon} from 'vue-feather-icons'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'DesktopSearchBar', name: 'SearchBar',
props: [
'placeholder'
],
components: { components: {
SearchIcon, SearchIcon,
XIcon,
}, },
computed: { computed: {
isQuery() { metaKeyIcon() {
return this.query !== '' && typeof this.query !== 'undefined' return this.$isApple() ? '' : '⊞'
} },
}, },
data() { methods: {
return { showSpotlight() {
query: '' events.$emit('spotlight:show')
} }
}, }
methods: {
resetQuery() {
this.query = ''
this.$emit('reset-query')
}
},
created() {
events.$on('clear-query', () => this.query = undefined)
}
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.search-bar { .search-bar {
position: relative; position: relative;
background: $light_background; background: $light_background;
border-radius: 8px; border-radius: 8px;
cursor: pointer;
input { .message {
background: transparent;
border-radius: 8px; border-radius: 8px;
outline: 0; padding: 11px 20px;
padding: 9px 20px 9px 43px;
font-weight: 400;
@include font-size(16);
min-width: 300px; min-width: 300px;
transition: 0.15s all ease; text-align: left;
border: 1px solid white; display: flex;
-webkit-appearance: none; justify-content: space-between;
&::placeholder { span {
color: #B9B9B9; font-weight: 400;
@include font-size(13); @include font-size(14);
font-weight: 500; color: #B9B9B9;
}
}
.icon {
position: absolute;
top: 0;
left: 0;
padding: 11px 15px;
.pointer {
cursor: pointer;
}
circle, line {
stroke: #B9B9B9;
} }
} }
} }
@media only screen and (max-width: 1024px) { @media only screen and (max-width: 1024px) {
.search-bar input { .search-bar .message {
max-width: 190px; max-width: 190px;
padding-right: 0;
} }
} }
@media only screen and (max-width: 690px) { @media only screen and (max-width: 690px) {
.search-bar { .search-bar .message {
min-width: initial;
input { width: 100%;
min-width: initial; max-width: initial;
width: 100%; }
max-width: initial;
padding: 9px 20px 9px 30px;
&:focus {
border: 1px solid transparent;
box-shadow: none;
}
}
.icon {
padding: 11px 15px 11px 0;
}
}
} }
.dark-mode { .dark-mode {
.search-bar { .search-bar {
input { background: $dark_mode_foreground;
border-color: transparent;
color: $dark_mode_text_primary;
&::placeholder { .message span {
color: $dark_mode_text_secondary; color: $dark_mode_text_secondary;
}
}
.icon svg path {
fill: $dark_mode_text_secondary;
} }
} }
} }

View File

@@ -11,8 +11,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
#loading-bar-spinner.spinner { #loading-bar-spinner.spinner {
left: 50%; left: 50%;

View File

@@ -41,8 +41,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.wrapper { .wrapper {
display: flex; display: flex;

View File

@@ -21,8 +21,8 @@
</template> </template>
<script> <script>
import SortingIcon from '@/components/FilesView/Icons/SortingIcon' import SortingIcon from '/resources/js/components/FilesView/Icons/SortingIcon'
import CloudPlusIcon from '@/components/FilesView/Icons/CloudPlusIcon' import CloudPlusIcon from '/resources/js/components/FilesView/Icons/CloudPlusIcon'
import { import {
UserPlusIcon, UserPlusIcon,
CornerDownRightIcon, CornerDownRightIcon,
@@ -70,8 +70,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.preview-sorting { .preview-sorting {
transform: scale(1.3); transform: scale(1.3);

View File

@@ -25,10 +25,10 @@
</template> </template>
<script> <script>
import ProgressBar from '@/components/FilesView/ProgressBar' import ProgressBar from '/resources/js/components/FilesView/ProgressBar'
import { RefreshCwIcon, XIcon } from 'vue-feather-icons' import { RefreshCwIcon, XIcon } from 'vue-feather-icons'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'UploadProgress', name: 'UploadProgress',
@@ -55,8 +55,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.sync-alt { .sync-alt {
animation: spin 1s linear infinite; animation: spin 1s linear infinite;

View File

@@ -15,9 +15,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.page-title { .page-title {
position: relative; position: relative;

View File

@@ -49,8 +49,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.plans-wrapper { .plans-wrapper {
box-shadow: 0 7px 20px 5px hsla(220, 36%, 16%, 0.05); box-shadow: 0 7px 20px 5px hsla(220, 36%, 16%, 0.05);

View File

@@ -41,7 +41,7 @@
</template> </template>
<script> <script>
import PageTitle from '@/components/Index/Components/PageTitle' import PageTitle from '/resources/js/components/Index/Components/PageTitle'
import { import {
ChevronRightIcon, ChevronRightIcon,
UploadCloudIcon, UploadCloudIcon,
@@ -88,9 +88,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.icons { .icons {

View File

@@ -57,9 +57,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.icons { .icons {

View File

@@ -51,7 +51,7 @@
<script> <script>
import { UserIcon, CloudIcon, HardDriveIcon } from 'vue-feather-icons' import { UserIcon, CloudIcon, HardDriveIcon } from 'vue-feather-icons'
import PageTitle from '@/components/Index/Components/PageTitle' import PageTitle from '/resources/js/components/Index/Components/PageTitle'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
@@ -69,9 +69,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.features { .features {
padding-left: 75px; padding-left: 75px;

View File

@@ -55,9 +55,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.main-navigation { .main-navigation {
justify-content: space-between; justify-content: space-between;

View File

@@ -39,9 +39,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
footer { footer {
text-align: center; text-align: center;

View File

@@ -33,8 +33,8 @@
<script> <script>
import HardDriveIcon from "vue-feather-icons/icons/HardDriveIcon"; import HardDriveIcon from "vue-feather-icons/icons/HardDriveIcon";
import PageTitle from '@/components/Index/Components/PageTitle' import PageTitle from '/resources/js/components/Index/Components/PageTitle'
import AuthButton from '@/components/Auth/AuthButton' import AuthButton from '/resources/js/components/Auth/AuthButton'
import { CreditCardIcon } from 'vue-feather-icons' import { CreditCardIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@@ -53,9 +53,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.features { .features {
display: flex; display: flex;

View File

@@ -21,8 +21,8 @@
</template> </template>
<script> <script>
import PricingTables from '@/components/Index/Components/PricingTables' import PricingTables from '/resources/js/components/Index/Components/PricingTables'
import AuthButton from '@/components/Auth/AuthButton' import AuthButton from '/resources/js/components/Auth/AuthButton'
import { CloudIcon } from 'vue-feather-icons' import { CloudIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@@ -51,9 +51,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_landing-page'; @import '/resources/sass/vuefilemanager/_landing-page';
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.pricing { .pricing {
.cloud-bg { .cloud-bg {

View File

@@ -7,7 +7,7 @@
</template> </template>
<script> <script>
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'MenuMobile', name: 'MenuMobile',
@@ -38,8 +38,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.options { .options {
position: absolute; position: absolute;

View File

@@ -11,8 +11,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.menu-options { .menu-options {
margin-top: 10px; margin-top: 10px;

View File

@@ -17,7 +17,7 @@
</template> </template>
<script> <script>
import {events} from '@/bus' import {events} from '/resources/js/bus'
import { import {
ChevronLeftIcon, ChevronLeftIcon,
@@ -45,8 +45,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.mobile-header { .mobile-header {
padding: 10px 0; padding: 10px 0;

View File

@@ -22,8 +22,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.action-button { .action-button {
cursor: pointer; cursor: pointer;

View File

@@ -12,8 +12,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.color-label { .color-label {
text-transform: capitalize; text-transform: capitalize;

View File

@@ -66,8 +66,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.color-pick-wrapper { .color-pick-wrapper {
.color-wrapper { .color-wrapper {

View File

@@ -7,10 +7,10 @@
</template> </template>
<script> <script>
import DesktopToolbar from '@/components/FilesView/DesktopToolbar' import DesktopToolbar from '/resources/js/components/FilesView/DesktopToolbar'
import FileBrowser from '@/components/FilesView/FileBrowser' import FileBrowser from '/resources/js/components/FilesView/FileBrowser'
import ContextMenu from '@/components/FilesView/ContextMenu' import ContextMenu from '/resources/js/components/FilesView/ContextMenu'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'FilesView', name: 'FilesView',

View File

@@ -40,8 +40,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.cookie-wrapper { .cookie-wrapper {
@include widget-card; @include widget-card;

View File

@@ -43,16 +43,16 @@
<script> <script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full' import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from '@/components/Others/Popup/PopupWrapper' import PopupWrapper from '/resources/js/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions' import PopupActions from '/resources/js/components/Others/Popup/PopupActions'
import PopupContent from '@/components/Others/Popup/PopupContent' import PopupContent from '/resources/js/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader' import PopupHeader from '/resources/js/components/Others/Popup/PopupHeader'
import ThumbnailItem from '@/components/Others/ThumbnailItem' import ThumbnailItem from '/resources/js/components/Others/ThumbnailItem'
import SetFolderIcon from '@/components/Others/SetFolderIcon' import SetFolderIcon from '/resources/js/components/Others/SetFolderIcon'
import ActionButton from '@/components/Others/ActionButton' import ActionButton from '/resources/js/components/Others/ActionButton'
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import {required} from 'vee-validate/dist/rules' import {required} from 'vee-validate/dist/rules'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'CreateFolderPopup', name: 'CreateFolderPopup',
@@ -118,8 +118,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.item-thumbnail { .item-thumbnail {
margin-bottom: 20px; margin-bottom: 20px;

View File

@@ -48,14 +48,14 @@
<script> <script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full' import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from '@/components/Others/Popup/PopupWrapper' import PopupWrapper from '/resources/js/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions' import PopupActions from '/resources/js/components/Others/Popup/PopupActions'
import PopupContent from '@/components/Others/Popup/PopupContent' import PopupContent from '/resources/js/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader' import PopupHeader from '/resources/js/components/Others/Popup/PopupHeader'
import SelectInput from '@/components/Others/Forms/SelectInput' import SelectInput from '/resources/js/components/Others/Forms/SelectInput'
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import {required} from 'vee-validate/dist/rules' import {required} from 'vee-validate/dist/rules'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import axios from 'axios' import axios from 'axios'
export default { export default {
@@ -855,8 +855,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.item-thumbnail { .item-thumbnail {
margin-bottom: 20px; margin-bottom: 20px;

View File

@@ -58,15 +58,15 @@
<script> <script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full' import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import PopupWrapper from '@/components/Others/Popup/PopupWrapper' import PopupWrapper from '/resources/js/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions' import PopupActions from '/resources/js/components/Others/Popup/PopupActions'
import PopupContent from '@/components/Others/Popup/PopupContent' import PopupContent from '/resources/js/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader' import PopupHeader from '/resources/js/components/Others/Popup/PopupHeader'
import CopyInput from '@/components/Others/Forms/CopyInput' import CopyInput from '/resources/js/components/Others/Forms/CopyInput'
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import InfoBox from '@/components/Others/Forms/InfoBox' import InfoBox from '/resources/js/components/Others/Forms/InfoBox'
import {required} from 'vee-validate/dist/rules' import {required} from 'vee-validate/dist/rules'
import {events} from '@/bus' import {events} from '/resources/js/bus'
import axios from 'axios' import axios from 'axios'
export default { export default {
@@ -123,8 +123,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.dark-mode { .dark-mode {

View File

@@ -29,8 +29,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.emoji-container { .emoji-container {
font-size: inherit; font-size: inherit;

View File

@@ -76,11 +76,11 @@
<script> <script>
import {ChevronDownIcon, XIcon} from 'vue-feather-icons' import {ChevronDownIcon, XIcon} from 'vue-feather-icons'
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
import Emoji from '@/components/Others/Emoji' import Emoji from '/resources/js/components/Others/Emoji'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {groupBy} from 'lodash' import {groupBy} from 'lodash'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
@@ -207,8 +207,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.select-emoji-wrapper { .select-emoji-wrapper {
margin-bottom: 20px; margin-bottom: 20px;

View File

@@ -30,8 +30,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.empty-page-content { .empty-page-content {
width: 100%; width: 100%;

View File

@@ -26,8 +26,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.preview { .preview {
width: 100%; width: 100%;

View File

@@ -55,10 +55,10 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import "@assets/vuefilemanager/_forms.scss"; @import "resources/sass/vuefilemanager/_forms.scss";
.multi-icon { .multi-icon {
display: flex; display: flex;

View File

@@ -15,7 +15,7 @@
<script> <script>
import { LinkIcon, CheckIcon, SendIcon } from 'vue-feather-icons' import { LinkIcon, CheckIcon, SendIcon } from 'vue-feather-icons'
import { events } from '@/bus' import { events } from '/resources/js/bus'
export default { export default {
name: 'CopyShareLink', name: 'CopyShareLink',
@@ -63,10 +63,10 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import "@assets/vuefilemanager/_forms.scss"; @import "resources/sass/vuefilemanager/_forms.scss";
.multi-icon { .multi-icon {
display: flex; display: flex;

View File

@@ -31,8 +31,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.form-label { .form-label {
display: flex; display: flex;

View File

@@ -85,8 +85,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.dropzone { .dropzone {
border: 1px dashed #a1abc2; border: 1px dashed #a1abc2;

View File

@@ -12,8 +12,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.info-box { .info-box {
padding: 20px; padding: 20px;

View File

@@ -16,7 +16,7 @@
<script> <script>
import { XIcon } from 'vue-feather-icons' import { XIcon } from 'vue-feather-icons'
import { events } from '@/bus' import { events } from '/resources/js/bus'
export default { export default {
name: 'MultiEmailInput', name: 'MultiEmailInput',
@@ -91,8 +91,8 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.wrapper { .wrapper {
margin-bottom: 20px; margin-bottom: 20px;

View File

@@ -41,9 +41,9 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
@import '@assets/vuefilemanager/_forms'; @import '/resources/sass/vuefilemanager/_forms';
.search-bar { .search-bar {
padding: 7px 0px; padding: 7px 0px;

View File

@@ -40,10 +40,10 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
@import "@assets/vuefilemanager/_inapp-forms.scss"; @import "resources/sass/vuefilemanager/_inapp-forms.scss";
@import "@assets/vuefilemanager/_forms.scss"; @import "resources/sass/vuefilemanager/_forms.scss";
.select-box { .select-box {
display: flex; display: flex;

View File

@@ -111,8 +111,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.select { .select {
position: relative; position: relative;

View File

@@ -14,8 +14,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.setup-box { .setup-box {
padding: 20px; padding: 20px;

View File

@@ -39,8 +39,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.input-wrapper { .input-wrapper {
display: flex; display: flex;

View File

@@ -8,7 +8,7 @@
</template> </template>
<script> <script>
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
export default { export default {
name: 'PageTab', name: 'PageTab',
@@ -20,6 +20,6 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
</style> </style>

View File

@@ -11,8 +11,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.page-tab-group { .page-tab-group {
margin-bottom: 65px; margin-bottom: 65px;

View File

@@ -11,6 +11,6 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
</style> </style>

View File

@@ -14,8 +14,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.list-info-item { .list-info-item {
display: block; display: block;

View File

@@ -52,11 +52,11 @@
</template> </template>
<script> <script>
import MenuMobileGroup from '@/components/Mobile/MenuMobileGroup' import MenuMobileGroup from '/resources/js/components/Mobile/MenuMobileGroup'
import OptionGroup from '@/components/FilesView/OptionGroup' import OptionGroup from '/resources/js/components/FilesView/OptionGroup'
import UserHeadline from '@/components/Sidebar/UserHeadline' import UserHeadline from '/resources/js/components/Sidebar/UserHeadline'
import MenuMobile from '@/components/Mobile/MenuMobile' import MenuMobile from '/resources/js/components/Mobile/MenuMobile'
import Option from '@/components/FilesView/Option' import Option from '/resources/js/components/FilesView/Option'
import {ChevronLeftIcon} from 'vue-feather-icons' import {ChevronLeftIcon} from 'vue-feather-icons'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
@@ -115,8 +115,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "@assets/vuefilemanager/_variables"; @import "resources/sass/vuefilemanager/_variables";
@import "@assets/vuefilemanager/_mixins"; @import "resources/sass/vuefilemanager/_mixins";
.user-info { .user-info {
padding: 20px 20px 10px; padding: 20px 20px 10px;

View File

@@ -41,18 +41,18 @@
</template> </template>
<script> <script>
import PopupWrapper from '@/components/Others/Popup/PopupWrapper' import PopupWrapper from '/resources/js/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions' import PopupActions from '/resources/js/components/Others/Popup/PopupActions'
import TitlePreview from '@/components/FilesView/TitlePreview' import TitlePreview from '/resources/js/components/FilesView/TitlePreview'
import PopupContent from '@/components/Others/Popup/PopupContent' import PopupContent from '/resources/js/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader' import PopupHeader from '/resources/js/components/Others/Popup/PopupHeader'
import ThumbnailItem from '@/components/Others/ThumbnailItem' import ThumbnailItem from '/resources/js/components/Others/ThumbnailItem'
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import Spinner from '@/components/FilesView/Spinner' import Spinner from '/resources/js/components/FilesView/Spinner'
import TreeMenu from '@/components/Others/TreeMenu' import TreeMenu from '/resources/js/components/Others/TreeMenu'
import {isArray, isNull} from 'lodash' import {isArray, isNull} from 'lodash'
import {mapGetters} from 'vuex' import {mapGetters} from 'vuex'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'MoveItemPopup', name: 'MoveItemPopup',
@@ -158,8 +158,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.item-thumbnail { .item-thumbnail {
margin-bottom: 20px; margin-bottom: 20px;

View File

@@ -40,8 +40,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.fade-enter-active, .fade-enter-active,
.fade-leave-active { .fade-leave-active {

View File

@@ -1,16 +1,16 @@
<template> <template>
<div id="toastr-wrapper"> <div id="toastr-wrapper">
<ToastrItem :item="item" v-for="(item, i) in notifications" :key="i"/> <ToasterItem :item="item" v-for="(item, i) in notifications" :key="i"/>
</div> </div>
</template> </template>
<script> <script>
import ToastrItem from '@/components/Others/Notifications/ToastrItem' import ToasterItem from '/resources/js/components/Others/Notifications/ToasterItem'
import {events} from "@/bus"; import {events} from '/resources/js/bus'
export default { export default {
components: { components: {
ToastrItem, ToasterItem,
}, },
data() { data() {
return { return {
@@ -24,8 +24,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.toastr-list { .toastr-list {
transition: all 5s ease; transition: all 5s ease;

View File

@@ -24,8 +24,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.page-header { .page-header {
display: flex; display: flex;

View File

@@ -28,7 +28,7 @@
</template> </template>
<script> <script>
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import {HardDriveIcon} from "vue-feather-icons" import {HardDriveIcon} from "vue-feather-icons"
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import axios from 'axios' import axios from 'axios'
@@ -72,8 +72,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.plan { .plan {
text-align: center; text-align: center;

View File

@@ -27,11 +27,11 @@
</template> </template>
<script> <script>
import PopupWrapper from '@/components/Others/Popup/PopupWrapper' import PopupWrapper from '/resources/js/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions' import PopupActions from '/resources/js/components/Others/Popup/PopupActions'
import PopupContent from '@/components/Others/Popup/PopupContent' import PopupContent from '/resources/js/components/Others/Popup/PopupContent'
import ButtonBase from '@/components/FilesView/ButtonBase' import ButtonBase from '/resources/js/components/FilesView/ButtonBase'
import {events} from '@/bus' import {events} from '/resources/js/bus'
export default { export default {
name: 'ConfirmPopup', name: 'ConfirmPopup',
@@ -83,8 +83,8 @@
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.popup-image { .popup-image {
padding-top: 20px; padding-top: 20px;

View File

@@ -11,8 +11,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.actions { .actions {
padding: 20px; padding: 20px;

View File

@@ -14,8 +14,8 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@assets/vuefilemanager/_variables'; @import '/resources/sass/vuefilemanager/_variables';
@import '@assets/vuefilemanager/_mixins'; @import '/resources/sass/vuefilemanager/_mixins';
.popup-content { .popup-content {
&.height-limited { &.height-limited {

Some files were not shown because too many files have changed in this diff Show More