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