From 44fb6682e484b2cf27287cd2548af4987d631ba0 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 25 May 2016 22:01:15 +0300 Subject: [PATCH] Prevent saving expense before documents have uploaded --- resources/views/expenses/edit.blade.php | 24 ++++++++++++++++++++++-- resources/views/invoices/edit.blade.php | 7 ++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/resources/views/expenses/edit.blade.php b/resources/views/expenses/edit.blade.php index 873da5451ea0..aadfacc52617 100644 --- a/resources/views/expenses/edit.blade.php +++ b/resources/views/expenses/edit.blade.php @@ -15,7 +15,10 @@ @section('content') - {!! Former::open($url)->addClass('warn-on-exit main-form')->method($method) !!} + {!! Former::open($url) + ->addClass('warn-on-exit main-form') + ->onsubmit('return onFormSubmit(event)') + ->method($method) !!}
{!! Former::text('action') !!}
@@ -154,6 +157,15 @@ clientMap[client.public_id] = client; } + function onFormSubmit(event) { + if (window.countUploadingDocuments > 0) { + alert("{!! trans('texts.wait_for_upload') !!}"); + return false; + } + + return true; + } + function onClientChange() { var clientId = $('select#client_id').val(); var client = clientMap[clientId]; @@ -240,6 +252,7 @@ dropzone.on("addedfile",handleDocumentAdded); dropzone.on("removedfile",handleDocumentRemoved); dropzone.on("success",handleDocumentUploaded); + dropzone.on("canceled",handleDocumentCanceled); for (var i=0; iaccount->hasFeature(FEATURE_DOCUMENTS)) function handleDocumentAdded(file){ // open document when clicked @@ -373,6 +387,7 @@ if(file.mock)return; file.index = model.documents().length; model.addDocument({name:file.name, size:file.size, type:file.type}); + window.countUploadingDocuments++; } function handleDocumentRemoved(file){ @@ -382,11 +397,16 @@ function handleDocumentUploaded(file, response){ file.public_id = response.document.public_id model.documents()[file.index].update(response.document); - + window.countUploadingDocuments--; if(response.document.preview_url){ dropzone.emit('thumbnail', file, response.document.preview_url); } } + + function handleDocumentCanceled() + { + window.countUploadingDocuments--; + } @endif diff --git a/resources/views/invoices/edit.blade.php b/resources/views/invoices/edit.blade.php index 235266c64a54..d17a3ba25c62 100644 --- a/resources/views/invoices/edit.blade.php +++ b/resources/views/invoices/edit.blade.php @@ -1025,6 +1025,7 @@ dropzone.on("addedfile",handleDocumentAdded); dropzone.on("removedfile",handleDocumentRemoved); dropzone.on("success",handleDocumentUploaded); + dropzone.on("canceled",handleDocumentCanceled); for (var i=0; i