electorrent
Version:
An Electron/Node/AngularJS remote client app for uTorrent server
121 lines (118 loc) • 5.79 kB
HTML
<div class="wrapper" ng-controller="torrentsController">
<div ng-if="connectionLost" class="popup">
<div class="content">
<h2 class="ui center aligned icon header">
<i class="plug icon"></i>
Connection Lost!
</h2>
</div>
</div>
<div class="torrent sidebar">
<ul class="nav">
<li ng-click="filterByStatus('all')" ng-class="activeOn('all')">
<i class="ui large teal asterisk icon"></i>
All
<div class="ui torrent sort label">{{numInFilter('all')}}</div>
</li>
<li ng-click="filterByStatus('downloading')" ng-class="activeOn('downloading')">
<i class="ui large blue arrow down icon"></i>
Downloading
<div class="ui torrent sort label">{{numInFilter('downloading')}}</div>
</li>
<li ng-click="filterByStatus('finished')" ng-class="activeOn('finished')">
<i class="ui large green checkmark icon"></i>
Finished
<div class="ui torrent sort label">{{numInFilter('finished')}}</div>
</li>
<li ng-click="filterByStatus('seeding')" ng-class="activeOn('seeding')">
<i class="ui large orange arrow up icon"></i>
Seeding
<div class="ui torrent sort label">{{numInFilter('seeding')}}</div>
</li>
<li ng-click="filterByStatus('stopped')" ng-class="activeOn('stopped')">
<i class="ui large grey pause icon"></i>
Stopped
<div class="ui torrent sort label">{{numInFilter('stopped')}}</div>
</li>
<li ng-click="filterByStatus('error')" ng-class="activeOn('error')">
<i class="ui large red remove icon"></i>
Failed
<div class="ui torrent sort label">{{numInFilter('error')}}</div>
</li>
</ul>
<div>
<div class="section">
<span>Labels</span>
<a class="ui gray basic mini clear button" ng-click="filterByLabel()">Clear</a>
</div>
<ul class="filter label">
<span ng-if="labels.length == 0" class="meta text">No labels...</span>
<li ng-repeat="label in labels">
<div class="ui fluid torrent tag label"
ng-click="filterByLabel(label)"
ng-class="{blue: activeLabel(label)}">
{{label}}
</div>
</li>
</ul>
</div>
<div ng-if="$btclient.enableTrackerFilter">
<div class="section">
<span>Trackers</span>
<a class="ui gray basic mini clear button" ng-click="filterByTracker()">Clear</a>
</div>
<ul class="filter label">
<span ng-if="trackers.length == 0" class="meta text">No trackers...</span>
<li ng-repeat="tracker in trackers">
<div class="ui fluid torrent tag label"
ng-click="filterByTracker(tracker)"
ng-class="{blue: activeTracker(tracker)}">
{{tracker}}
</div>
</li>
</ul>
</div>
</div>
<div class="main-panel">
<div action-header actions="$btclient.actionHeader" labels="labels" enabled="noneSelected()" click="doAction"></div>
<div class="main-content">
<div ng-if="showDragAndDrop" class="popup">
<div class="content">
<h2 class="ui center aligned icon header">
<i class="add circle icon"></i>
Upload Torrent Files
</h2>
</div>
</div>
<div infinite-scroll-parent="true" infinite-scroll="showMore()" infinite-scroll-distance="2">
<table
id="torrentTable"
resizable profile="$server.id"
mode="resizeMode"
container=".main-content"
class="ui single line unstackable selectable fixed compact torrent resize table">
<thead>
<tr sorting="changeSorting">
<th ng-repeat="col in $server.columns | filter:{enabled: true}" resize="col.attribute" sort="col.attribute">{{col.name}}</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat="torrent in arrayTorrents | limitTo:torrentLimit track by torrent.hash"
ng-class="{active: torrent.selected}"
ng-click="setSelected($event, torrent, $index)"
ng-right-click="showContextMenu($event, torrent, $index)"
repeat-done>
<td ng-repeat="col in $server.columns | filter:{enabled: true}" ng-switch="col.type">
<span ng-switch-when="text">{{col.value(torrent)}}</span>
<span ng-switch-when="progress"><progress torrent="torrent"/></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<context-menu bind="contextMenu" menu="$btclient.contextMenu" click="doContextAction" debug="debug" id="contextmenu"></context-menu>
</div>