mirror of
https://github.com/HDInnovations/UNIT3D-Community-Edition.git
synced 2026-05-03 08:50:22 -05:00
refactor: torrent list page to livewire
- grouping view and card view are next
This commit is contained in:
@@ -107,3 +107,20 @@ if (! function_exists('modalStyle')) {
|
||||
return (auth()->user()->style == 0) ? '' : ' modal-dark';
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('ratingColor')) {
|
||||
function rating_color($number)
|
||||
{
|
||||
if ($number > 0 && $number <= 3.9) {
|
||||
return 'text-danger';
|
||||
}
|
||||
|
||||
if ($number >= 4 && $number <= 6.9) {
|
||||
return 'text-warning';
|
||||
}
|
||||
|
||||
if ($number >= 7 && $number <= 10) {
|
||||
return 'text-success';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,27 +99,7 @@ class TorrentController extends Controller
|
||||
*/
|
||||
public function torrents(Request $request): \Illuminate\Contracts\View\Factory | \Illuminate\View\View
|
||||
{
|
||||
$user = $request->user();
|
||||
$repository = $this->torrentFacetedRepository;
|
||||
|
||||
$torrents = Torrent::with(['user:id,username,group_id', 'category', 'type', 'resolution'])
|
||||
->withCount(['thanks', 'comments'])
|
||||
->orderBy('sticky', 'desc')
|
||||
->orderBy('bumped_at', 'desc')
|
||||
->paginate(25);
|
||||
$personalFreeleech = PersonalFreeleech::where('user_id', '=', $user->id)->first();
|
||||
$bookmarks = Bookmark::where('user_id', $user->id)->get();
|
||||
|
||||
return \view('torrent.torrents', [
|
||||
'personal_freeleech' => $personalFreeleech,
|
||||
'repository' => $repository,
|
||||
'bookmarks' => $bookmarks,
|
||||
'torrents' => $torrents,
|
||||
'user' => $user,
|
||||
'sorting' => '',
|
||||
'direction' => 1,
|
||||
'links' => null,
|
||||
]);
|
||||
return \view('torrent.torrents');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
/**
|
||||
* NOTICE OF LICENSE.
|
||||
*
|
||||
* UNIT3D Community Edition is open-sourced software licensed under the GNU Affero General Public License v3.0
|
||||
* The details is bundled with this project in the file LICENSE.txt.
|
||||
*
|
||||
* @project UNIT3D Community Edition
|
||||
*
|
||||
* @author HDVinnie <hdinnovations@protonmail.com>
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0
|
||||
*/
|
||||
|
||||
namespace App\Http\Livewire;
|
||||
|
||||
use App\Models\Torrent;
|
||||
use App\Models\User;
|
||||
use Livewire\Component;
|
||||
use App\Models\Keyword;
|
||||
use Livewire\WithPagination;
|
||||
use App\Models\PersonalFreeleech;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TorrentListSearch extends Component
|
||||
{
|
||||
use WithPagination;
|
||||
|
||||
public $name = '';
|
||||
public $description = '';
|
||||
public $mediainfo = '';
|
||||
public $uploader = '';
|
||||
public $keywords = [];
|
||||
public $startYear = '';
|
||||
public $endYear = '';
|
||||
public $categories = [];
|
||||
public $types = [];
|
||||
public $resolutions = [];
|
||||
public $genres = [];
|
||||
public $tmdbId = '';
|
||||
public $imdbId = '';
|
||||
public $tvdbId = '';
|
||||
public $malId = '';
|
||||
public $free;
|
||||
public $doubleup;
|
||||
public $featured;
|
||||
public $stream;
|
||||
public $sd;
|
||||
public $highspeed;
|
||||
public $internal;
|
||||
public $personalRelease;
|
||||
|
||||
public $perPage = 25;
|
||||
public $sortField = 'bumped_at';
|
||||
public $sortDirection = 'desc';
|
||||
|
||||
protected $queryString = [
|
||||
'name' => ['except' => ''],
|
||||
'description' => ['except' => ''],
|
||||
'mediainfo' => ['except' => ''],
|
||||
'uploader' => ['except' => ''],
|
||||
'keywords' => ['except' => []],
|
||||
'startYear' => ['except' => ''],
|
||||
'endYear' => ['except' => ''],
|
||||
'categories' => ['except' => []],
|
||||
'types' => ['except' => []],
|
||||
'resolutions' => ['except' => []],
|
||||
'genres' => ['except' => []],
|
||||
'tmdbId' => ['except' => ''],
|
||||
'imdbId' => ['except' => ''],
|
||||
'tvdbId' => ['except' => ''],
|
||||
'malId' => ['except' => ''],
|
||||
'free' => ['except' => false],
|
||||
'doubleup' => ['except' => false],
|
||||
'featured' => ['except' => false],
|
||||
'stream' => ['except' => false],
|
||||
'sd' => ['except' => false],
|
||||
'highspeed' => ['except' => false],
|
||||
'internal' => ['except' => false],
|
||||
'personalRelease' => ['except' => false],
|
||||
'sortField' => ['except' => 'bumped_at'],
|
||||
'sortDirection' => ['except' => 'desc'],
|
||||
'page' => ['except' => 1],
|
||||
'perPage' => ['except' => ''],
|
||||
];
|
||||
|
||||
final public function paginationView(): string
|
||||
{
|
||||
return 'vendor.pagination.livewire-pagination';
|
||||
}
|
||||
|
||||
final public function updatingName(): void
|
||||
{
|
||||
$this->resetPage();
|
||||
}
|
||||
|
||||
final public function getTorrentsStatProperty()
|
||||
{
|
||||
return DB::table('torrents')
|
||||
->selectRaw('count(*) as total')
|
||||
->selectRaw('count(case when seeders > 0 then 1 end) as alive')
|
||||
->selectRaw('count(case when seeders = 0 then 1 end) as dead')
|
||||
->first();
|
||||
}
|
||||
|
||||
final public function getPersonalFreeleechProperty()
|
||||
{
|
||||
return PersonalFreeleech::where('user_id', '=', \auth()->user()->id)->first();
|
||||
}
|
||||
|
||||
final public function getTorrentsProperty(): \Illuminate\Contracts\Pagination\LengthAwarePaginator
|
||||
{
|
||||
return Torrent::with(['category', 'type', 'resolution'])
|
||||
->withCount(['thanks', 'comments'])
|
||||
->when($this->name, function ($query) {
|
||||
$terms = \explode(' ', $this->name);
|
||||
$search = '';
|
||||
foreach ($terms as $term) {
|
||||
$search .= '%'.$term.'%';
|
||||
}
|
||||
$query->where('name', 'LIKE', $search);
|
||||
})
|
||||
->when($this->description, function ($query) {
|
||||
$query->where('description', 'LIKE', '%'.$this->description.'%');
|
||||
})
|
||||
->when($this->mediainfo, function ($query) {
|
||||
$query->where('mediainfo', 'LIKE', '%'.$this->mediainfo.'%');
|
||||
})
|
||||
->when($this->uploader, function ($query) {
|
||||
$match = User::where('username', 'LIKE', '%'.$this->uploader.'%')->orderBy('username', 'ASC')->first();
|
||||
if ($match) {
|
||||
$query->where('user_id', '=', $match->id)->where('anon', '=', 0);
|
||||
}
|
||||
})
|
||||
->when($this->keywords, function ($query) {
|
||||
$keywords = self::parseKeywords($this->keywords);
|
||||
$keyword = Keyword::select(['torrent_id'])->whereIn('name', $keywords)->get();
|
||||
$query->whereIn('id', $keyword->torrent_id);
|
||||
})
|
||||
->when($this->startYear && $this->endYear, function ($query) {
|
||||
$query->whereBetween('release_year', [$this->startYear, $this->endYear]);
|
||||
})
|
||||
->when($this->categories, function ($query) {
|
||||
$query->whereIn('category_id', $this->categories);
|
||||
})
|
||||
->when($this->types, function ($query) {
|
||||
$query->whereIn('type_id', $this->types);
|
||||
})
|
||||
->when($this->resolutions, function ($query) {
|
||||
$query->whereIn('resolution_id', $this->resolutions);
|
||||
})
|
||||
->when($this->tmdbId, function ($query) {
|
||||
$query->where('tmdb', '=', $this->tmdbId);
|
||||
})
|
||||
->when($this->imdbId, function ($query) {
|
||||
$query->where('imdb', '=', $this->imdbId);
|
||||
})
|
||||
->when($this->tvdbId, function ($query) {
|
||||
$query->where('tvdb', '=', $this->tvdbId);
|
||||
})
|
||||
->when($this->malId, function ($query) {
|
||||
$query->where('mal', '=', $this->malId);
|
||||
})
|
||||
->when($this->free, function ($query) {
|
||||
$query->where('free', '=', 1);
|
||||
})
|
||||
->when($this->doubleup, function ($query) {
|
||||
$query->where('doubleup', '=', 1);
|
||||
})
|
||||
->when($this->featured, function ($query) {
|
||||
$query->where('featured', '=', 1);
|
||||
})
|
||||
->when($this->stream, function ($query) {
|
||||
$query->where('stream', '=', 1);
|
||||
})
|
||||
->when($this->sd, function ($query) {
|
||||
$query->where('sd', '=', 1);
|
||||
})
|
||||
->when($this->highspeed, function ($query) {
|
||||
$query->where('highspeed', '=', 1);
|
||||
})
|
||||
->when($this->internal, function ($query) {
|
||||
$query->where('internal', '=', 1);
|
||||
})
|
||||
->when($this->personalRelease, function ($query) {
|
||||
$query->where('personal_release', '=', 1);
|
||||
})
|
||||
->orderBy('sticky', 'desc')
|
||||
->orderBy($this->sortField, $this->sortDirection)
|
||||
->paginate($this->perPage);
|
||||
}
|
||||
|
||||
private static function parseKeywords($text): array
|
||||
{
|
||||
$parts = \explode(', ', $text);
|
||||
$result = [];
|
||||
foreach ($parts as $part) {
|
||||
$part = \trim($part);
|
||||
if ($part != '') {
|
||||
$result[] = $part;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
final public function sortBy($field): void
|
||||
{
|
||||
if ($this->sortField === $field) {
|
||||
$this->sortDirection = $this->sortDirection === 'asc' ? 'desc' : 'asc';
|
||||
} else {
|
||||
$this->sortDirection = 'asc';
|
||||
}
|
||||
$this->sortField = $field;
|
||||
}
|
||||
|
||||
final public function render(): \Illuminate\Contracts\View\Factory | \Illuminate\Contracts\View\View | \Illuminate\Contracts\Foundation\Application
|
||||
{
|
||||
return \view('livewire.torrent-list-search', [
|
||||
'user' => User::with('history')->findOrFail(\auth()->user()->id),
|
||||
'torrents' => $this->torrents,
|
||||
'torrentsStat' => $this->torrentsStat,
|
||||
'personalFreeleech' => $this->personalFreeleech,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,8 @@
|
||||
<div class="card_body">
|
||||
<div class="body_poster">
|
||||
@if ($torrent->category->movie_meta || $torrent->category->tv_meta)
|
||||
<img src="{{ $meta->poster ?? 'https://via.placeholder.com/600x900' }}" class="show-poster"
|
||||
data-image='<img src="{{ $meta->poster ?? 'https://via.placeholder.com/600x900' }}" alt="@lang('torrent.poster')" style="height: 1000px;">'
|
||||
class="torrent-poster-img-small show-poster" alt="@lang('torrent.poster')">
|
||||
<img src="{{ \tmdb_image('poster_big', $meta->poster) ?? 'https://via.placeholder.com/600x900' }}"
|
||||
class="show-poster" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->game_meta && isset($meta) && $meta->cover->image_id && $meta->name)
|
||||
|
||||
@@ -0,0 +1,615 @@
|
||||
<div>
|
||||
<div class="container-fluid">
|
||||
<style>
|
||||
.form-group {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
.badge-extra {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
<div x-data="{ open: false }" class="container box" id="torrent-list-search" style="margin-bottom: 0; padding: 10px 100px; border-radius: 5px;">
|
||||
<div class="mt-5">
|
||||
<div class="row">
|
||||
<div class="form-group col-xs-9">
|
||||
<input wire:model="name" type="search" class="form-control" placeholder="Name" />
|
||||
</div>
|
||||
<div class="form-group col-xs-3">
|
||||
<button class="btn btn-md btn-primary" @click="open = ! open" x-text="open ? 'Hide Advanced Search' : 'Advanced Search...'"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div x-show="open">
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="description" class="label label-default">@lang('torrent.description')</label>
|
||||
<input wire:model="description" type="text" class="form-control" placeholder="Description">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="mediainfo" class="label label-default">@lang('torrent.media-info')</label>
|
||||
<input wire:model="mediainfo" type="text" class="form-control" placeholder="Mediainfo">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="keywords" class="label label-default">@lang('torrent.keywords')</label>
|
||||
<input wire:model="description" type="text" class="form-control" placeholder="Keywords">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="uploader" class="label label-default">@lang('torrent.uploader')</label>
|
||||
<input wire:model="uploader" type="text" class="form-control" placeholder="Uploader">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="tmdbId" class="label label-default">TMDb</label>
|
||||
<input wire:model="tmdbId" type="text" class="form-control" placeholder="TMDb ID">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="imdbId" class="label label-default">IMDb</label>
|
||||
<input wire:model="imdbId" type="text" class="form-control" placeholder="IMDb ID">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="tvdbId" class="label label-default">TVDb</label>
|
||||
<input wire:model="tvdbId" type="text" class="form-control" placeholder="TVDb ID">
|
||||
</div>
|
||||
<div class="form-group col-sm-3 col-xs-6">
|
||||
<label for="malId" class="label label-default">MAL</label>
|
||||
<input wire:model="malId" type="text" class="form-control" placeholder="MAL ID">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-6 col-xs-6">
|
||||
<label for="description" class="label label-default">@lang('torrent.start-year')</label>
|
||||
<input wire:model="startYear" type="text" class="form-control" placeholder="Year Range">
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-xs-6">
|
||||
<label for="mediainfo" class="label label-default">@lang('torrent.end-year')</label>
|
||||
<input wire:model="endYear" type="text" class="form-control" placeholder="Year Range">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="categories" class="label label-default">@lang('common.category')</label>
|
||||
@foreach (App\Models\Category::select(['id', 'name', 'position'])->get()->sortBy('position') as $category)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" wire:model="categories" value="{{ $category->id }}"> {{ $category->name }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="types" class="label label-default">@lang('common.type')</label>
|
||||
@foreach (App\Models\Type::select(['id', 'name', 'position'])->get()->sortBy('position') as $type)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" wire:model="types" value="{{ $type->id }}"> {{ $type->name }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="resolutions" class="label label-default">@lang('common.resolution')</label>
|
||||
@foreach (App\Models\Resolution::select(['id', 'name', 'position'])->get()->sortBy('position') as $resolution)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" wire:model="resolutions" value="{{ $resolution->id }}"> {{ $resolution->name }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="extra" class="label label-default">Buff</label>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="free" type="checkbox" value="1">
|
||||
Freeleech
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="doubleup" type="checkbox" value="1">
|
||||
Double Upload
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="featured" type="checkbox" value="1">
|
||||
Featured
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="extra" class="label label-default">Tags</label>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="stream" type="checkbox" value="1">
|
||||
Stream Optimized
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="sd" type="checkbox" value="1">
|
||||
SD Content
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="highspeed" type="checkbox" value="1">
|
||||
Highspeed
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="extra" class="label label-default">@lang('common.extra')</label>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="internal" type="checkbox" value="1">
|
||||
Internal
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input wire:model="personalRelease" type="checkbox" value="1">
|
||||
Personal Release
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-12 col-xs-6">
|
||||
<label for="page" class="label label-default">@lang('common.quantity')</label>
|
||||
<span>
|
||||
<label class="inline">
|
||||
<select wire:model="perPage" class="form-control">
|
||||
<option value="25">25</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="text-center">
|
||||
{{ $torrents->links() }}
|
||||
</div>
|
||||
<br>
|
||||
<div class="table-responsive block">
|
||||
<span class="badge-user" style="float: right;">
|
||||
<strong>Total:</strong> {{ \number_format($torrentsStat->total) }} |
|
||||
<strong>Alive:</strong> {{ \number_format($torrentsStat->alive) }} |
|
||||
<strong>Dead:</strong> {{ \number_format($torrentsStat->dead) }} |
|
||||
</span>
|
||||
<div class="dropdown">
|
||||
<a class="dropdown btn btn-xs btn-success" data-toggle="dropdown" href="#" aria-expanded="true">
|
||||
@lang('common.publish') @lang('torrent.torrent')
|
||||
<i class="fas fa-caret-circle-right"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
@php $categories = App\Models\Category::all(); @endphp
|
||||
@foreach($categories as $category)
|
||||
<li role="presentation">
|
||||
<a role="menuitem" tabindex="-1" target="_blank" href="{{ route('upload_form', ['category_id' => $category->id]) }}">
|
||||
<span class="menu-text">{{ $category->name }}</span>
|
||||
<span class="selected"></span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
<div class="header gradient green" style="margin-top: 10px;">
|
||||
<div class="inner_content">
|
||||
<h5 style="font-weight: 900; font-size: 20px; margin: 8px;">
|
||||
@lang('torrent.torrents')
|
||||
</h5>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-condensed table-striped table-bordered" id="torrent-list-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th class="torrents-filename">
|
||||
<div sortable wire:click="sortBy('name')" :direction="$sortField === 'name' ? $sortDirection : null" role="button">
|
||||
@lang('common.name')
|
||||
@include('livewire.includes._sort-icon', ['field' => 'name'])
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div>
|
||||
<i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div>
|
||||
<i class="{{ config('other.font-awesome') }} fa-id-badge"></i>
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div sortable wire:click="sortBy('size')" :direction="$sortField === 'size' ? $sortDirection : null" role="button">
|
||||
<i class="{{ config('other.font-awesome') }} fa-database"></i>
|
||||
@include('livewire.includes._sort-icon', ['field' => 'size'])
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div sortable wire:click="sortBy('seeders')" :direction="$sortField === 'seeders' ? $sortDirection : null" role="button">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-alt-circle-up"></i>
|
||||
@include('livewire.includes._sort-icon', ['field' => 'seeders'])
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div sortable wire:click="sortBy('leechers')" :direction="$sortField === 'leechers' ? $sortDirection : null" role="button">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-alt-circle-down"></i>
|
||||
@include('livewire.includes._sort-icon', ['field' => 'leechers'])
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div sortable wire:click="sortBy('times_completed')" :direction="$sortField === 'times_completed' ? $sortDirection : null" role="button">
|
||||
<i class="{{ config('other.font-awesome') }} fa-check-circle"></i>
|
||||
@include('livewire.includes._sort-icon', ['field' => 'times_completed'])
|
||||
</div>
|
||||
</th>
|
||||
<th>
|
||||
<div sortable wire:click="sortBy('created_at')" :direction="$sortField === 'created_at' ? $sortDirection : null" role="button">
|
||||
@lang('common.created_at')
|
||||
@include('livewire.includes._sort-icon', ['field' => 'created_at'])
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($torrents as $torrent)
|
||||
@php $meta = null; @endphp
|
||||
@if ($torrent->category->tv_meta)
|
||||
@if ($torrent->tmdb || $torrent->tmdb != 0)
|
||||
@php $meta = App\Models\Tv::with('genres')->where('id', '=', $torrent->tmdb)->first(); @endphp
|
||||
@endif
|
||||
@endif
|
||||
@if ($torrent->category->movie_meta)
|
||||
@if ($torrent->tmdb || $torrent->tmdb != 0)
|
||||
@php $meta = App\Models\Movie::with('genres')->where('id', '=', $torrent->tmdb)->first(); @endphp
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($torrent->sticky == 1)
|
||||
<tr class="success">
|
||||
@else
|
||||
<tr>
|
||||
@endif
|
||||
<td style="width: 1%;">
|
||||
@if ($user->show_poster == 1)
|
||||
<div class="torrent-poster pull-left">
|
||||
@if ($torrent->category->movie_meta || $torrent->category->tv_meta)
|
||||
<img loading="lazy" src="{{ isset($meta->poster) ? \tmdb_image('poster_small', $meta->poster) : 'https://via.placeholder.com/90x135' }}"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->game_meta && isset($meta) && $meta->cover->image_id && $meta->name)
|
||||
<img loading="lazy" src="https://images.igdb.com/igdb/image/upload/t_cover_small/{{ $meta->cover->image_id }}.jpg"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->no_meta || $torrent->category->music_meta)
|
||||
<img loading="lazy" src="https://via.placeholder.com/90x135"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="torrent-poster pull-left"></div>
|
||||
@endif
|
||||
</td style="width: 1%;">
|
||||
<td style="width: 5%; text-align: center;">
|
||||
<a href="{{ route('categories.show', ['id' => $torrent->category->id]) }}">
|
||||
<div class="text-center">
|
||||
<i class="{{ $torrent->category->icon }} torrent-icon" style="padding-top: 1px; font-size: 24px;"></i>
|
||||
</div>
|
||||
</a>
|
||||
<div class="text-center">
|
||||
<span class="label label-success" style="font-size: 13px">
|
||||
{{ $torrent->type->name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-center" style="padding-top: 5px;">
|
||||
<span class="label label-success" style="font-size: 13px">
|
||||
{{ $torrent->resolution->name ?? 'N/A' }}
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<a class="view-torrent" style="font-size: 16px;" href="{{ route('torrent', ['id' => $torrent->id]) }}">
|
||||
{{ $torrent->name }}
|
||||
</a>
|
||||
@if ($current = $user->history->where('info_hash', $torrent->info_hash)->first())
|
||||
@if ($current->seeder == 1 && $current->active == 1)
|
||||
<button class="btn btn-success btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.currently-seeding')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-up"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 0 && $current->active == 1)
|
||||
<button class="btn btn-warning btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.currently-leeching')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-down"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 0 && $current->active == 0 && $current->completed_at == null)
|
||||
<button class="btn btn-info btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.not-completed')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-spinner"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 1 && $current->active == 0 && $current->completed_at != null)
|
||||
<button class="btn btn-danger btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.completed-not-seeding')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-thumbs-down"></i>
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
<br>
|
||||
@if ($torrent->anon === 0)
|
||||
<span class="badge-extra">
|
||||
<i class="{{ config('other.font-awesome') }} {{ $torrent->user->group->icon }}"></i>
|
||||
<a href="{{ route('users.show', ['username' => $torrent->user->username]) }}">
|
||||
{{ $torrent->user->username }}
|
||||
</a>
|
||||
</span>
|
||||
@else
|
||||
<span class="badge-extra">
|
||||
<i class="{{ config('other.font-awesome') }} fa-ghost"></i>
|
||||
{{ strtoupper(trans('common.anonymous')) }}
|
||||
@if ($user->group->is_modo || $torrent->user->username === $user->username)
|
||||
<a href="{{ route('users.show', ['username' => $torrent->user->username]) }}">
|
||||
({{ $torrent->user->username }})
|
||||
</a>
|
||||
@endif
|
||||
</span>
|
||||
@endif
|
||||
<span class='badge-extra text-pink'>
|
||||
<i class="{{ config('other.font-awesome') }} fa-heartbeat"></i> {{ $torrent->thanks_count }}
|
||||
</span>
|
||||
<span class='badge-extra text-green'>
|
||||
<i class="{{ config('other.font-awesome') }} fa-comment-alt-lines"></i> {{ $torrent->comments_count }}
|
||||
</span>
|
||||
@if ($torrent->internal == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-magic' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.internal-release')' style="color: #baaf92;"></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->personal_release == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-user-plus' data-toggle='tooltip' title=''
|
||||
data-original-title='Personal Release' style="color: #865be9;"></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->stream == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-play text-red' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.stream-optimized')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->featured == 0)
|
||||
@if ($torrent->doubleup == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-gem text-green' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.double-upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
@if ($torrent->free == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-star text-gold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($personalFreeleech)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-id-badge text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.personal-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->freeleechTokens->where('torrent_id', $torrent->id)->first())
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-star text-bold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.freeleech-token')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->featured == 1)
|
||||
<span class='badge-extra text-bold' style='background-image:url(/img/sparkels.gif);'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-certificate text-pink' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.featured')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->group->is_freeleech == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-trophy text-purple' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.special-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if (config('other.freeleech') == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-globe text-blue' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.global-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if (config('other.doubleup') == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-globe text-green' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.global-double-upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->group->is_double_upload == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-trophy text-purple'
|
||||
data-toggle='tooltip' title='' data-original-title='@lang('torrent.special-double_upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->leechers >= 5)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-fire text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('common.hot')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->sticky == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-thumbtack text-black' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.sticky')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->highspeed == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-tachometer text-red' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('common.high-speeds')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->sd == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-ticket text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.sd-content')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->bumped_at != $torrent->created_at && $torrent->bumped_at < Carbon\Carbon::now()->addDay(2))
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-level-up-alt text-gold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.recent-bumped')'></i>
|
||||
</span>
|
||||
@endif
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
@if (config('torrent.download_check_page') == 1)
|
||||
<a href="{{ route('download_check', ['id' => $torrent->id]) }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.download')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
</button>
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ route('download', ['id' => $torrent->id]) }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.download')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
@if (config('torrent.magnet') == 1)
|
||||
<a href="magnet:?dn={{ $torrent->name }}&xt=urn:btih:{{ $torrent->info_hash }}&as={{ route('torrent.download.rsskey', ['id' => $torrent->id, 'rsskey' => $user->rsskey ]) }}&tr={{ route('announce', ['passkey' => $user->passkey]) }}&xl={{ $torrent->size }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.magnet')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-magnet"></i>
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<span class='badge-extra'>
|
||||
<a href="{{ route('torrents.similar', ['category_id' => $torrent->category_id, 'tmdb' => $torrent->tmdb]) }}">
|
||||
<img src="{{ url('img/tmdb_small.png') }}" alt="tmdb_id" style="margin-left: -5px;" width="24px" height="24px"> {{ $torrent->tmdb }}
|
||||
</a>
|
||||
<br>
|
||||
<span class="{{ \rating_color($meta->vote_average ?? 'text-white') }}"><i class="{{ config('other.font-awesome') }} fa-star-half-alt"></i> {{ $meta->vote_average ?? 0 }}/10 </span>
|
||||
</span>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<span class='badge-extra'>
|
||||
{{ $torrent->getSize() }}
|
||||
</span>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<a href="{{ route('peers', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-green'>
|
||||
{{ $torrent->seeders }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<a href="{{ route('peers', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-red'>
|
||||
{{ $torrent->leechers }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<a href="{{ route('history', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-orange'>
|
||||
{{ $torrent->times_completed }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">
|
||||
<span class='badge-extra'>
|
||||
{{ $torrent->created_at->diffForHumans() }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@if (! $torrents->count())
|
||||
<div class="margin-10">
|
||||
@lang('common.no-result')
|
||||
</div>
|
||||
@endif
|
||||
<br>
|
||||
<div class="text-center">
|
||||
{{ $torrents->links() }}
|
||||
</div>
|
||||
<br>
|
||||
<div class="container-fluid well">
|
||||
<div class="text-center">
|
||||
<strong>@lang('common.legend'):</strong>
|
||||
<button class='btn btn-success btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.currently-seeding')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-arrow-up'></i>
|
||||
</button>
|
||||
<button class='btn btn-warning btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.currently-leeching')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-arrow-down'></i>
|
||||
</button>
|
||||
<button class='btn btn-info btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.not-completed')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-spinner'></i>
|
||||
</button>
|
||||
<button class='btn btn-danger btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.completed-not-seeding')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-thumbs-down'></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,437 +0,0 @@
|
||||
<div class="table-responsive">
|
||||
<div class="text-center">
|
||||
@if($links)
|
||||
{{ $links->links() }}
|
||||
@else
|
||||
@if($torrents->links())
|
||||
{{ $torrents->links() }}
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<table class="table table-condensed table-bordered table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@if ($user->show_poster == 1)
|
||||
<th>@lang('torrent.poster')</th>
|
||||
@else
|
||||
<th></th>
|
||||
@endif
|
||||
<th>@lang('torrent.category')</th>
|
||||
<th>@lang('torrent.type')/@lang('torrent.resolution')</th>
|
||||
<th style="white-space: nowrap !important;">@sortablelink('name', trans('common.name'), '',
|
||||
['id'=>'name','class'=>'facetedSearch facetedSort','trigger'=>'sort','state'=> ($sorting && $sorting
|
||||
== "name" ? $direction : 0)])</th>
|
||||
<th><i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
<th><i class="{{ config('other.font-awesome') }} fa-bookmark"></i>
|
||||
<th style="white-space: nowrap !important;"><i class="{{ config('other.font-awesome') }} fa-clock"></i>
|
||||
@sortablelink('created_at', (trans('torrent.created_at')), '',
|
||||
['id'=>'created_at','class'=>'facetedSearch facetedSort','trigger'=>'sort','state'=> ($sorting &&
|
||||
$sorting == "created_at" ? $direction : 0)])</th>
|
||||
<th style="white-space: nowrap !important;"><i class="{{ config('other.font-awesome') }} fa-file"></i>
|
||||
@sortablelink('size', (trans('torrent.size')), '', ['id'=>'size','class'=>'facetedSearch
|
||||
facetedSort','trigger'=>'sort','state'=> ($sorting && $sorting == "size" ? $direction : 0)])</th>
|
||||
<th style="white-space: nowrap !important;"><i
|
||||
class="{{ config('other.font-awesome') }} fa-arrow-circle-up"></i> @sortablelink('seeders', 'S',
|
||||
'', ['id'=>'seeders','class'=>'facetedSearch facetedSort','trigger'=>'sort','state'=> ($sorting &&
|
||||
$sorting == "seeders" ? $direction : 0)])</th>
|
||||
<th style="white-space: nowrap !important;"><i
|
||||
class="{{ config('other.font-awesome') }} fa-arrow-circle-down"></i> @sortablelink('leechers',
|
||||
'L', '', ['id'=>'leechers','class'=>'facetedSearch facetedSort','trigger'=>'sort','state'=>
|
||||
($sorting && $sorting == "leechers" ? $direction : 0)])</th>
|
||||
<th style="white-space: nowrap !important;"><i
|
||||
class="{{ config('other.font-awesome') }} fa-check-square"></i> @sortablelink('times_completed',
|
||||
'C', '', ['id'=>'times_completed','class'=>'facetedSearch facetedSort','trigger'=>'sort','state'=>
|
||||
($sorting && $sorting == "times_completed" ? $direction : 0)])</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($torrents as $torrent)
|
||||
@php $meta = null; @endphp
|
||||
@if ($torrent->category->tv_meta)
|
||||
@if ($torrent->tmdb || $torrent->tmdb != 0)
|
||||
@php $meta = App\Models\Tv::with('genres')->where('id', '=', $torrent->tmdb)->first(); @endphp
|
||||
@endif
|
||||
@endif
|
||||
@if ($torrent->category->movie_meta)
|
||||
@if ($torrent->tmdb || $torrent->tmdb != 0)
|
||||
@php $meta = App\Models\Movie::with('genres')->where('id', '=', $torrent->tmdb)->first(); @endphp
|
||||
@endif
|
||||
@endif
|
||||
@if ($torrent->category->game_meta)
|
||||
@if ($torrent->igdb || $torrent->igdb != 0)
|
||||
@php $meta = MarcReichel\IGDBLaravel\Models\Game::with(['cover' => ['url','image_id'], 'genres' => ['name']])->find($torrent->igdb); @endphp
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($torrent->sticky == 1)
|
||||
<tr class="success">
|
||||
@else
|
||||
<tr>
|
||||
@endif
|
||||
<td style="width: 1%;">
|
||||
@if ($user->show_poster == 1)
|
||||
<div class="torrent-poster pull-left">
|
||||
@if ($torrent->category->movie_meta || $torrent->category->tv_meta)
|
||||
<img loading="lazy" src="{{ isset($meta->poster) ? \tmdb_image('poster_small', $meta->poster) : 'https://via.placeholder.com/90x135' }}"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->game_meta && isset($meta) && $meta->cover->image_id && $meta->name)
|
||||
<img loading="lazy" src="https://images.igdb.com/igdb/image/upload/t_cover_small/{{ $meta->cover->image_id }}.jpg"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->no_meta || $torrent->category->music_meta)
|
||||
<img loading="lazy" src="https://via.placeholder.com/90x135"
|
||||
class="torrent-poster-img-small" alt="@lang('torrent.poster')">
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<div class="torrent-poster pull-left"></div>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td style="width: 1%;">
|
||||
@if ($torrent->category->image != null)
|
||||
<a href="{{ route('categories.show', ['id' => $torrent->category->id]) }}">
|
||||
<div class="text-center">
|
||||
<img src="{{ url('files/img/' . $torrent->category->image) }}" data-toggle="tooltip"
|
||||
data-original-title="{{ $torrent->category->name }} {{ strtolower(trans('torrent.torrent')) }}"
|
||||
style="padding-top: 10px;" alt="{{ $torrent->category->name }}">
|
||||
</div>
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ route('categories.show', ['id' => $torrent->category->id]) }}">
|
||||
<div class="text-center">
|
||||
<i class="{{ $torrent->category->icon }} torrent-icon" data-toggle="tooltip"
|
||||
data-original-title="{{ $torrent->category->name }} {{ strtolower(trans('torrent.torrent')) }}"
|
||||
style="padding-top: 10px;"></i>
|
||||
</div>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td style="width: 1%;">
|
||||
<div class="text-center" style="padding-top: 15px;">
|
||||
<span class="label label-success" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.type')">
|
||||
{{ $torrent->type->name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-center" style="padding-top: 8px;">
|
||||
<span class="label label-success" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.resolution')">
|
||||
{{ $torrent->resolution->name ?? 'No Res' }}
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<a class="view-torrent" href="{{ route('torrent', ['id' => $torrent->id]) }}">
|
||||
{{ $torrent->name }}
|
||||
</a>
|
||||
|
||||
@if ($current = $user->history->where('info_hash', $torrent->info_hash)->first())
|
||||
@if ($current->seeder == 1 && $current->active == 1)
|
||||
<button class="btn btn-success btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.currently-seeding')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-up"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 0 && $current->active == 1)
|
||||
<button class="btn btn-warning btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.currently-leeching')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-arrow-down"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 0 && $current->active == 0 && $current->completed_at == null)
|
||||
<button class="btn btn-info btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.not-completed')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-spinner"></i>
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if ($current->seeder == 1 && $current->active == 0 && $current->completed_at != null)
|
||||
<button class="btn btn-danger btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.completed-not-seeding')!">
|
||||
<i class="{{ config('other.font-awesome') }} fa-thumbs-down"></i>
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
<br>
|
||||
@if ($torrent->anon == 1)
|
||||
<span class="badge-extra text-bold">
|
||||
<i class="{{ config('other.font-awesome') }} fa-upload" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.uploader')"></i> @lang('common.anonymous')
|
||||
@if ($user->id == $torrent->user->id || $user->group->is_modo)
|
||||
<a href="{{ route('users.show', ['username' => $torrent->user->username]) }}">
|
||||
({{ $torrent->user->username }})
|
||||
</a>
|
||||
@endif
|
||||
</span>
|
||||
@else
|
||||
<span class="badge-extra text-bold">
|
||||
<i class="{{ config('other.font-awesome') }} fa-upload" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.uploader')"></i>
|
||||
<a href="{{ route('users.show', ['username' => $torrent->user->username]) }}">
|
||||
{{ $torrent->user->username }}
|
||||
</a>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->movie_meta || $torrent->category->tv_meta)
|
||||
<span class="badge-extra text-bold">
|
||||
<span class="text-gold movie-rating-stars">
|
||||
<i class="{{ config('other.font-awesome') }} fa-thumbs-up" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.rating')"></i>
|
||||
</span>
|
||||
{{ $meta->vote_average ?? 0 }}/10 ({{ $meta->vote_count ?? 0 }} @lang('torrent.votes'))
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->game_meta && isset($meta))
|
||||
<span class="badge-extra text-bold">@lang('torrent.rating'):
|
||||
<span class="text-gold movie-rating-stars">
|
||||
<i class="{{ config('other.font-awesome') }} fa-star"></i>
|
||||
</span>
|
||||
{{ $meta->rating ? \round($meta->rating) : '0' }}/100 ({{ $meta->rating_count }} @lang('torrent.votes'))
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<span class="badge-extra text-bold text-pink">
|
||||
<i class="{{ config('other.font-awesome') }} fa-heart" data-toggle="tooltip"
|
||||
data-original-title="@lang('torrent.thanks-given')"></i>
|
||||
{{ $torrent->thanks_count }}
|
||||
</span>
|
||||
|
||||
<a href="{{ route('torrent', ['id' => $torrent->id, 'hash' => '#comments']) }}">
|
||||
<span class="badge-extra text-bold text-green">
|
||||
<i class="{{ config('other.font-awesome') }} fa-comment" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.comments')"></i>
|
||||
{{ $torrent->comments_count }}
|
||||
</span>
|
||||
</a>
|
||||
|
||||
@if ($torrent->internal == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-magic' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.internal-release')' style="color: #baaf92;"></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->stream == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-play text-red' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.stream-optimized')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->featured == 0)
|
||||
@if ($torrent->doubleup == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-gem text-green' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.double-upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
@if ($torrent->free == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-star text-gold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($personal_freeleech)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-id-badge text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.personal-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->freeleechTokens->where('torrent_id', $torrent->id)->first())
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-star text-bold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.freeleech-token')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->featured == 1)
|
||||
<span class='badge-extra text-bold' style='background-image:url(/img/sparkels.gif);'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-certificate text-pink' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.featured')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->group->is_freeleech == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-trophy text-purple' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.special-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if (config('other.freeleech') == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-globe text-blue' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.global-freeleech')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if (config('other.doubleup') == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-globe text-green' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.global-double-upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->group->is_double_upload == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-trophy text-purple'
|
||||
data-toggle='tooltip' title='' data-original-title='@lang('torrent.special-double_upload')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->leechers >= 5)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-fire text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('common.hot')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->sticky == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-thumbtack text-black' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.sticky')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($user->updated_at->getTimestamp() < $torrent->created_at->getTimestamp())
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-magic text-black' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('common.new')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->highspeed == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-tachometer text-red' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('common.high-speeds')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->sd == 1)
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-ticket text-orange' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.sd-content')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if ($torrent->bumped_at != $torrent->created_at && $torrent->bumped_at < Carbon\Carbon::now()->addDay(2))
|
||||
<span class='badge-extra text-bold'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-level-up-alt text-gold' data-toggle='tooltip'
|
||||
title='' data-original-title='@lang('torrent.recent-bumped')'></i>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<br>
|
||||
|
||||
@if ($torrent->category->game_meta)
|
||||
@if (isset($meta) && $meta->genres)
|
||||
@foreach ($meta->genres as $genre)
|
||||
<span class="badge-extra text-bold">
|
||||
<i class='{{ config('other.font-awesome') }} fa-tag' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.genre')'></i> {{ $genre->name }}
|
||||
</span>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if ($torrent->category->movie_meta || $torrent->category->tv_meta)
|
||||
@if (isset($meta) && $meta->genres)
|
||||
@foreach($meta->genres as $genre)
|
||||
<span class="badge-extra text-bold">
|
||||
<i class='{{ config('other.font-awesome') }} fa-tag' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.genre')'></i> {{ $genre->name }}
|
||||
</span>
|
||||
@endforeach
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>
|
||||
@if (config('torrent.download_check_page') == 1)
|
||||
<a href="{{ route('download_check', ['id' => $torrent->id]) }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.download')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
</button>
|
||||
</a>
|
||||
@else
|
||||
<a href="{{ route('download', ['id' => $torrent->id]) }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.download')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-download"></i>
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
@if (config('torrent.magnet') == 1)
|
||||
<a href="magnet:?dn={{ $torrent->name }}&xt=urn:btih:{{ $torrent->info_hash }}&as={{ route('torrent.download.rsskey', ['id' => $torrent->id, 'rsskey' => $user->rsskey ]) }}&tr={{ route('announce', ['passkey' => $user->passkey]) }}&xl={{ $torrent->size }}">
|
||||
<button class="btn btn-primary btn-circle" type="button" data-toggle="tooltip"
|
||||
data-original-title="@lang('common.magnet')">
|
||||
<i class="{{ config('other.font-awesome') }} fa-magnet"></i>
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span data-toggle="tooltip" data-original-title="Bookmark" id="torrentBookmark{{ $torrent->id }}"
|
||||
torrent="{{ $torrent->id }}"
|
||||
state="{{ $bookmarks->where('torrent_id', $torrent->id)->first() ? 1 : 0 }}"
|
||||
class="torrentBookmark"></span>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<time>{{ $torrent->created_at->diffForHumans() }}</time>
|
||||
</td>
|
||||
<td>
|
||||
<span class='badge-extra text-blue text-bold'>{{ $torrent->getSize() }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('peers', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-green text-bold'>
|
||||
{{ $torrent->seeders }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('peers', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-red text-bold'>
|
||||
{{ $torrent->leechers }}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ route('history', ['id' => $torrent->id]) }}">
|
||||
<span class='badge-extra text-orange text-bold'>
|
||||
{{ $torrent->times_completed }} @lang('common.times')
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="text-center">
|
||||
@if($links)
|
||||
{{ $links->links() }}
|
||||
@else
|
||||
@if($torrents->links())
|
||||
{{ $torrents->links() }}
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@@ -17,357 +17,7 @@
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="block">
|
||||
@include('torrent.buttons')
|
||||
<div class="header gradient blue">
|
||||
<div class="inner_content">
|
||||
<h1>
|
||||
@lang('torrent.torrents')
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div id="facetedDefault" style="{{ $user->torrent_filters ? 'display: none;' : '' }}">
|
||||
<div class="box">
|
||||
<div class="container mt-5">
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<div>
|
||||
<label for="query"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="query" placeholder="@lang('torrent.search')">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr style="padding: 0; margin: 0;">
|
||||
</div>
|
||||
</div>
|
||||
<div id="facetedFilters" style="{{ $user->torrent_filters ? '' : 'display: none;' }}">
|
||||
<div class="box">
|
||||
<div class="container well search mt-5 fatten-me">
|
||||
<form role="form" method="GET" action="TorrentController@torrents"
|
||||
class="form-horizontal form-condensed form-torrent-search form-bordered">
|
||||
@csrf
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="name"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.name')</label>
|
||||
<div class="col-sm-9 fatten-me">
|
||||
<label for="search"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="search" placeholder="@lang('torrent.name')">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="name"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.description')</label>
|
||||
<div class="col-sm-9 fatten-me">
|
||||
<label for="description"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="description" placeholder="@lang('torrent.description')">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="keywords"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.keywords')</label>
|
||||
<div class="col-sm-9 fatten-me">
|
||||
<label for="keywaords"></label>
|
||||
<input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="keywords" placeholder="@lang('torrent.keywords')">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="uploader"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.uploader')</label>
|
||||
<div class="col-sm-9 fatten-me">
|
||||
<input type="text" class="form-control facetedSearch" trigger="keyup" id="uploader"
|
||||
placeholder="@lang('torrent.uploader')">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="imdb" class="mt-5 col-sm-1 label label-default fatten-me">ID</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control facetedSearch" trigger="keyup" id="imdb"
|
||||
placeholder="IMDB #">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<label for="tvdb"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="tvdb" placeholder="TVDB #">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<label for="tmdb"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="tmdb" placeholder="TMDB #">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<label for="mal"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="mal" placeholder="MAL #">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<label for="igdb"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="igdb" placeholder="IGDB #">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="release_year"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.year-range')
|
||||
</label>
|
||||
<div class="col-sm-2">
|
||||
<label for="start_year"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="start_year" placeholder="@lang('torrent.start-year')">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<label for="end_year"></label><input type="text" class="form-control facetedSearch"
|
||||
trigger="keyup" id="end_year" placeholder="@lang('torrent.end-year')">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="category"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.category')</label>
|
||||
<div class="col-sm-10">
|
||||
@foreach ($repository->categories() as $id => $category)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" value="{{ $id }}"
|
||||
class="category facetedSearch" trigger="click"> {{ $category }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="type"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.type')</label>
|
||||
<div class="col-sm-10">
|
||||
@foreach ($repository->types() as $id => $type)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" value="{{ $id }}"
|
||||
class="type facetedSearch" trigger="click"> {{ $type }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="resolution_id" class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.resolution')</label>
|
||||
<div class="col-sm-10">
|
||||
@foreach ($repository->resolutions() as $id => $resolution)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" value="{{ $id }}"
|
||||
class="resolution facetedSearch" trigger="click"> {{ $resolution }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="genre"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.genre')</label>
|
||||
<div class="col-sm-10">
|
||||
@foreach ($repository->genres() as $id => $genre)
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" value="{{ $id }}"
|
||||
class="genre facetedSearch" trigger="click"> {{ $genre }}
|
||||
</label>
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="type"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.discounts')</label>
|
||||
<div class="col-sm-10">
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="freeleech" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-star text-gold"></span>
|
||||
@lang('torrent.freeleech')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="doubleupload" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-gem text-green"></span>
|
||||
@lang('torrent.double-upload')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="featured" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-certificate text-pink"></span>
|
||||
@lang('torrent.featured')
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="type"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.special')</label>
|
||||
<div class="col-sm-10">
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="stream" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-play text-red"></span>
|
||||
@lang('torrent.stream-optimized')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="highspeed" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-tachometer text-red"></span>
|
||||
@lang('common.high-speeds')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="sd" value="1" class="facetedSearch" trigger="click">
|
||||
<span class="{{ config('other.font-awesome') }} fa-ticket text-orange"></span>
|
||||
@lang('torrent.sd-content')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="internal" value="1" class="facetedSearch"
|
||||
trigger="click"> <span class="{{ config('other.font-awesome') }} fa-magic"
|
||||
style="color: #baaf92;"></span> @lang('torrent.internal')
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="type"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.health')</label>
|
||||
<div class="col-sm-10">
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="alive" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-smile text-green"></span>
|
||||
@lang('torrent.alive')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="dying" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-meh text-orange"></span>
|
||||
@lang('torrent.dying-torrent')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="dead" value="0" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-frown text-red"></span>
|
||||
@lang('torrent.dead-torrent')
|
||||
</label>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="type"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('torrent.activity')</label>
|
||||
<div class="col-sm-10">
|
||||
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="seeding" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-hdd text-purple"></span>
|
||||
@lang('torrent.seeding')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="leeching" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-hdd text-purple"></span>
|
||||
@lang('torrent.leeching')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="downloaded" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-hdd text-purple"></span>
|
||||
@lang('torrent.have-completed')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="idling" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-hdd text-purple"></span>
|
||||
@lang('torrent.have-not-completed')
|
||||
</label>
|
||||
</span>
|
||||
<span class="badge-user">
|
||||
<label class="inline">
|
||||
<input type="checkbox" id="notdownloaded" value="1" class="facetedSearch"
|
||||
trigger="click"> <span
|
||||
class="{{ config('other.font-awesome') }} fa-hdd text-red"></span>
|
||||
@lang('torrent.have-not-downloaded')
|
||||
</label>
|
||||
</span>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mx-0 mt-5 form-group fatten-me">
|
||||
<label for="qty"
|
||||
class="mt-5 col-sm-1 label label-default fatten-me">@lang('common.quantity')</label>
|
||||
<div class="col-sm-2">
|
||||
<select id="qty" name="qty" trigger="change" class="form-control facetedSearch">
|
||||
<option value="25">25</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span id="facetedHeader"></span>
|
||||
<div id="facetedSearch" type="list" font-awesome="{{ config('other.font-awesome') }}">
|
||||
@include('torrent.results')
|
||||
</div>
|
||||
<div class="container-fluid well">
|
||||
<div class="text-center">
|
||||
<strong>@lang('common.legend'):</strong>
|
||||
<button class='btn btn-success btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.currently-seeding')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-arrow-up'></i>
|
||||
</button>
|
||||
<button class='btn btn-warning btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.currently-leeching')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-arrow-down'></i>
|
||||
</button>
|
||||
<button class='btn btn-info btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.not-completed')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-spinner'></i>
|
||||
</button>
|
||||
<button class='btn btn-danger btn-circle' type='button' data-toggle='tooltip' title=''
|
||||
data-original-title='@lang('torrent.completed-not-seeding')!'>
|
||||
<i class='{{ config('other.font-awesome') }} fa-thumbs-down'></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@livewire('torrent-list-search')
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
Reference in New Issue
Block a user