Improved group, user link and statuses
Added my-chat-link directive Fixed self online status Improved templates performance
This commit is contained in:
parent
c9a8529250
commit
7958990292
@ -639,7 +639,8 @@ a.footer_link.active:active {
|
||||
color: #FFF;
|
||||
}
|
||||
.contacts_modal_members_list .active a.contacts_modal_contact .md_modal_list_peer_description,
|
||||
.contacts_modal_members_list .active a.contacts_modal_contact:hover .md_modal_list_peer_description {
|
||||
.contacts_modal_members_list .active a.contacts_modal_contact:hover .md_modal_list_peer_description,
|
||||
.contacts_modal_members_list .active a.contacts_modal_contact .md_modal_list_peer_description .status_online {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
@ -2090,10 +2090,17 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
userID = $scope.$eval(attrs.myUserLink);
|
||||
update();
|
||||
}
|
||||
if (!attrs.noWatch) {
|
||||
$scope.$on('user_update', function (e, updUserID) {
|
||||
if (userID == updUserID) {
|
||||
update();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
.directive('myUserStatus', function ($filter, $rootScope, AppUsersManager) {
|
||||
.directive('myUserStatus', function ($filter, AppUsersManager) {
|
||||
|
||||
var statusFilter = $filter('userStatus'),
|
||||
ind = 0,
|
||||
@ -2125,7 +2132,7 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
userID = newUserID;
|
||||
update();
|
||||
});
|
||||
$rootScope.$on('user_update', function (e, updUserID) {
|
||||
$scope.$on('user_update', function (e, updUserID) {
|
||||
if (userID == updUserID) {
|
||||
update();
|
||||
}
|
||||
@ -2137,6 +2144,46 @@ angular.module('myApp.directives', ['myApp.filters'])
|
||||
}
|
||||
})
|
||||
|
||||
.directive('myChatLink', function ($timeout, AppChatsManager) {
|
||||
|
||||
return {
|
||||
link: link
|
||||
};
|
||||
|
||||
function link($scope, element, attrs) {
|
||||
var chatID;
|
||||
var update = function () {
|
||||
var chat = AppChatsManager.getChat(chatID);
|
||||
|
||||
element.html(
|
||||
(chat.rTitle || '').valueOf()
|
||||
)
|
||||
};
|
||||
|
||||
if (element[0].tagName == 'A') {
|
||||
element.on('click', function () {
|
||||
AppChatsManager.openChat(chatID);
|
||||
});
|
||||
}
|
||||
|
||||
if (attrs.chatWatch) {
|
||||
$scope.$watch(attrs.myChatLink, function (newChatID) {
|
||||
chatID = newChatID;
|
||||
update();
|
||||
});
|
||||
} else {
|
||||
chatID = $scope.$eval(attrs.myChatLink);
|
||||
update();
|
||||
}
|
||||
|
||||
$scope.$on('chat_update', function (e, updChatID) {
|
||||
if (chatID == updChatID) {
|
||||
update();
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
.directive('myChatStatus', function ($rootScope, _, MtpApiManager, AppChatsManager, AppUsersManager) {
|
||||
|
||||
var ind = 0;
|
||||
|
@ -243,6 +243,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
expires: tsNow(true) + serverTimeOffset + 60,
|
||||
wasStatus: wasStatus
|
||||
};
|
||||
user.sortStatus = getUserStatusForSort(user.status);
|
||||
$rootScope.$broadcast('user_update', id);
|
||||
}
|
||||
}
|
||||
@ -364,6 +365,23 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
});
|
||||
};
|
||||
|
||||
function setUserStatus (userID, offline) {
|
||||
var user = users[userID];
|
||||
if (user) {
|
||||
var status = offline ? {
|
||||
_: 'userStatusOffline',
|
||||
was_online: tsNow(true) + serverTimeOffset
|
||||
} : {
|
||||
_: 'userStatusOnline',
|
||||
expires: tsNow(true) + serverTimeOffset + 500
|
||||
};
|
||||
|
||||
user.status = status;
|
||||
user.sortStatus = getUserStatusForSort(user.status);
|
||||
$rootScope.$broadcast('user_update', userID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$rootScope.$on('apiUpdate', function (e, update) {
|
||||
// console.log('on apiUpdate', update);
|
||||
@ -373,7 +391,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
user = users[userID];
|
||||
if (user) {
|
||||
user.status = update.status;
|
||||
user.sortStatus = getUserStatusForSort(update.status);
|
||||
user.sortStatus = getUserStatusForSort(user.status);
|
||||
$rootScope.$broadcast('user_update', userID);
|
||||
}
|
||||
break;
|
||||
@ -407,6 +425,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
saveApiUser: saveApiUser,
|
||||
getUser: getUser,
|
||||
getUserInput: getUserInput,
|
||||
setUserStatus: setUserStatus,
|
||||
forceUserOnline: forceUserOnline,
|
||||
getUserPhoto: getUserPhoto,
|
||||
getUserString: getUserString,
|
||||
@ -3751,10 +3770,10 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
|
||||
})
|
||||
|
||||
.service('StatusManager', function ($timeout, $rootScope, MtpApiManager, IdleManager) {
|
||||
.service('StatusManager', function ($timeout, $rootScope, MtpApiManager, AppUsersManager, IdleManager) {
|
||||
|
||||
var toPromise;
|
||||
var lastOnlineUpdated = 0
|
||||
var lastOnlineUpdated = 0;
|
||||
var started = false;
|
||||
var myID = 0;
|
||||
var myOtherDeviceActive = false;
|
||||
@ -3790,6 +3809,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
|
||||
return;
|
||||
}
|
||||
lastOnlineUpdated = offline ? 0 : date;
|
||||
AppUsersManager.setUserStatus(myID, offline);
|
||||
return MtpApiManager.invokeApi('account.updateStatus', {
|
||||
offline: offline
|
||||
}, {noErrorBox: true});
|
||||
|
@ -17,7 +17,7 @@
|
||||
<a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>
|
||||
</div>
|
||||
<div class="peer_modal_profile">
|
||||
<div class="peer_modal_profile_name" ng-bind-html="chatFull.chat.rTitle"></div>
|
||||
<div class="peer_modal_profile_name" my-chat-link="chatFull.chat.id"></div>
|
||||
<div class="peer_modal_profile_description" ng-if="chatFull.chat.participants_count > 0">
|
||||
<ng-pluralize count="chatFull.chat.participants_count"
|
||||
when="group_modal_pluralize_participants">
|
||||
|
@ -34,8 +34,8 @@
|
||||
<span ng-switch-when="EXT_SHARE_PEER" my-i18n-format="confirm_modal_share_file_peer"></span>
|
||||
<my-i18n-param name="peer">
|
||||
<strong ng-switch="peer_id > 0">
|
||||
<span ng-switch-when="true" ng-bind-html="peer_data.rFullName"></span>
|
||||
<span ng-switch-default ng-bind-html="peer_data.rTitle"></span>
|
||||
<span ng-switch-when="true" my-user-link="peer_id"></span>
|
||||
<span ng-switch-default my-chat-link="-peer_id"></span>
|
||||
</strong>
|
||||
</my-i18n-param>
|
||||
</my-i18n>
|
||||
|
@ -44,7 +44,7 @@
|
||||
<a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">
|
||||
|
||||
<div class="md_modal_list_peer_photo pull-left" my-peer-photolink="::contact.userID" img-class="md_modal_list_peer_photo"></div>
|
||||
<div class="md_modal_list_peer_name" ng-bind-html="contact.user.rFullName"></div>
|
||||
<div class="md_modal_list_peer_name" my-user-link="contact.userID"></div>
|
||||
<div class="md_modal_list_peer_description" ng-switch="contact.found">
|
||||
<span ng-switch-when="true" ng-bind="'@' + contact.user.username"></span>
|
||||
<span ng-switch-default my-user-status="::contact.userID"></span>
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
<div class="im_dialog_peer" ng-switch="::dialogMessage.peerID > 0">
|
||||
<span class="im_dialog_user" ng-switch-when="true" my-user-link="dialogMessage.peerID"></span>
|
||||
<span class="im_dialog_chat" ng-switch-default ng-bind-html="dialogMessage.peerData.rTitle"></span>
|
||||
<span class="im_dialog_chat" ng-switch-default my-chat-link="-dialogMessage.peerID"></span>
|
||||
</div>
|
||||
|
||||
<div ng-if="dialogMessage.typing > 0" class="im_dialog_message">
|
||||
@ -39,7 +39,7 @@
|
||||
<span
|
||||
class="im_dialog_chat_from"
|
||||
my-i18n="conversation_you"
|
||||
></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span>
|
||||
></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span>
|
||||
</span>
|
||||
</span>
|
||||
<span ng-switch-default>
|
||||
@ -82,14 +82,14 @@
|
||||
<span ng-switch-when="messageActionChatAddUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">
|
||||
<span ng-switch-when="true" my-i18n="conversation_returned_to_group"></span>
|
||||
<span ng-switch-default my-i18n="conversation_invited_user">
|
||||
<my-i18n-param name="user" ng-bind-html="dialogMessage.action.user.rFullName"></my-i18n-param>
|
||||
<my-i18n-param name="user"><span my-user-link="dialogMessage.action.user_id"></span></my-i18n-param>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span ng-switch-when="messageActionChatDeleteUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">
|
||||
<span ng-switch-when="true" my-i18n="conversation_left_group"></span>
|
||||
<span ng-switch-default my-i18n="conversation_kicked_user">
|
||||
<my-i18n-param name="user" ng-bind-html="dialogMessage.action.user.rFullName"></my-i18n-param>
|
||||
<my-i18n-param name="user"><span my-user-link="dialogMessage.action.user_id"></span></my-i18n-param>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
@ -74,11 +74,11 @@
|
||||
|
||||
<a class="tg_head_btn" ng-switch-default ng-switch="historyPeer.id > 0" ng-click="showPeerInfo()">
|
||||
<div class="tg_head_peer_info" ng-switch-when="true">
|
||||
<span class="tg_head_peer_title" ng-bind-html="historyPeer.data.rFullName" dir="auto"></span>
|
||||
<span class="tg_head_peer_title" my-user-link="historyPeer.id" user-watch="true" dir="auto"></span>
|
||||
<span class="tg_head_peer_status" my-user-status="historyPeer.id"></span>
|
||||
</div>
|
||||
<div class="tg_head_peer_info" ng-switch-default>
|
||||
<span class="tg_head_peer_title" ng-bind-html="historyPeer.data.rTitle" dir="auto"></span>
|
||||
<span class="tg_head_peer_title" my-chat-link="-historyPeer.id" chat-watch="true" dir="auto"></span>
|
||||
<span class="tg_head_peer_status" my-chat-status="-historyPeer.id"></span>
|
||||
</div>
|
||||
</a>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<div class="im_message_outer_wrap" ng-click="toggleMessage(historyMessage.id, $event)">
|
||||
|
||||
|
||||
<div class="im_message_wrap clearfix">
|
||||
<div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == 'messageService'">
|
||||
|
||||
<div class="im_service_message_wrap" ng-if="::historyMessage._ == 'messageService'">
|
||||
<div class="im_service_message_wrap" ng-switch-when="true">
|
||||
<div class="im_service_message">
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0" no-watch="true"></a>
|
||||
<span class="im_message_service" my-service-message></span>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-if="::historyMessage._ != 'messageService'" class="im_content_message_wrap" ng-class="::[historyMessage.out ? 'im_message_out' : 'im_message_in', historyMessage._ == 'messageForwarded' ? 'im_message_fwd' : '']">
|
||||
<div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.out ? 'im_message_out' : 'im_message_in', historyMessage._ == 'messageForwarded' ? 'im_message_fwd' : '']">
|
||||
<div class="im_content_message_select_area">
|
||||
<i class="icon icon-select-tick"></i>
|
||||
</div>
|
||||
@ -39,12 +39,12 @@
|
||||
|
||||
<div class="im_message_body" ng-class="::{im_message_body_media: historyMessage._ == 'message' && historyMessage.media ? true : false}">
|
||||
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0" no-watch="true"></a>
|
||||
|
||||
<div ng-if="::historyMessage._ == 'messageForwarded' || false" class="im_message_fwd_from">
|
||||
<a class="im_message_fwd_photo pull-left" my-user-photolink="historyMessage.fwd_from_id" img-class="im_message_fwd_photo"></a>
|
||||
<div class="im_message_fwd_author_wrap">
|
||||
<a class="im_message_fwd_author" my-user-link="historyMessage.fwd_from_id" short="true"></a><span class="im_message_fwd_date" ng-bind="::historyMessage.fwd_date | dateOrTime"></span>
|
||||
<a class="im_message_fwd_author" my-user-link="historyMessage.fwd_from_id" short="true" no-watch="true"></a><span class="im_message_fwd_date" ng-bind="::historyMessage.fwd_date | dateOrTime"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
<div class="im_dialog_photo pull-left" my-peer-photolink="::contact.userID" img-class="im_dialog_photo"></div>
|
||||
<div class="im_dialog_message_wrap">
|
||||
<div class="im_dialog_peer">
|
||||
<span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span>
|
||||
<span class="im_dialog_user" my-user-link="contact.userID"></span>
|
||||
</div>
|
||||
<div class="im_dialog_message">
|
||||
<span class="im_dialog_message_text" my-user-status="::contact.userID"></span>
|
||||
|
@ -17,7 +17,7 @@
|
||||
<a ng-switch-default ng-click="openPhoto(profile.photo.photo_id, {p: profile.id})" class="peer_modal_photo" my-peer-photolink="::profile.id" img-class="peer_modal_photo" watch="true" no-open="true" ng-class="{disabled: !profile.photo.photo_id}" ng-disabled="!profile.photo.photo_id"></a>
|
||||
</div>
|
||||
<div class="peer_modal_profile">
|
||||
<div class="peer_modal_profile_name" ng-bind-html="profile.rFullName"></div>
|
||||
<div class="peer_modal_profile_name" my-user-link="profile.id"></div>
|
||||
<div class="peer_modal_profile_description" my-user-status="::profile.id"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<a ng-click="openPhoto(user.photo.photo_id, {p: user.id})" class="peer_modal_photo" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id" my-peer-photolink="::user.id" img-class="peer_modal_photo" no-open="true"></a>
|
||||
</div>
|
||||
<div class="peer_modal_profile">
|
||||
<div class="peer_modal_profile_name" ng-bind-html="user.rFullName"></div>
|
||||
<div class="peer_modal_profile_name" my-user-link="user.id"></div>
|
||||
<div class="peer_modal_profile_description" my-user-status="::user.id"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -57,7 +57,7 @@
|
||||
/>
|
||||
|
||||
<div class="mobile_user_modal_info_wrap clearfix">
|
||||
<h4 class="mobile_user_modal_header" ng-bind-html="chatFull.chat.rTitle"></h4>
|
||||
<h4 class="mobile_user_modal_header" my-chat-link="chatFull.chat.id"></h4>
|
||||
<p class="mobile_user_modal_status" ng-if="chatFull.chat.participants_count > 0">
|
||||
<ng-pluralize count="chatFull.chat.participants_count"
|
||||
when="group_modal_pluralize_participants">
|
||||
|
@ -82,7 +82,7 @@
|
||||
<i ng-if="multiSelect" class="icon icon-contact-tick"></i>
|
||||
|
||||
<div class="contacts_modal_contact_photo pull-left" my-user-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div>
|
||||
<div class="contacts_modal_contact_name" ng-bind-html="contact.user.rFullName"></div>
|
||||
<div class="contacts_modal_contact_name" my-user-link="contact.userID"></div>
|
||||
<div class="contacts_modal_contact_status" ng-switch="contact.found">
|
||||
<span ng-switch-when="true" ng-bind="'@' + contact.user.username"></span>
|
||||
<span ng-switch-default my-user-status="::contact.userID"></span>
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
<div class="im_dialog_peer" ng-switch="::dialogMessage.peerID > 0">
|
||||
<span class="im_dialog_user" ng-switch-when="true" my-user-link="dialogMessage.peerID"></span>
|
||||
<span class="im_dialog_chat" ng-switch-default ng-bind-html="dialogMessage.peerData.rTitle"></span>
|
||||
<span class="im_dialog_chat" ng-switch-default my-chat-link="-dialogMessage.peerID"></span>
|
||||
</div>
|
||||
|
||||
<div ng-if="dialogMessage.typing > 0" class="im_dialog_message">
|
||||
@ -89,14 +89,14 @@
|
||||
<span ng-switch-when="messageActionChatAddUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">
|
||||
<span ng-switch-when="true" my-i18n="conversation_returned_to_group"></span>
|
||||
<span ng-switch-default my-i18n="conversation_invited_user">
|
||||
<my-i18n-param name="user" ng-bind-html="dialogMessage.action.user.rFullName"></my-i18n-param>
|
||||
<my-i18n-param name="user"><span my-user-link="dialogMessage.action.user_id"></span></my-i18n-param>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span ng-switch-when="messageActionChatDeleteUser" ng-switch="dialogMessage.from_id == dialogMessage.action.user_id">
|
||||
<span ng-switch-when="true" my-i18n="conversation_left_group"></span>
|
||||
<span ng-switch-default my-i18n="conversation_kicked_user">
|
||||
<my-i18n-param name="user" ng-bind-html="dialogMessage.action.user.rFullName"></my-i18n-param>
|
||||
<my-i18n-param name="user"><span my-user-link="dialogMessage.action.user_id"></span></my-i18n-param>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
@ -72,7 +72,7 @@
|
||||
<a href="#/im" class="navbar-quick-profile-back">
|
||||
<i class="icon icon-back"></i>
|
||||
<div class="navbar-quick-back-title">
|
||||
<h4 ng-bind-html="historyPeer.data.rFullName"></h4>
|
||||
<h4 my-user-link="historyPeer.id" user-watch="true"></h4>
|
||||
<small ng-switch="historyState.typing.length">
|
||||
<span ng-switch-when="1" class="status_online">
|
||||
<my-i18n msgid="head_typing"></my-i18n><span my-loading-dots></span>
|
||||
@ -86,7 +86,7 @@
|
||||
<a href="#/im" class="navbar-quick-group-back">
|
||||
<i class="icon icon-back"></i>
|
||||
<div class="navbar-quick-back-title">
|
||||
<h4 ng-bind-html="historyPeer.data.rTitle"></h4>
|
||||
<h4 my-chat-link="-historyPeer.id" chat-watch="true"></h4>
|
||||
<small ng-switch="historyState.typing.length">
|
||||
<span ng-switch-when="0" class="tg_head_peer_status" my-chat-status="-historyPeer.id"></span>
|
||||
<my-i18n>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<div class="im_message_outer_wrap" ng-click="toggleMessage(historyMessage.id, $event)">
|
||||
|
||||
|
||||
<div class="im_message_wrap clearfix">
|
||||
<div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == 'messageService'">
|
||||
|
||||
<div class="im_service_message_wrap" ng-if="::historyMessage._ == 'messageService'">
|
||||
<div class="im_service_message_wrap" ng-switch-when="true">
|
||||
<div class="im_service_message">
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0" no-watch="true"></a>
|
||||
<span class="im_message_service" my-service-message></span>
|
||||
</div>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-if="::historyMessage._ != 'messageService'" class="im_content_message_wrap" ng-class="::[historyMessage.out ? 'im_message_out' : 'im_message_in']">
|
||||
<div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.out ? 'im_message_out' : 'im_message_in']">
|
||||
<i ng-if="::historyMessage.unread || historyMessage.pending || false" class="icon-message-status" ng-class="{'icon-message-status-unread': historyMessage.unread, 'icon-message-status-pending': historyMessage.pending}" ng-show="!historyMessage.error"></i>
|
||||
|
||||
<a class="im_message_from_photo pull-left" my-user-photolink="historyMessage.from_id" img-class="im_message_from_photo"></a>
|
||||
@ -31,10 +31,10 @@
|
||||
|
||||
<div class="im_message_body" ng-class="::{im_message_body_media: !!historyMessage.media}">
|
||||
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0"></a>
|
||||
<a class="im_message_author" my-user-link="historyMessage.from_id" short="!historyMessage.to_id.chat_id" color="historyMessage.to_id.chat_id > 0" no-watch="true"></a>
|
||||
|
||||
<div ng-if="::historyMessage._ == 'messageForwarded' && !historyMessage.media" class="im_message_fwd_header" my-i18n="message_forwarded_message_mobile">
|
||||
<a my-i18n-param="from" class="im_message_fwd_author" my-user-link="historyMessage.fwd_from_id"></a>
|
||||
<a my-i18n-param="from" class="im_message_fwd_author" my-user-link="historyMessage.fwd_from_id" no-watch="true"></a>
|
||||
<span my-i18n-param="date" class="im_message_fwd_date" ng-bind="::historyMessage.fwd_date | dateOrTime"></span>
|
||||
</div>
|
||||
|
||||
|
@ -56,7 +56,7 @@
|
||||
</div>
|
||||
<div class="im_dialog_message_wrap">
|
||||
<div class="im_dialog_peer">
|
||||
<span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span>
|
||||
<span class="im_dialog_user" my-user-link="contact.userID"></span>
|
||||
</div>
|
||||
<div class="im_dialog_message">
|
||||
<span class="im_dialog_message_text" my-user-status="::contact.userID"></span>
|
||||
|
@ -59,7 +59,7 @@
|
||||
</a>
|
||||
|
||||
<div class="mobile_user_modal_info_wrap clearfix">
|
||||
<h4 class="mobile_user_modal_header" ng-bind-html="profile.rFullName"></h4>
|
||||
<h4 class="mobile_user_modal_header" my-user-link="profile.id"></h4>
|
||||
<p class="mobile_user_modal_status" my-user-status="::profile.id"></p>
|
||||
</div>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user