From 691c72d7177fec821ab55d3fa07a6a2daf9a356e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Mon, 8 Oct 2018 15:44:52 +0200 Subject: [PATCH] Use board users for @-mentioning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- js/controller/ActivityController.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/js/controller/ActivityController.js b/js/controller/ActivityController.js index 4208e702d..acc26cf9c 100644 --- a/js/controller/ActivityController.js +++ b/js/controller/ActivityController.js @@ -26,9 +26,10 @@ import CommentCollection from '../legacy/commentcollection'; import CommentModel from '../legacy/commentmodel'; class ActivityController { - constructor ($scope, CardService, ActivityService) { + constructor ($scope, CardService, ActivityService, BoardService) { 'ngInject'; this.cardservice = CardService; + this.boardservice = BoardService; this.activityservice = ActivityService; this.$scope = $scope; this.type = ''; @@ -59,8 +60,12 @@ class ActivityController { } $target.atwho({ at: "@", - data:[{id: 'johndoe', label: 'John Doe'}], callbacks: { + remoteFilter: function(query, callback) { + let uids = self.boardservice.getUsers(); + uids = uids.filter(x => x.uid.toLowerCase().includes(query.toLowerCase()) || x.displayname.toLowerCase().includes(query.toLowerCase())); + callback(uids); + }, highlighter: function (li) { // misuse the highlighter callback to instead of // highlighting loads the avatars. @@ -74,22 +79,22 @@ class ActivityController { return '
  • ' + '' + '' + + 'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars + 'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu + 'data-user-display-name="' + escapeHTML(item.displayname) + '">' + '' + - '' + escapeHTML(item.label) + '' + + '' + escapeHTML(item.displayname) + '' + '
  • '; }, insertTpl: function (item) { return '' + '' + '' + + 'data-username="' + escapeHTML(item.uid) + '" ' + // for avatars + 'data-user="' + escapeHTML(item.uid) + '" ' + // for contactsmenu + 'data-user-display-name="' + escapeHTML(item.displayname) + '">' + '' + - '' + escapeHTML(item.label) + '' + + '' + escapeHTML(item.displayname) + '' + ''; }, searchKey: "label"