From 85fe7160315c9777adabb1a0af1c2cf208f3e630 Mon Sep 17 00:00:00 2001 From: Kloon ImKloon Date: Mon, 28 Aug 2023 19:31:12 +0200 Subject: [PATCH] Migration to vue3 continued Remove garbage from vscode renaming Fix reading route in pinia store --- frontend/src/components/Search.vue | 1 - frontend/src/components/Shell.vue | 1 - frontend/src/components/Sidebar.vue | 4 +- frontend/src/components/files/ListingItem.vue | 1 - frontend/src/components/header/Action.vue | 1 - frontend/src/components/header/HeaderBar.vue | 1 - frontend/src/components/prompts/Copy.vue | 1 - frontend/src/components/prompts/Delete.vue | 2 +- frontend/src/components/prompts/Download.vue | 1 - frontend/src/components/prompts/FileList.vue | 1 - frontend/src/components/prompts/Help.vue | 1 - frontend/src/components/prompts/Info.vue | 1 - frontend/src/components/prompts/Move.vue | 1 - frontend/src/components/prompts/NewDir.vue | 4 +- frontend/src/components/prompts/NewFile.vue | 2 +- frontend/src/components/prompts/Prompts.vue | 1 - frontend/src/components/prompts/Rename.vue | 1 - frontend/src/components/prompts/Replace.vue | 1 - .../src/components/prompts/ReplaceRename.vue | 1 - frontend/src/components/prompts/Share.vue | 1 - .../src/components/prompts/ShareDelete.vue | 1 - .../src/components/prompts/UploadFiles.vue | 1 - frontend/src/main.js | 51 +++++++++++++++++++ frontend/src/router/index.js | 8 +-- frontend/src/stores/file.js | 13 +++-- frontend/src/views/Files.vue | 3 +- frontend/src/views/Layout.vue | 1 - frontend/src/views/Settings.vue | 1 - frontend/src/views/Share.vue | 1 - frontend/src/views/files/Editor.vue | 1 - frontend/src/views/files/Listing.vue | 1 - frontend/src/views/files/Preview.vue | 1 - frontend/src/views/settings/Global.vue | 1 - frontend/src/views/settings/Profile.vue | 1 - frontend/src/views/settings/Shares.vue | 1 - frontend/src/views/settings/User.vue | 1 - frontend/src/views/settings/Users.vue | 1 - 37 files changed, 65 insertions(+), 51 deletions(-) diff --git a/frontend/src/components/Search.vue b/frontend/src/components/Search.vue index cc4cc33f..751cf1c1 100644 --- a/frontend/src/components/Search.vue +++ b/frontend/src/components/Search.vue @@ -203,4 +203,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/Shell.vue b/frontend/src/components/Shell.vue index 84b3c125..68f771e1 100644 --- a/frontend/src/components/Shell.vue +++ b/frontend/src/components/Shell.vue @@ -129,4 +129,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue index 8bb3b5bf..b223cfc4 100644 --- a/frontend/src/components/Sidebar.vue +++ b/frontend/src/components/Sidebar.vue @@ -134,6 +134,7 @@ export default { components: { ProgressBar, }, + inject: ["$showError"], computed: { ...mapState(useAuthStore, ["user", "isLoggedIn"]), ...mapState(useLayoutStore, ["show"]), @@ -177,7 +178,7 @@ export default { methods: { ...mapActions(useLayoutStore, ["closeHovers", "showHover"]), toRoot() { - this.$router.push({ path: "/files/" }); + this.$router.push({ path: "/files" }); this.closeHovers(); }, toSettings() { @@ -191,4 +192,3 @@ export default { }, }; -@/stores/auth@/stores/layout diff --git a/frontend/src/components/files/ListingItem.vue b/frontend/src/components/files/ListingItem.vue index 11e4ab27..6e3dfc18 100644 --- a/frontend/src/components/files/ListingItem.vue +++ b/frontend/src/components/files/ListingItem.vue @@ -257,4 +257,3 @@ export default { }, }; -@/stores/auth@/stores/file@/stores/layout diff --git a/frontend/src/components/header/Action.vue b/frontend/src/components/header/Action.vue index b74f31f7..4d152516 100644 --- a/frontend/src/components/header/Action.vue +++ b/frontend/src/components/header/Action.vue @@ -27,4 +27,3 @@ export default { -@/stores/layout diff --git a/frontend/src/components/header/HeaderBar.vue b/frontend/src/components/header/HeaderBar.vue index 55b3d115..210080b3 100644 --- a/frontend/src/components/header/HeaderBar.vue +++ b/frontend/src/components/header/HeaderBar.vue @@ -56,4 +56,3 @@ export default { -@/stores/layout diff --git a/frontend/src/components/prompts/Copy.vue b/frontend/src/components/prompts/Copy.vue index b668ace0..b8119618 100644 --- a/frontend/src/components/prompts/Copy.vue +++ b/frontend/src/components/prompts/Copy.vue @@ -123,4 +123,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/Delete.vue b/frontend/src/components/prompts/Delete.vue index f5967c76..886591fd 100644 --- a/frontend/src/components/prompts/Delete.vue +++ b/frontend/src/components/prompts/Delete.vue @@ -38,6 +38,7 @@ import { useLayoutStore } from "@/stores/layout"; export default { name: "delete", + inject: ["$showError"], computed: { ...mapState(useFileStore, [ "isListing", @@ -86,4 +87,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/Download.vue b/frontend/src/components/prompts/Download.vue index d374bebf..a1fc2fd6 100644 --- a/frontend/src/components/prompts/Download.vue +++ b/frontend/src/components/prompts/Download.vue @@ -42,4 +42,3 @@ export default { computed: mapState(useLayoutStore, ["showConfirm"]), }; -@/stores/layout diff --git a/frontend/src/components/prompts/FileList.vue b/frontend/src/components/prompts/FileList.vue index 8383def0..ebf3ab71 100644 --- a/frontend/src/components/prompts/FileList.vue +++ b/frontend/src/components/prompts/FileList.vue @@ -140,4 +140,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/components/prompts/Help.vue b/frontend/src/components/prompts/Help.vue index 5fa0e32e..10075959 100644 --- a/frontend/src/components/prompts/Help.vue +++ b/frontend/src/components/prompts/Help.vue @@ -43,4 +43,3 @@ export default { }, }; -@/stores/layout diff --git a/frontend/src/components/prompts/Info.vue b/frontend/src/components/prompts/Info.vue index 0fee9746..6925b11a 100644 --- a/frontend/src/components/prompts/Info.vue +++ b/frontend/src/components/prompts/Info.vue @@ -157,4 +157,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/Move.vue b/frontend/src/components/prompts/Move.vue index 477b7a59..bc563df4 100644 --- a/frontend/src/components/prompts/Move.vue +++ b/frontend/src/components/prompts/Move.vue @@ -105,4 +105,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/NewDir.vue b/frontend/src/components/prompts/NewDir.vue index 7bbb5a7d..0e172ca7 100644 --- a/frontend/src/components/prompts/NewDir.vue +++ b/frontend/src/components/prompts/NewDir.vue @@ -51,6 +51,7 @@ export default { name: "", }; }, + inject: ["$showError"], computed: { ...mapState(useFileStore, ["isFiles", "isListing"]), }, @@ -72,7 +73,7 @@ export default { try { await api.post(uri); - this.$router.push({ path: uri }); + this.$router.push({ path: `${uri}` }); } catch (e) { this.$showError(e); } @@ -82,4 +83,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/NewFile.vue b/frontend/src/components/prompts/NewFile.vue index 06049bff..fcd67822 100644 --- a/frontend/src/components/prompts/NewFile.vue +++ b/frontend/src/components/prompts/NewFile.vue @@ -51,6 +51,7 @@ export default { name: "", }; }, + inject: ["$showError"], computed: { ...mapState(useFileStore, ["isFiles", "isListing"]), }, @@ -82,4 +83,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/Prompts.vue b/frontend/src/components/prompts/Prompts.vue index f9e94966..88e2e921 100644 --- a/frontend/src/components/prompts/Prompts.vue +++ b/frontend/src/components/prompts/Prompts.vue @@ -115,4 +115,3 @@ export default { }, }; -@/stores/layout diff --git a/frontend/src/components/prompts/Rename.vue b/frontend/src/components/prompts/Rename.vue index 334a6493..140ce35f 100644 --- a/frontend/src/components/prompts/Rename.vue +++ b/frontend/src/components/prompts/Rename.vue @@ -113,4 +113,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/Replace.vue b/frontend/src/components/prompts/Replace.vue index d3e9391b..a08d3aec 100644 --- a/frontend/src/components/prompts/Replace.vue +++ b/frontend/src/components/prompts/Replace.vue @@ -51,4 +51,3 @@ export default { }, }; -@/stores/layout diff --git a/frontend/src/components/prompts/ReplaceRename.vue b/frontend/src/components/prompts/ReplaceRename.vue index 8913d9c2..509386b5 100644 --- a/frontend/src/components/prompts/ReplaceRename.vue +++ b/frontend/src/components/prompts/ReplaceRename.vue @@ -51,4 +51,3 @@ export default { }, }; -@/stores/layout diff --git a/frontend/src/components/prompts/Share.vue b/frontend/src/components/prompts/Share.vue index 8ce28388..aa5df675 100644 --- a/frontend/src/components/prompts/Share.vue +++ b/frontend/src/components/prompts/Share.vue @@ -257,4 +257,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/components/prompts/ShareDelete.vue b/frontend/src/components/prompts/ShareDelete.vue index ed158d3e..f6fe1152 100644 --- a/frontend/src/components/prompts/ShareDelete.vue +++ b/frontend/src/components/prompts/ShareDelete.vue @@ -41,4 +41,3 @@ export default { }, }; -@/stores/layout diff --git a/frontend/src/components/prompts/UploadFiles.vue b/frontend/src/components/prompts/UploadFiles.vue index 49a9fb25..c1e3fb8a 100644 --- a/frontend/src/components/prompts/UploadFiles.vue +++ b/frontend/src/components/prompts/UploadFiles.vue @@ -62,4 +62,3 @@ export default { }, }; -@/stores/upload diff --git a/frontend/src/main.js b/frontend/src/main.js index f570746b..06cf9840 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -1,5 +1,7 @@ import "whatwg-fetch"; import cssVars from "css-vars-ponyfill"; +import Noty from "noty"; +import { disableExternal } from "@/utils/constants"; import { createApp } from "vue"; import VueLazyload from "vue-lazyload"; import createPinia from "@/stores"; @@ -33,4 +35,53 @@ app.directive("focus", { }, }); +const notyDefault = { + type: "info", + layout: "bottomRight", + timeout: 1000, + progressBar: true, +}; + +app.provide("$noty", (opts) => { + new Noty(Object.assign({}, notyDefault, opts)).show(); +}); + +app.provide("$showSuccess", (message) => { + new Noty( + Object.assign({}, notyDefault, { + text: message, + type: "success", + }) + ).show(); +}); + +app.provide("$showError", (error, displayReport = true) => { + let btns = [ + Noty.button(i18n.global.t("buttons.close"), "", function () { + n.close(); + }), + ]; + + if (!disableExternal && displayReport) { + btns.unshift( + Noty.button(i18n.global.t("buttons.reportIssue"), "", function () { + window.open( + "https://github.com/filebrowser/filebrowser/issues/new/choose" + ); + }) + ); + } + + let n = new Noty( + Object.assign({}, notyDefault, { + text: error.message || error, + type: "error", + timeout: null, + buttons: btns, + }) + ); + + n.show(); +}); + router.isReady().then(() => app.mount("#app")); diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 972d1a48..e9cc03da 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -142,15 +142,9 @@ const routes = [ showHeader: true, }, }, - // { - // path: "/files", - // redirect: { - // path: "/files/", - // }, - // }, { path: "/:catchAll(.*)*", - redirect: (to) => `/files${to.params.catchAll}`, + redirect: (to) => `/files/${[...to.params.catchAll].join("/")}`, }, ]; diff --git a/frontend/src/stores/file.js b/frontend/src/stores/file.js index 74826889..b70a1126 100644 --- a/frontend/src/stores/file.js +++ b/frontend/src/stores/file.js @@ -1,7 +1,6 @@ import { defineStore } from "pinia"; import { useRouterStore } from "./router"; -// import { useAuthPreferencesStore } from "./auth-preferences"; -// import { useAuthEmailStore } from "./auth-email"; +import { useLayoutStore } from "./layout"; export const useFileStore = defineStore("file", { // convert to a function @@ -13,17 +12,17 @@ export const useFileStore = defineStore("file", { multiple: false, }), getters: { - // user and jwt getter removed, no longer needed selectedCount: (state) => state.selected.length, route: () => { const routerStore = useRouterStore(); return routerStore.router.currentRoute; }, - isFiles(state) { - return !state.loading && this.route.name === "Files"; + isFiles: (state) => { + const layoutStore = useLayoutStore(); + return !layoutStore.loading && state.route._value.name === "Files"; }, - isListing(state) { - return this.isFiles && state.req.isDir; + isListing: (state) => { + return state.isFiles && state.req.isDir; }, }, actions: { diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue index 189bb6b0..f503142a 100644 --- a/frontend/src/views/Files.vue +++ b/frontend/src/views/Files.vue @@ -123,7 +123,7 @@ export default { if ( clean(res.path) !== - clean(`/${this.$route.params.path}`).replace(/,/g, "/") + clean(`/${[...this.$route.params.path].join("/")}`) ) { throw new Error("Data Mismatch!"); } @@ -146,4 +146,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/views/Layout.vue b/frontend/src/views/Layout.vue index 76e40d7a..1e3c2569 100644 --- a/frontend/src/views/Layout.vue +++ b/frontend/src/views/Layout.vue @@ -52,4 +52,3 @@ export default { }, }; -@/stores/auth@/stores/layout@/stores/file diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index 37b6aa51..c1644346 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -66,4 +66,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/views/Share.vue b/frontend/src/views/Share.vue index d3ab0d34..8c97f151 100644 --- a/frontend/src/views/Share.vue +++ b/frontend/src/views/Share.vue @@ -360,4 +360,3 @@ export default { }, }; -@/stores/file@/stores/layout diff --git a/frontend/src/views/files/Editor.vue b/frontend/src/views/files/Editor.vue index 80d0bb79..1a8e04a0 100644 --- a/frontend/src/views/files/Editor.vue +++ b/frontend/src/views/files/Editor.vue @@ -146,4 +146,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/views/files/Listing.vue b/frontend/src/views/files/Listing.vue index 10f94aad..c268def6 100644 --- a/frontend/src/views/files/Listing.vue +++ b/frontend/src/views/files/Listing.vue @@ -905,4 +905,3 @@ export default { }, }; -@/stores/auth@/stores/clipboard@/stores/file@/stores/layout diff --git a/frontend/src/views/files/Preview.vue b/frontend/src/views/files/Preview.vue index a5f494a6..b097bda0 100644 --- a/frontend/src/views/files/Preview.vue +++ b/frontend/src/views/files/Preview.vue @@ -360,4 +360,3 @@ export default { }, }; -@/stores/auth@/stores/file@/stores/layout diff --git a/frontend/src/views/settings/Global.vue b/frontend/src/views/settings/Global.vue index f5f491ce..eb006c39 100644 --- a/frontend/src/views/settings/Global.vue +++ b/frontend/src/views/settings/Global.vue @@ -368,4 +368,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/views/settings/Profile.vue b/frontend/src/views/settings/Profile.vue index 502ab41f..256fbeb5 100644 --- a/frontend/src/views/settings/Profile.vue +++ b/frontend/src/views/settings/Profile.vue @@ -168,4 +168,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/views/settings/Shares.vue b/frontend/src/views/settings/Shares.vue index 53a2943f..1f149e79 100644 --- a/frontend/src/views/settings/Shares.vue +++ b/frontend/src/views/settings/Shares.vue @@ -143,4 +143,3 @@ export default { }, }; -@/stores/auth@/stores/file diff --git a/frontend/src/views/settings/User.vue b/frontend/src/views/settings/User.vue index f4aa3d1d..d8fe8a2e 100644 --- a/frontend/src/views/settings/User.vue +++ b/frontend/src/views/settings/User.vue @@ -173,4 +173,3 @@ export default { }, }; -@/stores/auth@/stores/file@/stores/layout diff --git a/frontend/src/views/settings/Users.vue b/frontend/src/views/settings/Users.vue index ccab7883..a60494f0 100644 --- a/frontend/src/views/settings/Users.vue +++ b/frontend/src/views/settings/Users.vue @@ -74,4 +74,3 @@ export default { }, }; -@/stores/file