From cddd1bd3665b36063e3e4fe13175af22d41e6359 Mon Sep 17 00:00:00 2001 From: David Mason Date: Mon, 14 Jul 2014 11:40:04 +1000 Subject: [PATCH] Warn user when closing page during multiple file upload This adds a modal dialog when a user is currently uploading source files and they attempt to close or navigate away from the page. --- .../jQuery-File-Upload/9_5_6/js/jquery.fileupload-ui.js | 1 + .../webapp/resources/jQuery-File-Upload/9_5_6/js/main.js | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/jquery.fileupload-ui.js b/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/jquery.fileupload-ui.js index aaa3acb58c..ec2314bca3 100644 --- a/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/jquery.fileupload-ui.js +++ b/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/jquery.fileupload-ui.js @@ -663,6 +663,7 @@ .text('Uploading...'); dropZone.addClass('is-hidden'); options.container.on('hide.zanata.modal', options.confirmCancelUpload); + $(window).on('beforeunload', options.confirmLeavePage); // TODO change upload progress message options.updateUploadCountIndicator(options); filesList.find('.cancel').addClass('is-hidden'); diff --git a/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/main.js b/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/main.js index b26259363c..423df3631d 100644 --- a/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/main.js +++ b/zanata-war/src/main/webapp/resources/jQuery-File-Upload/9_5_6/js/main.js @@ -76,6 +76,7 @@ $(function () { doneButton.removeClass('is-hidden').prop('disabled', false); cancelButton.addClass('is-hidden').prop('disabled', true); container.off('hide.zanata.modal', confirmCancelUpload); + $(window).off('beforeunload', confirmLeavePage); } }); @@ -92,14 +93,19 @@ $(function () { refreshStatistics(); }) - function confirmCancelUpload (e) { + function confirmCancelUpload () { var confirmCancel = confirm('Do you really want to stop uploading files?'); if (confirmCancel) { container.off('hide.zanata.modal', confirmCancelUpload); + $(window).off('beforeunload', confirmLeavePage); } return confirmCancel; } + function confirmLeavePage () { + return 'Do you really want to interrupt your uploading files by leaving this page?'; + } + // prevent default file drop behaviour on the page $doc.bind('drop dragover', function (e) { e.preventDefault(); @@ -140,6 +146,7 @@ $(function () { url: url, container: container, confirmCancelUpload: confirmCancelUpload, + confirmLeavePage: confirmLeavePage, sequentialUploads: true, maxFileSize: 200*1024*1024, maxNumberOfFiles: maxFiles,