From 853c15b5a3732d45c250052261334afeb55bb9c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu> Date: Tue, 30 Sep 2014 22:30:34 +0200 Subject: [PATCH] fixing delete behavior --- js/mail.js | 37 ------------------------------------- js/views/message.js | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/js/mail.js b/js/mail.js index 8053b5de2..4668daff3 100644 --- a/js/mail.js +++ b/js/mail.js @@ -263,32 +263,6 @@ var Mail = { } }, - deleteMessage:function (messageId) { - // When currently open message is deleted, open next one - var nextMessage = $('#mail-message-summary-' + messageId).next(); - if(messageId === Mail.State.currentMessageId) { - var nextMessageId = nextMessage.data('messageId'); - Mail.UI.openMessage(nextMessageId); - } - - $.ajax( - OC.generateUrl('apps/mail/accounts/{accountId}/folders/{folderId}/messages/{messageId}', - { - accountId: Mail.State.currentAccountId, - folderId: encodeURIComponent(Mail.State.currentFolderId), - messageId: messageId - }), { - data: {}, - type:'DELETE', - success: function () { - $('#mail-message-summary-' + messageId).remove(); - }, - error: function() { - Mail.UI.showError(t('mail', 'Error while deleting message.')); - } - }); - }, - toggleMessageStar: function(messageId, starred) { // Loading feedback $('#mail-message-summary-' + messageId) @@ -633,17 +607,6 @@ $(document).ready(function () { Mail.UI.openMessage(messageId); }); - $(document).on('click', '#mail_messages .action.delete', function(event) { - event.stopPropagation(); - $(this).removeClass('icon-delete').addClass('icon-loading'); - var messageElement = $(this).parent().parent() - .addClass('transparency') - .slideUp(); - - var messageId = messageElement.data('messageId'); - Mail.UI.deleteMessage(messageId); - }); - $(document).on('click', '#mail_messages .star', function(event) { event.stopPropagation(); var messageId = $(this).parent().parent().data('messageId'); diff --git a/js/views/message.js b/js/views/message.js index d58fd7c8d..ad2646c2a 100644 --- a/js/views/message.js +++ b/js/views/message.js @@ -6,6 +6,14 @@ views.Message = Backbone.Marionette.ItemView.extend({ template: "#mail-messages-template", + ui:{ + iconDelete : '.action.delete' + }, + + events: { + "click .action.delete" : "deleteMessage" + }, + onRender: function () { // Get rid of that pesky wrapping-div. // Assumes 1 child element present in template. @@ -20,8 +28,38 @@ views.Message = Backbone.Marionette.ItemView.extend({ $(a).height('32px'); $(a).imageplaceholder(displayName, displayName); }); + }, + deleteMessage: function() { + var thisModel = this.model; + this.ui.iconDelete.removeClass('icon-delete').addClass('icon-loading'); + this.$el.addClass('transparency').slideUp(function() { + var thisModelCollection = thisModel.collection; + thisModelCollection.remove(thisModel); + var nextMessage = thisModelCollection.at(0); + if (nextMessage) { + Mail.UI.openMessage(nextMessage.id); + } + }); + + // really delete the message + $.ajax( + OC.generateUrl('apps/mail/accounts/{accountId}/folders/{folderId}/messages/{messageId}', + { + accountId: Mail.State.currentAccountId, + folderId: encodeURIComponent(Mail.State.currentFolderId), + messageId: thisModel.id + }), { + data: {}, + type:'DELETE', + success: function () { + }, + error: function() { + Mail.UI.showError(t('mail', 'Error while deleting message.')); + } + }); } + }); views.Messages = Backbone.Marionette.CompositeView.extend({ @@ -147,5 +185,4 @@ views.Messages = Backbone.Marionette.CompositeView.extend({ } }); } - }); -- GitLab