aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-09-06 12:18:08 +0200
committerGitHub <noreply@github.com>2019-09-06 12:18:08 +0200
commit803c8ddf7f1b47aa99937455ba2c023c9d88c9db (patch)
tree79324eacb7b071bc8256df5eaa0742df8ea491c6
parent1a7310f4b34a6665ced59b6e1d2a0598243462d9 (diff)
parentf12a99e5e2434110a9f9ce5d84dfd4956f1a9411 (diff)
downloadnextcloud-server-803c8ddf7f1b47aa99937455ba2c023c9d88c9db.tar.gz
nextcloud-server-803c8ddf7f1b47aa99937455ba2c023c9d88c9db.zip
Merge pull request #16984 from nextcloud/bugfix/noid/warn-during-upload-drop
Warn user before closing when uploading a file on a upload only link
-rw-r--r--apps/files_sharing/js/files_drop.js41
1 files changed, 30 insertions, 11 deletions
diff --git a/apps/files_sharing/js/files_drop.js b/apps/files_sharing/js/files_drop.js
index 340f941a718..26bb04a001a 100644
--- a/apps/files_sharing/js/files_drop.js
+++ b/apps/files_sharing/js/files_drop.js
@@ -13,11 +13,14 @@
var Drop = {
/** @type {Function} **/
_template: undefined,
-
+
+ /** @type {bool} */
+ _uploading: false,
+
addFileToUpload: function(e, data) {
var errors = [];
var output = this.template();
-
+
var filesClient = new OC.Files.Client({
host: OC.getHost(),
port: OC.getPort(),
@@ -27,7 +30,7 @@
root: OC.getRootPath() + '/public.php/webdav',
useHTTPS: OC.getProtocol() === 'https'
});
-
+
// We only process one file at a time 🤷‍♀️
var name = data.files[0].name;
// removing unwanted characters
@@ -43,13 +46,13 @@
}
var base = OC.getProtocol() + '://' + OC.getHost();
data.url = base + OC.getRootPath() + '/public.php/webdav/' + encodeURI(name);
-
+
data.multipart = false;
-
+
if (!data.headers) {
data.headers = {};
}
-
+
var userName = filesClient.getUserName();
var password = filesClient.getPassword();
if (userName) {
@@ -57,32 +60,39 @@
data.headers['Authorization'] =
'Basic ' + btoa(userName + ':' + (password || ''));
}
-
+
$('#drop-upload-done-indicator').addClass('hidden');
$('#drop-upload-progress-indicator').removeClass('hidden');
$('#drop-uploaded-files').append(output({isUploading: true, name: data.files[0].name}));
$('[data-toggle="tooltip"]').tooltip();
data.submit();
-
+
return true;
},
-
+
updateFileItem: function (fileName, fileItem) {
$('#drop-uploaded-files li[data-name="' + fileName + '"]').replaceWith(fileItem);
$('[data-toggle="tooltip"]').tooltip();
},
-
+
initialize: function () {
$(document).bind('drop dragover', function (e) {
// Prevent the default browser drop action:
e.preventDefault();
});
var output = this.template();
+ var self = this;
$('#public-upload').fileupload({
type: 'PUT',
dropZone: $('#public-upload'),
sequentialUploads: true,
+ start: function(e) {
+ self._uploading = true;
+ },
+ stop: function(e) {
+ self._uploading = false;
+ },
add: function(e, data) {
Drop.addFileToUpload(e, data);
//we return true to keep trying to upload next file even
@@ -120,6 +130,9 @@
e.preventDefault();
$('#public-upload #emptycontent input').focus().trigger('click');
});
+ window.onbeforeunload = function() {
+ return self.confirmBeforeUnload();
+ }
},
/**
@@ -128,7 +141,13 @@
*/
template: function () {
return OCA.Sharing.Templates['files_drop'];
- }
+ },
+
+ confirmBeforeUnload: function() {
+ if (this._uploading) {
+ return t('files', 'This will stop your current uploads.')
+ }
+ },
};
OCA.FilesSharingDrop = Drop;