Added peer photos to mention dropdown
This commit is contained in:
parent
2d0e863ed8
commit
e6122481d5
@ -2212,6 +2212,29 @@ a.composer_emoji_btn:hover {
|
|||||||
.composer_dropdown li a.composer_autocomplete_option_active .composer_user_mention {
|
.composer_dropdown li a.composer_autocomplete_option_active .composer_user_mention {
|
||||||
color: #698192;
|
color: #698192;
|
||||||
}
|
}
|
||||||
|
span.composer_user_photo {
|
||||||
|
display: inline-block;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-right: 10px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
img.composer_user_photo {
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
span.composer_user_photo .peer_initials {
|
||||||
|
line-height: 32px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.composer_user_name,
|
||||||
|
.composer_user_mention {
|
||||||
|
display: inline-block;
|
||||||
|
line-height: 32px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
.composer_sticker_btn {
|
.composer_sticker_btn {
|
||||||
width: 67px;
|
width: 67px;
|
||||||
|
@ -1145,7 +1145,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
.directive('mySendForm', function ($timeout, $modalStack, $http, $interpolate, Storage, AppStickersManager, ErrorService) {
|
.directive('mySendForm', function ($timeout, $compile, $modalStack, $http, $interpolate, Storage, AppStickersManager, ErrorService) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
link: link,
|
link: link,
|
||||||
@ -1195,6 +1195,9 @@ angular.module('myApp.directives', ['myApp.filters'])
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var peerPhotoCompiled = $compile('<span class="composer_user_photo" my-peer-photolink="peerID" img-class="composer_user_photo"></span>');
|
||||||
|
var cachedPeerPhotos = {};
|
||||||
|
|
||||||
var composer = new MessageComposer(messageField, {
|
var composer = new MessageComposer(messageField, {
|
||||||
onTyping: function () {
|
onTyping: function () {
|
||||||
$scope.$emit('ui_typing');
|
$scope.$emit('ui_typing');
|
||||||
@ -1202,6 +1205,18 @@ angular.module('myApp.directives', ['myApp.filters'])
|
|||||||
getSendOnEnter: function () {
|
getSendOnEnter: function () {
|
||||||
return sendOnEnter;
|
return sendOnEnter;
|
||||||
},
|
},
|
||||||
|
getPeerImage: function (element, peerID) {
|
||||||
|
if (cachedPeerPhotos[peerID]) {
|
||||||
|
element.replaceWith(cachedPeerPhotos[peerID]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var scope = $scope.$new(true);
|
||||||
|
scope.peerID = peerID;
|
||||||
|
peerPhotoCompiled(scope, function (clonedElement) {
|
||||||
|
cachedPeerPhotos[peerID] = clonedElement;
|
||||||
|
element.replaceWith(clonedElement);
|
||||||
|
});
|
||||||
|
},
|
||||||
mentions: $scope.mentions,
|
mentions: $scope.mentions,
|
||||||
onMessageSubmit: onMessageSubmit,
|
onMessageSubmit: onMessageSubmit,
|
||||||
onFilePaste: onFilePaste
|
onFilePaste: onFilePaste
|
||||||
|
@ -461,6 +461,7 @@ function MessageComposer (textarea, options) {
|
|||||||
this.getSendOnEnter = options.getSendOnEnter;
|
this.getSendOnEnter = options.getSendOnEnter;
|
||||||
this.onFilePaste = options.onFilePaste;
|
this.onFilePaste = options.onFilePaste;
|
||||||
this.mentions = options.mentions;
|
this.mentions = options.mentions;
|
||||||
|
this.getPeerImage = options.getPeerImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageComposer.prototype.setUpInput = function () {
|
MessageComposer.prototype.setUpInput = function () {
|
||||||
@ -1006,10 +1007,16 @@ MessageComposer.prototype.showMentionSuggestions = function (users) {
|
|||||||
|
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
user = users[i];
|
user = users[i];
|
||||||
html.push('<li><a class="composer_mention_option" data-mention="' + user.username + '"><span class="composer_user_name">' + user.rFullName + '</span><span class="composer_user_mention">@' + user.username + '</span></a></li>');
|
html.push('<li><a class="composer_mention_option" data-mention="' + user.username + '"><span class="composer_user_photo" data-user-id="' + user.id + '"></span><span class="composer_user_name">' + user.rFullName + '</span><span class="composer_user_mention">@' + user.username + '</span></a></li>');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.autoCompleteEl.html(html.join(''));
|
this.autoCompleteEl.html(html.join(''));
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
this.autoCompleteEl.find('.composer_user_photo').each(function (k, element) {
|
||||||
|
self.getPeerImage($(element), element.getAttribute('data-user-id'));
|
||||||
|
});
|
||||||
|
|
||||||
this.autoCompleteEl.show();
|
this.autoCompleteEl.show();
|
||||||
this.updatePosition();
|
this.updatePosition();
|
||||||
this.autocompleteShown = true;
|
this.autocompleteShown = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user