mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-09-09 21:10:10 +02:00
803 lines
46 KiB
HTML
803 lines
46 KiB
HTML
<section class="container" ng-controller="TorrentsUploadController as vm" xmlns="http://www.w3.org/1999/html">
|
||
<div class="jumbotron margin-top-10" ng-init="vm.getTemplateFileContent('/modules/torrents/client/templates/upload-rules-'+vm.lang+'.md')">
|
||
<div class="row">
|
||
<div class="col-xs-12">
|
||
<h4 translate="UPLOAD_RULES"></h4>
|
||
<span ng-bind-html="vm.getTemplateMarkedContent()" style="line-height: 1.6;"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div ng-if="!vm.getAccessUploader()">
|
||
<div class="alert alert-warning text-center" role="alert" style="padding: 30px 50px 20px 50px;">
|
||
<h4 translate="UPLOAD_ACCESS_TOOLTIP" translate-values="{site: vm.appConfig.name}"></h4>
|
||
</div>
|
||
</div>
|
||
|
||
<div ng-if="vm.getAccessUploader()">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_TORRENT_FILE"></legend>
|
||
<div class="col-sm-7">
|
||
<div class="input-group">
|
||
<input type="text" class="form-control" ng-model="vm.tFile.name" disabled>
|
||
|
||
<div class="input-group-btn">
|
||
<button class="btn btn-primary btn-file"
|
||
ngf-select="vm.fileSelected = true; vm.successfully = undefined; vm.progress = 0;"
|
||
ng-model="vm.tFile"
|
||
accept="application/x-bittorrent"
|
||
ng-disabled="vm.successfully">{{ 'SELECT_FILE' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div ng-show="vm.fileSelected" class="col-sm-5">
|
||
<button class="btn btn-success" ng-click="vm.upload(vm.tFile)">{{ 'DO_UPLOAD' | translate}} ({{vm.progress}}%)</button>
|
||
</div>
|
||
<div ng-show="vm.successfully == true" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-success control-label" translate="TORRENTS_UPLOAD_SUCCESSFULLY"></label>
|
||
</div>
|
||
<div ng-show="vm.successfully == false" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="TORRENTS_UPLOAD_FAILED"></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.successfully == true">
|
||
<div class="col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_RESOURCE_TYPE"></legend>
|
||
<div class="col-xs-12 col-sm-6 col-md-4">
|
||
<select class="form-control" ng-model="vm.selectedType" ng-change="vm.onTorrentTypeChanged();">
|
||
<option ng-repeat="t in vm.torrentType.value | filter:{enable: true}"
|
||
ng-if="t.role=='user' || (t.role=='vip' && (vm.user.isVip || vm.user.isOper))"
|
||
value="{{t.value}}">{{'MENU_TORRENTS_SUB.'+t.name | translate}}
|
||
</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div ng-show="vm.selectedType" ng-include="vm.getIncludeUploadTemplateID(vm.selectedType);"></div>
|
||
|
||
<div class="row margin-bottom-40 margin-top-50" ng-show="vm.showAgreeAndSubmit || vm.customTorrent.detail">
|
||
<div class="col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_MAKER_GROUP"></legend>
|
||
<div class="col-xs-12 col-sm-6 col-md-4">
|
||
<label class="radio-inline">
|
||
<input type="radio" name="maker_NULL" ng-model="vm.maker"
|
||
id="maker_NULL"
|
||
value="NULL"> {{'MAKER_NULL' | translate}}
|
||
</label>
|
||
<label class="radio-inline" ng-repeat="m in vm.user.makers">
|
||
<input type="radio" name="maker_{{m.name}}" ng-model="vm.maker"
|
||
id="maker_{{m.name}}"
|
||
value="{{m._id}}"> {{m.name}}
|
||
</label>
|
||
</div>
|
||
<div class="col-xs-12">
|
||
<div class="checkbox">
|
||
<label>
|
||
<input type="checkbox" ng-model="vm.anonymous"> {{'UPLOADER_ANONYMOUS' | translate}}
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="col-md-12 col-sm-12 col-xs-12 margin-top-50">
|
||
<legend class="small-legend" translate="TORRENTS_SUBMIT_UPLOAD"></legend>
|
||
<div class="col-sm-6 col-sm-offset-3 text-center">
|
||
<label class="checkbox text-uppercase">
|
||
<input type="checkbox" id="agreeCheckbox" ng-model="vm.agreeRules">
|
||
<span translate="AGREE_RULES"></span>
|
||
</label>
|
||
</div>
|
||
<div class="col-sm-4 col-sm-offset-4">
|
||
<button class="btn btn-lg btn-block btn-success" ng-click="vm.create()"
|
||
ng-disabled="!vm.agreeRules">{{ 'SUBMIT_BUTTON' | translate}}
|
||
</button>
|
||
<button class="btn btn-lg btn-block btn-warning" ng-click="vm.cancel()">{{ 'CANCEL_BUTTON' | translate}}
|
||
</button>
|
||
</div>
|
||
<div class="col-sm-10 text-center">
|
||
<span class="error-text" ng-show="vm.error_msg">{{vm.error_msg}}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- =================================================================
|
||
side-overlay search movies
|
||
================================================================== -->
|
||
<div id="searchFromTMDBSlide" side-overlay="right" side-class="search-from-tmdb-side-overlay" side-opened="vm.onPopupSearchOpen()"
|
||
side-close-on-esc side-modal>
|
||
<div class="search-popup">
|
||
<legend class="h4"
|
||
translate="SEARCH_FROM_TMDB_TITLE" translate-values="{type: ('MENU_TORRENTS_SUB.'+vm.selectedType.toUpperCase() | translate)}">
|
||
</legend>
|
||
|
||
<div class="search-form">
|
||
<div class="input-group">
|
||
<input type="text" class="form-control" ng-model="vm.search.keys"
|
||
id="skey"
|
||
ng-keydown="vm.onSearchKeyDown($event);"
|
||
ng-focus="vm.onTextClick($event)"
|
||
placeholder="{{ 'PLACE_HOLDER_SEARCH' | translate}}" autofocus>
|
||
|
||
<div class="input-group-btn">
|
||
<button id="btnSearchFromTMDB" class="btn btn-primary" ng-click="vm.searchFromTMDB()"
|
||
ng-disabled="!vm.search.keys">{{ 'BTN_SEARCH' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="margin-top-20 h5" ng-class="vm.search.status == 'loading' ? 'text-success' : 'text-danger'"
|
||
ng-if="vm.search.status != 'ok'">{{vm.search.status_msg | translate}}
|
||
</div>
|
||
|
||
<div ng-if="vm.search.searchItems.length<=0">
|
||
<div class="h5 text-danger margin-top-20 margin-bottom-5">{{'SEARCH_RESULT_EMPTY' | translate}}</div>
|
||
</div>
|
||
|
||
<div ng-if="vm.search.searchItems.length>0">
|
||
<div class="h4 margin-top-20 margin-bottom-5">{{'SELECT_RESULT_ITEM' | translate}}</div>
|
||
<div class="margin-top-10 h5 text-danger"
|
||
ng-if="vm.search.totalItems > 20">{{'RESULT_TOO_MORE' | translate}}
|
||
</div>
|
||
<div class="radio margin-left-10" ng-repeat="r in vm.search.searchItems">
|
||
<label ng-dblclick="vm.onSelectResult()">
|
||
<input type="radio" name="n_{{r.id}}" id="i_{{r.id}}" value="{{r.id}}"
|
||
ng-model="vm.search.sid">
|
||
{{r.title || r.name}}
|
||
<div>
|
||
<small class="text-muted">{{r.original_title || r.original_name}} - {{r.release_date || r.first_air_date}}</small>
|
||
</div>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bottom-control">
|
||
<button class="btn btn-success btn-width-100"
|
||
ng-disabled="!vm.search.sid"
|
||
ng-click="vm.onSelectResult()">{{ 'BTN_SELECT' | translate }}
|
||
</button>
|
||
<button class="btn btn-default btn-width-100" ng-click="vm.hideSearchPopup();">{{ 'BUTTON_CANCEL' | translate }}</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- **********************************************************************
|
||
ng-template movie.html
|
||
*********************************************************************** -->
|
||
<script type="text/ng-template" id="movie">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_TMDB_ID"></legend>
|
||
<div class="col-sm-7 col-md-6 col-lg-5">
|
||
<div class="input-group">
|
||
<div class="input-group-btn">
|
||
<button class="btn btn-default" ng-click="vm.beginSearchFromTMDB($event)">
|
||
{{ 'SEARCH_FROM_TMDB' | translate}}
|
||
</button>
|
||
</div>
|
||
<input type="number" class="form-control" ng-model="vm.tmdb_id"
|
||
id="tmdbid"
|
||
ng-change="vm.tmdb_info_ok = undefined"
|
||
ng-disabled="vm.tmdb_info_ok"
|
||
ng-focus="vm.onTextClick($event)"
|
||
ng-keydown="vm.onTMDBIDKeyDown($event);"
|
||
placeholder="{{ 'TMDB_ID' | translate}}" autofocus>
|
||
|
||
<div class="input-group-btn">
|
||
<button id="btnGetTMDBInfo" class="btn btn-primary" ng-click="vm.getMovieInfo(vm.tmdb_id)"
|
||
ng-disabled="vm.tmdb_info_ok">{{ 'LOAD_TMDB_INFO' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div ng-show="vm.tmdb_info_ok == true" class="col-sm-5 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-success control-label" translate="TMDB_ID_OK"></label>
|
||
</div>
|
||
<div ng-show="vm.tmdb_info_ok == false" class="col-sm-6 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="TMDB_ID_ERROR"></label>
|
||
</div>
|
||
<div ng-show="vm.tmdb_isloading" class="col-sm-6 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="TMDB_IS_LOADING"></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div ng-show="vm.tmdb_info_ok == true">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="TMDB_RESOURCE_INFO"></legend>
|
||
<div class="col-md-3 col-sm-3 col-xs-12 upload-info-img">
|
||
<img ng-src="{{vm.tmdbConfig.posterImgBaseUrl}}{{vm.movieinfo.poster_path}}" class="img-thumbnail">
|
||
</div>
|
||
<div class="col-md-9 col-sm-9 col-xs-12">
|
||
<dl class="dl-horizontal">
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.ORIGINAL_TITLE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.original_title}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.TITLE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.title}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.ORIGINAL_LANGUAGE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.original_language}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.GENRES' | translate}}:</dt>
|
||
<dd class="h-line list-all-genres">
|
||
<span class="genres-item" ng-repeat="item in vm.movieinfo.genres">{{item.name}}</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.PRODUCTION_COMPANIES' | translate}}:</dt>
|
||
<dd class="h-line list-all-companies">
|
||
<span class="company-item"
|
||
ng-repeat="item in vm.movieinfo.production_companies">{{item.name}}</span>
|
||
<span ng-show="vm.movieinfo.production_companies.length ==0">-</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.PRODUCTION_COUNTRIES' | translate}}:</dt>
|
||
<dd class="h-line list-all-countries">
|
||
<span class="country-item" ng-repeat="item in vm.movieinfo.production_countries">{{item.iso_3166_1}}</span>
|
||
<span ng-show="vm.movieinfo.production_countries.length ==0">-</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.RELEASE_DATE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.release_date}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.RUNTIME' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.runtime | runtime}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.BUDGET' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.budget | dollar:2}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.REVENUE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.revenue | dollar:2}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.VOTE_AVERAGE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.vote_average}} / {{vm.movieinfo.vote_count}} {{ 'TMDB_FIELDS.VOTE_UNIT' | translate}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.IMDB_LINK' | translate}}:</dt>
|
||
<dd class="h-line"><a href="{{vm.imdbConfig.imdbLinkUrl}}{{vm.movieinfo.imdb_id}}"
|
||
target="_blank">{{vm.imdbConfig.imdbLinkUrl}}{{vm.movieinfo.imdb_id}}</a></dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.TMDB_LINK' | translate}}:</dt>
|
||
<dd class="h-line"><a href="{{vm.tmdbConfig.tmdbMovieLinkUrl}}{{vm.movieinfo.id}}"
|
||
target="_blank">{{vm.tmdbConfig.tmdbMovieLinkUrl}}{{vm.movieinfo.id}}</a></dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.OVERVIEW' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.movieinfo.overview}}</dd>
|
||
</dl>
|
||
<legend class="xsmall-legend strong-legend" translate="TMDB_FIELDS.CAST"></legend>
|
||
<div class="row cast-list">
|
||
<div ng-repeat="cast in vm.movieinfo.credits.cast | limitTo: 6">
|
||
<div data-ng-if="$index != 0 && $index % 3 == 0" class="clearfix visible-xs-block visible-sm-block"></div>
|
||
<div data-ng-if="$index != 0 && $index % 6 == 0" class="clearfix visible-md-block visible-lg-block"></div>
|
||
<div class="col-xs-4 col-md-2 text-center">
|
||
<img ng-src="{{vm.tmdbConfig.castImgBaseUrl}}{{cast.profile_path}}"
|
||
on-error-src="/modules/core/client/img/default_face.jpg"
|
||
class="img-circle img-thumbnail img-responsive center-block">
|
||
<span class="cast-xs-info"><strong>{{cast.name}}</strong></span>
|
||
|
||
<p class="cast-xs-info character">{{cast.character}}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.showResourcesTag">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_TAGS"></legend>
|
||
<dl class="dl-horizontal">
|
||
<div ng-repeat="item in vm.resourcesTags.radio | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="radio-inline" ng-repeat="sitem in item.value">
|
||
<input type="radio" class="tradio" name="tag_{{item.name}}" ng-model="vm.tags['tag_'+item.name]"
|
||
id="radio_{{item.name}}{{$index}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
|
||
<div style="margin-top: 30px;"></div>
|
||
|
||
<div ng-repeat="item in vm.resourcesTags.checkbox | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="checkbox-inline" ng-repeat="sitem in item.value">
|
||
<input type="checkbox" class="tcheckbox" ng-model="vm.tags['tag_'+item.name+'_'+sitem.name]"
|
||
id="checkbox_{{item.name}}_{{sitem.name}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
<div class="margin-top-10">
|
||
<dt class="h-line"></dt>
|
||
<dd class="h-line">
|
||
<span class="label label-tag text-uppercase" ng-click="vm.clearAllCondition();">
|
||
{{ 'CLEAR_ALL_CONDITION' | translate}}
|
||
</span>
|
||
</dd>
|
||
</div>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.showVideoNfo">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_VIDEO_NFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea class="form-control" rows="10" ng-model="vm.videoNfo" style="resize: vertical"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<!-- **********************************************************************
|
||
ng-template tvserial.html
|
||
*********************************************************************** -->
|
||
<script type="text/ng-template" id="tvserial">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_TMDB_ID"></legend>
|
||
<div class="col-sm-7 col-md-6 col-lg-5">
|
||
<div class="input-group">
|
||
<div class="input-group-btn">
|
||
<button class="btn btn-default" ng-click="vm.beginSearchFromTMDB($event)">
|
||
{{ 'SEARCH_FROM_TMDB' | translate}}
|
||
</button>
|
||
</div>
|
||
<input type="number" class="form-control" ng-model="vm.tmdb_id"
|
||
id="tmdbid"
|
||
ng-change="vm.tmdb_info_ok = undefined"
|
||
ng-disabled="vm.tmdb_info_ok"
|
||
ng-focus="vm.onTextClick($event)"
|
||
ng-keydown="vm.onTMDBIDKeyDown($event);"
|
||
placeholder="{{ 'TMDB_ID' | translate}}" autofocus>
|
||
|
||
<div class="input-group-btn">
|
||
<button id="btnGetTMDBInfo" class="btn btn-primary" ng-click="vm.getTVInfo(vm.tmdb_id)"
|
||
ng-disabled="vm.tmdb_info_ok">{{ 'LOAD_TMDB_INFO' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div ng-show="vm.tmdb_info_ok == true" class="col-sm-5 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-success control-label" translate="TMDB_ID_OK"></label>
|
||
</div>
|
||
<div ng-show="vm.tmdb_info_ok == false" class="col-sm-5 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="TMDB_ID_ERROR"></label>
|
||
</div>
|
||
<div ng-show="vm.tmdb_isloading" class="col-sm-5 col-md-6 col-lg-7" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="TMDB_IS_LOADING"></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div ng-show="vm.tmdb_info_ok == true">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="TMDB_RESOURCE_INFO"></legend>
|
||
<div class="col-md-3 col-sm-3 col-xs-12">
|
||
<img ng-src="{{vm.tmdbConfig.posterImgBaseUrl}}{{vm.tvinfo.poster_path}}" class="img-thumbnail">
|
||
</div>
|
||
<div class="col-md-9 col-sm-9 col-xs-12">
|
||
<dl class="dl-horizontal">
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.ORIGINAL_NAME' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.original_name}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.NAME' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.name}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.ORIGINAL_LANGUAGE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.original_language}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.GENRES' | translate}}:</dt>
|
||
<dd class="h-line list-all-genres">
|
||
<span class="genres-item" ng-repeat="item in vm.tvinfo.genres">{{item.name}}</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.PRODUCTION_COMPANIES' | translate}}:</dt>
|
||
<dd class="h-line list-all-companies">
|
||
<span class="company-item"
|
||
ng-repeat="item in vm.tvinfo.production_companies">{{item.name}}</span>
|
||
<span ng-show="vm.tvinfo.production_companies.length ==0">-</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.PRODUCTION_COUNTRIES' | translate}}:</dt>
|
||
<dd class="h-line list-all-countries">
|
||
<span class="country-item" ng-repeat="item in vm.tvinfo.origin_country">{{item}}</span>
|
||
<span ng-show="vm.tvinfo.origin_country.length ==0">-</span>
|
||
</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.FIRST_AIR_DATE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.first_air_date}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.LAST_AIR_DATE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.last_air_date}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.NUMBER_OF_SEASONS' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.number_of_seasons}} {{ 'TMDB_FIELDS.UNIT_SEASONS' | translate}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.NUMBER_OF_EPISODES' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.number_of_episodes}} {{ 'TMDB_FIELDS.UNIT_EPISODES' | translate}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.VOTE_AVERAGE' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.vote_average}} / {{vm.tvinfo.vote_count}} {{ 'TMDB_FIELDS.VOTE_UNIT' | translate}}</dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.TMDB_LINK' | translate}}:</dt>
|
||
<dd class="h-line"><a href="{{vm.tmdbConfig.tmdbTvserialLinkUrl}}{{vm.tvinfo.id}}"
|
||
target="_blank">{{vm.tmdbConfig.tmdbTvserialLinkUrl}}{{vm.tvinfo.id}}</a></dd>
|
||
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.OVERVIEW' | translate}}:</dt>
|
||
<dd class="h-line">{{vm.tvinfo.overview}}</dd>
|
||
</dl>
|
||
<legend class="xsmall-legend strong-legend" translate="TMDB_FIELDS.CAST"></legend>
|
||
<div class="row cast-list">
|
||
<div class="col-xs-4 col-md-2 text-center" ng-repeat="cast in vm.tvinfo.credits.cast | limitTo: 6">
|
||
<img ng-src="{{vm.tmdbConfig.castImgBaseUrl}}{{cast.profile_path}}"
|
||
on-error-src="/modules/core/client/img/default_face.jpg"
|
||
class="img-circle img-thumbnail img-responsive center-block">
|
||
<span class="cast-xs-info"><strong>{{cast.name}}</strong></span>
|
||
|
||
<p class="cast-xs-info">{{cast.character}}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-20">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_SE"></legend>
|
||
<dl class="dl-horizontal">
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.UNIT_SEASONS' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<div class="col-sm-4 col-md-3">
|
||
<select class="form-control" ng-model="vm.selectedSeasons">
|
||
<option ng-repeat="n in [] | mtRange:vm.tvinfo.number_of_seasons" value="{{n+1}}">{{n+1}}</option>
|
||
</select>
|
||
</div>
|
||
</dd>
|
||
|
||
<div class="margin-top-5">
|
||
<form name="vm.episodesForm" ng-submit="vm.tvContinue(vm.episodesForm.$valid)" novalidate>
|
||
<dt class="h-line">{{ 'TMDB_FIELDS.UNIT_EPISODES' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<div class="form-group" show-errors>
|
||
<div class="col-sm-4 col-md-3">
|
||
<input class="form-control" id="inputedEpisodes" name="inputedEpisodes"
|
||
ng-pattern="/(^[0-9]{1,4}$)|(^[0-9]{1,2}[\-]{1}[0-9]{1,4}$)/"
|
||
ng-model="vm.inputedEpisodes" ng-disabled="vm.inputedEpisodesOK" required>
|
||
</div>
|
||
<div class="col-sm-4 col-md-3">
|
||
<button type="submit" class="btn btn-primary">continue</button>
|
||
</div>
|
||
<div class="col-xs-12" ng-messages="vm.episodesForm.inputedEpisodes.$error" role="alert">
|
||
<p class="help-block error-text"
|
||
ng-message="required">{{'TMDB_FIELDS.EPISODES_INPUT_TIP' | translate}}</p>
|
||
|
||
<p class="help-block error-text" ng-message="pattern">{{'TMDB_FIELDS.EPISODES_INPUT_TIP' | translate}}</p>
|
||
</div>
|
||
<div class="col-xs-12" ng-hide="vm.inputedEpisodesError">
|
||
<p class="episodes_input_tip">{{ 'TMDB_FIELDS.EPISODES_INPUT_TIP' | translate}}</p>
|
||
</div>
|
||
</div>
|
||
</dd>
|
||
</form>
|
||
</div>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.showResourcesTag">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_TAGS"></legend>
|
||
<dl class="dl-horizontal">
|
||
<div ng-repeat="item in vm.resourcesTags.radio | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="radio-inline" ng-repeat="sitem in item.value">
|
||
<input type="radio" class="tradio" name="tag_{{item.name}}" ng-model="vm.tags['tag_'+item.name]"
|
||
id="radio_{{item.name}}{{$index}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
|
||
<div style="margin-top: 30px;"></div>
|
||
|
||
<div ng-repeat="item in vm.resourcesTags.checkbox | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="checkbox-inline" ng-repeat="sitem in item.value">
|
||
<input type="checkbox" class="tcheckbox" ng-model="vm.tags['tag_'+item.name+'_'+sitem.name]"
|
||
id="checkbox_{{item.name}}_{{sitem.name}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
<div class="margin-top-10">
|
||
<dt class="h-line"></dt>
|
||
<dd class="h-line">
|
||
<span class="label label-tag text-uppercase" ng-click="vm.clearAllCondition();">
|
||
{{ 'CLEAR_ALL_CONDITION' | translate}}
|
||
</span>
|
||
</dd>
|
||
</div>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.showVideoNfo">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_VIDEO_NFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea class="form-control" rows="10" ng-model="vm.videoNfo" style="resize: vertical"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<!-- **********************************************************************
|
||
ng-template music.html
|
||
*********************************************************************** -->
|
||
<script type="text/ng-template" id="music">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_MUSIC_TITLE"></legend>
|
||
<div class="col-md-6 col-sm-8">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.artist" placeholder="{{ 'MUSIC_ARTIST' | translate}}"
|
||
autofocus>
|
||
</div>
|
||
<div class="col-md-6 col-md-offset-2"></div>
|
||
<div class="col-md-6 col-sm-8 margin-top-10">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.title" placeholder="{{ 'MUSIC_TITLE' | translate}}">
|
||
</div>
|
||
<div class="col-md-6 col-md-offset-2"></div>
|
||
<div class="col-md-8 col-sm-10 margin-top-10">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.subtitle" placeholder="{{ 'MUSIC_SUB_TITLE' | translate}}">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.artist && vm.customTorrent.title && vm.customTorrent.subtitle">
|
||
<div class="col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_MUSIC_IMAGE"></legend>
|
||
<div class="col-sm-7">
|
||
<div class="input-group">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.coverFile.name" disabled>
|
||
|
||
<div class="input-group-btn">
|
||
<button class="btn btn-primary btn-file"
|
||
ngf-select="vm.customTorrent.fileSelected = true; vm.customTorrent.successfully = undefined; vm.customTorrent.progress = 0;"
|
||
ng-model="vm.customTorrent.coverFile"
|
||
ngf-pattern="'image/*'"
|
||
ngf-accept="'image/*'"
|
||
ngf-resize="{width: 800}"
|
||
ngf-resize-if="$width > 800 || $height > 1200"
|
||
ng-disabled="vm.customTorrent.successfully">{{ 'SELECT_FILE' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.fileSelected" class="col-sm-5">
|
||
<button class="btn btn-success"
|
||
ng-click="vm.uploadCustomTorrentCover(vm.customTorrent.coverFile)">{{ 'DO_UPLOAD' | translate}} ({{vm.customTorrent.progress}}%)
|
||
</button>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.successfully == true" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-success control-label" translate="COVER_UPLOAD_SUCCESSFULLY"></label>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.successfully == false" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="COVER_UPLOAD_FAILED"></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.successfully">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_MUSIC_DETAIL_INFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea id="musicDetail" name="musicDetail" ng-model="vm.customTorrent.detail"
|
||
mt-markdown-editor="musicDetail"
|
||
upload-dir="/modules/torrents/client/uploads/temp/"
|
||
upload-only-image="true"
|
||
upload-method="vm.uploadTorrentImage(editor, ufile, progressback, callback, errback);"></textarea>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.detail">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_TAGS"></legend>
|
||
<dl class="dl-horizontal">
|
||
<div ng-repeat="item in vm.resourcesTags.radio | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="radio-inline" ng-repeat="sitem in item.value">
|
||
<input type="radio" class="tradio" name="tag_{{item.name}}" ng-model="vm.tags['tag_'+item.name]"
|
||
id="radio_{{item.name}}{{$index}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
|
||
<div style="margin-top: 30px;"></div>
|
||
|
||
<div ng-repeat="item in vm.resourcesTags.checkbox | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="checkbox-inline" ng-repeat="sitem in item.value">
|
||
<input type="checkbox" class="tcheckbox" ng-model="vm.tags['tag_'+item.name+'_'+sitem.name]"
|
||
id="checkbox_{{item.name}}_{{sitem.name}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
<div class="margin-top-10">
|
||
<dt class="h-line"></dt>
|
||
<dd class="h-line">
|
||
<span class="label label-tag text-uppercase" ng-click="vm.clearAllCondition();">
|
||
{{ 'CLEAR_ALL_CONDITION' | translate}}
|
||
</span>
|
||
</dd>
|
||
</div>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.detail">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_VIDEO_NFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea class="form-control" rows="10" ng-model="vm.videoNfo" style="resize: vertical"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<!-- **********************************************************************
|
||
ng-template default.html
|
||
*********************************************************************** -->
|
||
<script type="text/ng-template" id="default">
|
||
<div class="row margin-bottom-40">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_RESOURCE_TITLE"></legend>
|
||
<div class="col-md-6 col-sm-8 margin-top-10">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.title" placeholder="{{ 'RESOURCE_TITLE' | translate}}">
|
||
</div>
|
||
<div class="col-md-6 col-md-offset-2"></div>
|
||
<div class="col-md-8 col-sm-10 margin-top-10">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.subtitle" placeholder="{{ 'RESOURCE_SUB_TITLE' | translate}}">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.title && vm.customTorrent.subtitle">
|
||
<div class="col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_RESOURCE_IMAGE"></legend>
|
||
<div class="col-sm-7">
|
||
<div class="input-group">
|
||
<input type="text" class="form-control" ng-model="vm.customTorrent.coverFile.name" disabled>
|
||
|
||
<div class="input-group-btn">
|
||
<button class="btn btn-primary btn-file"
|
||
ngf-select="vm.customTorrent.fileSelected = true; vm.customTorrent.successfully = undefined; vm.customTorrent.progress = 0;"
|
||
ng-model="vm.customTorrent.coverFile"
|
||
ngf-pattern="'image/*'"
|
||
ngf-accept="'image/*'"
|
||
ngf-resize="{width: 800}"
|
||
ngf-resize-if="$width > 800 || $height > 1200"
|
||
ng-disabled="vm.customTorrent.successfully">{{ 'SELECT_FILE' | translate}}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.fileSelected" class="col-sm-5">
|
||
<button class="btn btn-success"
|
||
ng-click="vm.uploadCustomTorrentCover(vm.customTorrent.coverFile)">{{ 'DO_UPLOAD' | translate}} ({{vm.customTorrent.progress}}%)
|
||
</button>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.successfully == true" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-success control-label" translate="COVER_UPLOAD_SUCCESSFULLY"></label>
|
||
</div>
|
||
<div ng-show="vm.customTorrent.successfully == false" class="col-sm-5" style="margin-top: 7px">
|
||
<label class="text-danger control-label" translate="COVER_UPLOAD_FAILED"></label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.successfully">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_RESOURCE_DETAIL_INFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea id="sportsDetail" name="sportsDetail" ng-model="vm.customTorrent.detail"
|
||
mt-markdown-editor="sportsDetail"
|
||
upload-dir="/modules/torrents/client/uploads/temp/"
|
||
upload-only-image="true"
|
||
upload-method="vm.uploadTorrentImage(editor, ufile, progressback, callback, errback);"></textarea>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.detail">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="SELECT_TAGS"></legend>
|
||
<dl class="dl-horizontal">
|
||
<div ng-repeat="item in vm.resourcesTags.radio | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="radio-inline" ng-repeat="sitem in item.value">
|
||
<input type="radio" class="tradio" name="tag_{{item.name}}" ng-model="vm.tags['tag_'+item.name]"
|
||
id="radio_{{item.name}}{{$index}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
|
||
<div style="margin-top: 30px;"></div>
|
||
|
||
<div ng-repeat="item in vm.resourcesTags.checkbox | filter:vm.selectedType">
|
||
<dt class="h-line">{{ 'RESOURCESTAGS.'+item.name+'.SELF' | translate}}:</dt>
|
||
<dd class="h-line">
|
||
<label class="checkbox-inline" ng-repeat="sitem in item.value">
|
||
<input type="checkbox" class="tcheckbox" ng-model="vm.tags['tag_'+item.name+'_'+sitem.name]"
|
||
id="checkbox_{{item.name}}_{{sitem.name}}"
|
||
value="{{sitem.name}}"> {{ 'RESOURCESTAGS.' + item.name + '.' + sitem.name | translate}}
|
||
</label>
|
||
</dd>
|
||
</div>
|
||
<div class="margin-top-10">
|
||
<dt class="h-line"></dt>
|
||
<dd class="h-line">
|
||
<span class="label label-tag text-uppercase" ng-click="vm.clearAllCondition();">
|
||
{{ 'CLEAR_ALL_CONDITION' | translate}}
|
||
</span>
|
||
</dd>
|
||
</div>
|
||
</dl>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row margin-bottom-40" ng-show="vm.customTorrent.detail && vm.needShowNFO(vm.selectedType)">
|
||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||
<legend class="small-legend" translate="ENTER_VIDEO_NFO"></legend>
|
||
<div class="col-xs-12">
|
||
<textarea class="form-control" rows="10" ng-model="vm.videoNfo" style="resize: vertical"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
</section>
|
||
|
||
<div id="uploaded_popup" style="display: none;">
|
||
<div class="row padding-top-30 padding-bottom-30">
|
||
<div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2">
|
||
<h4 translate="POPUP_UPLOADED_TOOLTIP"></h4>
|
||
</div>
|
||
<!--<div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2">-->
|
||
<!--<h6 class="text-muted downloading-filename margin-left-30">{{'TORRENT_DOWNLOADING_FILENAME' | translate}} {{announceConfig.announcePrefix}}{{downloadingTorrent.torrent_filename}}</h6>-->
|
||
<!--</div>-->
|
||
<div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 text-center">
|
||
<div class="checkbox text-muted">
|
||
<label>
|
||
<input type="checkbox" ng-model="uploadPopupNotShowNextTime">{{'BUTTON_UNSHOW_NEXT_TIME' | translate}}
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 text-center">
|
||
<button class="uploaded_popup_close btn btn-success btn-width-100">{{'BUTTON_UPLOADED_POPUP_CLOSE' | translate}}</button>
|
||
</div>
|
||
</div>
|
||
</div>
|