[Pkg-owncloud-commits] [owncloud] 48/67: Do not clear URL hash when no external mount params given

David Prévot taffit at moszumanska.debian.org
Fri Jun 27 23:58:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 363f8f3205ceb1c1d1be7a2d0fec143df5384589
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Wed Jun 25 12:24:46 2014 +0200

    Do not clear URL hash when no external mount params given
    
    Whenever external share parameters were passed through the URL hash, the
    URL hash will now be cleared.
    
    In other cases, the hash needs to be left alone because it is used as
    workaround for the lack of history API in IE8 / IE9
    
    Removed getParamterByName() and use OC.Util.History.parseUrlQuery() that
    does the same, including replacing the "+" with spaces.
---
 apps/files_sharing/js/external.js | 46 +++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/apps/files_sharing/js/external.js b/apps/files_sharing/js/external.js
index 5c476b2..a142819 100644
--- a/apps/files_sharing/js/external.js
+++ b/apps/files_sharing/js/external.js
@@ -8,13 +8,6 @@
  *
  */
 (function () {
-	var getParameterByName = function (query, name) {
-		name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
-		var regex = new RegExp("[\\#&]" + name + "=([^&#]*)"),
-			results = regex.exec(query);
-		return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
-	};
-
 	var addExternalShare = function (remote, token, owner, name, password) {
 		return $.post(OC.generateUrl('apps/files_sharing/external'), {
 			remote: remote,
@@ -25,7 +18,16 @@
 		});
 	};
 
-	var showAddExternalDialog = function (remote, token, owner, name, passwordProtected) {
+	/**
+	 * Shows "add external share" dialog.
+	 *
+	 * @param {String} remote remote server URL
+	 * @param {String} owner owner name
+	 * @param {String} name name of the shared folder
+	 * @param {String} token authentication token
+	 * @param {bool} passwordProtected true if the share is password protected
+	 */
+	OCA.Sharing.showAddExternalDialog = function (remote, token, owner, name, passwordProtected) {
 		var remoteClean = (remote.substr(0, 8) === 'https://') ? remote.substr(8) : remote.substr(7);
 		var callback = function (add, password) {
 			password = password || '';
@@ -47,25 +49,23 @@
 				, 'Add Share', callback, true, 'Password', true);
 		}
 	};
-
-	OCA.Sharing.showAddExternalDialog = function (hash) {
-		var remote = getParameterByName(hash, 'remote');
-		var owner = getParameterByName(hash, 'owner');
-		var name = getParameterByName(hash, 'name');
-		var token = getParameterByName(hash, 'token');
-		var passwordProtected = parseInt(getParameterByName(hash, 'protected'), 10);
-
-		if (remote && token && owner && name) {
-			showAddExternalDialog(remote, token, owner, name, passwordProtected);
-		}
-	};
 })();
 
 $(document).ready(function () {
 	// FIXME: HACK: do not init when running unit tests, need a better way
 	if (!window.TESTING && OCA.Files) {// only run in the files app
-		var hash = location.hash;
-		location.hash = '';
-		OCA.Sharing.showAddExternalDialog(hash);
+		var params = OC.Util.History.parseUrlQuery();
+		if (params.remote && params.token && params.owner && params.name) {
+			// clear hash, it is unlikely that it contain any extra parameters
+			location.hash = '';
+			params.passwordProtected = parseInt(params.passwordProtected, 10) === 1;
+			OCA.Sharing.showAddExternalDialog(
+				params.remote,
+				params.token,
+				params.owner,
+				params.name,
+				params.passwordProtected
+			);
+		}
 	}
 });

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list