Files
meanTorrent/modules/chat/client/views/chat.client.view.html

113 lines
6.5 KiB
HTML
Raw Normal View History

2014-11-10 23:12:33 +02:00
<!-- The chat view -->
2017-05-09 19:02:22 +08:00
<section class="container chat-container" ng-init="vm.initChatView();">
<div class="row">
<div class="col-sm-9">
2017-05-10 17:52:56 +08:00
<div class="chat-messages">
2017-05-09 19:02:22 +08:00
<div class="chat-title">
<span class="glyphicon glyphicon-bullhorn" aria-hidden="true"></span> <span>{{'CHAT_WELCOME' | translate}}</span>
</div>
2017-05-10 17:52:56 +08:00
<div class="chat-body" id="chat-body" mt-scroll="vm.onMessageScroll($event);">
2017-05-11 09:45:49 +08:00
<ul class="list-unstyled">
<li class="chat-message-list {{message.type}}"
ng-class="{'me': (message.user.username == vm.user.username) && (message.type == 'message')}"
2017-05-11 09:45:49 +08:00
ng-repeat="message in vm.messages" repeat-done="vm.onMessageRepeatDone();">
<div ng-class="(message.user.username == vm.user.username) && (message.type == 'message') ? 'chat-message-header-me' : 'chat-message-header'">
<div class="chat-message-header-text">{{message.user.displayName}} {{message.created | date:'MM-dd HH:mm'}}
2017-05-11 09:45:49 +08:00
</div>
2017-05-10 17:52:56 +08:00
</div>
<div ng-class="(message.user.username == vm.user.username) && (message.type == 'message') ? 'chat-wrapper-me' : 'chat-wrapper'">
<a class="chat-avatar" ng-dblclick="vm.onUserImgDblClicked(message.user.displayName);">
<img title="@{{message.user.displayName}}" ng-src="/{{message.user.profileImageURL}}">
2017-05-11 09:45:49 +08:00
</a>
2017-05-09 19:02:22 +08:00
2017-05-11 09:45:49 +08:00
<div class="chat-message-item">
<div class="chat-message-body">
2017-05-11 17:00:03 +08:00
<div class="chat-message-body-text" dynamic-html="vm.getMessageText(message);"></div>
2017-05-11 09:45:49 +08:00
</div>
2017-05-10 17:52:56 +08:00
</div>
</div>
2017-05-11 09:45:49 +08:00
</li>
</ul>
2017-05-09 19:02:22 +08:00
</div>
<div class="chat-footer">
2017-05-10 17:52:56 +08:00
<div class="footer-function">
<div class="pull-right margin-right-20">
<span class="glyphicon glyphicon-refresh" title="{{'CHAT_CLEAN_MESSAGE' | translate}}" aria-hidden="true"
ng-click="vm.onCleanClicked();"></span>
</div>
<div class="pull-right margin-right-20 font-style-list">
<label title="{{'CHAT_BOLD_MESSAGE' | translate}}">
<input type="checkbox" ng-model="vm.fontStyleBold"> <b>{{'CHAT_FONT_BOLD' | translate}}</b>
</label>
<label title="{{'CHAT_ITALIC_MESSAGE' | translate}}">
<input type="checkbox" ng-model="vm.fontStyleItalic"> <i>{{'CHAT_FONT_ITALIC' | translate}}</i>
</label>
</div>
<div class="pull-right margin-right-20">
<span class="glyphicon glyphicon-text-color"
style="color: {{vm.selectedFontColor}}"
id="font-color-icon"
title="{{'CHAT_FONT_COLOR' | translate}}" aria-hidden="true"
uib-popover-template="vm.fontColorPopover.templateUrl"
popover-trigger="'outsideClick'"
popover-placement="top" popover-is-open="vm.fontColorPopover.isOpen"
popover-class="font-color-popover"></span>
</div>
2017-05-10 17:52:56 +08:00
</div>
<div class="footer-input">
<textarea class="form-control" id="messageText" name="messageText" ng-model="vm.messageText"
2017-05-11 09:45:49 +08:00
placeholder="{{'CHAT_PLACEHOLDER_INPUT' | translate}}"
2017-05-10 17:52:56 +08:00
ng-keydown="vm.onInputKeyDown($event);"
autofocus>
</textarea>
</div>
2017-05-09 19:02:22 +08:00
</div>
</div>
</div>
<div class="col-sm-3">
2017-05-10 17:52:56 +08:00
<div class="chat-users">
2017-05-09 19:02:22 +08:00
<div class="user-title">
2017-05-11 17:00:03 +08:00
<span class="glyphicon glyphicon-user" aria-hidden="true"></span> <span>{{'CHAT_USERS_LIST' | translate}}</span>
<span class="pull-right">{{vm.users.length}}</span>
2017-05-09 19:02:22 +08:00
</div>
<div class="user-body">
2017-05-10 17:52:56 +08:00
<ul class="list-unstyled">
<li ng-repeat="u in vm.users | orderBy:['-isAdmin', '-isOper', '-isVip', 'username']">
<div class="user-item-wrapper" mt-scale="{scale: 1.1, duration: '.5s'}" ng-dblclick="vm.onUserListItemDblClicked(u);">
2017-05-11 17:00:03 +08:00
<a class="user-item-avatar">
<img title="@{{u.displayName}}" ng-src="/{{u.profileImageURL}}">
2017-05-10 17:52:56 +08:00
</a>
2017-05-09 19:02:22 +08:00
2017-05-10 17:52:56 +08:00
<div class="user-item-body">
<div class="user-item-text text-long"
ng-class="{'user-is-admin': u.isAdmin, 'user-is-oper': !u.isAdmin && u.isOper, 'user-is-vip': u.isVip}"
ng-bind="u.displayName"></div>
<span class="glyphicon glyphicon-flash ban-kick" title="{{'CHAT_BAN_KICK' | translate}}" aria-hidden="true"
ng-click="vm.banKickUser(u);"
ng-show="vm.user.isOper && !u.isOper && u.username != vm.user.username"></span>
2017-05-10 17:52:56 +08:00
</div>
</div>
</li>
</ul>
2017-05-09 19:02:22 +08:00
</div>
</div>
</div>
</div>
<script type="text/ng-template" id="fontColor.html">
<div class="color-list">
<label ng-repeat="c in vm.colorList">
<div style="background-color: {{c}}" class="color-item" mt-scale="{scale: 1.2, duration: '.5s'}"
ng-click="vm.onColorItemClicked(c);"
ng-mouseenter="vm.onColorItemMouseEnter(c);"
ng-mouseleave="vm.onColorItemMouseLeave(c);"></div>
</label>
</div>
</script>
2014-11-10 23:12:33 +02:00
</section>