2017-04-01 14:38:42 +08:00
|
|
|
|
<section class="container">
|
2017-05-04 12:12:37 +08:00
|
|
|
|
<div class="page-header">
|
|
|
|
|
|
<div class="row">
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<div class="col-md-5 col-md-offset-1">
|
2018-01-06 16:32:42 +08:00
|
|
|
|
<h3 class="userinfo-name" ng-bind="vm.user.displayName"></h3>
|
2017-05-04 12:12:37 +08:00
|
|
|
|
</div>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<div class="col-md-5">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<a class="btn btn-primary pull-right margin-left-10" ng-if="vm.authentication.user.isAdmin"
|
|
|
|
|
|
ui-sref="admin.user-edit({userId: vm.user._id})">
|
2017-07-04 17:28:15 +08:00
|
|
|
|
<i class="glyphicon glyphicon-edit"></i>
|
|
|
|
|
|
</a>
|
2017-06-21 10:31:30 +08:00
|
|
|
|
<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-07-04 17:19:15 +08:00
|
|
|
|
<a class="btn btn-primary pull-right" ng-click="vm.remove()" ng-if="!vm.isContextUserSelf() && !vm.user.isOper">
|
2017-05-04 12:12:37 +08:00
|
|
|
|
<i class="glyphicon glyphicon-trash"></i>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2015-07-25 16:53:11 -04:00
|
|
|
|
</div>
|
2015-07-21 00:35:58 -04:00
|
|
|
|
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<div class="row margin-bottom-30">
|
|
|
|
|
|
<div class="col-md-10 col-md-offset-1 admin-user-info">
|
2018-01-04 15:32:40 +08:00
|
|
|
|
<dl class="dl-horizontal dl-hover">
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.PICTURE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
2017-10-13 15:43:39 +08:00
|
|
|
|
<img class="status-avatar" ng-src="{{vm.user.profileImageURL}}">
|
2017-10-19 11:44:08 +08:00
|
|
|
|
|
2017-12-05 14:49:27 +08:00
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.isOper && !vm.user.isAdmin">
|
2017-10-13 19:34:42 +08:00
|
|
|
|
<a href="#" ng-click="vm.resetDefaultProfileImage();">{{'STATUS_FIELD.RESET_DEFAULT_PICTURE' | translate}}</a>
|
|
|
|
|
|
</div>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.USERNAME' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.username }}</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>
|
2017-10-19 11:44:08 +08:00
|
|
|
|
|
2017-10-17 16:32:56 +08:00
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.isAdmin">
|
2017-10-19 11:44:08 +08:00
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100"
|
|
|
|
|
|
ng-click="vm.addVIPMonths();">{{'STATUS_FIELD.ADD_VIP_MONTHS' | translate}}
|
|
|
|
|
|
</button>
|
2017-11-16 18:06:59 +08:00
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100" ng-if="vm.user.isVip"
|
|
|
|
|
|
ng-click="vm.resetVIPData();">{{'STATUS_FIELD.RESET_VIP_DATA' | translate}}
|
|
|
|
|
|
</button>
|
2017-10-17 16:32:56 +08:00
|
|
|
|
</div>
|
2017-09-14 16:11:11 +08:00
|
|
|
|
</dd>
|
2017-05-26 11:04:56 +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>
|
2017-10-21 13:39:48 +08:00
|
|
|
|
<!--<span message-to="vm.user.invited_by" to-class="message-to-icon"></span>-->
|
2017-09-13 15:05:28 +08:00
|
|
|
|
</dd>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.EMAIL' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.email }}</dd>
|
|
|
|
|
|
|
2017-12-06 10:17:40 +08:00
|
|
|
|
<div ng-if="vm.authentication.user.isAdmin">
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.PASSKEY' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<mark>{{ vm.user.passkey }}</mark>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
</div>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.ROLE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<mark>{{ vm.user.roles[0] }}</mark>
|
2017-07-04 17:30:38 +08:00
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.username != vm.user.username && vm.authentication.user.isAdmin">
|
2017-10-19 18:44:22 +08:00
|
|
|
|
<select class="width-100" ng-model="vm.selectedRole" ng-change="vm.onUserRoleChanged();">
|
2017-06-06 16:33:59 +08:00
|
|
|
|
<option ng-repeat="r in vm.userRolesConfig" value="{{r}}">{{ r }}
|
|
|
|
|
|
</option>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
</div>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
</dd>
|
|
|
|
|
|
|
2017-10-19 18:44:22 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.MAKER' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
2017-12-08 15:32:46 +08:00
|
|
|
|
<span class="maker-list" ng-repeat="m in vm.user.makers">
|
|
|
|
|
|
<span maker-info="m"></span>
|
2017-10-20 16:11:35 +08:00
|
|
|
|
</span>
|
2017-10-19 18:44:22 +08:00
|
|
|
|
<span ng-if="vm.user.makers.length==0">-</span>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="pull-right"
|
2017-12-13 16:14:58 +08:00
|
|
|
|
ng-if="vm.authentication.user.isOper && !vm.alreadyIsFounder(vm.user);">
|
2017-10-19 18:44:22 +08:00
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100" ng-click="vm.showMakerGroup($event);">
|
|
|
|
|
|
{{'STATUS_FIELD.BTN_CREATE_MAKER' | translate}}
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
2017-06-06 17:29:23 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.STATUS' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
2017-11-06 15:49:31 +08:00
|
|
|
|
<span ng-class="{'span-banned': vm.user.status != 'normal'}">{{ 'STATUS_FIELD.' + vm.user.status.toUpperCase() | translate }}</span>
|
2017-06-07 15:54:16 +08:00
|
|
|
|
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<div class="pull-right"
|
|
|
|
|
|
ng-if="vm.authentication.user.username != vm.user.username && vm.authentication.user.isOper && !vm.user.isAdmin">
|
2017-12-04 10:54:38 +08:00
|
|
|
|
<select class="width-100" ng-model="vm.selectedStatus" ng-change="vm.onUserStatusChanged();">
|
|
|
|
|
|
<option ng-repeat="r in vm.userStatusConfig.value" value="{{r.value}}">{{ 'STATUS_FIELD.' + r.name | translate }}
|
|
|
|
|
|
</option>
|
|
|
|
|
|
</select>
|
2017-06-06 17:29:23 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
2017-11-09 17:27:19 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SCORE' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
2017-11-21 16:26:37 +08:00
|
|
|
|
<span>{{ vm.user.score | number: 2 }}</span> <span score-level-curr="vm.user"></span>
|
2017-11-09 17:27:19 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.isAdmin">
|
|
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100"
|
|
|
|
|
|
uib-popover-template="vm.setUserScorePopover.templateUrl"
|
|
|
|
|
|
popover-title="{{vm.setUserScorePopover.title | translate}}"
|
|
|
|
|
|
popover-trigger="'outsideClick'"
|
|
|
|
|
|
popover-placement="top-right"
|
|
|
|
|
|
popover-is-open="vm.setUserScorePopover.isOpen"
|
|
|
|
|
|
popover-class="set-score-popover"
|
|
|
|
|
|
ng-click="vm.setUserScorePopover.number = undefined;">
|
|
|
|
|
|
+/-
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
2017-05-26 11:04:56 +08:00
|
|
|
|
<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-11-03 21:42:14 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.LATEST_REFRESH_TIME' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.refreshat | date: 'yyyy-MM-dd HH:mm:ss' }}</dd>
|
|
|
|
|
|
|
2017-12-05 14:49:27 +08:00
|
|
|
|
<div ng-hide="!vm.authentication.user.isAdmin && vm.user.isAdmin">
|
2018-03-22 11:31:54 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.CURR_SIGNED_IP' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.curr_signed_ip }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.CURR_LEECHED_IP' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.curr_leeched_ip }}</dd>
|
|
|
|
|
|
|
2017-12-05 14:49:27 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SIGNED_IP' | translate}}:</dt>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<div class="list-all-ips">
|
2017-12-05 14:49:27 +08:00
|
|
|
|
<span class="ip-item" ng-repeat="t in vm.user.signed_ip">{{t}}</span>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
|
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<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>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
</div>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
2018-01-04 15:32:40 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FOLLOWERS' | translate}}:</dt>
|
2018-01-06 16:32:42 +08:00
|
|
|
|
<dd class="h-line">{{ vm.user.followers.length }}
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<a class="pull-right" ui-sref="follow.userFollowers({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.followers.length>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a>
|
2018-01-06 16:32:42 +08:00
|
|
|
|
</dd>
|
2018-01-04 15:32:40 +08:00
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FOLLOWING' | translate}}:</dt>
|
2018-01-06 16:32:42 +08:00
|
|
|
|
<dd class="h-line">{{ vm.user.following.length }}
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<a class="pull-right" ui-sref="follow.userFollowing({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.following.length>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a>
|
2018-01-06 16:32:42 +08:00
|
|
|
|
</dd>
|
2018-01-04 15:32:40 +08:00
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
2018-03-16 21:57:19 +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>
|
2018-05-05 11:36:39 +08:00
|
|
|
|
<span class="true_updown text-muted"
|
|
|
|
|
|
ng-if="vm.user.true_uploaded>0">| {{ 'STATUS_FIELD.TRUE_UPLOADED' | translate}}:{{ vm.user.true_uploaded | bytes:2 }}</span>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.isAdmin">
|
|
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100"
|
|
|
|
|
|
uib-popover-template="vm.setUserUploadedPopover.templateUrl"
|
|
|
|
|
|
popover-title="{{vm.setUserUploadedPopover.title | translate}}"
|
|
|
|
|
|
popover-trigger="'outsideClick'"
|
|
|
|
|
|
popover-placement="top-right"
|
|
|
|
|
|
popover-is-open="vm.setUserUploadedPopover.isOpen"
|
|
|
|
|
|
popover-class="set-uploaded-popover"
|
|
|
|
|
|
ng-click="vm.setUserUploadedPopover.number = undefined;">
|
|
|
|
|
|
+/-
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</dd>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<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>
|
2018-05-05 11:36:39 +08:00
|
|
|
|
<span class="true_updown text-muted"
|
|
|
|
|
|
ng-if="vm.user.true_downloaded>0">| {{ 'STATUS_FIELD.TRUE_DOWNLOADED' | translate}}:{{ vm.user.true_downloaded | bytes:2 }}</span>
|
2018-03-16 21:57:19 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="pull-right" ng-if="vm.authentication.user.isAdmin">
|
|
|
|
|
|
<button class="btn btn-default btn-xs btn-width-100"
|
|
|
|
|
|
uib-popover-template="vm.setUserDownloadedPopover.templateUrl"
|
|
|
|
|
|
popover-title="{{vm.setUserDownloadedPopover.title | translate}}"
|
|
|
|
|
|
popover-trigger="'outsideClick'"
|
|
|
|
|
|
popover-placement="top-right"
|
|
|
|
|
|
popover-is-open="vm.setUserDownloadedPopover.isOpen"
|
|
|
|
|
|
popover-class="set-downloaded-popover"
|
|
|
|
|
|
ng-click="vm.setUserDownloadedPopover.number = undefined;">
|
|
|
|
|
|
+/-
|
|
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</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>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
|
|
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.UPTOTAL' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.uptotal }} <a class="pull-right" ui-sref="admin.user-uplist({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.uptotal>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a></dd>
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.SEEDED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.seeded }} <a class="pull-right" ui-sref="admin.user-seeding({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.seeded>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a></dd>
|
2017-09-11 16:34:42 +08:00
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.LEECHED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.leeched }} <a class="pull-right" ui-sref="admin.user-leeching({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.leeched>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a></dd>
|
|
|
|
|
|
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.FINISHED' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">{{ vm.user.finished }}</dd>
|
|
|
|
|
|
|
|
|
|
|
|
<div ng-if="vm.user.hnr_warning>0">
|
|
|
|
|
|
<dt class="h-line">{{ 'STATUS_FIELD.HNR_WARNING' | translate}}:</dt>
|
|
|
|
|
|
<dd class="h-line">
|
|
|
|
|
|
<span class="badge badge_danger">{{vm.user.hnr_warning}}</span>
|
|
|
|
|
|
<a class="pull-right" ui-sref="admin.user-warning({userId: vm.user._id})"
|
|
|
|
|
|
ng-if="vm.user.hnr_warning>0">{{ 'STATUS_FIELD.DETAIL' | translate }}</a>
|
|
|
|
|
|
</dd>
|
2017-08-14 12:46:55 +08:00
|
|
|
|
</div>
|
2017-07-16 14:54:52 +08:00
|
|
|
|
|
2018-03-16 21:57:19 +08:00
|
|
|
|
<li class="status-divider"></li>
|
|
|
|
|
|
|
2017-07-16 14:54:52 +08:00
|
|
|
|
<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>
|
2017-05-26 11:04:56 +08:00
|
|
|
|
</dl>
|
2017-05-04 12:12:37 +08:00
|
|
|
|
</div>
|
2015-07-25 16:53:11 -04:00
|
|
|
|
</div>
|
2017-06-07 15:54:16 +08:00
|
|
|
|
|
2017-12-12 10:48:48 +08:00
|
|
|
|
<div id="makerSlide" side-overlay="right" side-class="maker-side-overlay" side-opened="vm.onPopupMessageOpen();" side-close-on-esc side-modal>
|
2017-12-14 13:32:38 +08:00
|
|
|
|
<div class="maker-popup">
|
2017-10-24 17:33:25 +08:00
|
|
|
|
<h4 translate="ABOUT.FORM_MAKER_FOR" translate-values="{name: vm.user.displayName}"></h4>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="maker-form">
|
2017-12-12 10:48:48 +08:00
|
|
|
|
<input type="text" class="form-control margin-bottom-10" id="maker-name" placeholder="{{'ABOUT.FORM_MAKER_NAME' | translate}}"
|
2017-10-24 17:33:25 +08:00
|
|
|
|
ng-model="vm.maker.name" autofocus>
|
2017-10-19 18:44:22 +08:00
|
|
|
|
|
2017-12-14 13:32:38 +08:00
|
|
|
|
<textarea class="form-control" id="desc-textarea" name="desc-textarea"
|
2017-12-12 10:48:48 +08:00
|
|
|
|
ng-model="vm.maker.desc" data-hidden-buttons="cmdPreview" ng-keydown="vm.onDescKeyDown($event);"
|
2017-12-14 13:32:38 +08:00
|
|
|
|
placeholder="{{'ABOUT.FORM_MAKER_DESC' | translate}}" maxlength="{{vm.inputLengthConfig.makerGroupDescLength}}"
|
2017-12-12 10:48:48 +08:00
|
|
|
|
mt-markdown-editor="desc-textarea"></textarea>
|
2017-10-24 17:33:25 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="margin-top-10" style="display: table;">
|
|
|
|
|
|
<a class="message-extra" href="https://guides.github.com/features/mastering-markdown/" target="_blank"
|
|
|
|
|
|
data-ga-click="Markdown Toolbar, click, help">
|
|
|
|
|
|
<svg aria-hidden="true" height="16" version="1.1"
|
|
|
|
|
|
viewBox="0 0 16 16" width="16">
|
|
|
|
|
|
<path fill-rule="evenodd"
|
|
|
|
|
|
d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"/>
|
|
|
|
|
|
</svg>
|
|
|
|
|
|
{{ 'MARKDOWN_LINK' | translate }}
|
|
|
|
|
|
</a>
|
|
|
|
|
|
</div>
|
2017-10-23 19:16:46 +08:00
|
|
|
|
</div>
|
2017-10-19 18:44:22 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="bottom-control">
|
|
|
|
|
|
<button class="btn btn-success btn-width-100"
|
|
|
|
|
|
ng-disabled="!vm.maker.name || !vm.maker.desc"
|
|
|
|
|
|
ng-click="vm.createMakerGroup();">{{ 'BUTTON_SAVE' | translate }}
|
|
|
|
|
|
</button>
|
|
|
|
|
|
<button class="btn btn-default btn-width-100" ng-click="vm.hideMakerPopup();">{{ 'BUTTON_CANCEL' | translate }}</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2017-06-07 15:54:16 +08:00
|
|
|
|
<script type="text/ng-template" id="set-user-score.html">
|
|
|
|
|
|
<form class="form-inline set-score-popover-form text-center">
|
|
|
|
|
|
<div class="form-group">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<input type="number" ng-model="vm.setUserScorePopover.number" class="form-control" placeholder="{{ 'SCORE_NUMBER' | translate }}"
|
|
|
|
|
|
autofocus>
|
2017-06-07 15:54:16 +08:00
|
|
|
|
</div>
|
2018-05-05 11:33:30 +08:00
|
|
|
|
<button class="btn btn-default" ng-click="vm.setUserScore();">{{ 'BUTTON_OK' | translate }}</button>
|
2017-06-07 15:54:16 +08:00
|
|
|
|
</form>
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
2017-06-07 16:34:22 +08:00
|
|
|
|
<script type="text/ng-template" id="set-user-uploaded.html">
|
|
|
|
|
|
<form class="form-inline set-uploaded-popover-form text-center">
|
|
|
|
|
|
<div class="form-group">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<input type="number" ng-model="vm.setUserUploadedPopover.number" class="form-control"
|
|
|
|
|
|
placeholder="{{ 'UPLOADED_NUMBER' | translate }}" autofocus>
|
2017-06-07 16:34:22 +08:00
|
|
|
|
</div>
|
2018-05-05 11:33:30 +08:00
|
|
|
|
<button class="btn btn-default" ng-click="vm.setUserUploaded();">{{ 'BUTTON_OK' | translate }}</button>
|
2017-06-07 16:34:22 +08:00
|
|
|
|
</form>
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/ng-template" id="set-user-downloaded.html">
|
|
|
|
|
|
<form class="form-inline set-downloaded-popover-form text-center">
|
|
|
|
|
|
<div class="form-group">
|
2017-08-14 12:46:55 +08:00
|
|
|
|
<input type="number" ng-model="vm.setUserDownloadedPopover.number" class="form-control"
|
|
|
|
|
|
placeholder="{{ 'DOWNLOADED_NUMBER' | translate }}" autofocus>
|
2017-06-07 16:34:22 +08:00
|
|
|
|
</div>
|
2018-05-05 11:33:30 +08:00
|
|
|
|
<button class="btn btn-default" ng-click="vm.setUserDownloaded();">{{ 'BUTTON_OK' | translate }}</button>
|
2017-06-07 16:34:22 +08:00
|
|
|
|
</form>
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
2015-07-21 00:35:58 -04:00
|
|
|
|
</section>
|