mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-01-20 14:22:25 +01:00
347 lines
22 KiB
HTML
347 lines
22 KiB
HTML
<div ng-controller="AboutController as vm">
|
|
<div class="pagetop" ng-init="vm.getMaker();">
|
|
<div class="container maker-view-top">
|
|
<div class="row margin-top-20 margin-bottom-10">
|
|
<div class="col-sm-12">
|
|
<span class="item-name">
|
|
<h3 class="margin-bottom-10">
|
|
{{'ABOUT.MAKER_GROUP' | translate}} - {{vm.maker.name}}
|
|
</h3>
|
|
</span>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<ul class="list-unstyled item-data list-inline">
|
|
<li><span class="data-founder">{{'ABOUT.GROUP_FOUNDER' | translate}}{{vm.maker.user.displayName}}</span></li>
|
|
<li><i class="fa fa-user-circle"> {{vm.maker.members.length}}</i></li>
|
|
<li><i class="fa fa-upload"> {{vm.maker.torrent_count}}</i></li>
|
|
<li>
|
|
<i class="fa fa-star"> {{vm.maker.vote_average}}/{{vm.maker.vote_count}} {{ 'TMDB_FIELDS.VOTE_UNIT' | translate}}</i>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="maker-rating text-right">
|
|
<span uib-rating ng-model="vm.rating_vote" max="10"
|
|
state-on="'fa fa-star'"
|
|
state-off="'far fa-star'"
|
|
titles="['1','2','3','4','5','6','7','8','9','10']"
|
|
enable-reset="false"
|
|
ng-click="vm.ratingMaker(vm.maker);"
|
|
aria-labelledby="rating-torrent">
|
|
</span>
|
|
|
|
<span class="torrent-votes margin-left-10 margin-right-10">
|
|
<kbd>{{vm.maker.vote_average}}</kbd>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row margin-bottom-20">
|
|
<div class="col-sm-12">
|
|
<div>
|
|
<div class="item-desc" id="{{vm.maker._id}}" data-provide="markdown"
|
|
ng-bind-html="vm.getMakerDescContent(vm.maker)">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row maker-members margin-bottom-40 margin-top-30">
|
|
<div class="col-xs-6 col-sm-3 col-md-2" ng-repeat="u in vm.maker.members">
|
|
<div class="margin-top-10">
|
|
<span user-info="u" info-class="maker-avatar" info-avatar></span>
|
|
<span user-info="u" info-name></span>
|
|
<i class="fa fa-minus-square"
|
|
ng-click="vm.removeMember(vm.maker, u);"
|
|
title="{{'ABOUT.REMOVE_MEMBER_TITLE' | translate}}"
|
|
ng-if="(vm.user.isOper || vm.isOwner(vm.maker)) && (!vm.isFounder(u, vm.maker))">
|
|
</i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row margin-bottom-20">
|
|
<div class="col-sm-12">
|
|
<div class="maker-button text-right">
|
|
<button class="btn btn-min-width-120 margin-top-5" mouse-enter-toggle-class="btn-success" base-class="btn-mt-o"
|
|
ng-if="vm.user.isOper || vm.isOwner(vm.maker)"
|
|
uib-popover-template="vm.addMemberPopover.templateUrl"
|
|
popover-append-to-body="true"
|
|
popover-title="{{vm.addMemberPopover.title | translate}}"
|
|
popover-trigger="'outsideClick'"
|
|
popover-placement="top"
|
|
popover-is-open="vm.addMemberPopover.isOpen"
|
|
popover-class="add-member-popover"
|
|
ng-click="vm.addMemberPopover.isOpen=true; vm.addMemberPopover.username='';">
|
|
{{'ABOUT.BTN_ADD_USER' | translate}}
|
|
</button>
|
|
<button class="btn btn-min-width-120 margin-top-5" mouse-enter-toggle-class="btn-default" base-class="btn-mt-o"
|
|
ng-if="vm.user.isOper || vm.isOwner(vm.maker)" ng-click="vm.beginEditMakerDesc(vm.maker)">
|
|
{{'ABOUT.BTN_EDIT_DESC' | translate}}
|
|
</button>
|
|
<div class="btn-group min-width-120 margin-top-5" ng-if="vm.user.isAdmin" uib-dropdown dropdown-append-to-body>
|
|
<button id="btn-append-to-body" type="button"
|
|
class="btn btn-block"
|
|
mouse-enter-toggle-class="btn-default" base-class="btn-mt-o"
|
|
ng-click="$event.stopPropagation();"
|
|
uib-dropdown-toggle>
|
|
{{'ADMIN_UPLOAD_ACCESS' | translate }} <span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu-left" uib-dropdown-menu role="menu"
|
|
aria-labelledby="btn-append-to-body">
|
|
<li role="menuitem" ng-class="{'active': vm.maker.upload_access == 'review'}">
|
|
<a href="#"
|
|
ng-click="vm.setMakerUploadAccess('review');">{{ 'UPLOADER.FIELDS_REVIEW' | translate}}</a>
|
|
</li>
|
|
<li role="menuitem" ng-class="{'active': vm.maker.upload_access == 'pass'}">
|
|
<a href="#"
|
|
ng-click="vm.setMakerUploadAccess('pass');">{{ 'UPLOADER.FIELDS_PASS' | translate}}</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<button class="btn btn-min-width-120 margin-top-5" mouse-enter-toggle-class="btn-default" base-class="btn-mt-o"
|
|
ng-if="vm.user.isAdmin" ng-click="vm.beginRemoveMakerGroup(vm.maker)">
|
|
{{'ABOUT.BTN_REMOVE_GROUP' | translate}}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="row margin-top-10">
|
|
<div class="col-md-12 torrent-list" id="top_of_torrent_list" ng-show="vm.pagedItems">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading text-center">
|
|
<h3 class="panel-title">-={{vm.maker.name}}=-    {{'TAGS_SEARCH' | translate}}</h3>
|
|
</div>
|
|
<div class="panel-body">
|
|
<div class="row filter-tags text-center"
|
|
ng-if="(vm.filterType && vm.filterType!='aggregate') || vm.releaseYear || vm.torrentRLevel != 'level0' || vm.filterSale || vm.filterHnR || vm.filterTop || vm.filterUnique || vm.searchTags.length>0">
|
|
<div class="col-md-6 col-md-offset-3">
|
|
<span class="filter-tag-item label-tag" ng-if="vm.filterType && vm.filterType!='aggregate'">{{'TORRENT_TYPE_LABEL.' + vm.filterType.toUpperCase() | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onTorrentTypeClicked(vm.filterType);">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.releaseYear">{{vm.releaseYear}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onReleaseClicked(vm.releaseYear);">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.torrentRLevel != 'level0'">{{ 'TORRENT_RECOMMEND_LEVEL_ITEM.' + vm.torrentRLevel.toUpperCase() | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onRLevelClicked(vm.torrentRLevel);">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.filterSale">{{ 'CA_TORRENT_SALE_NOW' | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onSaleClicked();">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.filterHnR">H&R
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onHnRClicked();">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.filterTop">{{'STATUS_TOP_KEY' | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onTopClicked();">
|
|
</i>
|
|
</span>
|
|
<span class="filter-tag-item label-tag" ng-if="vm.filterUnique">{{'STATUS_UNIQUE_KEY' | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onUniqueClicked();">
|
|
</i>
|
|
</span>
|
|
<span ng-repeat="t in vm.searchTags" ng-if="vm.searchTags.length>0">
|
|
<span class="filter-tag-item label-tag">{{ 'RESOURCESTAGS.' + vm.RTS.getTagTitle(t) + '.' + t.toUpperCase() | translate}}
|
|
<i class="fa fa-times-circle"
|
|
ng-click="vm.onTagClicked(t);">
|
|
</i>
|
|
</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-10 col-md-offset-1">
|
|
<dl class="dl-horizontal tags-admin-dl">
|
|
<dt class="h-line">{{ 'CA_KEYWORD' | translate}}:</dt>
|
|
<dd class="h-line">
|
|
<div class="row" style="">
|
|
<div class="col-sm-6">
|
|
<input type="text" class="form-control" ng-model="vm.searchKey"
|
|
ng-keydown="vm.onKeysKeyDown($event);"
|
|
placeholder="{{ 'PH_KEYWORD' | translate}}">
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<span class="label label-tag text-uppercase incline-block-valign"
|
|
title="{{ 'TITLE_ALT.MORE_TAGS' | translate}}"
|
|
ng-click="vm.onMoreTagsClicked();">
|
|
<i class="glyphicon glyphicon-chevron-down" id="more-tags-icon"></i> {{ 'MORE_TAGS' | translate}}
|
|
</span>
|
|
<span class="label label-tag text-uppercase incline-block-valign"
|
|
title="{{ 'TITLE_ALT.RESET_TAGS' | translate}}"
|
|
ng-click="vm.clearAllCondition();">
|
|
<i class="glyphicon glyphicon-repeat"></i> {{ 'CA_RESET' | translate}}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</dd>
|
|
|
|
<div class="more-tags panel-collapsed padding-top-10" style="display: none; margin-bottom: 20px;">
|
|
<dt class="h-line margin-top-10">{{'CA_RESOURCE_TYPE' | translate}}</dt>
|
|
<dd class="h-line margin-top-10">
|
|
<div class="radio radio-type margin-top-5">
|
|
<label class="radio-inline" ng-class="{checked: vm.filterType == t.value}"
|
|
ng-repeat="t in vm.torrentTypeConfig.value | filter:{enable: true, role: 'user'}">
|
|
<input type="radio" ng-model="vm.filterType" value="{{t.value}}"
|
|
ng-change="vm.onTorrentTypeChanged();"> {{'MENU_TORRENTS_SUB.'+t.name | translate}}
|
|
</label>
|
|
</div>
|
|
</dd>
|
|
|
|
<dt class="h-line">{{ 'CA_TORRENT_ATTR' | translate}}:</dt>
|
|
<dd class="h-line">
|
|
<div class="checkbox checkbox-hnr">
|
|
<label class="checkbox-inline" ng-if="vm.hnrConfig.enable">
|
|
<input type="checkbox" ng-model="vm.filterHnR"
|
|
ng-change="vm.onHnRChanged();"> {{ 'CA_TORRENT_HNR' | translate}}
|
|
</label>
|
|
<label class="checkbox-inline" ng-if="!vm.isGlobalSaleNow()">
|
|
<input type="checkbox" ng-model="vm.filterSale"
|
|
ng-change="vm.onSaleChanged();"> {{ 'CA_TORRENT_SALE_NOW' | translate}}
|
|
</label>
|
|
<label class="checkbox-inline">
|
|
<input type="checkbox" ng-model="vm.filterTop"
|
|
ng-change="vm.onTopChanged();"> {{ 'TORRENT_STATUS_TOP_TITLE' | translate}}
|
|
</label>
|
|
<label class="checkbox-inline">
|
|
<input type="checkbox" ng-model="vm.filterUnique"
|
|
ng-change="vm.onUniqueChanged();"> {{ 'TORRENT_STATUS_UNIQUE' | translate}}
|
|
</label>
|
|
</div>
|
|
</dd>
|
|
|
|
<div ng-repeat="item in vm.resourcesTags.radio | filter:vm.torrentType">
|
|
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
|
<dd class="h-line">
|
|
<div class="btn-group btn-group-xs" role="group">
|
|
<button ng-repeat="sitem in item.value" id="tag_{{sitem.name}}"
|
|
class="btn btn-xs btn-default btn-tag" value="{{sitem.name}}"
|
|
ng-click="vm.onRadioTagClicked($event, sitem.name)">
|
|
{{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
|
</button>
|
|
</span>
|
|
</div>
|
|
</dd>
|
|
</div>
|
|
|
|
<div style="margin-top: 20px;"></div>
|
|
|
|
<div ng-repeat="item in vm.resourcesTags.checkbox | filter:vm.torrentType">
|
|
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
|
<dd class="h-line">
|
|
<div class="btn-group btn-group-xs" role="group">
|
|
<button ng-repeat="sitem in item.value" id="tag_{{sitem.name}}"
|
|
class="btn btn-xs btn-default btn-tag" value="{{sitem.name}}"
|
|
ng-click="vm.onCheckboxTagClicked($event, sitem.name)"
|
|
toggle-class="btn-success" base-class="btn-default" onclick="this.blur();">
|
|
{{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
|
</button>
|
|
</div>
|
|
</dd>
|
|
</div>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pagination-div-top">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<ul uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength"
|
|
ng-model="vm.currentPage"
|
|
ng-change="vm.pageChanged()"
|
|
first-text="{{ 'PAGE_TEXT_FIRST' | translate}}" previous-text="{{ 'PAGE_TEXT_PREVIOUS' | translate}}"
|
|
next-text="{{ 'PAGE_TEXT_NEXT' | translate}}" last-text="{{ 'PAGE_TEXT_LAST' | translate}}">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="table-responsive">
|
|
<table class="table table-hover tb-v-middle">
|
|
<thead>
|
|
<tr>
|
|
<th class="td-width-0"></th>
|
|
<th>{{ 'TABLE_FIELDS.INFO' | translate}}</th>
|
|
<th>
|
|
<a href="#" tooltip-placement="top"
|
|
ng-click="vm.orderByVote();"
|
|
uib-tooltip="{{ 'TABLE_FIELDS.TITLE_VOTES' | translate}}">{{ 'TABLE_FIELDS.VOTES' | translate}}</a>
|
|
<i class="fa fa-caret-down text-info" ng-if="vm.sortVote == '-'"></i>
|
|
</th>
|
|
<th class="text-center">
|
|
<a href="#" tooltip-placement="top"
|
|
ng-click="vm.orderByLife();"
|
|
uib-tooltip="{{ 'TABLE_FIELDS.TITLE_LIFE' | translate}}">{{ 'TABLE_FIELDS.LIFETIME' | translate}}</a>
|
|
<i class="fa fa-caret-down text-info" ng-if="vm.sortLife == '-'"></i>
|
|
</th>
|
|
<th class="text-center">
|
|
<a href="#" tooltip-placement="top"
|
|
ng-click="vm.orderBySize();"
|
|
uib-tooltip="{{ 'TABLE_FIELDS.TITLE_SIZE' | translate}}">{{ 'TABLE_FIELDS.SIZE' | translate}}</a>
|
|
<i class="fa fa-caret-down text-info" ng-if="vm.sortSize == '-'"></i>
|
|
</th>
|
|
<th>
|
|
<a href="#" tooltip-placement="top"
|
|
ng-click="vm.orderBySLF();"
|
|
uib-tooltip="{{ 'TABLE_FIELDS.TITLE_SEEDS_LEECHERS_FINISHED' | translate}}"
|
|
ng-bind-html="vm.getOrderTableHead()"></a>
|
|
</th>
|
|
<th class="text-center">{{ 'TABLE_FIELDS.PUBLISHER' | translate}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody ng-if="vm.tooltipMsg">
|
|
<tr>
|
|
<td colspan="7">
|
|
<div class="text-center margin-top-50 margin-bottom-30 padding-top-20 padding-bottom-50">
|
|
<h3>{{vm.tooltipMsg | translate}}</h3>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody ng-if="!vm.tooltipMsg" torrent-list-item parent="vm" item="item" list="vm.pagedItems" ng-repeat="item in vm.pagedItems"></tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="pagination-div-bottom">
|
|
<ul uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength"
|
|
ng-model="vm.currentPage"
|
|
ng-change="vm.pageChanged()"
|
|
first-text="{{ 'PAGE_TEXT_FIRST' | translate}}" previous-text="{{ 'PAGE_TEXT_PREVIOUS' | translate}}"
|
|
next-text="{{ 'PAGE_TEXT_NEXT' | translate}}" last-text="{{ 'PAGE_TEXT_LAST' | translate}}">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/ng-template" id="add-member.html">
|
|
<form>
|
|
<div class="form-group">
|
|
<input type="text" ng-model="vm.addMemberPopover.username" class="form-control"
|
|
placeholder="{{ 'STATUS_FIELD.USERNAME' | translate }}" autofocus>
|
|
</div>
|
|
<div class="margin-top-10">
|
|
<button class="btn btn-default btn-min-width-80" ng-disabled="!vm.addMemberPopover.username"
|
|
ng-click="vm.addMember();">{{ 'FORUMS.BTN_ADD' | translate }}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</script>
|
|
</div> |