Telegram Web, preconfigured for usage in I2P.
http://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
4.1 KiB
83 lines
4.1 KiB
<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)"> |
|
|
|
<div class="im_dialog_meta pull-right text-right"> |
|
<div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div> |
|
<span |
|
class="im_dialog_badge badge" |
|
ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.out" |
|
ng-bind="dialogMessage.unreadCount" |
|
></span> |
|
<i |
|
class="im_dialog_unread" |
|
ng-show="dialogMessage.out && dialogMessage.unread" |
|
></i> |
|
</div> |
|
|
|
<div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true"></div> |
|
|
|
<div class="im_dialog_message_wrap"> |
|
|
|
<div class="im_dialog_peer"> |
|
<span my-peer-link="dialogMessage.peerID" verified="true"></span> |
|
</div> |
|
|
|
<div ng-if="dialogMessage.typing > 0" class="im_dialog_message"> |
|
<span class="im_dialog_message_service" my-i18n="im_conversation_group_typing"> |
|
<my-i18n-param name="name"><span my-peer-link="dialogMessage.typing" short="true" class="im_dialog_chat_from_wrap"></span></my-i18n-param><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param> |
|
</span> |
|
</div> |
|
|
|
<div ng-show="!dialogMessage.typing" ng-switch="dialogMessage.deleted"> |
|
<div ng-switch-when="true" class="im_dialog_message"> |
|
<span class="im_dialog_message_text" my-i18n="conversation_message_deleted"></span> |
|
</div> |
|
<div ng-switch-default class="im_dialog_message"> |
|
<span ng-switch="dialogMessage.peerID > 0 || dialogMessage.fromID < 0"> |
|
<span ng-switch-when="true"> |
|
<span class="im_dialog_chat_from_wrap" ng-if="dialogMessage.out"> |
|
<span |
|
class="im_dialog_chat_from" |
|
my-i18n="conversation_you" |
|
></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span> |
|
</span> |
|
</span> |
|
<span ng-switch-default> |
|
<span class="im_dialog_chat_from_wrap" ng-switch="dialogMessage.out && dialogMessage._ != 'messageService'"> |
|
<span |
|
ng-switch-when="false" |
|
class="im_dialog_chat_from" |
|
my-peer-link="dialogMessage.from_id" short="true" peer-watch="true" |
|
></span><span |
|
ng-switch-when="true" |
|
class="im_dialog_chat_from" |
|
my-i18n="conversation_you" |
|
></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span> |
|
</span> |
|
</span> |
|
</span> |
|
|
|
<span class="im_dialog_message_media" ng-if="dialogMessage.media" ng-switch="dialogMessage.media._"> |
|
<span ng-switch-when="messageMediaPhoto" my-i18n="conversation_media_photo"></span> |
|
<span ng-switch-when="messageMediaVideo" my-i18n="conversation_media_video"></span> |
|
<span ng-switch-when="messageMediaDocument" ng-switch="dialogMessage.media.document.sticker || false"> |
|
<span ng-switch-when="1" my-i18n="conversation_media_sticker"></span> |
|
<span ng-switch-when="2"> |
|
<span ng-bind-html="dialogMessage.media.document.stickerEmoji"></span> |
|
(<my-i18n msgid="conversation_media_sticker"></my-i18n>) |
|
</span> |
|
<span ng-switch-default ng-bind="dialogMessage.media.document.file_name"></span> |
|
</span> |
|
<span ng-switch-when="messageMediaAudio" my-i18n="conversation_media_audio"></span> |
|
<span ng-switch-when="messageMediaGeo" my-i18n="conversation_media_location"></span> |
|
<span ng-switch-when="messageMediaVenue" my-i18n="conversation_media_location"></span> |
|
<span ng-switch-when="messageMediaContact" my-i18n="conversation_media_contact"></span> |
|
</span> |
|
|
|
<span class="im_dialog_message_service" ng-if="dialogMessage._ == 'messageService'" my-service-short-message="dialogMessage"></span> |
|
|
|
<span class="im_dialog_message_text" ng-if="dialogMessage.message.length" ng-bind-html="dialogMessage.richMessage"></span> |
|
</div> |
|
</div> |
|
|
|
</div> |
|
</a>
|
|
|