summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-06-25 12:24:46 +0200
committerVincent Petry <pvince81@owncloud.com>2014-06-25 12:24:46 +0200
commit363f8f3205ceb1c1d1be7a2d0fec143df5384589 (patch)
treea893a7ba805de40e38132f9dad8d7e0d48e9f450
parentc6bcb07f8373b3a1515fc2f26872a0256ee3666d (diff)
downloadnextcloud-server-363f8f3205ceb1c1d1be7a2d0fec143df5384589.tar.gz
nextcloud-server-363f8f3205ceb1c1d1be7a2d0fec143df5384589.zip
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.
-rw-r--r--apps/files_sharing/js/external.js46
1 files changed, 23 insertions, 23 deletions
diff --git a/apps/files_sharing/js/external.js b/apps/files_sharing/js/external.js
index 5c476b2d43d..a142819b112 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
+ );
+ }
}
});