@@ -52,13 +52,10 @@ export default {
computed: {
...mapState(["req", "reload", "loading"]),
currentView() {
- if (this.req.type == undefined) {
+ if (this.req.type == undefined || this.req.isDir) {
return null;
}
-
- if (this.req.isDir) {
- return "listing";
- } else if (
+ else if (
this.req.type === "text" ||
this.req.type === "textImmutable"
) {
@@ -72,7 +69,26 @@ export default {
this.fetchData();
},
watch: {
- $route: "fetchData",
+ $route: function (to, from) {
+ if (from.path.endsWith("/")) {
+ if (to.path.endsWith("/")) {
+ window.sessionStorage.setItem('listFrozen', "false");
+ this.fetchData();
+ return;
+ } else {
+ window.sessionStorage.setItem('listFrozen', "true");
+ this.fetchData();
+ return;
+ }
+ } else if (to.path.endsWith("/")) {
+ this.$store.commit("updateRequest", {});
+ this.fetchData();
+ return;
+ } else {
+ this.fetchData();
+ return;
+ }
+ },
reload: function (value) {
if (value === true) {
this.fetchData();
@@ -101,7 +117,9 @@ export default {
this.$store.commit("closeHovers");
// Set loading to true and reset the error.
- this.setLoading(true);
+ if (window.sessionStorage.getItem('listFrozen') !=="true"){
+ this.setLoading(true);
+ }
this.error = null;
let url = this.$route.path;
diff --git a/frontend/src/views/files/Listing.vue b/frontend/src/views/files/Listing.vue
index c204de45..692593b6 100644
--- a/frontend/src/views/files/Listing.vue
+++ b/frontend/src/views/files/Listing.vue
@@ -383,17 +383,22 @@ export default {
},
watch: {
req: function () {
- // Reset the show value
- this.showLimit = 50;
+ if (window.sessionStorage.getItem('listFrozen') !=="true"){
+ // Reset the show value
+ this.showLimit = 50;
- // Ensures that the listing is displayed
- Vue.nextTick(() => {
- // How much every listing item affects the window height
- this.setItemWeight();
+ // Ensures that the listing is displayed
+ Vue.nextTick(() => {
+ // How much every listing item affects the window height
+ this.setItemWeight();
- // Fill and fit the window with listing items
- this.fillWindow(true);
- });
+ // Fill and fit the window with listing items
+ this.fillWindow(true);
+ });
+ }
+ if (this.req.isDir) {
+ window.sessionStorage.setItem('listFrozen', "false");
+ }
},
},
mounted: function () {
diff --git a/frontend/src/views/files/Preview.vue b/frontend/src/views/files/Preview.vue
index 6422ac5a..aa85e2eb 100644
--- a/frontend/src/views/files/Preview.vue
+++ b/frontend/src/views/files/Preview.vue
@@ -1,6 +1,8 @@