bulk-version v0.1 contextMenu Mobile version selecting

This commit is contained in:
Milos Holba
2020-11-15 19:59:12 +01:00
parent 324f4b1ffa
commit 5acaadeaae
13 changed files with 545 additions and 265 deletions
+5 -5
View File
@@ -156,7 +156,7 @@ class Editor
if ($file['type'] !== 'folder') {
// Get file
$file = FileManagerFile::withTrashed()
$item = FileManagerFile::withTrashed()
->where('user_id', $user->id)
->where('unique_id', $unique_id)
->first();
@@ -176,20 +176,20 @@ class Editor
if ($file['force_delete']) {
// Delete file
Storage::delete('/file-manager/' . $file->basename);
Storage::delete('/file-manager/' . $item->basename);
// Delete thumbnail if exist
if ($file->thumbnail) Storage::delete('/file-manager/' . $file->getRawOriginal('thumbnail'));
if ($item->thumbnail) Storage::delete('/file-manager/' . $item->getRawOriginal('thumbnail'));
// Delete file permanently
$file->forceDelete();
$item->forceDelete();
}
// Soft delete file
if (!$file['force_delete']) {
// Soft delete file
$file->delete();
$item->delete();
}
}
}
+94 -113
View File
@@ -29,7 +29,7 @@
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=405847df44edd86e301a",
"/chunks/files.js": "/chunks/files.js?id=e0e01c40a7c37f170270",
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/trash~chunks~3ea7670b.js?id=6cafd70cb9e5ae25f02a",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=8c15cc5895d59467a5a5",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=195540d080e3889ca57f",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=aba8c662fbc234892216",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=ecceaa6cdf5768826b36",
"/chunks/invoices.js": "/chunks/invoices.js?id=248503ac5967fe8370f9",
@@ -75,116 +75,97 @@
"/chunks/user-storage.js": "/chunks/user-storage.js?id=a99910f95c3e39caa78b",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=e8ea1e67f9ac0a835ed0",
"/chunks/users.js": "/chunks/users.js?id=cdba7af8fb0cd8e64c40",
"/js/main.767420ad569a3b38d5db.hot-update.js": "/js/main.767420ad569a3b38d5db.hot-update.js",
"/js/main.edbf0aedbe6659b65142.hot-update.js": "/js/main.edbf0aedbe6659b65142.hot-update.js",
"/js/main.99c48b2298fb77086daa.hot-update.js": "/js/main.99c48b2298fb77086daa.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ddd3f919f4b010f40e21.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ddd3f919f4b010f40e21.hot-update.js",
"/js/main.f5d02f49d57902a88035.hot-update.js": "/js/main.f5d02f49d57902a88035.hot-update.js",
"/js/main.76b2e9cf380709948f07.hot-update.js": "/js/main.76b2e9cf380709948f07.hot-update.js",
"/js/main.d97c1122943516d7a0e5.hot-update.js": "/js/main.d97c1122943516d7a0e5.hot-update.js",
"/js/main.bfff5064d9fc36a7567c.hot-update.js": "/js/main.bfff5064d9fc36a7567c.hot-update.js",
"/js/main.6094c2d1968f2b0b6a96.hot-update.js": "/js/main.6094c2d1968f2b0b6a96.hot-update.js",
"/js/main.ae354bbe50594e027c22.hot-update.js": "/js/main.ae354bbe50594e027c22.hot-update.js",
"/js/main.661a9c6d3aec8b6a2dcc.hot-update.js": "/js/main.661a9c6d3aec8b6a2dcc.hot-update.js",
"/js/main.82c1e136025af897fead.hot-update.js": "/js/main.82c1e136025af897fead.hot-update.js",
"/js/main.fbe893a7903076a0d102.hot-update.js": "/js/main.fbe893a7903076a0d102.hot-update.js",
"/js/main.f500898e669e6ba9b1d6.hot-update.js": "/js/main.f500898e669e6ba9b1d6.hot-update.js",
"/js/main.c075f5a7350d5f510c93.hot-update.js": "/js/main.c075f5a7350d5f510c93.hot-update.js",
"/js/main.25ba42e17dd00816f45e.hot-update.js": "/js/main.25ba42e17dd00816f45e.hot-update.js",
"/js/main.1bed513db9df73d56c9e.hot-update.js": "/js/main.1bed513db9df73d56c9e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5179bfbbb2e773dc4849.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5179bfbbb2e773dc4849.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3ef510c31ca8bf2cd0be.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3ef510c31ca8bf2cd0be.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5f55fa5cff653365891c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5f55fa5cff653365891c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.fbbe3f1cf88f9d9c9cb3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.fbbe3f1cf88f9d9c9cb3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1312b84a60a390d87eb9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1312b84a60a390d87eb9.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.55425050d57e1041ada5.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.55425050d57e1041ada5.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6ceb360b7f9234b5f680.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6ceb360b7f9234b5f680.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.293219c557e44e0a25f3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.293219c557e44e0a25f3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.20cd6bad24f7e8c9bb2d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.20cd6bad24f7e8c9bb2d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.06f2c0a9de8ef70a5f80.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.06f2c0a9de8ef70a5f80.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.49d13efab03021d732bc.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.49d13efab03021d732bc.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.18ed5aa55df070f2c1e6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.18ed5aa55df070f2c1e6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.78b3f0bfea1aa54d5ca7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.78b3f0bfea1aa54d5ca7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2052d98a167e8a7afa9c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2052d98a167e8a7afa9c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c9d00fe85b607aa704f1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c9d00fe85b607aa704f1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b49f906a324f974a3f9c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b49f906a324f974a3f9c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1756e15e6082b077f3f8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1756e15e6082b077f3f8.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.15902fc6d5f851ff7c85.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.15902fc6d5f851ff7c85.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.112a34244469015b97e2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.112a34244469015b97e2.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d9dad9a582a8c3b76656.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d9dad9a582a8c3b76656.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.18275bc6579379290dfb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.18275bc6579379290dfb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8989d79da20e6506a108.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8989d79da20e6506a108.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.dd3932ed3fb7d3048fef.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.dd3932ed3fb7d3048fef.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d25a6f231107ad2352ba.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d25a6f231107ad2352ba.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.676760d93688df1bc60d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.676760d93688df1bc60d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3d29134874ea46e6821f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3d29134874ea46e6821f.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d1212486baec3577ff88.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d1212486baec3577ff88.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.28bcabb140b8e5cee2fe.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.28bcabb140b8e5cee2fe.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cb17b426afa8f73555e3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cb17b426afa8f73555e3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.58da1a3b8c3aa3482e98.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.58da1a3b8c3aa3482e98.hot-update.js",
"/js/main.645dea579c04e2141567.hot-update.js": "/js/main.645dea579c04e2141567.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ea94e22857c0d0849444.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ea94e22857c0d0849444.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0eaf094148b9c0491eb1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0eaf094148b9c0491eb1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cf74b01887084c3e84b1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cf74b01887084c3e84b1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5c36b257837f1ea30d0a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5c36b257837f1ea30d0a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e328124cb8af7fa50844.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e328124cb8af7fa50844.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ae405b773b88de15c9ea.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ae405b773b88de15c9ea.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.db9ab1ef04a4a7c967a5.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.db9ab1ef04a4a7c967a5.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.52db9770dc779bfd5503.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.52db9770dc779bfd5503.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c1bb3ec6439b72bde5d3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c1bb3ec6439b72bde5d3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.46d3b2e81a99c58d1bf6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.46d3b2e81a99c58d1bf6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.077ff036661a6d077588.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.077ff036661a6d077588.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.94973678b87c1b6d214c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.94973678b87c1b6d214c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.eb0337f1b7cbbd526c42.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.eb0337f1b7cbbd526c42.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6b4d108876871e2d4e84.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6b4d108876871e2d4e84.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6cd4449aec8b0ac127df.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6cd4449aec8b0ac127df.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c5d2de27e505c2db1144.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c5d2de27e505c2db1144.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.00145056ad30cfd4e514.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.00145056ad30cfd4e514.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c1b2c792d07650fa2839.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c1b2c792d07650fa2839.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4afc66748d13d73c70cd.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4afc66748d13d73c70cd.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0dde9896ad98c1e682de.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0dde9896ad98c1e682de.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.84a56838f4636f3cc93f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.84a56838f4636f3cc93f.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5d7a6e6fadf3c0e1bd3e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5d7a6e6fadf3c0e1bd3e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8d89e1b299b47dc17724.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8d89e1b299b47dc17724.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1f1b9bac774d856eabf7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1f1b9bac774d856eabf7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5ffb59c316e393f0b67c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5ffb59c316e393f0b67c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.da2cc0bee54f5a082221.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.da2cc0bee54f5a082221.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c4e81f7767e572e67f4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c4e81f7767e572e67f4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.f318634df4fa8cb57b5f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.f318634df4fa8cb57b5f.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.27576ccd2504ba0a2cea.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.27576ccd2504ba0a2cea.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.f46761a661ab749be221.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.f46761a661ab749be221.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.48f11cd4756b08f0bf86.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.48f11cd4756b08f0bf86.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.05c67abc8ce7bad61ae7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.05c67abc8ce7bad61ae7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4c5cf15c42e991ef7c69.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4c5cf15c42e991ef7c69.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c709efeabbaa4312d154.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c709efeabbaa4312d154.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a7958ca5b4b1574534ff.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a7958ca5b4b1574534ff.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0c77603041fa411356ec.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0c77603041fa411356ec.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.514451ec9049c3462bc3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.514451ec9049c3462bc3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.bc7cc680fa16e86d9eef.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.bc7cc680fa16e86d9eef.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b914a492918b73cc0869.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b914a492918b73cc0869.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a22c571a909722e954a6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a22c571a909722e954a6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.82dcbd7e0629de2e235d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.82dcbd7e0629de2e235d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.704d6d31a8120878427e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.704d6d31a8120878427e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a1fe7aefb4d59c234948.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a1fe7aefb4d59c234948.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a629bc8d6a0e9120502e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a629bc8d6a0e9120502e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cf035a357754f498e0b8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.cf035a357754f498e0b8.hot-update.js",
"/js/main.8bf5e9ca516b2cff6f32.hot-update.js": "/js/main.8bf5e9ca516b2cff6f32.hot-update.js",
"/chunks/app-others.8bf5e9ca516b2cff6f32.hot-update.js": "/chunks/app-others.8bf5e9ca516b2cff6f32.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8bf5e9ca516b2cff6f32.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8bf5e9ca516b2cff6f32.hot-update.js",
"/js/main.82565d0ff10a52d8a721.hot-update.js": "/js/main.82565d0ff10a52d8a721.hot-update.js",
"/chunks/app-others.82565d0ff10a52d8a721.hot-update.js": "/chunks/app-others.82565d0ff10a52d8a721.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.82565d0ff10a52d8a721.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.82565d0ff10a52d8a721.hot-update.js",
"/js/main.e9a41033e7b11fab8d60.hot-update.js": "/js/main.e9a41033e7b11fab8d60.hot-update.js",
"/chunks/app-others.e9a41033e7b11fab8d60.hot-update.js": "/chunks/app-others.e9a41033e7b11fab8d60.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e9a41033e7b11fab8d60.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e9a41033e7b11fab8d60.hot-update.js",
"/js/main.8e5724e1bf2542aefedb.hot-update.js": "/js/main.8e5724e1bf2542aefedb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8e5724e1bf2542aefedb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8e5724e1bf2542aefedb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6e05a68f5ae202d91bc4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6e05a68f5ae202d91bc4.hot-update.js",
"/js/main.e36c6dc8382e3d5fe133.hot-update.js": "/js/main.e36c6dc8382e3d5fe133.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e36c6dc8382e3d5fe133.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e36c6dc8382e3d5fe133.hot-update.js",
"/chunks/settings-subscription.e36c6dc8382e3d5fe133.hot-update.js": "/chunks/settings-subscription.e36c6dc8382e3d5fe133.hot-update.js",
"/chunks/settings-subscription~chunks/user-subscription.js": "/chunks/settings-subscription~chunks/user-subscription.js?id=d58c4e02afae33b7cc85",
"/chunks/user-subscription.e36c6dc8382e3d5fe133.hot-update.js": "/chunks/user-subscription.e36c6dc8382e3d5fe133.hot-update.js",
"/js/main.1c56b7e701300e0d9ed4.hot-update.js": "/js/main.1c56b7e701300e0d9ed4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c56b7e701300e0d9ed4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c56b7e701300e0d9ed4.hot-update.js"
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.54ec103f70b873e41cec.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.54ec103f70b873e41cec.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.563f12d5491b3692c446.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.563f12d5491b3692c446.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.79bba5275cfddb7e45a9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.79bba5275cfddb7e45a9.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.80a94659f344a23f709e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.80a94659f344a23f709e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c59bb8914b5280984209.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c59bb8914b5280984209.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b8267bc97292ebcb4063.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b8267bc97292ebcb4063.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8a76d14976f16978c363.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8a76d14976f16978c363.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.9fc5de6987ac9d477256.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.9fc5de6987ac9d477256.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6fe307c9fecc5dad94f3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6fe307c9fecc5dad94f3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b7d46284d36fedfba167.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.b7d46284d36fedfba167.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.528b6b5eacda717e9300.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.528b6b5eacda717e9300.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ebfda0436eb8cbb6c2e4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ebfda0436eb8cbb6c2e4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6357c20e6d9afc737dfe.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.6357c20e6d9afc737dfe.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d8ee20c8a649a81e905e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d8ee20c8a649a81e905e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4fe6774ac6f8a734501d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.4fe6774ac6f8a734501d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.aea520fb886e7ff1d9fd.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.aea520fb886e7ff1d9fd.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d48afaf6a7df3c261032.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.d48afaf6a7df3c261032.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2a79957127f4d98d1a3c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2a79957127f4d98d1a3c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3cb82486fd504d5b36ef.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3cb82486fd504d5b36ef.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.492fe6f8cccc2f4c29cd.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.492fe6f8cccc2f4c29cd.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.34954c5294b8a2d111d6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.34954c5294b8a2d111d6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1e4370966249719addb8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1e4370966249719addb8.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0196560cbae6a86783f6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0196560cbae6a86783f6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.32e904c5f0d3516b6879.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.32e904c5f0d3516b6879.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0724ce848b7000717508.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0724ce848b7000717508.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.defb35ef884b9cd5f102.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.defb35ef884b9cd5f102.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.dbc81d63d8395ed820f1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.dbc81d63d8395ed820f1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3b48f2371b7435a5fb35.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.3b48f2371b7435a5fb35.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.25bbb8ab3b43d9c43c7a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.25bbb8ab3b43d9c43c7a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c3ff280241d262e60ee3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.c3ff280241d262e60ee3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.7f8305c28cf78535d445.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.7f8305c28cf78535d445.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.309eb2bc4b7ab5b0a711.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.309eb2bc4b7ab5b0a711.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1488f86f85ae657d0164.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1488f86f85ae657d0164.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.72a1d8cd251bc359aadf.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.72a1d8cd251bc359aadf.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1aa47c62665052cd5aa8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1aa47c62665052cd5aa8.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.294868b8272f84bd853d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.294868b8272f84bd853d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a777aa4a8cafd231aa64.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a777aa4a8cafd231aa64.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.fe92eb08f49ef63d8bec.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.fe92eb08f49ef63d8bec.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.26c4e5b67127929269b7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.26c4e5b67127929269b7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.41641ddb8a12fab550b9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.41641ddb8a12fab550b9.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a17b10e95c351fda92c4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a17b10e95c351fda92c4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ac34d8a7b3e2f6ad737e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.ac34d8a7b3e2f6ad737e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.576f23535fbb6c85726a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.576f23535fbb6c85726a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8c5c03da42760f16a535.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8c5c03da42760f16a535.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e37491b898d385ecdad6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e37491b898d385ecdad6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5c8879f16479bd6ec420.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5c8879f16479bd6ec420.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.207e3bcce5c5b3da542e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.207e3bcce5c5b3da542e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.bfdfbcb5edca622eedea.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.bfdfbcb5edca622eedea.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2a0c8c4e84ca1b9ee95e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.2a0c8c4e84ca1b9ee95e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.94e8a38549b297435ee5.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.94e8a38549b297435ee5.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e76245ff3c16b13f44bf.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.e76245ff3c16b13f44bf.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0b2e2de040afdb262d9b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0b2e2de040afdb262d9b.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.271715031a174ddeda1c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.271715031a174ddeda1c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.7a0274443cd3ab4953cc.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.7a0274443cd3ab4953cc.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8ad0ad4b45544efb5de5.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.8ad0ad4b45544efb5de5.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5d049a8bb77a1f46542e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5d049a8bb77a1f46542e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5e71b3186667c411c6d4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.5e71b3186667c411c6d4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.714f427830b71c14f095.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.714f427830b71c14f095.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c1f433790dd85951870.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.1c1f433790dd85951870.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.821fe7ec17d4a94b1c44.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.821fe7ec17d4a94b1c44.hot-update.js",
"/js/main.7054c1d534099f14e2c5.hot-update.js": "/js/main.7054c1d534099f14e2c5.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.9f5541d01b708634db8e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.9f5541d01b708634db8e.hot-update.js",
"/js/main.6b52d77464ee33d6c492.hot-update.js": "/js/main.6b52d77464ee33d6c492.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.72acf123fa2658bfbe81.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.72acf123fa2658bfbe81.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0afd0192d5927daa4f0e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.0afd0192d5927daa4f0e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.50829359ab16b8029230.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.50829359ab16b8029230.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.abfe41dd63d515c7a954.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.abfe41dd63d515c7a954.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a72b108240b191c11144.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.a72b108240b191c11144.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.676b1fd2792e520b26bb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.676b1fd2792e520b26bb.hot-update.js",
"/js/main.ed987f9d05b65bf70dcd.hot-update.js": "/js/main.ed987f9d05b65bf70dcd.hot-update.js",
"/js/main.d0919bdbf17c0f1d5b87.hot-update.js": "/js/main.d0919bdbf17c0f1d5b87.hot-update.js",
"/js/main.53a80409b67cdbfbedcf.hot-update.js": "/js/main.53a80409b67cdbfbedcf.hot-update.js",
"/js/main.d2c71c38edafc5dfaecf.hot-update.js": "/js/main.d2c71c38edafc5dfaecf.hot-update.js",
"/js/main.c57a080c5589c335d9e0.hot-update.js": "/js/main.c57a080c5589c335d9e0.hot-update.js",
"/js/main.9c066075cbb8091c9e0a.hot-update.js": "/js/main.9c066075cbb8091c9e0a.hot-update.js",
"/js/main.2a114e8abe5c6d7e8896.hot-update.js": "/js/main.2a114e8abe5c6d7e8896.hot-update.js",
"/js/main.c7ac33f16f118cbfe017.hot-update.js": "/js/main.c7ac33f16f118cbfe017.hot-update.js",
"/js/main.3cc69c262f7137761036.hot-update.js": "/js/main.3cc69c262f7137761036.hot-update.js",
"/js/main.8094e875b61411f96230.hot-update.js": "/js/main.8094e875b61411f96230.hot-update.js",
"/js/main.f60c01ffaec31a785554.hot-update.js": "/js/main.f60c01ffaec31a785554.hot-update.js",
"/js/main.159b31616c34942b3c84.hot-update.js": "/js/main.159b31616c34942b3c84.hot-update.js",
"/js/main.c2a2d71d6852099f6aaa.hot-update.js": "/js/main.c2a2d71d6852099f6aaa.hot-update.js",
"/js/main.ad3b2e53dc9b57fd10f1.hot-update.js": "/js/main.ad3b2e53dc9b57fd10f1.hot-update.js",
"/js/main.88275a29639d9180e75b.hot-update.js": "/js/main.88275a29639d9180e75b.hot-update.js",
"/js/main.0c8b7652845cbe4cad9c.hot-update.js": "/js/main.0c8b7652845cbe4cad9c.hot-update.js",
"/js/main.54cc33e0ee38f66b69ce.hot-update.js": "/js/main.54cc33e0ee38f66b69ce.hot-update.js",
"/js/main.e8c018f7bca738fc325a.hot-update.js": "/js/main.e8c018f7bca738fc325a.hot-update.js",
"/js/main.5ae0fe848a68174ca0bf.hot-update.js": "/js/main.5ae0fe848a68174ca0bf.hot-update.js",
"/js/main.fb9428cb35d59ab8ca81.hot-update.js": "/js/main.fb9428cb35d59ab8ca81.hot-update.js",
"/js/main.ef77c7046301c8970dd8.hot-update.js": "/js/main.ef77c7046301c8970dd8.hot-update.js",
"/js/main.8a6788d630719009432e.hot-update.js": "/js/main.8a6788d630719009432e.hot-update.js",
"/js/main.7d494e25bb499a6e25f2.hot-update.js": "/js/main.7d494e25bb499a6e25f2.hot-update.js",
"/js/main.554f1eb7892632c68312.hot-update.js": "/js/main.554f1eb7892632c68312.hot-update.js"
}
@@ -49,7 +49,7 @@
$isThisLocation(['trash', 'trash-root']) && $checkPermission('master') && !showFromPreview
" id="menu-list" class="menu-options">
<ul class="menu-option-group">
<li class="menu-option" @click="$store.dispatch('restoreItem', item)" v-if="item">
<li class="menu-option" @click="$store.dispatch('restoreItem', item)" v-if="item && multiSelectContextMenu ">
<div class="icon">
<life-buoy-icon size="17"></life-buoy-icon>
</div>
@@ -74,7 +74,7 @@
</div>
</li>
</ul>
<ul class="menu-option-group" v-if="item">
<ul class="menu-option-group" v-if="item && multiSelectContextMenu">
<li class="menu-option" @click="ItemDetail">
<div class="icon">
<eye-icon size="17"></eye-icon>
@@ -96,7 +96,7 @@
<!--ContextMenu for Base location with MASTER permission-->
<div v-if="$isThisLocation(['shared']) && $checkPermission('master') && !showFromPreview" id="menu-list" class="menu-options">
<ul class="menu-option-group" v-if="item && isFolder">
<ul class="menu-option-group" v-if="item && isFolder && multiSelectContextMenu">
<li class="menu-option" @click="addToFavourites">
<div class="icon">
<star-icon size="17"></star-icon>
@@ -111,7 +111,7 @@
</li>
</ul>
<ul class="menu-option-group" v-if="item">
<li class="menu-option" @click="shareItem">
<li class="menu-option" @click="shareItem" v-if="multiSelectContextMenu">
<div class="icon">
<link-icon size="17"></link-icon>
</div>
@@ -132,7 +132,7 @@
</div>
</li>
</ul>
<ul class="menu-option-group" v-if="item">
<ul class="menu-option-group" v-if="item && multiSelectContextMenu">
<li class="menu-option" @click="ItemDetail" v-if="item">
<div class="icon">
<eye-icon size="17"></eye-icon>
@@ -158,7 +158,7 @@
$checkPermission('master') && !showFromPreview
" id="menu-list" class="menu-options">
<ul class="menu-option-group" v-if="!$isThisLocation(['participant_uploads', 'latest'])">
<li class="menu-option" @click="addToFavourites" v-if="item && isFolder">
<li class="menu-option" @click="addToFavourites" v-if="item && isFolder && multiSelectContextMenu">
<div class="icon">
<star-icon size="17"></star-icon>
</div>
@@ -188,7 +188,7 @@
{{ $t('context_menu.move') }}
</div>
</li>
<li class="menu-option" @click="shareItem">
<li class="menu-option" @click="shareItem" v-if="multiSelectContextMenu">
<div class="icon">
<link-icon size="17"></link-icon>
</div>
@@ -209,7 +209,7 @@
</div>
</li>
</ul>
<ul class="menu-option-group" v-if="item">
<ul class="menu-option-group" v-if="item && multiSelectContextMenu">
<li class="menu-option" @click="ItemDetail">
<div class="icon">
<eye-icon size="17"></eye-icon>
@@ -230,7 +230,7 @@
</div>
<!--ContextMenu for Base location with EDITOR permission-->
<div v-if="$isThisLocation(['base', 'public']) && $checkPermission('editor') && !showFromPreview" id="menu-list" class="menu-options">
<div v-if="$isThisLocation(['base', 'public']) && $checkPermission('editor') && !showFromPreview " id="menu-list" class="menu-options">
<ul class="menu-option-group">
<li class="menu-option" @click="createFolder">
<div class="icon">
@@ -259,7 +259,7 @@
</div>
</li>
</ul>
<ul class="menu-option-group" v-if="item">
<ul class="menu-option-group" v-if="item && multiSelectContextMenu ">
<li class="menu-option" @click="ItemDetail">
<div class="icon">
<eye-icon size="17"></eye-icon>
@@ -281,9 +281,9 @@
<!--ContextMenu for Base location with VISITOR permission-->
<div v-if="
$isThisLocation(['base', 'public']) && $checkPermission('visitor') && !showFromPreview
$isThisLocation(['base', 'public']) && $checkPermission('visitor') && !showFromPreview
" id="menu-list" class="menu-options">
<ul class="menu-option-group" v-if="item">
<ul class="menu-option-group" v-if="item && multiSelectContextMenu">
<li class="menu-option" @click="ItemDetail">
<div class="icon">
<eye-icon size="17"></eye-icon>
@@ -321,7 +321,6 @@ import {
import { mapGetters } from 'vuex'
import { events } from '@/bus'
<<<<<<< HEAD
export default {
name: 'ContextMenu',
components: {
@@ -334,22 +333,18 @@ export default {
TrashIcon,
LinkIcon,
StarIcon,
EyeIcon
=======
// Show panel if is not open
this.$store.dispatch("fileInfoToggle", true);
},
deleteItem() {
// Dispatch remove item
this.$store.dispatch("deleteItem");
},
createFolder() {
// Create folder
this.$createFolder(this.$t("popup_create_folder.folder_default_name"));
>>>>>>> 559bee6 (bulk-operations v0.1 setup bulk delete,move items and FileInfoPanel)
EyeIcon,
},
computed: {
...mapGetters(['user']),
...mapGetters(['user', 'fileInfoDetail']),
multiSelectContextMenu() {
if(this.fileInfoDetail.length > 1 && this.fileInfoDetail.includes(this.item)) {
return false
}
if(this.fileInfoDetail.length < 2 || !this.fileInfoDetail.includes(this.item)) {
return true
}
},
favourites() {
return this.user.relationships.favourites.data.attributes.folders
},
@@ -402,7 +397,7 @@ export default {
},
moveItem() {
// Open move item popup
events.$emit('popup:open', { name: 'move', item: this.item })
events.$emit('popup:open', { name: 'move', item: [this.item] })
},
shareItem() {
if (this.item.shared) {
@@ -175,13 +175,16 @@ export default {
]);
},
canShareInView() {
return !this.$isThisLocation([
let location = !this.$isThisLocation([
"base",
"participant_uploads",
"latest",
"shared",
"public",
]);
if(location || this.fileInfoDetail.length > 1) {
return true
}
},
},
methods: {
@@ -206,7 +206,7 @@
// On items delete
events.$on('items:delete', () => {
this.$store.dispatch('deleteItem', this.fileInfoDetail)
this.$store.dispatch('deleteItem')
})
}
}
@@ -14,8 +14,15 @@
@dragleave="dragLeave"
@dragover.prevent="dragEnter"
class="file-item"
:class="{ 'is-clicked': this.isClicked, 'is-dragenter': area }"
:class="{'is-clicked' : isClicked , 'no-clicked' : !isClicked, 'is-dragenter': area }"
>
<div class="check-select" v-if="mobileMultiSelect">
<div class="select-box" :class="{'select-box-active' : isClicked } ">
<CheckIcon v-if="isClicked" class="icon" size="17"/>
</div>
</div>
<!--Thumbnail for item-->
<div class="icon-item">
<!--If is file or image, then link item-->
@@ -60,7 +67,7 @@
</div>
<!--Go Next icon-->
<div class="actions" v-if="$isMobile() && !($checkPermission('visitor') && isFolder)">
<div class="actions" v-if="$isMobile() && !($checkPermission('visitor') && isFolder || mobileMultiSelect)">
<span @click.stop="showItemActions" class="show-actions">
<FontAwesomeIcon icon="ellipsis-v" class="icon-action"></FontAwesomeIcon>
</span>
@@ -70,7 +77,7 @@
</template>
<script>
import { LinkIcon, UserPlusIcon } from 'vue-feather-icons'
import { LinkIcon, UserPlusIcon , CheckIcon } from 'vue-feather-icons'
import { debounce } from 'lodash'
import { mapGetters } from 'vuex'
import { events } from '@/bus'
@@ -80,13 +87,15 @@ export default {
props: ['data'],
components: {
UserPlusIcon,
LinkIcon
LinkIcon,
CheckIcon,
},
computed: {
...mapGetters(['FilePreviewType', 'fileInfoDetail' ]),
...mapGetters({allData: 'data'}),
isClicked() {
if(this.fileInfoDetail.some(element => element.unique_id == this.data.unique_id)){
console.log('som tu')
return true
}else {
return false
@@ -139,12 +148,14 @@ export default {
data() {
return {
area: false,
itemName: undefined
itemName: undefined,
mobileMultiSelect:false
}
},
methods: {
showItemActions() {
// Load file info detail
this.$store.commit('CLEAR_FILEINFO_DETAIL')
this.$store.commit('GET_FILEINFO_DETAIL', this.data)
events.$emit('mobileMenu:show')
@@ -159,57 +170,68 @@ export default {
},
clickedItem(e) {
events.$emit('contextMenu:hide')
if(e.ctrlKey && !e.shiftKey) {
// Click + Ctrl
if(!this.$isMobile()) {
if(e.ctrlKey && !e.shiftKey) {
// Click + Ctrl
if(this.fileInfoDetail.some(item => item.unique_id === this.data.unique_id)){
this.$store.commit('REMOVE_ITEM_FILEINFO_DETAIL',this.data )
if(this.fileInfoDetail.some(item => item.unique_id === this.data.unique_id)){
this.$store.commit('REMOVE_ITEM_FILEINFO_DETAIL',this.data )
}else {
console.log(this.data.name)
this.$store.commit('GET_FILEINFO_DETAIL', this.data)
}
}else if (e.shiftKey){
// Click + Shift
let lastItem = this.allData.indexOf(this.fileInfoDetail[this.fileInfoDetail.length -1])
let clickedItem = this.allData.indexOf(this.data)
// If Click + Shift + Ctrl dont remove already selected items
if(!e.ctrlKey) {
this.$store.commit('CLEAR_FILEINFO_DETAIL')
}
if(lastItem < clickedItem) {
for(let i=lastItem ; i<=clickedItem; i++ ) {
this.$store.commit('GET_FILEINFO_DETAIL', this.allData[i])
}
}else {
for(let i=clickedItem ; i<=lastItem; i++ ) {
this.$store.commit('GET_FILEINFO_DETAIL', this.allData[i])
}
}
}else {
console.log(this.data.name)
// Click
events.$emit('fileItem:deselect')
this.$store.commit('CLEAR_FILEINFO_DETAIL')
this.$store.commit('GET_FILEINFO_DETAIL', this.data)
}
}else if (e.shiftKey){
// Click + Shift
}
let lastItem = this.allData.indexOf(this.fileInfoDetail[this.fileInfoDetail.length -1])
let clickedItem = this.allData.indexOf(this.data)
// If Click + Shift + Ctrl dont remove already selected items
if(!e.ctrlKey) {
this.$store.commit('CLEAR_FILEINFO_DETAIL')
}
if(lastItem < clickedItem) {
for(let i=lastItem ; i<=clickedItem; i++ ) {
this.$store.commit('GET_FILEINFO_DETAIL', this.allData[i])
if(!this.mobileMultiSelect && this.$isMobile()){
// Open in mobile version on first click
if (this.$isMobile() && this.isFolder) {
// Go to folder
if (this.$isThisLocation('public')) {
this.$store.dispatch('browseShared', [{ folder: this.data, back: false, init: false }])
} else {
this.$store.dispatch('getFolder', [{ folder: this.data, back: false, init: false }])
}
}
if (this.$isMobile()) {
if (this.isImage || this.isVideo || this.isAudio) {
events.$emit('fileFullPreview:show')
}
}
}
if(this.mobileMultiSelect && this.$isMobile()) {
if(this.fileInfoDetail.some(item => item.unique_id === this.data.unique_id)) {
this.$store.commit('REMOVE_ITEM_FILEINFO_DETAIL', this.data )
console.log(this.data)
}else {
for(let i=clickedItem ; i<=lastItem; i++ ) {
this.$store.commit('GET_FILEINFO_DETAIL', this.allData[i])
}
}
}else {
// Click
events.$emit('fileItem:deselect')
this.$store.commit('CLEAR_FILEINFO_DETAIL')
this.$store.commit('GET_FILEINFO_DETAIL', this.data)
}
// Open in mobile version on first click
if (this.$isMobile() && this.isFolder) {
// Go to folder
if (this.$isThisLocation('public')) {
this.$store.dispatch('browseShared', [{ folder: this.data, back: false, init: false }])
} else {
this.$store.dispatch('getFolder', [{ folder: this.data, back: false, init: false }])
}
}
if (this.$isMobile()) {
if (this.isImage || this.isVideo || this.isAudio) {
events.$emit('fileFullPreview:show')
this.$store.commit('GET_FILEINFO_DETAIL', this.data)
}
}
@@ -247,6 +269,11 @@ export default {
created() {
this.itemName = this.data.name
events.$on('mobileSelecting-start', () => {
this.mobileMultiSelect = !this.mobileMultiSelect
this.$store.commit('CLEAR_FILEINFO_DETAIL')
})
events.$on('fileItem:deselect', () => {
// Deselect file
this.$store.commit('CLEAR_FILEINFO_DETAIL')
@@ -264,6 +291,27 @@ export default {
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.check-select {
margin-right: 10px;
margin-left: 3px;
.select-box {
width: 20px;
height: 20px;
background-color: $light_background;
display: flex;
justify-content: center;
align-items: center;
border-radius: 5px;
box-shadow: 0 3px 15px 2px hsla(220, 36%, 16%, 0.05);
}
.select-box-active {
background-color: $text !important;
.icon {
stroke: white;
}
}
}
.file-wrapper {
user-select: none;
position: relative;
@@ -429,16 +477,21 @@ export default {
display: flex;
align-items: center;
padding: 7px;
// background-color: white ;
&.is-dragenter {
border: 2px dashed $theme;
border-radius: 8px;
}
&.no-clicked {
background: white !important;
}
&:hover,
&.is-clicked {
border-radius: 8px;
background: $light_background;
background: $light_background ;
.item-name .name {
color: $theme;
@@ -448,6 +501,18 @@ export default {
}
@media (prefers-color-scheme: dark) {
.check-select {
.select-box {
background-color: $dark_mode_foreground;
}
.select-box-active {
background-color: $dark_mode_text_primary !important;
.icon {
stroke: $text;
}
}
}
.file-wrapper {
.icon-item {
.file-icon {
@@ -467,6 +532,9 @@ export default {
}
.file-item {
&.no-clicked {
background: $dark_mode_background !important;
}
&:hover,
&.is-clicked {
background: $dark_mode_foreground;
@@ -89,7 +89,9 @@ import {split} from 'lodash'
export default {
name: 'ImageMetaData',
computed: {
...mapGetters(['fileInfoDetail']),
fileInfoDetail() {
return this.$store.getters.fileInfoDetail[0]
},
},
methods: {
formatGps(location, ref) {
@@ -19,6 +19,9 @@
<MobileActionButtonUpload>
{{ $t('context_menu.upload') }}
</MobileActionButtonUpload>
<MobileMultiSelectButton @click.native="mobileSelecting">
Select
</MobileMultiSelectButton>
<MobileActionButton @click.native="switchPreview" :icon="previewIcon">
{{ previewText }}
</MobileActionButton>
@@ -38,6 +41,7 @@
<script>
import MobileActionButtonUpload from '@/components/FilesView/MobileActionButtonUpload'
import MobileMultiSelectButton from '@/components/FilesView/MobileMultiSelectButton'
import MobileActionButton from '@/components/FilesView/MobileActionButton'
import UploadProgress from '@/components/FilesView/UploadProgress'
import {mapGetters} from 'vuex'
@@ -48,6 +52,7 @@
name: 'MobileActions',
components: {
MobileActionButtonUpload,
MobileMultiSelectButton,
MobileActionButton,
UploadProgress,
},
@@ -61,6 +66,9 @@
}
},
methods: {
mobileSelecting() {
events.$emit('mobileSelecting-start')
},
switchPreview() {
this.$store.dispatch('changePreviewType')
},
@@ -7,11 +7,30 @@
class="options"
@click="closeAndResetContextMenu"
>
<div class="menu-wrapper">
<div class="mobile-selected-menu" v-if="mobileMultiSelect">
<ToolbarButton
source="move"
:action="$t('actions.move')"
@click.native="moveItem"
/>
<ToolbarButton
source="trash"
:action="$t('actions.move')"
@click.native="moveItem"
/>
</div>
<!--Item Thumbnail-->
<ThumbnailItem
v-if="!mobileMultiSelect"
class="item-thumbnail"
:item="fileInfoDetail"
:item="fileInfoDetail[0]"
info="metadata"
/>
@@ -19,15 +38,15 @@
<div
v-if="
$isThisLocation(['trash', 'trash-root']) &&
$checkPermission('master')
$checkPermission('master') && !mobileMultiSelect
"
class="menu-options"
>
<ul class="menu-option-group">
<li
class="menu-option"
@click="$store.dispatch('restoreItem', fileInfoDetail)"
v-if="fileInfoDetail"
@click="$store.dispatch('restoreItem', fileInfoDetail[0])"
v-if="fileInfoDetail[0]"
>
<div class="icon">
<life-buoy-icon size="17"></life-buoy-icon>
@@ -39,7 +58,7 @@
<li
class="menu-option delete"
@click="deleteItem"
v-if="fileInfoDetail"
v-if="fileInfoDetail[0]"
>
<div class="icon">
<trash-2-icon size="17"></trash-2-icon>
@@ -64,14 +83,14 @@
<!--Mobile for Base location-->
<div
v-if="$isThisLocation(['shared']) && $checkPermission('master')"
v-if="$isThisLocation(['shared']) && $checkPermission('master') && !mobileMultiSelect"
class="menu-options"
>
<ul class="menu-option-group">
<li
class="menu-option"
@click="addToFavourites"
v-if="fileInfoDetail && isFolder"
v-if="fileInfoDetail[0] && isFolder"
>
<div class="icon">
<star-icon size="17"></star-icon>
@@ -87,7 +106,7 @@
</ul>
<ul class="menu-option-group">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
<div class="icon">
<edit-2-icon size="17"></edit-2-icon>
</div>
@@ -95,13 +114,13 @@
{{ $t("context_menu.rename") }}
</div>
</li>
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail">
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail[0]">
<div class="icon">
<link-icon size="17"></link-icon>
</div>
<div class="text-label">
{{
fileInfoDetail.shared
fileInfoDetail[0].shared
? $t("context_menu.share_edit")
: $t("context_menu.share")
}}
@@ -110,7 +129,7 @@
<li
class="menu-option delete"
@click="deleteItem"
v-if="fileInfoDetail"
v-if="fileInfoDetail[0]"
>
<div class="icon">
<trash-2-icon size="17"></trash-2-icon>
@@ -137,11 +156,11 @@
<div
v-if="
$isThisLocation(['base', 'participant_uploads', 'latest']) &&
$checkPermission('master')
$checkPermission('master') && !mobileMultiSelect
"
class="menu-options"
>
<ul class="menu-option-group" v-if="fileInfoDetail && isFolder">
<ul class="menu-option-group" v-if="fileInfoDetail[0] && isFolder">
<li class="menu-option" @click="addToFavourites">
<div class="icon">
<star-icon size="17"></star-icon>
@@ -157,7 +176,7 @@
</ul>
<ul class="menu-option-group">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
<div class="icon">
<edit-2-icon size="17"></edit-2-icon>
</div>
@@ -165,7 +184,7 @@
{{ $t("context_menu.rename") }}
</div>
</li>
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail">
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail[0]">
<div class="icon">
<corner-down-right-icon size="17"></corner-down-right-icon>
</div>
@@ -173,13 +192,13 @@
{{ $t("context_menu.move") }}
</div>
</li>
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail">
<li class="menu-option" @click="shareItem" v-if="fileInfoDetail[0]">
<div class="icon">
<link-icon size="17"></link-icon>
</div>
<div class="text-label">
{{
fileInfoDetail.shared
fileInfoDetail[0].shared
? $t("context_menu.share_edit")
: $t("context_menu.share")
}}
@@ -188,7 +207,7 @@
<li
class="menu-option delete"
@click="deleteItem"
v-if="fileInfoDetail"
v-if="fileInfoDetail[0]"
>
<div class="icon">
<trash-2-icon size="17"></trash-2-icon>
@@ -214,12 +233,12 @@
<!--Mobile for Base location with EDITOR permission-->
<div
v-if="
$isThisLocation(['base', 'public']) && $checkPermission('editor')
$isThisLocation(['base', 'public']) && $checkPermission('editor') && !mobileMultiSelect
"
class="menu-options"
>
<ul class="menu-option-group">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail">
<li class="menu-option" @click="renameItem" v-if="fileInfoDetail[0]">
<div class="icon">
<edit-2-icon size="17"></edit-2-icon>
</div>
@@ -227,7 +246,7 @@
{{ $t("context_menu.rename") }}
</div>
</li>
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail">
<li class="menu-option" @click="moveItem" v-if="fileInfoDetail[0]">
<div class="icon">
<corner-down-right-icon size="17"></corner-down-right-icon>
</div>
@@ -260,7 +279,7 @@
<!--Mobile for Base location with VISITOR permission-->
<div
v-if="
$isThisLocation(['base', 'public']) && $checkPermission('visitor')
$isThisLocation(['base', 'public']) && $checkPermission('visitor') && !mobileMultiSelect
"
class="menu-options"
>
@@ -280,7 +299,7 @@
</transition>
<transition name="fade">
<div
v-show="isVisible"
v-show="isVisible && !mobileMultiSelect"
class="vignette"
@click="closeAndResetContextMenu"
></div>
@@ -290,6 +309,7 @@
<script>
import ThumbnailItem from "@/components/Others/ThumbnailItem";
import ToolbarButton from "@/components/FilesView/ToolbarButton";
import {
CornerDownRightIcon,
DownloadCloudIcon,
@@ -311,6 +331,7 @@ export default {
CornerDownRightIcon,
DownloadCloudIcon,
FolderPlusIcon,
ToolbarButton,
ThumbnailItem,
LifeBuoyIcon,
Trash2Icon,
@@ -327,47 +348,53 @@ export default {
},
isInFavourites() {
return this.favourites.find(
(el) => el.unique_id == this.fileInfoDetail.unique_id
(el) => el.unique_id == this.fileInfoDetail[0].unique_id
);
},
isFile() {
return (
this.fileInfoDetail &&
this.fileInfoDetail.type !== "folder" &&
this.fileInfoDetail &&
this.fileInfoDetail.type !== "image"
this.fileInfoDetail[0] &&
this.fileInfoDetail[0].type !== "folder" &&
this.fileInfoDetail[0] &&
this.fileInfoDetail[0].type !== "image"
);
},
isImage() {
return this.fileInfoDetail && this.fileInfoDetail.type === "image";
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === "image";
},
isFolder() {
return this.fileInfoDetail && this.fileInfoDetail.type === "folder";
return this.fileInfoDetail[0] && this.fileInfoDetail[0].type === "folder";
},
},
data() {
return {
isVisible: false,
showFromMediaPreview: false,
mobileMultiSelect:false
};
},
methods: {
moveItem() {
// Open move item popup
events.$emit("popup:open", { name: "move", item: this.fileInfoDetail });
if(!this.mobileMultiSelect) {
events.$emit("popup:open", { name: "move", item: [this.fileInfoDetail[0]] });
}
if(this.mobileMultiSelect) {
events.$emit("popup:open", { name: "move", item: null });
}
},
shareItem() {
if (this.fileInfoDetail.shared) {
if (this.fileInfoDetail[0].shared) {
// Open share item popup
events.$emit("popup:open", {
name: "share-edit",
item: this.fileInfoDetail,
item: this.fileInfoDetail[0],
});
} else {
// Open share item popup
events.$emit("popup:open", {
name: "share-create",
item: this.fileInfoDetail,
item: this.fileInfoDetail[0],
});
}
},
@@ -375,33 +402,33 @@ export default {
if (
this.favourites &&
!this.favourites.find(
(el) => el.unique_id == this.fileInfoDetail.unique_id
(el) => el.unique_id == this.fileInfoDetail[0].unique_id
)
) {
this.$store.dispatch("addToFavourites", this.fileInfoDetail);
this.$store.dispatch("addToFavourites", this.fileInfoDetail[0]);
} else {
this.$store.dispatch("removeFromFavourites", this.fileInfoDetail);
this.$store.dispatch("removeFromFavourites", this.fileInfoDetail[0]);
}
},
downloadItem() {
this.$downloadFile(
this.fileInfoDetail.file_url,
this.fileInfoDetail.name + "." + this.fileInfoDetail.mimetype
this.fileInfoDetail[0].file_url,
this.fileInfoDetail[0].name + "." + this.fileInfoDetail[0].mimetype
);
},
deleteItem() {
this.$store.dispatch("deleteItem", this.fileInfoDetail);
this.$store.dispatch("deleteItem", this.fileInfoDetail[0]);
},
renameItem() {
let itemName = prompt(
this.$t("popup_rename.title"),
this.fileInfoDetail.name
this.fileInfoDetail[0].name
);
if (itemName && itemName !== "") {
let item = {
unique_id: this.fileInfoDetail.unique_id,
type: this.fileInfoDetail.type,
unique_id: this.fileInfoDetail[0].unique_id,
type: this.fileInfoDetail[0].type,
name: itemName,
};
@@ -428,6 +455,10 @@ export default {
},
},
created() {
events.$on('mobileSelecting-start' , () => {
this.mobileMultiSelect = !this.mobileMultiSelect
this.isVisible = !this.isVisible
})
// Show context menu
events.$on("mobileMenu:show", (showFromMedia) => {
//If emit come from MediaFullPreview
@@ -0,0 +1,101 @@
<template>
<button class="mobile-action-button">
<div class="flex" :class="{'active' : mobileSelectingActive}">
<CheckSquareIcon size="15" class="icon"></CheckSquareIcon>
<span class="label">
<slot></slot>
</span>
</div>
</button>
</template>
<script>
import {CheckSquareIcon} from "vue-feather-icons";
import {events} from '@/bus'
export default {
name: 'MobileActionButton',
props: [
'icon'
],
components: {
CheckSquareIcon
},
data () {
return {
mobileSelectingActive: false
}
},
mounted() {
events.$on('mobileSelecting-start' , () => {
this.mobileSelectingActive = !this.mobileSelectingActive
})
}
}
</script>
<style scoped lang="scss">
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.mobile-action-button {
background: $light_background;
margin-right: 15px;
border-radius: 8px;
padding: 7px 10px;
cursor: pointer;
border: none;
@include transition(150ms);
.flex {
display: flex;
align-items: center;
}
.icon {
margin-right: 10px;
@include font-size(14);
path, line, polyline, rect, circle {
@include transition(150ms);
}
}
.label {
@include transition(150ms);
@include font-size(14);
font-weight: 700;
color: $text;
}
.active {
// @include transform(scale(0.95));
background: rgba($theme, 0.1);
.icon {
path, line, polyline, rect, circle {
stroke: $theme;
}
}
.label {
color: $theme;
}
}
}
@media (prefers-color-scheme: dark) {
.mobile-action-button {
background: $dark_mode_foreground;
path, line, polyline, rect, circle {
stroke: $theme;
}
.label {
color: $dark_mode_text_primary;
}
}
}
</style>
@@ -1,6 +1,6 @@
<template>
<div class="wrapper">
<div class="icon-wrapper">
<div :class="this.moveItem ? 'move-item' : 'wrapper'">
<div class="icon-wrapper">
<CheckSquareIcon class="icon" size="21"/>
</div>
<div class="text">
@@ -16,6 +16,7 @@ import {mapGetters} from 'vuex'
export default {
name:'MultiSelected',
props: ['moveItem'],
components: {CheckSquareIcon},
computed: {
...mapGetters(['fileInfoDetail'])
@@ -60,6 +61,45 @@ import {mapGetters} from 'vuex'
white-space: nowrap;
outline: none;
border: none;
.icon {
stroke: $text;
}
}
}
.move-item {
display: flex;
justify-content: center;
.text{
padding-left: 10px;
width: 100%;
word-break: break-all;
.title {
@include font-size(14);
font-weight: 700;
line-height: 1.4;
display: block;
color: $text;
}
.count {
@include font-size(12);
font-weight: 600;
color: $text-muted;
display: block;
}
}
.icon-wrapper {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
text-align: center;
white-space: nowrap;
outline: none;
border: none;
.icon {
stroke: $theme;
}
}
}
@media (prefers-color-scheme: dark) {
@@ -70,5 +110,15 @@ import {mapGetters} from 'vuex'
}
}
}
.move-item {
.text {
.title {
color: $dark_mode_text_primary;
}
.count {
color: $dark_mode_text_secondary;
}
}
}
}
</style>
+30 -5
View File
@@ -11,7 +11,10 @@
<!--Folder tree-->
<div v-if="! isLoadingTree && navigation">
<ThumbnailItem class="item-thumbnail" :item="pickedItem" info="location"/>
<ThumbnailItem v-if="fileInfoDetail.length < 2 || noSelectedItem" class="item-thumbnail" :item="pickedItem" info="location"/>
<MultiSelected class="multiple-selected" moveItem="true" v-if="fileInfoDetail.length > 1 && !noSelectedItem"/>
<TreeMenu :disabled-by-id="pickedItem.unique_id" :depth="1" :nodes="items" v-for="items in navigation" :key="items.unique_id"/>
</div>
</PopupContent>
@@ -37,6 +40,7 @@
<script>
import PopupWrapper from '@/components/Others/Popup/PopupWrapper'
import PopupActions from '@/components/Others/Popup/PopupActions'
import MultiSelected from '@/components/FilesView/MultiSelected'
import PopupContent from '@/components/Others/Popup/PopupContent'
import PopupHeader from '@/components/Others/Popup/PopupHeader'
import ThumbnailItem from '@/components/Others/ThumbnailItem'
@@ -51,6 +55,7 @@
components: {
ThumbnailItem,
PopupWrapper,
MultiSelected,
PopupActions,
PopupContent,
PopupHeader,
@@ -59,13 +64,14 @@
Spinner,
},
computed: {
...mapGetters(['navigation']),
...mapGetters(['navigation', 'fileInfoDetail']),
},
data() {
return {
selectedFolder: undefined,
pickedItem: undefined,
isLoadingTree: true,
noSelectedItem: false
}
},
methods: {
@@ -75,8 +81,13 @@
if (! this.selectedFolder) return
// Move item
this.$store.dispatch('moveItem', [this.pickedItem, this.selectedFolder])
if(!this.noSelectedItem){
this.$store.dispatch('moveItem', {to_item:this.selectedFolder ,noSelectedItem: null})
}
if(this.noSelectedItem){
this.$store.dispatch('moveItem', {to_item:this.selectedFolder ,noSelectedItem:this.pickedItem})
}
// Close popup
events.$emit('popup:close')
},
@@ -97,7 +108,7 @@
events.$on('popup:open', args => {
if (args.name !== 'move') return
// console.log(args.item[0])
// Show tree spinner
this.isLoadingTree = true
@@ -107,7 +118,17 @@
})
// Store picked item
this.pickedItem = args.item
if(!this.fileInfoDetail.includes(args.item[0])){
this.pickedItem = args.item[0]
this.noSelectedItem = true
}
if(this.fileInfoDetail.includes(args.item[0])){
this.pickedItem = this.fileInfoDetail[0]
this.noSelectedItem = false
}
// this.pickedItem = args.item[0]
// this.totalItems = args.item
})
// Close popup
@@ -127,4 +148,8 @@
.item-thumbnail {
margin-bottom: 20px;
}
.multiple-selected {
padding: 0 20px;;
margin-bottom: 20px;
}
</style>
+32 -16
View File
@@ -6,18 +6,27 @@ import axios from 'axios'
import { Store } from 'vuex'
const actions = {
moveItem: ({commit, getters, dispatch}, [undefined, to_item]) => {
moveItem: ({commit, getters, dispatch}, {to_item ,noSelectedItem}) => {
let items = []
getters.fileInfoDetail.forEach((data) => {
items.push({
let itemsToMove = []
let items = [noSelectedItem]
//If coming no selected item dont get items to move from fileInfoDetail
if(!noSelectedItem) {
items = getters.fileInfoDetail
}
items.forEach((data) => {
itemsToMove.push({
'force_delete': data.deleted_at ? true : false,
'type': data.type,
"unique_id": data.unique_id
})
})
console.log(items)
// Get route
let route = getters.sharedDetail && ! getters.sharedDetail.protected
? '/api/move/public' + router.currentRoute.params.token
@@ -27,10 +36,10 @@ const actions = {
.post(route, {
_method: 'post',
to_unique_id:to_item.unique_id,
items: items
items: itemsToMove
})
.then(() => {
items.forEach(item=> {
itemsToMove.forEach(item=> {
commit('REMOVE_ITEM', item.unique_id)
commit('INCREASE_FOLDER_ITEM', to_item.unique_id)
@@ -183,12 +192,18 @@ const actions = {
})
.catch(() => isSomethingWrong())
},
deleteItem: ({commit, getters, dispatch}) => {
deleteItem: ({commit, getters, dispatch}, noSelectedItem) => {
let items = []
getters.fileInfoDetail.forEach((data) => {
items.push({
let itemsToDelete = []
let items = [noSelectedItem]
//If coming no selected item dont get items to move from fileInfoDetail
if(!noSelectedItem) {
items = getters.fileInfoDetail
}
items.forEach((data) => {
itemsToDelete.push({
'force_delete': data.deleted_at ? true : false,
'type': data.type,
"unique_id": data.unique_id
@@ -212,12 +227,13 @@ const actions = {
if (data.type === 'folder')
commit('REMOVE_ITEM_FROM_FAVOURITES', data)
}
}
})
// Remove file preview
commit('CLEAR_FILEINFO_DETAIL')
if(!noSelectedItem){
commit('CLEAR_FILEINFO_DETAIL')
}
// Get route
let route = getters.sharedDetail && ! getters.sharedDetail.protected
@@ -227,11 +243,11 @@ const actions = {
axios
.post(route, {
_method: 'post',
data: items
data: itemsToDelete
})
.then(() => {
items.forEach(data => {
itemsToDelete.forEach(data => {
// If is folder, update app data
if (data.type === 'folder') {