2017-07-18 10:18:15 +08:00
|
|
|
|
<section class="container">
|
2017-07-17 20:10:49 +08:00
|
|
|
|
<div class="page-header">
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
<div class="col-md-3 col-md-offset-3">
|
|
|
|
|
|
<h3 ng-bind="vm.user.username"></h3>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
|
<a class="btn btn-primary pull-right margin-left-10" ng-click="vm.messageTo()" ng-if="!vm.isContextUserSelf()">
|
|
|
|
|
|
<i class="glyphicon glyphicon-envelope"></i>
|
|
|
|
|
|
</a>
|
2017-09-11 16:47:02 +08:00
|
|
|
|
<a class="btn btn-primary pull-right margin-left-10" ui-sref="admin.user({userId: vm.user._id})" ng-if="vm.authentication.user.isOper">
|
|
|
|
|
|
<i class="glyphicon glyphicon-cog"></i>
|
|
|
|
|
|
</a>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="row margin-bottom-30">
|
|
|
|
|
|
<div class="col-md-8 col-md-offset-2 admin-user-info">
|
|
|
|
|
|
<dl class="dl-horizontal">
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.PICTURE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<img class="status-avatar" ng-src="/{{vm.user.profileImageURL}}">
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.USERNAME' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.username }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<!--<dt class="h-line">{{ 'STATUS_FIELD.FIRST_NAME' | translate}}:</dt>-->
|
|
|
|
|
|
<!--<dd class="h-line">{{ vm.user.firstName }}</dd>-->
|
|
|
|
|
|
|
|
|
|
|
|
<!--<dt class="h-line">{{ 'STATUS_FIELD.LAST_NAME' | translate}}:</dt>-->
|
|
|
|
|
|
<!--<dd class="h-line">{{ vm.user.lastName }}</dd>-->
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.DISPLAY_NAME' | translate}}:</dt>
|
2017-09-14 16:11:11 +08:00
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
{{ vm.user.displayName }}
|
|
|
|
|
|
<span vip-flag="vm.user"></span>
|
|
|
|
|
|
</dd>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
2017-09-13 15:05:28 +08:00
|
|
|
|
<div ng-if="vm.user.invited_by">
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.INVITED_BY' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
2017-09-13 18:16:33 +08:00
|
|
|
|
<span user-info="vm.user.invited_by" info-name></span>
|
|
|
|
|
|
<span message-to="vm.user.invited_by" to-class="message-to-icon"></span>
|
2017-09-13 15:05:28 +08:00
|
|
|
|
</dd>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2017-07-17 20:10:49 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.EMAIL' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.email }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.ROLE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<mark>{{ vm.user.roles[0] }}</mark>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.STATUS' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<span ng-class="{'span-banned': vm.user.status == 'banned'}">{{ 'STATUS_FIELD.' + vm.user.status.toUpperCase() | translate }}</span>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
|
|
|
|
|
<div ng-show="vm.user.isVip">
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.VIP_START_AT' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.vip_start_at | date: 'yyyy-MM-dd HH:mm:ss' }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.VIP_END_AT' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.vip_end_at | date: 'yyyy-MM-dd HH:mm:ss' }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SIGNUP_DATE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.created | date: 'yyyy-MM-dd HH:mm:ss' }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.LATEST_SIGNED_TIME' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.last_signed | date: 'yyyy-MM-dd HH:mm:ss' }}</dd>
|
|
|
|
|
|
|
2017-09-01 11:34:00 +08:00
|
|
|
|
<div ng-if="vm.announce.privateTorrentCmsMode">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SIGNED_IP' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<div class="list-all-ips">
|
|
|
|
|
|
<span class="ip-item" ng-repeat="t in vm.user.signed_ip">{{t}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.LEECHED_IP' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<div class="list-all-ips">
|
|
|
|
|
|
<span class="ip-item" ng-repeat="t in vm.user.leeched_ip">{{t}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.BT_CLIENT' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<div class="list-all-clients">
|
|
|
|
|
|
<span class="client-item" ng-repeat="t in vm.user.client_agent">{{t}}</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
</div>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
2017-09-01 11:34:00 +08:00
|
|
|
|
<div ng-if="vm.announce.privateTorrentCmsMode">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.UPLOADED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<span class="glyphicon glyphicon-arrow-up torrent-up"></span>
|
|
|
|
|
|
<span>{{ vm.user.uploaded | bytes:2 }}</span>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.DOWNLOADED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<span class="glyphicon glyphicon-arrow-down torrent-down"></span>
|
|
|
|
|
|
<span>{{ vm.user.downloaded | bytes:2 }}</span>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.RATIO' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line"><span ng-class="vm.user.ratio == 0 ? 'ratio-warning' : 'ratio-normal' ">{{ vm.user.ratio | ratio}}</span></dd>
|
|
|
|
|
|
</div>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SCORE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<span>{{ vm.user.score }}</span> <span score-level="vm.scoreLevelData.currLevel"></span>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
2017-09-01 11:34:00 +08:00
|
|
|
|
<div ng-if="vm.announce.privateTorrentCmsMode">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<li class="status-divider"></li>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
2017-09-12 11:08:26 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.UPTOTAL' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.uptotal }}</dd>
|
|
|
|
|
|
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SEEDED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.seeded }}</dd>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.LEECHED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.leeched }}</dd>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FINISHED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.finished }}</span></dd>
|
2017-09-11 15:12:21 +08:00
|
|
|
|
|
|
|
|
|
|
<div ng-if="vm.user.hnr_warning>0">
|
2017-09-14 12:08:20 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.HNR_WARNING' | translate}}:</dt>
|
2017-09-11 15:12:21 +08:00
|
|
|
|
<dd class="h-line"><span class="badge badge_danger">{{vm.user.hnr_warning}}</span></dd>
|
|
|
|
|
|
</div>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
</div>
|
2017-07-17 20:10:49 +08:00
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FORUM_TOPICS' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.topics }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FORUM_REPLIES' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.replies }}</dd>
|
|
|
|
|
|
</dl>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</section>
|