(js) Fix ensureTarget filter to preserve CSS
parent
45bc5a5368
commit
0f08571a83
|
@ -1,19 +1,22 @@
|
||||||
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {angular.Module}
|
|
||||||
*/
|
|
||||||
(function () {
|
(function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* ensureTarget - A filter to set a blank target to all links.
|
||||||
|
* @memberof SOGo.Common
|
||||||
* @ngInject
|
* @ngInject
|
||||||
*/
|
* @example:
|
||||||
function ensureTarget() {
|
|
||||||
|
<div ng-bind-html="part.content | ensureTarget"><!-- msg --></div>
|
||||||
|
*/
|
||||||
|
ensureTarget.$inject = ['$sce'];
|
||||||
|
function ensureTarget($sce) {
|
||||||
return function(element) {
|
return function(element) {
|
||||||
var tree = angular.element('<div>' + element + '</div>');
|
var tree = angular.element('<div>' + element + '</div>');
|
||||||
tree.find('a').attr('target', '_blank');
|
tree.find('a').attr('target', '_blank');
|
||||||
return angular.element('<div>').append(tree).html();
|
return $sce.trustAs('html', tree.html());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,12 +42,11 @@
|
||||||
* @desc The factory we'll use to register with Angular
|
* @desc The factory we'll use to register with Angular
|
||||||
* @returns the Message constructor
|
* @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, {
|
angular.extend(Message, {
|
||||||
$q: $q,
|
$q: $q,
|
||||||
$timeout: $timeout,
|
$timeout: $timeout,
|
||||||
$log: $log,
|
$log: $log,
|
||||||
$sce: $sce,
|
|
||||||
$gravatar: Gravatar,
|
$gravatar: Gravatar,
|
||||||
$$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())
|
$$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())
|
||||||
});
|
});
|
||||||
|
@ -279,10 +278,10 @@
|
||||||
});
|
});
|
||||||
_this.$hasUnsafeContent = false;
|
_this.$hasUnsafeContent = false;
|
||||||
}
|
}
|
||||||
part.content = Message.$sce.trustAs('html', part.unsafeContent.innerHTML);
|
part.content = part.unsafeContent.innerHTML;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
part.content = Message.$sce.trustAs('html', part.safeContent);
|
part.content = part.safeContent;
|
||||||
}
|
}
|
||||||
parts.push(part);
|
parts.push(part);
|
||||||
}
|
}
|
||||||
|
@ -306,7 +305,7 @@
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
part.html = true;
|
part.html = true;
|
||||||
part.content = Message.$sce.trustAs('html', part.safeContent);
|
part.content = part.safeContent;
|
||||||
parts.push(part);
|
parts.push(part);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue