From 63c21df161ee3bacf848aadd0ea91a832b716f05 Mon Sep 17 00:00:00 2001 From: Florian Schade Date: Sun, 10 Oct 2021 14:50:48 +0200 Subject: [PATCH 1/4] fix(resource loading): don't load root resources if homeFolder is set get rid of uunnecessary resource loading for personal files view if homeFolder is set. --- ...unnecessary-redirects-personal-home-folder | 8 +++ packages/web-app-files/src/views/Personal.vue | 64 +++++++------------ 2 files changed, 31 insertions(+), 41 deletions(-) create mode 100644 changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder diff --git a/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder b/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder new file mode 100644 index 00000000000..0de7deca7ca --- /dev/null +++ b/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder @@ -0,0 +1,8 @@ +Bugfix: Unnecessary redirects on personal page + +Navigating to all files could tend to loading resources twice, first resources from root (/) and second the resources from the homeFolder (options.homeFolder). +We've fixed this by detecting those cases and only load resources for the homeFolder. + +https://github.com/owncloud/web/pull/5893 +https://github.com/owncloud/web/issues/5085 +https://github.com/owncloud/web/issues/5875 diff --git a/packages/web-app-files/src/views/Personal.vue b/packages/web-app-files/src/views/Personal.vue index cee82207fae..e8bd18f5de9 100644 --- a/packages/web-app-files/src/views/Personal.vue +++ b/packages/web-app-files/src/views/Personal.vue @@ -108,22 +108,6 @@ export default { MixinFilesListFilter ], - beforeRouteEnter(to, from, next) { - next((vm) => { - if (vm.isRedirectToHomeFolderRequired(to)) { - vm.redirectToHomeFolder(to) - } - }) - }, - - async beforeRouteUpdate(to, from, next) { - if (this.isRedirectToHomeFolderRequired(to)) { - await this.redirectToHomeFolder(to) - return - } - next() - }, - data: () => ({ loading: true }), @@ -176,11 +160,31 @@ export default { watch: { $route: { - handler: function (to, from) { - this.$_filesListPagination_updateCurrentPage() - + handler: function(to, from) { const sameRoute = to.name === from?.name const sameItem = to.params?.item === from?.params?.item + + if (isNil(to.params.item) && !to.path.endsWith('/') && (!sameRoute || !sameItem)) { + this.$router.replace( + { + name: to.name, + params: { + ...to.params, + item: this.homeFolder + }, + query: to.query + }, + () => {}, + e => { + console.error(e) + } + ) + + return + } + + this.$_filesListPagination_updateCurrentPage() + if (!sameRoute || !sameItem) { this.loadResources(sameRoute) } @@ -223,28 +227,6 @@ export default { ]), ...mapMutations(['SET_QUOTA']), - isRedirectToHomeFolderRequired(to) { - return isNil(to.params.item) - }, - - async redirectToHomeFolder(to) { - const route = { - name: to.name, - params: { - ...to.params, - item: to.path.endsWith('/') ? '/' : this.homeFolder - }, - query: to.query - } - await this.$router.replace( - route, - () => {}, - (e) => { - console.error(e) - } - ) - }, - async fileDropped(fileIdTarget) { const selected = [...this.selectedFiles] const targetInfo = this.activeFilesCurrentPage.find((e) => e.id === fileIdTarget) From bdaef9f39c7146346b122365619c0d57b3306fbc Mon Sep 17 00:00:00 2001 From: Florian Schade Date: Sun, 10 Oct 2021 16:27:41 +0200 Subject: [PATCH 2/4] fix acceptance tests for oc10 by skip homeFolder redirect if it's set to / --- packages/web-app-files/src/views/Personal.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/web-app-files/src/views/Personal.vue b/packages/web-app-files/src/views/Personal.vue index e8bd18f5de9..1f77a14b9cc 100644 --- a/packages/web-app-files/src/views/Personal.vue +++ b/packages/web-app-files/src/views/Personal.vue @@ -164,7 +164,12 @@ export default { const sameRoute = to.name === from?.name const sameItem = to.params?.item === from?.params?.item - if (isNil(to.params.item) && !to.path.endsWith('/') && (!sameRoute || !sameItem)) { + if ( + this.homeFolder !== '/' && + isNil(to.params.item) && + !to.path.endsWith('/') && + (!sameRoute || !sameItem) + ) { this.$router.replace( { name: to.name, From 2371c72ae212ef25829382ceb638508d5f7af016 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 13 Oct 2021 17:32:10 +0200 Subject: [PATCH 3/4] Improve code readability --- packages/web-app-files/src/views/Personal.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/web-app-files/src/views/Personal.vue b/packages/web-app-files/src/views/Personal.vue index 1f77a14b9cc..d043cbef8fa 100644 --- a/packages/web-app-files/src/views/Personal.vue +++ b/packages/web-app-files/src/views/Personal.vue @@ -160,16 +160,16 @@ export default { watch: { $route: { - handler: function(to, from) { + handler: function (to, from) { const sameRoute = to.name === from?.name const sameItem = to.params?.item === from?.params?.item - if ( + const needsRedirectToHome = this.homeFolder !== '/' && isNil(to.params.item) && !to.path.endsWith('/') && (!sameRoute || !sameItem) - ) { + if (needsRedirectToHome) { this.$router.replace( { name: to.name, @@ -180,7 +180,7 @@ export default { query: to.query }, () => {}, - e => { + (e) => { console.error(e) } ) From c4c9ea237b5b7cb087f6da377d37efea5351eb7f Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Wed, 13 Oct 2021 17:34:21 +0200 Subject: [PATCH 4/4] Fix changelog wording --- .../bugfix-unnecessary-redirects-personal-home-folder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder b/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder index 0de7deca7ca..727470e8f74 100644 --- a/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder +++ b/changelog/unreleased/bugfix-unnecessary-redirects-personal-home-folder @@ -1,6 +1,6 @@ Bugfix: Unnecessary redirects on personal page -Navigating to all files could tend to loading resources twice, first resources from root (/) and second the resources from the homeFolder (options.homeFolder). +Navigating to all files could lead to loading resources twice, first resources from root (/) and second the resources from the homeFolder (options.homeFolder). We've fixed this by detecting those cases and only load resources for the homeFolder. https://github.com/owncloud/web/pull/5893