diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-05-09 17:06:08 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2014-06-14 10:13:23 +0200 |
commit | d7de35376d7e068abdfb49e8336feab25e313662 (patch) | |
tree | b4d054593e20eb2f5396e06ef1c472337993a7c4 /apps/files_sharing/js/external.js | |
parent | 0156ef816650ec73d033ebba2107cf237d6301e3 (diff) | |
download | nextcloud-server-d7de35376d7e068abdfb49e8336feab25e313662.tar.gz nextcloud-server-d7de35376d7e068abdfb49e8336feab25e313662.zip |
Add interface for accpeting external shares
Diffstat (limited to 'apps/files_sharing/js/external.js')
-rw-r--r-- | apps/files_sharing/js/external.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/apps/files_sharing/js/external.js b/apps/files_sharing/js/external.js new file mode 100644 index 00000000000..0fa99a1652b --- /dev/null +++ b/apps/files_sharing/js/external.js @@ -0,0 +1,53 @@ +$(document).ready(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, + token : token, + owner : owner, + name : name, + password: password + }); + }; + + var 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 || ''; + if (add) { + addExternalShare(remote, token, owner, name, password).then(function (result) { + if (result) { + FileList.reload(); + } else { + OC.dialogs.alert('Error adding ' + name, 'Error adding share'); + } + }); + } + }; + if (!passwordProtected) { + OC.dialogs.confirm('Add ' + name + ' from ' + owner + '@' + remoteClean, 'Add Share', callback, true); + } else { + OC.dialogs.prompt('Add ' + name + ' from ' + owner + '@' + remoteClean, 'Add Share', callback, true, 'Password', true); + } + }; + + if (window.FileList) {// only run in the files app + var hash = location.hash; + location.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); + } + } +}); |