From bf6cd34cf68bdd534fb1d0a662c32285add6af02 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Tue, 23 Feb 2021 16:15:29 +0100 Subject: [PATCH 1/5] make separated EmojiPicker component, add Spinner to search emojis --- public/mix-manifest.json | 143 ++--- .../js/components/Others/EmojiPicker.vue | 491 ++++++++++++++++++ resources/js/components/Others/RenameItem.vue | 2 +- .../js/components/Others/SetFolderIcon.vue | 472 +---------------- resources/sass/app.scss | 7 +- 5 files changed, 602 insertions(+), 513 deletions(-) create mode 100644 resources/js/components/Others/EmojiPicker.vue diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 8655be7c..7f41bc76 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,65 +1,82 @@ { - "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=3063523dc4a3aee7ac59", - "/js/main.js": "/js/main.js?id=0229401b7e8985e5572a", - "/css/app.css": "/css/app.css?id=dfd52fc997b919cd3686", - "/chunks/admin.js": "/chunks/admin.js?id=7672646537b5813becf0", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=3f5a34aa8341af8d2b4c", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=9ec9a42482cb302a05f6", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=92903bd1d316b3db1dfa", - "/chunks/app-email.js": "/chunks/app-email.js?id=9d646578982ba61813b6", - "/chunks/app-index.js": "/chunks/app-index.js?id=4623bd961647897a5b81", - "/chunks/app-others.js": "/chunks/app-others.js?id=b19a701cdfa06e4817ff", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=11c86d822269f1a1577e", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=6784314933372fb1adf0", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=d304bcf7d4157e81f3e2", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=b73a5b6f7d2a448cc5ab", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=81906d205ba0107c5105", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=004908727045abd0852e", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=cdfd468f0d0f98b9f081", - "/chunks/database.js": "/chunks/database.js?id=b8d8269f77c52f78c784", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2e3af103d13536c50757", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=106f81cefe76c62d476e", - "/chunks/files.js": "/chunks/files.js?id=b213d4fe15c2a9933f32", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=95ce5e5685dc9315f515", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=6db12008aa646ad5fb6f", - "/chunks/invoices.js": "/chunks/invoices.js?id=83389adf0760820af6f5", - "/chunks/landing-page.js": "/chunks/landing-page.js?id=546ed735edf0d80c8a7e", - "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=848666d6c49c613f7f99", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=bd41ae13951c2a5025c3", - "/chunks/pages.js": "/chunks/pages.js?id=df7245abef9e3b77a218", - "/chunks/plan.js": "/chunks/plan.js?id=cfd7b4ee7e21639a837d", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=9bb62af36193ee9648d3", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=7b7601f044e0ef47720b", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=8d3e75ff9adb22a25d57", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=3b4a29497fc878f503db", - "/chunks/plans.js": "/chunks/plans.js?id=feb924949bffcdf3d9fb", - "/chunks/profile.js": "/chunks/profile.js?id=f990697f8d4ff45df434", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=5d7406ecd84c676db8fb", - "/chunks/settings.js": "/chunks/settings.js?id=d16d9e2cda6aa3a3f6dc", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=b05e24dd8be60f62ee27", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=72d317b39264987e6ed0", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=014597c63c94d3ac9f60", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=2a0ea9cf661deba6fc13", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=b3f25de02dd4ef072df0", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=aa3d963f578d7bc5ff88", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855", - "/chunks/shared-files.js": "/chunks/shared-files.js?id=ba10fd3f52a7b62d3092", - "/chunks/shared-page.js": "/chunks/shared-page.js?id=4489cb4cfa33fb249bea", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=c52ce81c3dad56d7a7d8", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=2f12850d320b2413cf54", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=6622381f1d96e8319999", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=f1b093a3bcfebd5bc8a5", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=e0e2f821aac16b32da34", - "/chunks/upgrade.js": "/chunks/upgrade.js?id=0c8d40bed72e86359529", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=a8db2246f9326e5c5957", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=f050f10627424b730dc2", - "/chunks/user.js": "/chunks/user.js?id=6f2ab796211a3ac8670f", - "/chunks/user-create.js": "/chunks/user-create.js?id=0d630acda4552c315417", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=db041eae3aef3e45197a", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=8cf2fe554e8d67ac8677", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=a0613909cb0c21817804", - "/chunks/user-password.js": "/chunks/user-password.js?id=653bba3eb8d117c3a043", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=630b0ff649e16d3627af", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=0b4226ba77f10b83de4a", - "/chunks/users.js": "/chunks/users.js?id=04ca09662595fae56488" + "/js/main.js": "/js/main.js", + "/css/app.css": "/css/app.css", + "/chunks/admin.js": "/chunks/admin.js?id=03478fff46fc7903ecc4", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=d687d4a3e71881044040", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~2d9ff916.js?id=07b0ad73181498d46930", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~01aef58e.js?id=6cb8c3f7a9aed769ec61", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.js?id=ff7684a6d7dbd9518d8b", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=b99a5c881b7f15a7e8c5", + "/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=9e50edacd8630aa6fc22", + "/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=2e6c6594ea5506c30ba4", + "/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=d066e2c40f4c0ca68bf1", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=aac5bd51067578358164", + "/chunks/app-email.js": "/chunks/app-email.js?id=9d1631b19f6492b8cae4", + "/chunks/app-index.js": "/chunks/app-index.js?id=2dcbe307133d780b6472", + "/chunks/app-others.js": "/chunks/app-others.js?id=44efcfb317747ff3b508", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=187ecc16f9f7fbc4ccac", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=b6b0eba13665133c0a19", + "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js": "/chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pages~chunks/plan~chunk~8a0e1d25.js?id=52e8a931f975c4e03a3c", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=65857e375e79bbaca9c8", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=e84968ddf7a1a0e0381d", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=cc28795de7e668d5919b", + "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=a4b8a7017c82de28296b", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=108dcc4b5af4c973be56", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=ee57c44ceca0e7202363", + "/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=cc1b4cbd4aa7f70151f7", + "/chunks/database.js": "/chunks/database.js?id=1fc78cfeb3befbd92423", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=f7ff36abf37571173944", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=a2eed5073e52410cab54", + "/chunks/files.js": "/chunks/files.js?id=b738eb9054e663cc32b7", + "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=b646ec02fb9d6a497e74", + "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=f61085447efd33a6ebbb", + "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=47ade53389e84dd64310", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=d5e39543eeb619cb5513", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=be9304e6ba2c61b6cab3", + "/chunks/invoices.js": "/chunks/invoices.js?id=0dddc007dba47ac5785e", + "/chunks/landing-page.js": "/chunks/landing-page.js?id=6c1137fd4f4d6e03b685", + "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=8c8ee101f3445e086040", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=0952cc3fb3aa4797a679", + "/chunks/pages.js": "/chunks/pages.js?id=313adabcad5dafb0f932", + "/chunks/plan.js": "/chunks/plan.js?id=41d7a74e57ac07ce3619", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=75b5346c75513e821097", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=4da54a76628aef67ea3e", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=e608674e1719be65fe6f", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=26fbcc2472b65a745366", + "/chunks/plans.js": "/chunks/plans.js?id=d6d92de642403caa999b", + "/chunks/profile.js": "/chunks/profile.js?id=015a2fcbaf2946f7eb11", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f9e2ea1515204b5c63b6", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=9c4a9daae2237285f35b", + "/chunks/settings.js": "/chunks/settings.js?id=2638798e697164161f7c", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=4b2742e154eba9a7022a", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=ed9e52bea6e3a1f892ad", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=0229d51aca95ffc75902", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=2841bc16a6028d8d315c", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=0ec77e47b2622ee5e253", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=3fde45b386de89651a24", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=b671f4f3198119b48449", + "/chunks/shared-files.js": "/chunks/shared-files.js?id=b13068f12911fbf79f74", + "/chunks/shared-page.js": "/chunks/shared-page.js?id=67672752eb26f92e2973", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=7b6565f5df2060b45bc0", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=39de7293c26fb3cef1a3", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=57235ac99a66b55fbf7c", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=51a2856dd0631053b42e", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=7176521fbf0047110ae1", + "/chunks/upgrade.js": "/chunks/upgrade.js?id=ee2f061bc040513f1d0d", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=ce929dd655322c11151c", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=a589c99d29f03bc71487", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=8bf12e8b93c7eaee4171", + "/chunks/user.js": "/chunks/user.js?id=bdb8a51693952859f5e1", + "/chunks/user-create.js": "/chunks/user-create.js?id=d0056a5db2089bc05508", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=91d17d44835dd32ec36f", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=b5b474dd8fea7b99c766", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=04b8c39ed83dc89f739a", + "/chunks/user-password.js": "/chunks/user-password.js?id=ac51d17a4aa7ae50bc88", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c001bef2d6d5171cb359", + "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", + "/js/main.fec7012ae1f34893589d.hot-update.js": "/js/main.fec7012ae1f34893589d.hot-update.js", + "/js/main.2ee91a6dae14a1cadc9b.hot-update.js": "/js/main.2ee91a6dae14a1cadc9b.hot-update.js", + "/js/main.9eae7983f12897789247.hot-update.js": "/js/main.9eae7983f12897789247.hot-update.js", + "/js/main.2d64c86de0df943928b2.hot-update.js": "/js/main.2d64c86de0df943928b2.hot-update.js" } diff --git a/resources/js/components/Others/EmojiPicker.vue b/resources/js/components/Others/EmojiPicker.vue new file mode 100644 index 00000000..7d53eb88 --- /dev/null +++ b/resources/js/components/Others/EmojiPicker.vue @@ -0,0 +1,491 @@ + + + + + diff --git a/resources/js/components/Others/RenameItem.vue b/resources/js/components/Others/RenameItem.vue index 88d83097..0973c552 100644 --- a/resources/js/components/Others/RenameItem.vue +++ b/resources/js/components/Others/RenameItem.vue @@ -24,7 +24,7 @@ {{ errors[0] }} - + {{ moreOptionsTitle }} diff --git a/resources/js/components/Others/SetFolderIcon.vue b/resources/js/components/Others/SetFolderIcon.vue index 9afef742..f5581568 100644 --- a/resources/js/components/Others/SetFolderIcon.vue +++ b/resources/js/components/Others/SetFolderIcon.vue @@ -1,82 +1,12 @@ - diff --git a/resources/sass/app.scss b/resources/sass/app.scss index 1186fdb6..43ff842a 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -459,21 +459,22 @@ width: 18px; height: 18px; cursor: pointer; - } ::-webkit-scrollbar-thumb { - border: 6px solid white; + border: 6px solid transparent; background: #7f7f7f; border-radius: 25px; + background-clip: padding-box ; } } @media (prefers-color-scheme: dark) { .windows { ::-webkit-scrollbar-thumb { - border: 6px solid $dark_mode_background; + border: 6px solid transparent; background: $dark_mode_foreground !important; + background-clip: padding-box !important ; } } } \ No newline at end of file From 595bce60eb962020fa99b22d3ed5ff752f0e935e Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Tue, 23 Feb 2021 16:58:00 +0100 Subject: [PATCH 2/5] fix loading EmojiList from server just one time --- config/vuefilemanager.php | 2 +- public/mix-manifest.json | 28 ++++++++++++++++++- .../js/components/Others/EmojiPicker.vue | 14 +++++++--- .../js/components/Others/SetFolderIcon.vue | 9 ++++-- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/config/vuefilemanager.php b/config/vuefilemanager.php index 13db7356..416e4529 100644 --- a/config/vuefilemanager.php +++ b/config/vuefilemanager.php @@ -2,7 +2,7 @@ return [ - 'version' => '1.8.2', + 'version' => '1.8.3', // Define size of chunk uploaded by MB. E.g. integer 128 means chunk size will be 128MB. 'chunk_size' => env('CHUNK_SIZE', '128'), diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 7f41bc76..b7bf42d4 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -78,5 +78,31 @@ "/js/main.fec7012ae1f34893589d.hot-update.js": "/js/main.fec7012ae1f34893589d.hot-update.js", "/js/main.2ee91a6dae14a1cadc9b.hot-update.js": "/js/main.2ee91a6dae14a1cadc9b.hot-update.js", "/js/main.9eae7983f12897789247.hot-update.js": "/js/main.9eae7983f12897789247.hot-update.js", - "/js/main.2d64c86de0df943928b2.hot-update.js": "/js/main.2d64c86de0df943928b2.hot-update.js" + "/js/main.2d64c86de0df943928b2.hot-update.js": "/js/main.2d64c86de0df943928b2.hot-update.js", + "/js/main.810cff99631b1efd948d.hot-update.js": "/js/main.810cff99631b1efd948d.hot-update.js", + "/js/main.e600f466db5401999c97.hot-update.js": "/js/main.e600f466db5401999c97.hot-update.js", + "/js/main.2366d38febb62b9adb88.hot-update.js": "/js/main.2366d38febb62b9adb88.hot-update.js", + "/js/main.e0881260a9842557986a.hot-update.js": "/js/main.e0881260a9842557986a.hot-update.js", + "/js/main.3d08984a88c66c048927.hot-update.js": "/js/main.3d08984a88c66c048927.hot-update.js", + "/js/main.8e3c4561e7e37ae6a6c1.hot-update.js": "/js/main.8e3c4561e7e37ae6a6c1.hot-update.js", + "/js/main.67f4fde7abcafd6d46c5.hot-update.js": "/js/main.67f4fde7abcafd6d46c5.hot-update.js", + "/js/main.744dab728ca297b5c462.hot-update.js": "/js/main.744dab728ca297b5c462.hot-update.js", + "/js/main.7d48fe14fdbe694bee34.hot-update.js": "/js/main.7d48fe14fdbe694bee34.hot-update.js", + "/js/main.7ec9c64cc2b9c20d5365.hot-update.js": "/js/main.7ec9c64cc2b9c20d5365.hot-update.js", + "/js/main.cce692fa367da3518f20.hot-update.js": "/js/main.cce692fa367da3518f20.hot-update.js", + "/js/main.40ba52ba134116d832b1.hot-update.js": "/js/main.40ba52ba134116d832b1.hot-update.js", + "/js/main.62dfdf2da6591cb17225.hot-update.js": "/js/main.62dfdf2da6591cb17225.hot-update.js", + "/js/main.946ae0aec96e272e7a9a.hot-update.js": "/js/main.946ae0aec96e272e7a9a.hot-update.js", + "/js/main.49bb07b2e7950c7b10d2.hot-update.js": "/js/main.49bb07b2e7950c7b10d2.hot-update.js", + "/js/main.bb3f47712b180dc5faef.hot-update.js": "/js/main.bb3f47712b180dc5faef.hot-update.js", + "/js/main.8d39b3a6f8e4002b8796.hot-update.js": "/js/main.8d39b3a6f8e4002b8796.hot-update.js", + "/js/main.f9998fbbf511469ba9be.hot-update.js": "/js/main.f9998fbbf511469ba9be.hot-update.js", + "/js/main.a6d99609236f7fad62dc.hot-update.js": "/js/main.a6d99609236f7fad62dc.hot-update.js", + "/js/main.b7b1ab3b35c30738be1c.hot-update.js": "/js/main.b7b1ab3b35c30738be1c.hot-update.js", + "/js/main.4454030fcb222eadbbf7.hot-update.js": "/js/main.4454030fcb222eadbbf7.hot-update.js", + "/js/main.98be4f9f79ead6a88087.hot-update.js": "/js/main.98be4f9f79ead6a88087.hot-update.js", + "/js/main.03760e0d6f650b4ab3c2.hot-update.js": "/js/main.03760e0d6f650b4ab3c2.hot-update.js", + "/js/main.259e21addde39ee619b6.hot-update.js": "/js/main.259e21addde39ee619b6.hot-update.js", + "/js/main.e436af8370789152a668.hot-update.js": "/js/main.e436af8370789152a668.hot-update.js", + "/js/main.05eb0aab71d0fb3b6b09.hot-update.js": "/js/main.05eb0aab71d0fb3b6b09.hot-update.js" } diff --git a/resources/js/components/Others/EmojiPicker.vue b/resources/js/components/Others/EmojiPicker.vue index 7d53eb88..4f982dee 100644 --- a/resources/js/components/Others/EmojiPicker.vue +++ b/resources/js/components/Others/EmojiPicker.vue @@ -151,17 +151,23 @@ export default { }, 800), openMenu() { + this.loadedList = false + this.selectOpen = !this.selectOpen - //Load emojis - if (this.selectOpen) { + // Load emojis from server just if not loaded already + if (this.selectOpen && ! this.emojis) { this.$store.dispatch('getEmojisList').then((loaded) => { this.loadedList = loaded }) } - if ( ! this.selectOpen ) - this.loadedList = false + // Simulate loading for the emojisList processing + if(this.emojis) { + setTimeout(() => { + this.loadedList = true + }, 20); + } this.searchInput = '' diff --git a/resources/js/components/Others/SetFolderIcon.vue b/resources/js/components/Others/SetFolderIcon.vue index f5581568..bdba564e 100644 --- a/resources/js/components/Others/SetFolderIcon.vue +++ b/resources/js/components/Others/SetFolderIcon.vue @@ -39,8 +39,8 @@ export default { }, computed: { pickedEmoji () { - // If is color not seted send picked emoji via props to EmojiPicker for the EmojiSelected input - return !this.selectedColor ? this.selectedEmoji : '' + // If is color not selected and emoji is selected, push picked emoji to EmojiPicker for the EmojiSelected input + return !this.selectedColor && this.selectedEmoji ? this.selectedEmoji : '' } }, data() { @@ -76,7 +76,7 @@ export default { methods: { setIcon(value) { - // Set emoji + // Set color this.selectedColor = value.color this.selectedEmoji = undefined @@ -94,6 +94,9 @@ export default { this.selectedEmoji = icon.value.emoji this.selectedColor = undefined } + + // If want to set default folder icon from emoji, set selectedEmoji to undefined + icon.value === 'default' ? this.selectedEmoji = undefined : '' }) // If folder have already set some color set this color to selected color From 725a34b7d0a42c56552a08cf27a5e69cd8a63c6c Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Wed, 24 Feb 2021 16:00:05 +0100 Subject: [PATCH 3/5] maked separated ColorPicker component --- public/mix-manifest.json | 42 ++--- .../js/components/Others/ColorPicker.vue | 128 +++++++++++++++ .../js/components/Others/EmojiPicker.vue | 28 ++-- .../js/components/Others/SetFolderIcon.vue | 153 +++++------------- 4 files changed, 190 insertions(+), 161 deletions(-) create mode 100644 resources/js/components/Others/ColorPicker.vue diff --git a/public/mix-manifest.json b/public/mix-manifest.json index b7bf42d4..67a6a07c 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -75,34 +75,16 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c001bef2d6d5171cb359", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/js/main.fec7012ae1f34893589d.hot-update.js": "/js/main.fec7012ae1f34893589d.hot-update.js", - "/js/main.2ee91a6dae14a1cadc9b.hot-update.js": "/js/main.2ee91a6dae14a1cadc9b.hot-update.js", - "/js/main.9eae7983f12897789247.hot-update.js": "/js/main.9eae7983f12897789247.hot-update.js", - "/js/main.2d64c86de0df943928b2.hot-update.js": "/js/main.2d64c86de0df943928b2.hot-update.js", - "/js/main.810cff99631b1efd948d.hot-update.js": "/js/main.810cff99631b1efd948d.hot-update.js", - "/js/main.e600f466db5401999c97.hot-update.js": "/js/main.e600f466db5401999c97.hot-update.js", - "/js/main.2366d38febb62b9adb88.hot-update.js": "/js/main.2366d38febb62b9adb88.hot-update.js", - "/js/main.e0881260a9842557986a.hot-update.js": "/js/main.e0881260a9842557986a.hot-update.js", - "/js/main.3d08984a88c66c048927.hot-update.js": "/js/main.3d08984a88c66c048927.hot-update.js", - "/js/main.8e3c4561e7e37ae6a6c1.hot-update.js": "/js/main.8e3c4561e7e37ae6a6c1.hot-update.js", - "/js/main.67f4fde7abcafd6d46c5.hot-update.js": "/js/main.67f4fde7abcafd6d46c5.hot-update.js", - "/js/main.744dab728ca297b5c462.hot-update.js": "/js/main.744dab728ca297b5c462.hot-update.js", - "/js/main.7d48fe14fdbe694bee34.hot-update.js": "/js/main.7d48fe14fdbe694bee34.hot-update.js", - "/js/main.7ec9c64cc2b9c20d5365.hot-update.js": "/js/main.7ec9c64cc2b9c20d5365.hot-update.js", - "/js/main.cce692fa367da3518f20.hot-update.js": "/js/main.cce692fa367da3518f20.hot-update.js", - "/js/main.40ba52ba134116d832b1.hot-update.js": "/js/main.40ba52ba134116d832b1.hot-update.js", - "/js/main.62dfdf2da6591cb17225.hot-update.js": "/js/main.62dfdf2da6591cb17225.hot-update.js", - "/js/main.946ae0aec96e272e7a9a.hot-update.js": "/js/main.946ae0aec96e272e7a9a.hot-update.js", - "/js/main.49bb07b2e7950c7b10d2.hot-update.js": "/js/main.49bb07b2e7950c7b10d2.hot-update.js", - "/js/main.bb3f47712b180dc5faef.hot-update.js": "/js/main.bb3f47712b180dc5faef.hot-update.js", - "/js/main.8d39b3a6f8e4002b8796.hot-update.js": "/js/main.8d39b3a6f8e4002b8796.hot-update.js", - "/js/main.f9998fbbf511469ba9be.hot-update.js": "/js/main.f9998fbbf511469ba9be.hot-update.js", - "/js/main.a6d99609236f7fad62dc.hot-update.js": "/js/main.a6d99609236f7fad62dc.hot-update.js", - "/js/main.b7b1ab3b35c30738be1c.hot-update.js": "/js/main.b7b1ab3b35c30738be1c.hot-update.js", - "/js/main.4454030fcb222eadbbf7.hot-update.js": "/js/main.4454030fcb222eadbbf7.hot-update.js", - "/js/main.98be4f9f79ead6a88087.hot-update.js": "/js/main.98be4f9f79ead6a88087.hot-update.js", - "/js/main.03760e0d6f650b4ab3c2.hot-update.js": "/js/main.03760e0d6f650b4ab3c2.hot-update.js", - "/js/main.259e21addde39ee619b6.hot-update.js": "/js/main.259e21addde39ee619b6.hot-update.js", - "/js/main.e436af8370789152a668.hot-update.js": "/js/main.e436af8370789152a668.hot-update.js", - "/js/main.05eb0aab71d0fb3b6b09.hot-update.js": "/js/main.05eb0aab71d0fb3b6b09.hot-update.js" + "/js/main.f4dc288436914629fafd.hot-update.js": "/js/main.f4dc288436914629fafd.hot-update.js", + "/js/main.bd2090f4ef672caecf2e.hot-update.js": "/js/main.bd2090f4ef672caecf2e.hot-update.js", + "/js/main.008b0db192aeb3c22084.hot-update.js": "/js/main.008b0db192aeb3c22084.hot-update.js", + "/js/main.4a52cce25e297b4d0c6b.hot-update.js": "/js/main.4a52cce25e297b4d0c6b.hot-update.js", + "/js/main.6579cc274c986e1c4d9d.hot-update.js": "/js/main.6579cc274c986e1c4d9d.hot-update.js", + "/js/main.270fa6b54a1d256881a7.hot-update.js": "/js/main.270fa6b54a1d256881a7.hot-update.js", + "/js/main.1119332dbe1f0e94c697.hot-update.js": "/js/main.1119332dbe1f0e94c697.hot-update.js", + "/js/main.81c3b781acb1f687d3e8.hot-update.js": "/js/main.81c3b781acb1f687d3e8.hot-update.js", + "/js/main.fd3f39d3778dbc1a924b.hot-update.js": "/js/main.fd3f39d3778dbc1a924b.hot-update.js", + "/js/main.4304b0309e0e5d90af4c.hot-update.js": "/js/main.4304b0309e0e5d90af4c.hot-update.js", + "/js/main.7455806185c9030a60d6.hot-update.js": "/js/main.7455806185c9030a60d6.hot-update.js", + "/js/main.f80aa16e9ad85008bee4.hot-update.js": "/js/main.f80aa16e9ad85008bee4.hot-update.js" } diff --git a/resources/js/components/Others/ColorPicker.vue b/resources/js/components/Others/ColorPicker.vue new file mode 100644 index 00000000..a1a59743 --- /dev/null +++ b/resources/js/components/Others/ColorPicker.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/resources/js/components/Others/EmojiPicker.vue b/resources/js/components/Others/EmojiPicker.vue index 4f982dee..b17d519d 100644 --- a/resources/js/components/Others/EmojiPicker.vue +++ b/resources/js/components/Others/EmojiPicker.vue @@ -3,10 +3,10 @@ -
+
-
+
@@ -15,7 +15,7 @@
-
+
{{ $t('popup_rename.set_emoji_input_placeholder') }}
@@ -45,10 +45,10 @@
-
+
    -
  • +
@@ -59,7 +59,7 @@
    -
  • +
@@ -93,9 +93,6 @@ export default { }, computed: { ...mapGetters([ 'emojis' ]), - allEmoji() { - return groupBy(this.emojis.emojisList, 'group') - } }, data () { return { @@ -109,6 +106,9 @@ export default { } }, methods: { + allEmoji() { + return groupBy(this.emojis.emojisList, 'group') + }, checkGroupInView: _.debounce( function() { this.emojis.emojisGroups.forEach(group => { @@ -149,7 +149,7 @@ export default { this.filteredEmojisLoaded = true }, 800), - openMenu() { + openList() { this.loadedList = false @@ -173,12 +173,12 @@ export default { this.groupInView = 'Smileys & Emotion' }, - setIcon(value) { + setEmoji(value) { // Set emoji - this.selectedEmoji = value.emoji + this.selectedEmoji = value - events.$emit('setFolderIcon', { 'value': value }) + this.$emit('input', value) this.selectOpen = false }, @@ -186,7 +186,7 @@ export default { this.selectedEmoji = undefined - events.$emit('setFolderIcon', { 'value': 'default' }) + this.$emit('input', 'default') } }, mounted() { diff --git a/resources/js/components/Others/SetFolderIcon.vue b/resources/js/components/Others/SetFolderIcon.vue index bdba564e..110673fe 100644 --- a/resources/js/components/Others/SetFolderIcon.vue +++ b/resources/js/components/Others/SetFolderIcon.vue @@ -3,27 +3,19 @@ - + -
- -
    -
  • - - -
  • -
-
+
@@ -112,67 +91,7 @@ export default { @import "@assets/vue-file-manager/_inapp-forms.scss"; @import '@assets/vue-file-manager/_forms'; -.color-pick-wrapper { - .color-wrapper { - margin-bottom: 20px; - display: grid; - grid-template-columns: repeat(auto-fill, 32px); - justify-content: space-between; - gap: 7px; - - .single-color { - height: 31px; - list-style: none; - border-radius: 8px; - cursor: pointer; - position: relative; - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; - - .color-icon { - z-index: 2; - - polyline { - stroke: white; - } - } - - .color-box { - width: 100%; - height: 100%; - position: absolute; - display: block; - } - } - } -} - -.main-label { - @include font-size(14); - font-weight: 700; - margin-bottom: 8px; - display: block; -} - .set-folder-icon { position: relative; } - -@media (prefers-color-scheme: dark) { - .color-pick-wrapper { - .color-wrapper { - .single-color { - &.active-color { - border: 2px solid; - } - - &:hover { - border: 2px solid $dark_mode_text_primary; - } - } - } - } -} From 7a963cf5b3e37a5af8b4e61f58b5b2a50d77b8d6 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Thu, 25 Feb 2021 18:11:20 +0100 Subject: [PATCH 4/5] fix: VueFileManager default title in mails, ShareCreate / ShareEdit opening via CopyInput --- app/Notifications/ResetPassword.php | 8 +- app/Notifications/SharedSendViaEmail.php | 6 +- public/mix-manifest.json | 27 +- .../js/components/FilesView/ContextMenu.vue | 4 +- .../components/Others/Popup/PopupWrapper.vue | 3 + resources/js/components/Others/ShareEdit.vue | 1 + resources/lang/cn/vuefilemanager.php | 1 + resources/lang/en/vuefilemanager.php | 9 +- resources/lang/sk/vuefilemanager.php | 1 + .../views/vendor/mail/html/button.blade.php | 19 ++ .../views/vendor/mail/html/footer.blade.php | 11 + .../views/vendor/mail/html/header.blade.php | 11 + .../views/vendor/mail/html/layout.blade.php | 54 ++++ .../views/vendor/mail/html/message.blade.php | 34 +++ .../views/vendor/mail/html/panel.blade.php | 14 + .../views/vendor/mail/html/subcopy.blade.php | 7 + .../views/vendor/mail/html/table.blade.php | 3 + .../views/vendor/mail/html/themes/default.css | 289 ++++++++++++++++++ .../views/vendor/mail/text/button.blade.php | 1 + .../views/vendor/mail/text/footer.blade.php | 1 + .../views/vendor/mail/text/header.blade.php | 1 + .../views/vendor/mail/text/layout.blade.php | 9 + .../views/vendor/mail/text/message.blade.php | 27 ++ .../views/vendor/mail/text/panel.blade.php | 1 + .../views/vendor/mail/text/subcopy.blade.php | 1 + .../views/vendor/mail/text/table.blade.php | 1 + 26 files changed, 522 insertions(+), 22 deletions(-) create mode 100644 resources/views/vendor/mail/html/button.blade.php create mode 100644 resources/views/vendor/mail/html/footer.blade.php create mode 100644 resources/views/vendor/mail/html/header.blade.php create mode 100644 resources/views/vendor/mail/html/layout.blade.php create mode 100644 resources/views/vendor/mail/html/message.blade.php create mode 100644 resources/views/vendor/mail/html/panel.blade.php create mode 100644 resources/views/vendor/mail/html/subcopy.blade.php create mode 100644 resources/views/vendor/mail/html/table.blade.php create mode 100644 resources/views/vendor/mail/html/themes/default.css create mode 100644 resources/views/vendor/mail/text/button.blade.php create mode 100644 resources/views/vendor/mail/text/footer.blade.php create mode 100644 resources/views/vendor/mail/text/header.blade.php create mode 100644 resources/views/vendor/mail/text/layout.blade.php create mode 100644 resources/views/vendor/mail/text/message.blade.php create mode 100644 resources/views/vendor/mail/text/panel.blade.php create mode 100644 resources/views/vendor/mail/text/subcopy.blade.php create mode 100644 resources/views/vendor/mail/text/table.blade.php diff --git a/app/Notifications/ResetPassword.php b/app/Notifications/ResetPassword.php index 74320caa..7853c244 100644 --- a/app/Notifications/ResetPassword.php +++ b/app/Notifications/ResetPassword.php @@ -2,6 +2,7 @@ namespace App\Notifications; +use App\Setting; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; @@ -41,14 +42,17 @@ class ResetPassword extends Notification public function toMail($notifiable) { $reset_url = url('/create-new-password?token=' . $this->token); + + $get_name = strval(Setting::where('name', 'app_title')->pluck('value')[0]); + $app_name = $get_name ? $get_name : 'VueFileManager'; return (new MailMessage) - ->subject(__('vuefilemanager.reset_password_subject') . config('vuefilemanager.app_name')) + ->subject(__('vuefilemanager.reset_password_subject') . $app_name) ->greeting(__('vuefilemanager.reset_password_greeting')) ->line(__('vuefilemanager.reset_password_line_1')) ->action(__('vuefilemanager.reset_password_action'), $reset_url) ->line(__('vuefilemanager.reset_password_line_2')) - ->salutation(__('vuefilemanager.salutation') . ', ' . config('vuefilemanager.app_name')); + ->salutation(__('vuefilemanager.salutation') . ', ' . $app_name ); } /** diff --git a/app/Notifications/SharedSendViaEmail.php b/app/Notifications/SharedSendViaEmail.php index 7cd1a2b5..381c5570 100644 --- a/app/Notifications/SharedSendViaEmail.php +++ b/app/Notifications/SharedSendViaEmail.php @@ -2,6 +2,7 @@ namespace App\Notifications; +use App\Setting; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Support\Facades\Auth; @@ -42,11 +43,14 @@ class SharedSendViaEmail extends Notification */ public function toMail($notifiable) { + $app_name = strval(Setting::where('name', 'app_title')->pluck('value')[0]); + return (new MailMessage) ->subject(__('vuefilemanager.shared_link_email_subject' , ['user' => $this->user->name])) ->greeting(__('vuefilemanager.shared_link_email_greeting')) ->line(__('vuefilemanager.shared_link_email_user', ['user' => $this->user->name, 'email' => $this->user->email])) - ->action(__('vuefilemanager.shared_link_email_link'), url('/shared', ['token' => $this->token])); + ->action(__('vuefilemanager.shared_link_email_link'), url('/shared', ['token' => $this->token])) + ->salutation(__('vuefilemanager.shared_link_email_salutation', ['app_name' => $app_name ? $app_name : 'VueFileManager'])); } /** diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 67a6a07c..dfb8e4e9 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -29,7 +29,7 @@ "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=a2eed5073e52410cab54", "/chunks/files.js": "/chunks/files.js?id=b738eb9054e663cc32b7", "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=b646ec02fb9d6a497e74", - "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=f61085447efd33a6ebbb", + "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=6948f858eca208df8919", "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=47ade53389e84dd64310", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=d5e39543eeb619cb5513", "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=be9304e6ba2c61b6cab3", @@ -75,16 +75,17 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c001bef2d6d5171cb359", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/js/main.f4dc288436914629fafd.hot-update.js": "/js/main.f4dc288436914629fafd.hot-update.js", - "/js/main.bd2090f4ef672caecf2e.hot-update.js": "/js/main.bd2090f4ef672caecf2e.hot-update.js", - "/js/main.008b0db192aeb3c22084.hot-update.js": "/js/main.008b0db192aeb3c22084.hot-update.js", - "/js/main.4a52cce25e297b4d0c6b.hot-update.js": "/js/main.4a52cce25e297b4d0c6b.hot-update.js", - "/js/main.6579cc274c986e1c4d9d.hot-update.js": "/js/main.6579cc274c986e1c4d9d.hot-update.js", - "/js/main.270fa6b54a1d256881a7.hot-update.js": "/js/main.270fa6b54a1d256881a7.hot-update.js", - "/js/main.1119332dbe1f0e94c697.hot-update.js": "/js/main.1119332dbe1f0e94c697.hot-update.js", - "/js/main.81c3b781acb1f687d3e8.hot-update.js": "/js/main.81c3b781acb1f687d3e8.hot-update.js", - "/js/main.fd3f39d3778dbc1a924b.hot-update.js": "/js/main.fd3f39d3778dbc1a924b.hot-update.js", - "/js/main.4304b0309e0e5d90af4c.hot-update.js": "/js/main.4304b0309e0e5d90af4c.hot-update.js", - "/js/main.7455806185c9030a60d6.hot-update.js": "/js/main.7455806185c9030a60d6.hot-update.js", - "/js/main.f80aa16e9ad85008bee4.hot-update.js": "/js/main.f80aa16e9ad85008bee4.hot-update.js" + "/chunks/files~chunks/shared-files~chunks/shared-page.5b29c242c49c58340f1b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.5b29c242c49c58340f1b.hot-update.js", + "/js/main.c83f793f7444b47d13a1.hot-update.js": "/js/main.c83f793f7444b47d13a1.hot-update.js", + "/js/main.570d62e24b3d35d39178.hot-update.js": "/js/main.570d62e24b3d35d39178.hot-update.js", + "/js/main.3703274ea498354cc13b.hot-update.js": "/js/main.3703274ea498354cc13b.hot-update.js", + "/js/main.791c5b51283a97951504.hot-update.js": "/js/main.791c5b51283a97951504.hot-update.js", + "/js/main.b6381cda8d15b5db30c9.hot-update.js": "/js/main.b6381cda8d15b5db30c9.hot-update.js", + "/js/main.f0c2877baa9090653d42.hot-update.js": "/js/main.f0c2877baa9090653d42.hot-update.js", + "/js/main.1558a02e34c559d48485.hot-update.js": "/js/main.1558a02e34c559d48485.hot-update.js", + "/js/main.8dcc4df9977a0a7f40f9.hot-update.js": "/js/main.8dcc4df9977a0a7f40f9.hot-update.js", + "/js/main.46a090fef2e2ba1414f6.hot-update.js": "/js/main.46a090fef2e2ba1414f6.hot-update.js", + "/js/main.43e0e910643150929a3d.hot-update.js": "/js/main.43e0e910643150929a3d.hot-update.js", + "/js/main.f95fa4d8a3bdd65a21dd.hot-update.js": "/js/main.f95fa4d8a3bdd65a21dd.hot-update.js", + "/js/main.717716b6c2ed8fbadd46.hot-update.js": "/js/main.717716b6c2ed8fbadd46.hot-update.js" } diff --git a/resources/js/components/FilesView/ContextMenu.vue b/resources/js/components/FilesView/ContextMenu.vue index 9330b94d..a7a0988c 100644 --- a/resources/js/components/FilesView/ContextMenu.vue +++ b/resources/js/components/FilesView/ContextMenu.vue @@ -114,8 +114,8 @@ - - diff --git a/resources/js/components/Others/Popup/PopupWrapper.vue b/resources/js/components/Others/Popup/PopupWrapper.vue index 7e5945e0..8b1e8790 100644 --- a/resources/js/components/Others/Popup/PopupWrapper.vue +++ b/resources/js/components/Others/Popup/PopupWrapper.vue @@ -33,6 +33,9 @@ if (this.name === name) this.isVisibleWrapper = true + + if( (this.name !== name)) + this.isVisibleWrapper = false }) // Open called popup diff --git a/resources/js/components/Others/ShareEdit.vue b/resources/js/components/Others/ShareEdit.vue index 8d154677..9e89bb43 100644 --- a/resources/js/components/Others/ShareEdit.vue +++ b/resources/js/components/Others/ShareEdit.vue @@ -333,6 +333,7 @@ if (args.sentToEmail) this.sendToRecipientsMenu = true + this.isEmailSended = false this.canChangePassword = args.item.shared.protected }) diff --git a/resources/lang/cn/vuefilemanager.php b/resources/lang/cn/vuefilemanager.php index 627117ba..83715e14 100644 --- a/resources/lang/cn/vuefilemanager.php +++ b/resources/lang/cn/vuefilemanager.php @@ -12,6 +12,7 @@ return [ 'shared_link_email_greeting' => 'Hello!', 'shared_link_email_user' => ':user (:email) send you a link to shared files.', 'shared_link_email_link' => 'Open your files', + 'shared_link_email_salutation' => 'Regards, :app_name', // Reset password email 'reset_password_greeting' => 'Hello!', diff --git a/resources/lang/en/vuefilemanager.php b/resources/lang/en/vuefilemanager.php index c0717c38..3095fb51 100644 --- a/resources/lang/en/vuefilemanager.php +++ b/resources/lang/en/vuefilemanager.php @@ -8,10 +8,11 @@ return [ 'home' => 'Home', //Shared link email message - 'shared_link_email_subject' => '🙋 :user share some files with you. Look at it!', - 'shared_link_email_greeting' => 'Hello!', - 'shared_link_email_user' => ':user (:email) send you a link to shared files.', - 'shared_link_email_link' => 'Open your files', + 'shared_link_email_subject' => '🙋 :user share some files with you. Look at it!', + 'shared_link_email_greeting' => 'Hello!', + 'shared_link_email_user' => ':user (:email) send you a link to shared files.', + 'shared_link_email_link' => 'Open your files', + 'shared_link_email_salutation' => 'Regards, :app_name', // Reset password email 'reset_password_greeting' => 'Hello!', diff --git a/resources/lang/sk/vuefilemanager.php b/resources/lang/sk/vuefilemanager.php index 0d88dc5f..ba130ab0 100644 --- a/resources/lang/sk/vuefilemanager.php +++ b/resources/lang/sk/vuefilemanager.php @@ -12,6 +12,7 @@ return [ 'shared_link_email_greeting' => 'Ahoj!', 'shared_link_email_user' => ':user (:email) vám posiela odkaz pre zdieľané súbory.', 'shared_link_email_link' => 'Vaše súbory', + 'shared_link_email_salutation' => 'S pozdravom, :app_name', // Reset password email 'reset_password_greeting' => 'Ahoj!', diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php new file mode 100644 index 00000000..e74fe55a --- /dev/null +++ b/resources/views/vendor/mail/html/button.blade.php @@ -0,0 +1,19 @@ + + + + + diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php new file mode 100644 index 00000000..3ff41f89 --- /dev/null +++ b/resources/views/vendor/mail/html/footer.blade.php @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php new file mode 100644 index 00000000..fa1875ca --- /dev/null +++ b/resources/views/vendor/mail/html/header.blade.php @@ -0,0 +1,11 @@ + + + +@if (trim($slot) === 'Laravel') + +@else +{{ $slot }} +@endif + + + diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php new file mode 100644 index 00000000..02a54e2d --- /dev/null +++ b/resources/views/vendor/mail/html/layout.blade.php @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php new file mode 100644 index 00000000..1ff6d7a2 --- /dev/null +++ b/resources/views/vendor/mail/html/message.blade.php @@ -0,0 +1,34 @@ +pluck('value')[0]); + +?> + +@component('mail::layout') +{{-- Header --}} +@slot('header') +@component('mail::header', ['url' => config('app.url')]) +{{ $app_name ? $app_name : 'VueFileManager' }} +@endcomponent +@endslot + +{{-- Body --}} +{{ $slot }} + +{{-- Subcopy --}} +@isset($subcopy) +@slot('subcopy') +@component('mail::subcopy') +{{ $subcopy }} +@endcomponent +@endslot +@endisset + +{{-- Footer --}} +@slot('footer') +@component('mail::footer') +© {{ date('Y') }} {{ $app_name ? $app_name : 'VueFileManager' }}. @lang('All rights reserved.') +@endcomponent +@endslot +@endcomponent diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php new file mode 100644 index 00000000..2975a60a --- /dev/null +++ b/resources/views/vendor/mail/html/panel.blade.php @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php new file mode 100644 index 00000000..790ce6c2 --- /dev/null +++ b/resources/views/vendor/mail/html/subcopy.blade.php @@ -0,0 +1,7 @@ + + + + + diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php new file mode 100644 index 00000000..a5f3348b --- /dev/null +++ b/resources/views/vendor/mail/html/table.blade.php @@ -0,0 +1,3 @@ +
+{{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css new file mode 100644 index 00000000..350fb838 --- /dev/null +++ b/resources/views/vendor/mail/html/themes/default.css @@ -0,0 +1,289 @@ +/* Base */ + +body, +body *:not(html):not(style):not(br):not(tr):not(code) { + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + position: relative; +} + +body { + -webkit-text-size-adjust: none; + background-color: #ffffff; + color: #718096; + height: 100%; + line-height: 1.4; + margin: 0; + padding: 0; + width: 100% !important; +} + +p, +ul, +ol, +blockquote { + line-height: 1.4; + text-align: left; +} + +a { + color: #3869d4; +} + +a img { + border: none; +} + +/* Typography */ + +h1 { + color: #3d4852; + font-size: 18px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h2 { + font-size: 16px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h3 { + font-size: 14px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +p { + font-size: 16px; + line-height: 1.5em; + margin-top: 0; + text-align: left; +} + +p.sub { + font-size: 12px; +} + +img { + max-width: 100%; +} + +/* Layout */ + +.wrapper { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.content { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 0; + padding: 0; + width: 100%; +} + +/* Header */ + +.header { + padding: 25px 0; + text-align: center; +} + +.header a { + color: #3d4852; + font-size: 19px; + font-weight: bold; + text-decoration: none; +} + +/* Logo */ + +.logo { + height: 75px; + width: 75px; +} + +/* Body */ + +.body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + border-bottom: 1px solid #edf2f7; + border-top: 1px solid #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.inner-body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + background-color: #ffffff; + border-color: #e8e5ef; + border-radius: 2px; + border-width: 1px; + box-shadow: 0 2px 0 rgba(0, 0, 150, 0.025), 2px 4px 0 rgba(0, 0, 150, 0.015); + margin: 0 auto; + padding: 0; + width: 570px; +} + +/* Subcopy */ + +.subcopy { + border-top: 1px solid #e8e5ef; + margin-top: 25px; + padding-top: 25px; +} + +.subcopy p { + font-size: 14px; +} + +/* Footer */ + +.footer { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + margin: 0 auto; + padding: 0; + text-align: center; + width: 570px; +} + +.footer p { + color: #b0adc5; + font-size: 12px; + text-align: center; +} + +.footer a { + color: #b0adc5; + text-decoration: underline; +} + +/* Tables */ + +.table table { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + width: 100%; +} + +.table th { + border-bottom: 1px solid #edeff2; + margin: 0; + padding-bottom: 8px; +} + +.table td { + color: #74787e; + font-size: 15px; + line-height: 18px; + margin: 0; + padding: 10px 0; +} + +.content-cell { + max-width: 100vw; + padding: 32px; +} + +/* Buttons */ + +.action { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + padding: 0; + text-align: center; + width: 100%; +} + +.button { + -webkit-text-size-adjust: none; + border-radius: 4px; + color: #fff; + display: inline-block; + overflow: hidden; + text-decoration: none; +} + +.button-blue, +.button-primary { + background-color: #2d3748; + border-bottom: 8px solid #2d3748; + border-left: 18px solid #2d3748; + border-right: 18px solid #2d3748; + border-top: 8px solid #2d3748; +} + +.button-green, +.button-success { + background-color: #48bb78; + border-bottom: 8px solid #48bb78; + border-left: 18px solid #48bb78; + border-right: 18px solid #48bb78; + border-top: 8px solid #48bb78; +} + +.button-red, +.button-error { + background-color: #e53e3e; + border-bottom: 8px solid #e53e3e; + border-left: 18px solid #e53e3e; + border-right: 18px solid #e53e3e; + border-top: 8px solid #e53e3e; +} + +/* Panels */ + +.panel { + border-left: #2d3748 solid 4px; + margin: 21px 0; +} + +.panel-content { + background-color: #edf2f7; + color: #718096; + padding: 16px; +} + +.panel-content p { + color: #718096; +} + +.panel-item { + padding: 0; +} + +.panel-item p:last-of-type { + margin-bottom: 0; + padding-bottom: 0; +} + +/* Utilities */ + +.break-all { + word-break: break-all; +} diff --git a/resources/views/vendor/mail/text/button.blade.php b/resources/views/vendor/mail/text/button.blade.php new file mode 100644 index 00000000..97444ebd --- /dev/null +++ b/resources/views/vendor/mail/text/button.blade.php @@ -0,0 +1 @@ +{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/footer.blade.php b/resources/views/vendor/mail/text/footer.blade.php new file mode 100644 index 00000000..3338f620 --- /dev/null +++ b/resources/views/vendor/mail/text/footer.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/header.blade.php b/resources/views/vendor/mail/text/header.blade.php new file mode 100644 index 00000000..aaa3e575 --- /dev/null +++ b/resources/views/vendor/mail/text/header.blade.php @@ -0,0 +1 @@ +[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/text/layout.blade.php b/resources/views/vendor/mail/text/layout.blade.php new file mode 100644 index 00000000..9378baa0 --- /dev/null +++ b/resources/views/vendor/mail/text/layout.blade.php @@ -0,0 +1,9 @@ +{!! strip_tags($header) !!} + +{!! strip_tags($slot) !!} +@isset($subcopy) + +{!! strip_tags($subcopy) !!} +@endisset + +{!! strip_tags($footer) !!} diff --git a/resources/views/vendor/mail/text/message.blade.php b/resources/views/vendor/mail/text/message.blade.php new file mode 100644 index 00000000..1ae9ed8f --- /dev/null +++ b/resources/views/vendor/mail/text/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') + {{-- Header --}} + @slot('header') + @component('mail::header', ['url' => config('app.url')]) + {{ config('app.name') }} + @endcomponent + @endslot + + {{-- Body --}} + {{ $slot }} + + {{-- Subcopy --}} + @isset($subcopy) + @slot('subcopy') + @component('mail::subcopy') + {{ $subcopy }} + @endcomponent + @endslot + @endisset + + {{-- Footer --}} + @slot('footer') + @component('mail::footer') + © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') + @endcomponent + @endslot +@endcomponent diff --git a/resources/views/vendor/mail/text/panel.blade.php b/resources/views/vendor/mail/text/panel.blade.php new file mode 100644 index 00000000..3338f620 --- /dev/null +++ b/resources/views/vendor/mail/text/panel.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/subcopy.blade.php b/resources/views/vendor/mail/text/subcopy.blade.php new file mode 100644 index 00000000..3338f620 --- /dev/null +++ b/resources/views/vendor/mail/text/subcopy.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/table.blade.php b/resources/views/vendor/mail/text/table.blade.php new file mode 100644 index 00000000..3338f620 --- /dev/null +++ b/resources/views/vendor/mail/text/table.blade.php @@ -0,0 +1 @@ +{{ $slot }} From 7dd4e65d77ddfb440cb568209abc9dc9f7f54d15 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Fri, 26 Feb 2021 17:14:21 +0100 Subject: [PATCH 5/5] add SetFolderIcon for CreateFolder on mobile device, change SetFolderIcon payload --- .../FileFunctions/EditItemsController.php | 8 ++--- app/Http/Tools/Demo.php | 6 ++-- app/Http/Tools/Editor.php | 16 +++++----- app/Notifications/ResetPassword.php | 9 ++---- app/Notifications/SharedSendViaEmail.php | 5 +--- public/mix-manifest.json | 29 ++++++++++-------- .../js/components/Others/CreateFolder.vue | 27 +++++++++++++++-- resources/js/components/Others/RenameItem.vue | 5 ++-- .../js/components/Others/SetFolderIcon.vue | 30 +++++++++++-------- resources/js/store/modules/fileFunctions.js | 7 +++-- .../views/vendor/mail/html/message.blade.php | 10 ++----- 11 files changed, 87 insertions(+), 65 deletions(-) diff --git a/app/Http/Controllers/FileFunctions/EditItemsController.php b/app/Http/Controllers/FileFunctions/EditItemsController.php index 60b496df..c867c881 100644 --- a/app/Http/Controllers/FileFunctions/EditItemsController.php +++ b/app/Http/Controllers/FileFunctions/EditItemsController.php @@ -116,9 +116,9 @@ class EditItemsController extends Controller } // If request have a change folder icon values set the folder icon - if ($request->type === 'folder' && $request->filled('folder_icon')) { + if ($request->type === 'folder' && $request->filled('icon')) { - Editor::set_folder_icon($request->folder_icon, $unique_id); + Editor::set_folder_icon($request->icon, $unique_id); } // Rename Item @@ -158,9 +158,9 @@ class EditItemsController extends Controller } // If request have a change folder icon values set the folder icon - if ($request->type === 'folder' && $request->filled('folder_icon')) { + if ($request->type === 'folder' && $request->filled('icon')) { - Editor::set_folder_icon($request->folder_icon, $unique_id, $shared); + Editor::set_folder_icon($request->icon, $unique_id, $shared); } // Rename item diff --git a/app/Http/Tools/Demo.php b/app/Http/Tools/Demo.php index 573b06c3..9f62bb8c 100644 --- a/app/Http/Tools/Demo.php +++ b/app/Http/Tools/Demo.php @@ -42,6 +42,8 @@ class Demo 'unique_id' => random_int(1000, 9999), 'user_scope' => $user_scope, 'items' => '0', + 'icon_color' => isset($request->icon['color']) ? $request->icon['color'] : null, + 'icon_emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null, 'updated_at' => Carbon::now()->format('j M Y \a\t H:i'), 'created_at' => Carbon::now()->format('j M Y \a\t H:i'), ]; @@ -72,8 +74,8 @@ class Demo if ($item) { $item->name = $request->name; - $item->icon_emoji = $request->folder_icon['emoji'] ?? null; - $item->icon_color = $request->folder_icon['color'] ?? null; + $item->icon_emoji = $request->icon['emoji'] ?? null; + $item->icon_color = $request->icon['color'] ?? null; return $item; diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index d5448ebe..420965ea 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -29,11 +29,11 @@ class Editor /** * Store folder icon * - * @param $folder_icon + * @param $icon * @param $unique_id * @param $shared */ - public static function set_folder_icon($folder_icon, $unique_id, $shared = null) + public static function set_folder_icon($icon, $unique_id, $shared = null) { $user_id = is_null($shared) ? Auth::id() : $shared->user_id; @@ -43,21 +43,21 @@ class Editor ->first(); // Set default folder icon - if ($folder_icon === 'default') { + if ($icon === 'default') { $folder->icon_emoji = null; $folder->icon_color = null; } // If request have emoji set folder icon emoji - if (isset($folder_icon['emoji'])) { - $folder->icon_emoji = $folder_icon['emoji']; + if (isset($icon['emoji'])) { + $folder->icon_emoji = $icon['emoji']; $folder->icon_color = null; } // If request have color set folder icon color - if (isset($folder_icon['color'])) { + if (isset($icon['color'])) { $folder->icon_emoji = null; - $folder->icon_color = $folder_icon['color']; + $folder->icon_color = $icon['color']; } // Save changes @@ -235,6 +235,8 @@ class Editor 'user_id' => $user_id, 'type' => 'folder', 'name' => $name, + 'icon_color' => isset($request->icon['color']) ? $request->icon['color'] : null, + 'icon_emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null, ]); // Return new folder diff --git a/app/Notifications/ResetPassword.php b/app/Notifications/ResetPassword.php index 7853c244..b7d63541 100644 --- a/app/Notifications/ResetPassword.php +++ b/app/Notifications/ResetPassword.php @@ -2,7 +2,6 @@ namespace App\Notifications; -use App\Setting; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; @@ -42,17 +41,15 @@ class ResetPassword extends Notification public function toMail($notifiable) { $reset_url = url('/create-new-password?token=' . $this->token); - - $get_name = strval(Setting::where('name', 'app_title')->pluck('value')[0]); - $app_name = $get_name ? $get_name : 'VueFileManager'; + $app_name = get_setting('app_title') ?? 'VueFileManager'; return (new MailMessage) - ->subject(__('vuefilemanager.reset_password_subject') . $app_name) + ->subject(__('vuefilemanager.reset_password_subject') . $app_name) ->greeting(__('vuefilemanager.reset_password_greeting')) ->line(__('vuefilemanager.reset_password_line_1')) ->action(__('vuefilemanager.reset_password_action'), $reset_url) ->line(__('vuefilemanager.reset_password_line_2')) - ->salutation(__('vuefilemanager.salutation') . ', ' . $app_name ); + ->salutation(__('vuefilemanager.salutation') . ', ' . $app_name); } /** diff --git a/app/Notifications/SharedSendViaEmail.php b/app/Notifications/SharedSendViaEmail.php index 381c5570..cc1f9057 100644 --- a/app/Notifications/SharedSendViaEmail.php +++ b/app/Notifications/SharedSendViaEmail.php @@ -2,7 +2,6 @@ namespace App\Notifications; -use App\Setting; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Support\Facades\Auth; @@ -43,14 +42,12 @@ class SharedSendViaEmail extends Notification */ public function toMail($notifiable) { - $app_name = strval(Setting::where('name', 'app_title')->pluck('value')[0]); - return (new MailMessage) ->subject(__('vuefilemanager.shared_link_email_subject' , ['user' => $this->user->name])) ->greeting(__('vuefilemanager.shared_link_email_greeting')) ->line(__('vuefilemanager.shared_link_email_user', ['user' => $this->user->name, 'email' => $this->user->email])) ->action(__('vuefilemanager.shared_link_email_link'), url('/shared', ['token' => $this->token])) - ->salutation(__('vuefilemanager.shared_link_email_salutation', ['app_name' => $app_name ? $app_name : 'VueFileManager'])); + ->salutation(__('vuefilemanager.shared_link_email_salutation', ['app_name' => get_setting('app_title') ?? 'VueFileManager'])); } /** diff --git a/public/mix-manifest.json b/public/mix-manifest.json index dfb8e4e9..d575f794 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -75,17 +75,20 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c001bef2d6d5171cb359", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/chunks/files~chunks/shared-files~chunks/shared-page.5b29c242c49c58340f1b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.5b29c242c49c58340f1b.hot-update.js", - "/js/main.c83f793f7444b47d13a1.hot-update.js": "/js/main.c83f793f7444b47d13a1.hot-update.js", - "/js/main.570d62e24b3d35d39178.hot-update.js": "/js/main.570d62e24b3d35d39178.hot-update.js", - "/js/main.3703274ea498354cc13b.hot-update.js": "/js/main.3703274ea498354cc13b.hot-update.js", - "/js/main.791c5b51283a97951504.hot-update.js": "/js/main.791c5b51283a97951504.hot-update.js", - "/js/main.b6381cda8d15b5db30c9.hot-update.js": "/js/main.b6381cda8d15b5db30c9.hot-update.js", - "/js/main.f0c2877baa9090653d42.hot-update.js": "/js/main.f0c2877baa9090653d42.hot-update.js", - "/js/main.1558a02e34c559d48485.hot-update.js": "/js/main.1558a02e34c559d48485.hot-update.js", - "/js/main.8dcc4df9977a0a7f40f9.hot-update.js": "/js/main.8dcc4df9977a0a7f40f9.hot-update.js", - "/js/main.46a090fef2e2ba1414f6.hot-update.js": "/js/main.46a090fef2e2ba1414f6.hot-update.js", - "/js/main.43e0e910643150929a3d.hot-update.js": "/js/main.43e0e910643150929a3d.hot-update.js", - "/js/main.f95fa4d8a3bdd65a21dd.hot-update.js": "/js/main.f95fa4d8a3bdd65a21dd.hot-update.js", - "/js/main.717716b6c2ed8fbadd46.hot-update.js": "/js/main.717716b6c2ed8fbadd46.hot-update.js" + "/js/main.8c774260a56e57a3b3e3.hot-update.js": "/js/main.8c774260a56e57a3b3e3.hot-update.js", + "/js/main.47d60d876801c7437f39.hot-update.js": "/js/main.47d60d876801c7437f39.hot-update.js", + "/js/main.3c96f48e66405f57e071.hot-update.js": "/js/main.3c96f48e66405f57e071.hot-update.js", + "/js/main.bdc09d04e7737afe68a4.hot-update.js": "/js/main.bdc09d04e7737afe68a4.hot-update.js", + "/js/main.d0602bf732496882966e.hot-update.js": "/js/main.d0602bf732496882966e.hot-update.js", + "/js/main.93a11de54d1cc713badc.hot-update.js": "/js/main.93a11de54d1cc713badc.hot-update.js", + "/js/main.e18e39bbe3290f9cb2e4.hot-update.js": "/js/main.e18e39bbe3290f9cb2e4.hot-update.js", + "/js/main.97927df7f2cb7121c650.hot-update.js": "/js/main.97927df7f2cb7121c650.hot-update.js", + "/js/main.0bd5f386525ab3325441.hot-update.js": "/js/main.0bd5f386525ab3325441.hot-update.js", + "/js/main.dd8c70ab19b4d8fb8769.hot-update.js": "/js/main.dd8c70ab19b4d8fb8769.hot-update.js", + "/js/main.2d1a8ef45ea9dd2950e9.hot-update.js": "/js/main.2d1a8ef45ea9dd2950e9.hot-update.js", + "/js/main.b8bd056e4e448bcc904f.hot-update.js": "/js/main.b8bd056e4e448bcc904f.hot-update.js", + "/js/main.a8b9b00008c4305878f7.hot-update.js": "/js/main.a8b9b00008c4305878f7.hot-update.js", + "/js/main.9bf9d8af95376cc35566.hot-update.js": "/js/main.9bf9d8af95376cc35566.hot-update.js", + "/js/main.205e30e6aaa9361c0237.hot-update.js": "/js/main.205e30e6aaa9361c0237.hot-update.js", + "/js/main.59ee74fe23ff591a4922.hot-update.js": "/js/main.59ee74fe23ff591a4922.hot-update.js" } diff --git a/resources/js/components/Others/CreateFolder.vue b/resources/js/components/Others/CreateFolder.vue index 45ab116b..a64e30d1 100644 --- a/resources/js/components/Others/CreateFolder.vue +++ b/resources/js/components/Others/CreateFolder.vue @@ -16,6 +16,10 @@ {{ errors[0] }} + + + + {{ moreOptionsTitle }} @@ -44,11 +48,11 @@ import PopupContent from '@/components/Others/Popup/PopupContent' import PopupHeader from '@/components/Others/Popup/PopupHeader' import ThumbnailItem from '@/components/Others/ThumbnailItem' + import SetFolderIcon from '@/components/Others/SetFolderIcon' import ActionButton from '@/components/Others/ActionButton' import ButtonBase from '@/components/FilesView/ButtonBase' import {required} from 'vee-validate/dist/rules' import {events} from '@/bus' - import axios from 'axios' export default { name: 'CreateFolder', @@ -56,6 +60,7 @@ ValidationProvider, ValidationObserver, ThumbnailItem, + SetFolderIcon, ActionButton, PopupWrapper, PopupActions, @@ -64,19 +69,29 @@ ButtonBase, required, }, + computed: { + moreOptionsTitle() { + return this.isMoreOptions ? this.$t('shared_form.button_close_options') : this.$t('shared_form.button_folder_icon_open') + } + }, data() { return { name: undefined, + isMoreOptions: false, + folderIcon: undefined } }, methods: { + moreOptions() { + this.isMoreOptions = !this.isMoreOptions + }, async createFolder() { // Validate fields const isValid = await this.$refs.createForm.validate(); if (isValid) { - this.$store.dispatch('createFolder', this.name) + this.$store.dispatch('createFolder', {'name':this.name, 'icon': this.folderIcon}) this.$closePopup() @@ -85,11 +100,19 @@ }, }, mounted() { + events.$on('setFolderIcon', (icon) => { + this.folderIcon = icon + }) + events.$on('popup:open', ({name}) => { if (name === 'create-folder' && ! this.$isMobile()) this.$nextTick(() => this.$refs.input.focus()) }) + + events.$on('setFolderIcon', (icon) => { + this.setFolderIcon = icon + }) } } diff --git a/resources/js/components/Others/RenameItem.vue b/resources/js/components/Others/RenameItem.vue index 0973c552..748c9189 100644 --- a/resources/js/components/Others/RenameItem.vue +++ b/resources/js/components/Others/RenameItem.vue @@ -56,7 +56,6 @@ import ButtonBase from '@/components/FilesView/ButtonBase' import { XIcon } from 'vue-feather-icons' import { required } from 'vee-validate/dist/rules' import { events } from '@/bus' -import axios from 'axios' export default { name: 'RenameItem', @@ -100,7 +99,7 @@ export default { unique_id: this.pickedItem.unique_id, type: this.pickedItem.type, name: this.pickedItem.name, - folder_icon: this.setFolderIcon ? this.setFolderIcon : null + icon: this.setFolderIcon ? this.setFolderIcon : null } // Rename item request @@ -133,7 +132,7 @@ export default { }) events.$on('setFolderIcon', (icon) => { - this.setFolderIcon = icon.value + this.setFolderIcon = icon }) } } diff --git a/resources/js/components/Others/SetFolderIcon.vue b/resources/js/components/Others/SetFolderIcon.vue index 110673fe..9e35f626 100644 --- a/resources/js/components/Others/SetFolderIcon.vue +++ b/resources/js/components/Others/SetFolderIcon.vue @@ -53,7 +53,7 @@ export default { if( this.selectedColor ) { this.selectedEmoji = undefined - events.$emit('setFolderIcon', { 'value': color }) + events.$emit('setFolderIcon', color ) } }, @@ -64,25 +64,29 @@ export default { if( this.selectedEmoji ) { this.selectedColor = undefined - events.$emit('setFolderIcon', { 'value': this.selectedEmoji ==='default' ? 'default' : emoji }) + events.$emit('setFolderIcon', this.selectedEmoji ==='default' ? 'default' : emoji ) } }, }, created() { + if(this.folderData) { + + // If folder have already set some color set this color to selected color + this.folderData.icon_color ? this.selectedColor = this.folderData.icon_color : '' - // If folder have already set some color set this color to selected color - this.folderData.icon_color ? this.selectedColor = this.folderData.icon_color : '' - - // If folder have already set some emojit set this emoji to selected emoji - this.folderData.icon_emoji ? this.selectedEmoji = this.folderData.icon_emoji : '' + // If folder have already set some emojit set this emoji to selected emoji + this.folderData.icon_emoji ? this.selectedEmoji = this.folderData.icon_emoji : '' + } }, destroyed () { - - // After close SetFolderIcon set the saved folder icon for thumbnail - let color = {'color': this.folderData.icon_color } - let emoji = {'emoji': this.folderData.icon_emoji } - - events.$emit('setFolderIcon', { 'value': this.folderData.icon_emoji ? emoji : color }) + if(this.folderData) { + + // After close SetFolderIcon set the saved folder icon for thumbnail + let color = {'color': this.folderData.icon_color } + let emoji = {'emoji': this.folderData.icon_emoji } + + events.$emit('setFolderIcon', this.folderData.icon_emoji ? emoji : color ) + } } } diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index f9d93f8f..545dc9bd 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -106,7 +106,7 @@ const actions = { }) .catch(() => Vue.prototype.$isSomethingWrong()) }, - createFolder: ({ commit, getters, dispatch }, folderName) => { + createFolder: ({ commit, getters, dispatch }, folder) => { // Get route let route = getters.sharedDetail && !getters.sharedDetail.protected @@ -116,7 +116,8 @@ const actions = { axios .post(route, { parent_id: getters.currentFolder.unique_id, - name: folderName + name: folder.name, + icon: folder.icon }) .then(response => { commit('ADD_NEW_FOLDER', response.data) @@ -151,7 +152,7 @@ const actions = { .post(route, { name: data.name, type: data.type, - folder_icon: data.folder_icon, + icon: data.icon, _method: 'patch' }) .then(response => { diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php index 1ff6d7a2..1a980860 100644 --- a/resources/views/vendor/mail/html/message.blade.php +++ b/resources/views/vendor/mail/html/message.blade.php @@ -1,15 +1,9 @@ -pluck('value')[0]); - -?> @component('mail::layout') {{-- Header --}} @slot('header') @component('mail::header', ['url' => config('app.url')]) -{{ $app_name ? $app_name : 'VueFileManager' }} +{{ get_setting('app_title') ?? 'VueFileManager' }} @endcomponent @endslot @@ -28,7 +22,7 @@ $app_name = strval(Setting::where('name', 'app_title')->pluck('value')[0]); {{-- Footer --}} @slot('footer') @component('mail::footer') -© {{ date('Y') }} {{ $app_name ? $app_name : 'VueFileManager' }}. @lang('All rights reserved.') +© {{ date('Y') }} {{ get_setting('app_title') ?? 'VueFileManager' }}. @lang('All rights reserved.') @endcomponent @endslot @endcomponent