(js) Fix ensureTarget filter to preserve CSS

pull/110/head
Francis Lachapelle 2015-09-30 11:28:22 -04:00
parent 45bc5a5368
commit 0f08571a83
2 changed files with 13 additions and 11 deletions

View File

@ -1,19 +1,22 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/**
* @type {angular.Module}
*/
(function () {
'use strict';
/**
* ensureTarget - A filter to set a blank target to all links.
* @memberof SOGo.Common
* @ngInject
*/
function ensureTarget() {
* @example:
<div ng-bind-html="part.content | ensureTarget"><!-- msg --></div>
*/
ensureTarget.$inject = ['$sce'];
function ensureTarget($sce) {
return function(element) {
var tree = angular.element('<div>' + element + '</div>');
tree.find('a').attr('target', '_blank');
return angular.element('<div>').append(tree).html();
return $sce.trustAs('html', tree.html());
};
}

View File

@ -42,12 +42,11 @@
* @desc The factory we'll use to register with Angular
* @returns the Message constructor
*/
Message.$factory = ['$q', '$timeout', '$log', '$sce', 'sgSettings', 'Gravatar', 'Resource', 'Preferences', function($q, $timeout, $log, $sce, Settings, Gravatar, Resource, Preferences) {
Message.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Gravatar', 'Resource', 'Preferences', function($q, $timeout, $log, Settings, Gravatar, Resource, Preferences) {
angular.extend(Message, {
$q: $q,
$timeout: $timeout,
$log: $log,
$sce: $sce,
$gravatar: Gravatar,
$$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())
});
@ -279,10 +278,10 @@
});
_this.$hasUnsafeContent = false;
}
part.content = Message.$sce.trustAs('html', part.unsafeContent.innerHTML);
part.content = part.unsafeContent.innerHTML;
}
else {
part.content = Message.$sce.trustAs('html', part.safeContent);
part.content = part.safeContent;
}
parts.push(part);
}
@ -306,7 +305,7 @@
}
else {
part.html = true;
part.content = Message.$sce.trustAs('html', part.safeContent);
part.content = part.safeContent;
parts.push(part);
}
}