diff --git a/UI/Templates/MailerUI/UIxMailViewTemplate.wox b/UI/Templates/MailerUI/UIxMailViewTemplate.wox index c563b4086..da144f6c3 100644 --- a/UI/Templates/MailerUI/UIxMailViewTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailViewTemplate.wox @@ -14,9 +14,9 @@
- - + +

@@ -42,12 +42,12 @@ {{message.constructor.$tags[$chip][0]}} diff --git a/UI/WebServerResources/js/Mailer.app.js b/UI/WebServerResources/js/Mailer.app.js index f04b49189..ca7fe7a93 100644 --- a/UI/WebServerResources/js/Mailer.app.js +++ b/UI/WebServerResources/js/Mailer.app.js @@ -189,7 +189,7 @@ */ stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages']; function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) { - var message = _.find(stateMessages, function(messageObject) { + var message = _.find(stateMailbox.$messages, function(messageObject) { return messageObject.uid == $stateParams.messageId; }); diff --git a/UI/WebServerResources/js/Mailer/Message.service.js b/UI/WebServerResources/js/Mailer/Message.service.js index 9d0f8d72b..f2e775ca6 100644 --- a/UI/WebServerResources/js/Mailer/Message.service.js +++ b/UI/WebServerResources/js/Mailer/Message.service.js @@ -249,21 +249,46 @@ return deferred.promise; }; + /** + * @function addTag + * @memberof Message.prototype + * @desc Add a mail tag on the current message. + * @param {string} tag - the tag name + * @returns a promise of the HTTP operation + */ + Message.prototype.addTag = function(tag) { + return this.$addOrRemoveTag('add', tag); + }; + + /** + * @function removeTag + * @memberof Message.prototype + * @desc Remove a mail tag from the current message. + * @param {string} tag - the tag name + * @returns a promise of the HTTP operation + */ + Message.prototype.removeTag = function(tag) { + return this.$addOrRemoveTag('remove', tag); + }; + /** * @function $addOrRemoveTag * @memberof Message.prototype * @desc Add or remove a mail tag on the current message. + * @param {string} operation - the operation name to perform + * @param {string} tag - the tag name * @returns a promise of the HTTP operation */ Message.prototype.$addOrRemoveTag = function(operation, tag) { - var data = {}; + var data = { + operation: operation, + msgUIDs: [this.uid], + flags: tag + }; - data['operation'] = operation; - data['msgUIDs'] = [ this.uid ]; - data['flags'] = tag; - - return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data); - } + if (tag) + return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data); + }; /** * @function $markAsFlaggedOrUnflagged @@ -271,14 +296,18 @@ * @desc Add or remove a the \\Flagged flag on the current message. * @returns a promise of the HTTP operation */ - Message.prototype.$markAsFlaggedOrUnflagged = function(operation) { - var data = {}; + Message.prototype.toggleFlag = function() { + var _this = this, + action = 'markMessageFlagged'; - if (operation == 'add') { - return Message.$$resource.post(this.id, 'markMessageFlagged', data); - } + if (this.isflagged) + action = 'markMessageUnflagged'; - return Message.$$resource.post(this.id, 'markMessageUnflagged', data); + return Message.$$resource.post(this.id, action).then(function(data) { + Message.$timeout(function() { + _this.isflagged = !_this.isflagged; + }); + }); } /** diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index c3a474717..bbdee133e 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -10,17 +10,6 @@ function MessageController($scope, $rootScope, $stateParams, $state, stateAccount, stateMailbox, stateMessage, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox) { $rootScope.message = stateMessage; $scope.tags = {}; - $scope.addOrRemoveTag = function(operation, tag) { - if (tag) { - stateMessage.$addOrRemoveTag(operation, tag); - } - }; - $scope.markAsFlaggedOrUnflagged = function() { - var operation = (stateMessage.isflagged ? 'remove' : 'add'); - stateMessage.$markAsFlaggedOrUnflagged(operation).then(function() { - stateMessage.isflagged = !stateMessage.isflagged; - }); - }; $scope.doDelete = function() { stateMailbox.$deleteMessages([stateMessage.uid]).then(function() { // Remove message from list of messages diff --git a/UI/WebServerResources/scss/components/icon/icon.scss b/UI/WebServerResources/scss/components/icon/icon.scss index c312a3609..d82a5b983 100644 --- a/UI/WebServerResources/scss/components/icon/icon.scss +++ b/UI/WebServerResources/scss/components/icon/icon.scss @@ -1,4 +1,4 @@ -/// icon.scss -*- Mode: text; indent-tabs-mode: nil; basic-offset: 2 -*- +/// icon.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- @import 'extends'; @@ -30,3 +30,14 @@ src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAjEMAAsAA font-weight: normal; font-style: normal; } + +.msg-header { + .iconButton { + .md-icon-star { + color: sg-color($sogoGreen, 50) !important; + &.flagged { + color: sg-color($sogoBlue, 600) !important; + } + } + } +}