Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/js/app.js10
-rw-r--r--apps/files/js/filelist.js13
2 files changed, 14 insertions, 9 deletions
diff --git a/apps/files/js/app.js b/apps/files/js/app.js
index 5efa20887e6..d6b7a79b362 100644
--- a/apps/files/js/app.js
+++ b/apps/files/js/app.js
@@ -316,7 +316,7 @@
* Event handler for when an app notified that its directory changed
*/
_onDirectoryChanged: function(e) {
- if (e.dir) {
+ if (e.dir && !e.changedThroughUrl) {
this._changeUrl(this.navigation.getActiveItem(), e.dir, e.fileId);
}
},
@@ -386,9 +386,11 @@
params.fileid = fileId;
}
var currentParams = OC.Util.History.parseUrlQuery();
- if (currentParams.dir === params.dir && currentParams.view === params.view && currentParams.fileid !== params.fileid) {
- // if only fileid changed or was added, replace instead of push
- OC.Util.History.replaceState(this._makeUrlParams(params));
+ if (currentParams.dir === params.dir && currentParams.view === params.view) {
+ if (currentParams.fileid !== params.fileid) {
+ // if only fileid changed or was added, replace instead of push
+ OC.Util.History.replaceState(this._makeUrlParams(params));
+ }
} else {
OC.Util.History.pushState(this._makeUrlParams(params));
}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 6fe9895c60e..a653aac25b9 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -794,7 +794,7 @@
if( (this._currentDirectory || this.$el.find('#dir').val()) && currentDir === e.dir) {
return;
}
- this.changeDirectory(e.dir, false, true);
+ this.changeDirectory(e.dir, true, true, undefined, true);
}
},
@@ -2057,15 +2057,16 @@
* @param {boolean} [changeUrl=true] if the URL must not be changed (defaults to true)
* @param {boolean} [force=false] set to true to force changing directory
* @param {string} [fileId] optional file id, if known, to be appended in the URL
+ * @param {bool} [changedThroughUrl=false] true if the dir was set through a URL change
*/
- changeDirectory: function(targetDir, changeUrl, force, fileId) {
+ changeDirectory: function(targetDir, changeUrl, force, fileId, changedThroughUrl) {
var self = this;
var currentDir = this.getCurrentDirectory();
targetDir = targetDir || '/';
if (!force && currentDir === targetDir) {
return;
}
- this._setCurrentDir(targetDir, changeUrl, fileId);
+ this._setCurrentDir(targetDir, changeUrl, fileId, changedThroughUrl);
// discard finished uploads list, we'll get it through a regular reload
this._uploads = {};
@@ -2100,8 +2101,9 @@
* @param targetDir directory to display
* @param changeUrl true to also update the URL, false otherwise (default)
* @param {string} [fileId] file id
+ * @param {bool} changedThroughUrl true if the dir was set through a URL change
*/
- _setCurrentDir: function(targetDir, changeUrl, fileId) {
+ _setCurrentDir: function(targetDir, changeUrl, fileId, changedThroughUrl) {
targetDir = targetDir.replace(/\\/g, '/');
if (!this._isValidPath(targetDir)) {
targetDir = '/';
@@ -2133,6 +2135,7 @@
if (fileId) {
params.fileId = fileId;
}
+ params.changedThroughUrl = changedThroughUrl
this.$el.trigger(jQuery.Event('changeDirectory', params));
}
this.breadcrumb.setDirectory(this.getCurrentDirectory());
@@ -2234,7 +2237,7 @@
if (status === 401) {
// We are not authentificated, so reload the page so that we get
// redirected to the login page while saving the current url.
- location.reload();
+ location.reload();
}
// Firewall Blocked request?