diff options
Diffstat (limited to 'web-ui/app/js')
-rw-r--r-- | web-ui/app/js/dispatchers/right_pane_dispatcher.js | 1 | ||||
-rw-r--r-- | web-ui/app/js/mail_view/data/attachment_list.js | 11 | ||||
-rw-r--r-- | web-ui/app/js/mail_view/ui/attachment_list.js | 14 | ||||
-rw-r--r-- | web-ui/app/js/page/events.js | 3 |
4 files changed, 24 insertions, 5 deletions
diff --git a/web-ui/app/js/dispatchers/right_pane_dispatcher.js b/web-ui/app/js/dispatchers/right_pane_dispatcher.js index 870bcd92..7fe4417b 100644 --- a/web-ui/app/js/dispatchers/right_pane_dispatcher.js +++ b/web-ui/app/js/dispatchers/right_pane_dispatcher.js @@ -60,6 +60,7 @@ define( this.openComposeBox = function() { var stage = this.reset(this.attr.composeBox); ComposeBox.attachTo(stage, {currentTag: this.attr.currentTag}); + this.trigger(document, events.mail.resetAttachments); }; this.openFeedbackBox = function() { diff --git a/web-ui/app/js/mail_view/data/attachment_list.js b/web-ui/app/js/mail_view/data/attachment_list.js index 9193e37a..d1d07e0c 100644 --- a/web-ui/app/js/mail_view/data/attachment_list.js +++ b/web-ui/app/js/mail_view/data/attachment_list.js @@ -32,8 +32,19 @@ define( this.attr.attachments.push(data); }; + this.resetAttachmentList = function () { + this.attr.attachments = []; + }; + + this.resetAll = function () { + this.resetAttachmentList(); + this.teardown(); + }; + this.after('initialize', function () { this.on(document, events.mail.appendAttachment, this.addAttachment); + this.on(document, events.mail.resetAttachments, this.resetAttachmentList); + this.on(document, events.mail.sent, this.resetAll); }); } diff --git a/web-ui/app/js/mail_view/ui/attachment_list.js b/web-ui/app/js/mail_view/ui/attachment_list.js index 36899056..60e6abad 100644 --- a/web-ui/app/js/mail_view/ui/attachment_list.js +++ b/web-ui/app/js/mail_view/ui/attachment_list.js @@ -32,14 +32,15 @@ define( attachmentBaseUrl: '/attachment' }); - this.addAttachment = function (event, data) { + this.showAttachment = function (event, data) { this.trigger(document, events.mail.appendAttachment, data); this.renderAttachmentListView(data); }; this.renderAttachmentListView = function (data) { + var currentHtml = this.select('attachmentListItem').html(); var item = this.buildAttachmentListItem(data); - this.select('attachmentListItem').html(item); + this.select('attachmentListItem').html(currentHtml + '<li>' + item + '</li>'); }; function humanReadable(bytes) { @@ -73,13 +74,18 @@ define( } this.startUpload = function () { - addJqueryFileUploadConfig(this); this.select('inputFileUpload').click(); }; + this.resetAll = function () { + this.teardown(); + }; + this.after('initialize', function () { - this.on(document, events.mail.uploadedAttachment, this.addAttachment); + addJqueryFileUploadConfig(this); + this.on(document, events.mail.uploadedAttachment, this.showAttachment); this.on(document, events.mail.startUploadAttachment, this.startUpload); + this.on(document, events.mail.sent, this.resetAll); }); } diff --git a/web-ui/app/js/page/events.js b/web-ui/app/js/page/events.js index c85a322d..f6186d41 100644 --- a/web-ui/app/js/page/events.js +++ b/web-ui/app/js/page/events.js @@ -146,7 +146,8 @@ define(function () { uploadedAttachment: 'mail:uploaded:attachment', uploadingAttachment: 'mail:uploading:attachment', startUploadAttachment: 'mail:start:upload:attachment', - appendAttachment: 'mail:append:attachment' + appendAttachment: 'mail:append:attachment', + resetAttachments: 'mail:reset:attachments' }, mails: { available: 'mails:available', |