From 395e47e6244ab1bdd7f7ebfdfbb23fd7fae3b67b Mon Sep 17 00:00:00 2001 From: OldHawk Date: Wed, 21 Jun 2017 14:50:40 +0800 Subject: [PATCH] feat(messages): add directive messageTo, to show a icon link to send message --- .../directives/message-to.client.directive.js | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 modules/messages/client/directives/message-to.client.directive.js diff --git a/modules/messages/client/directives/message-to.client.directive.js b/modules/messages/client/directives/message-to.client.directive.js new file mode 100644 index 00000000..b072a4ab --- /dev/null +++ b/modules/messages/client/directives/message-to.client.directive.js @@ -0,0 +1,43 @@ +(function () { + 'use strict'; + + angular.module('core') + .directive('messageTo', messageTo); + + messageTo.$inject = ['$compile', '$translate']; + + function messageTo($compile, $translate) { + var directive = { + restrict: 'A', + link: link + }; + + return directive; + + function link(scope, element, attrs) { + scope.$watch(attrs.messageTo, function (s) { + var user = s; + var to = user._id + '|' + user.username; + var title = $translate.instant('MESSAGE_TO_ICON_TITLE'); + var e = $compile('')(scope); + + e.attr('title', title); + + if (attrs.toClass) { + e.addClass(attrs.toClass); + } else { + e.css('font-size', '12px'); + e.css('margin-left', '10px'); + } + + if (element[0].firstChild) { + if (element[0].firstChild.nodeName === '#text') { + angular.element(element[0].firstChild).after(e); + } + } else { + angular.element(element[0]).append(e); + } + }); + } + } +}());