Webmail: add "load images" button to mail viewer

This commit is contained in:
Francis Lachapelle
2015-01-06 15:41:20 -05:00
parent 8a928b8179
commit f6f1e04195
3 changed files with 20 additions and 0 deletions

View File

@@ -33,6 +33,9 @@
data-ng-show="message.isDraft"><i class="icon-pencil"><!-- edit --></i></a>
<span class="button tiny radius alert"
data-ng-click="doDelete(message)"><i class="icon-trash"><!-- delete --></i></span>
<span class="button tiny radius"
data-ng-show="message.hasUnsafeContent"
data-ng-click="loadImages()"><var:string label:value="Load Images"/></span>
</span>
</div>
<div class="mailer_mailcontent"

View File

@@ -131,6 +131,7 @@
* @returns the HTML representation of the body
*/
Message.prototype.$content = function() {
this.hasUnsafeContent = (this.content.indexOf(' unsafe-') > -1);
return Message.$sce.trustAs('html', this.content);
};

View File

@@ -239,6 +239,22 @@
.controller('MessageCtrl', ['$scope', '$rootScope', '$stateParams', '$state', 'stateAccount', 'stateMailbox', 'stateMessage', '$timeout', '$modal', 'encodeUriFilter', 'sgFocus', 'sgDialog', 'sgAccount', 'sgMailbox', function($scope, $rootScope, $stateParams, $state, stateAccount, stateMailbox, stateMessage, $timeout, $modal, encodeUriFilter, focus, Dialog, Account, Mailbox) {
$rootScope.message = stateMessage;
$scope.loadImages = function() {
// Load external resources
angular.forEach(['src', 'data', 'classid', 'background', 'style'], function(suffix) {
var elements = document.querySelectorAll('#messageView [unsafe-' + suffix + ']'),
element,
value,
i;
for (i = 0; i < elements.length; i++) {
element = angular.element(elements[i]);
value = element.attr('unsafe-' + suffix);
element.attr(suffix, value);
element.removeAttr('unsafe-' + suffix);
}
stateMessage.hasUnsafeContent = false;
});
};
$scope.doDelete = function() {
stateMailbox.$deleteMessages([stateMessage.uid]).then(function() {
// Remove card from list of addressbook