diff options
author | Pixelated <pixelated@pix-poa-1> | 2015-12-23 14:45:52 -0200 |
---|---|---|
committer | Pixelated <pixelated@pix-poa-1> | 2015-12-23 14:45:52 -0200 |
commit | e0e1ee29e1bede2dbee6108c1a923663eecac9fd (patch) | |
tree | 76ed57bb9bd4f59d5398fc8fe7fbc741f7692624 /web-ui/app/js | |
parent | af90d1679a02ad58175b8070cbdfb46666a1dcfc (diff) |
enable/disable send button when attachment is uploading
Issue #548
Diffstat (limited to 'web-ui/app/js')
-rw-r--r-- | web-ui/app/js/mail_view/ui/attachment.js | 8 | ||||
-rw-r--r-- | web-ui/app/js/mail_view/ui/send_button.js | 16 | ||||
-rw-r--r-- | web-ui/app/js/page/events.js | 3 |
3 files changed, 24 insertions, 3 deletions
diff --git a/web-ui/app/js/mail_view/ui/attachment.js b/web-ui/app/js/mail_view/ui/attachment.js index f57fea5b..fcb0fe68 100644 --- a/web-ui/app/js/mail_view/ui/attachment.js +++ b/web-ui/app/js/mail_view/ui/attachment.js @@ -42,13 +42,18 @@ define( dataType: 'json', done: function (e, response) { var data = response.result; - $('#files').html('<span>' + data.filename + ' (' + humanReadable(data.filesize) + ')' + '</span>'); + var link = '<a href="/attachment/'+ data.attachment_id + '?filename='+ data.filename +'&encoding=base64">' + data.filename + ' (' + humanReadable(data.filesize) + ')' + '</a>'; + $('#attachment-list-item').html(link); on.trigger(document, events.mail.uploadedAttachment, data); }, progressall: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); $('#progress .progress-bar').css('width', progress + '%'); } + }).bind('fileuploadstart', function(e) { + on.trigger(document, events.mail.uploadingAttachment); + }).bind('fileuploadadd', function(e) { + $('.attachmentsAreaWrap').show(); }); } @@ -60,6 +65,7 @@ define( this.after('initialize', function () { if (features.isEnabled('attachment')) { this.render(); + $('.attachmentsAreaWrap').hide(); } this.on(this.$node, 'click', this.upload); }); diff --git a/web-ui/app/js/mail_view/ui/send_button.js b/web-ui/app/js/mail_view/ui/send_button.js index 5c1c3506..b16ea055 100644 --- a/web-ui/app/js/mail_view/ui/send_button.js +++ b/web-ui/app/js/mail_view/ui/send_button.js @@ -47,7 +47,7 @@ define([ this.updateButton = function () { if (this.attr.sendingInProgress === false) { - if (this.atLeastOneInputFieldHasCharacters() || this.atLeastOneInputFieldHasRecipients()) { + if (this.attr.uploading === false && (this.atLeastOneInputFieldHasCharacters() || this.atLeastOneInputFieldHasRecipients())) { this.enableButton(); } else { this.disableButton(); @@ -65,6 +65,16 @@ define([ this.updateButton(); }; + this.uploadInProgress = function (ev, data) { + this.attr.uploading = true; + this.updateButton(); + }; + + this.uploadFinished = function (ev, data) { + this.attr.uploading = false; + this.updateButton(); + }; + this.updateRecipientsForField = function (ev, data) { this.attr.recipients[data.recipientsName] = data.newRecipients; this.attr.inputFieldHasCharacters[data.recipientsName] = false; @@ -89,6 +99,7 @@ define([ this.resetButton = function () { this.attr.sendingInProgress = false; + this.attr.uploading = false; this.$node.html(viewHelper.i18n('send-button')); this.enableButton(); }; @@ -104,6 +115,9 @@ define([ this.on(this.$node, 'click', this.updateRecipientsAndSendMail); + this.on(document, events.mail.uploadingAttachment, this.uploadInProgress); + this.on(document, events.mail.uploadedAttachment, this.uploadFinished); + this.on(document, events.dispatchers.rightPane.clear, this.teardown); this.on(document, events.ui.sendbutton.enable, this.resetButton); this.on(document, events.mail.send_failed, this.resetButton); diff --git a/web-ui/app/js/page/events.js b/web-ui/app/js/page/events.js index 4d817b91..85c190bb 100644 --- a/web-ui/app/js/page/events.js +++ b/web-ui/app/js/page/events.js @@ -143,7 +143,8 @@ define(function () { update: 'mail:tags:update', updated: 'mail:tags:updated' }, - uploadedAttachment: 'mail:uploaded:attachment' + uploadedAttachment: 'mail:uploaded:attachment', + uploadingAttachment: 'mail:uploading:attachment' }, mails: { available: 'mails:available', |