ccda45a452
Instead of showing 0/0/0 when the torrent hasn't been scraped (which may be misleading), show "Unknown", and also show when the torrent was last scraped on the view torrent page.
210 lignes
11 Kio
HTML
210 lignes
11 Kio
HTML
{{define "title"}}{{.Torrent.Name}}{{end}}
|
|
{{define "contclass"}}cont-view {{if eq .Torrent.Status 2}}remake{{end}} {{if eq .Torrent.Status 3}}trusted{{end}} {{if eq .Torrent.Status 4}}aplus{{end}}{{end}}
|
|
{{define "content"}}
|
|
<div class="blockBody">
|
|
{{with .Torrent}}
|
|
<hr>
|
|
<div class="content" style="margin-bottom: 2em;">
|
|
<div class="row {{if eq .Status 2}}remake{{end}} {{if eq .Status 3}}trusted{{end}} {{if eq .Status 4}}aplus{{end}}">
|
|
<div class="col-md-12">
|
|
<h3 class="break">{{.Name}}</h3>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<div class="row" id="description">
|
|
<div class="col-md-12">
|
|
<div style="float: left;">
|
|
{{ if Sukebei }}
|
|
<img style="float:left; margin-right: 1em;" src="{{$.URL.Parse (printf "/img/torrents/sukebei/%s%s.png" .Category .SubCategory) }}">
|
|
{{ else }}
|
|
<img style="float:left; margin-right: 1em;" src="{{$.URL.Parse (printf "/img/torrents/%s.png" .SubCategory) }}">
|
|
{{ end }}
|
|
<br />
|
|
<h4 style="display:inline-block">
|
|
{{ T "uploaded_by" }} <a href="{{$.URL.Parse (printf "/user/%d/-" .UploaderID) }}">{{.UploaderName}}</a>
|
|
</h4>
|
|
{{if ne .OldUploader ""}}
|
|
<span>({{.OldUploader}})</span>
|
|
{{end}}
|
|
</div>
|
|
|
|
<div style="float:right;">
|
|
<a style="margin: 5px;" aria-label="Magnet Button" href="{{.Magnet}}" type="button" class="btn btn-lg btn-success">
|
|
<span class="glyphicon glyphicon-magnet" aria-hidden="true"></span> {{ T "download_btn" }}
|
|
</a>
|
|
{{if ne .TorrentLink ""}}
|
|
<a style="margin: 5px;" aria-label="Torrent file" href="{{.TorrentLink}}" type="button" class="btn btn-lg btn-success">
|
|
<span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> {{ T "torrent_file" }}
|
|
</a>
|
|
{{end}}
|
|
<a style="margin: 5px;" aria-label="Report button" data-toggle="modal" data-target="#reportModal" class="btn btn-danger btn-sm">
|
|
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span> {{ T "report_btn" }}
|
|
</a>
|
|
|
|
{{ if HasAdmin $.User}}
|
|
<a href="{{ genRoute "mod_tdelete" }}?id={{ .ID }}" class="btn btn-danger btn-lg" onclick="if (!confirm('{{ T "are_you_sure" }}')) return false;"><i class="glyphicon glyphicon-trash"></i></a>
|
|
<a href="{{ genRoute "mod_tedit" }}?id={{ .ID }}" class="btn btn-warning btn-lg"><i class="glyphicon glyphicon-pencil"></i></a>
|
|
{{end}}
|
|
</div>
|
|
<div style="clear: both;"></div>
|
|
</div>
|
|
<div class="col-md-12">
|
|
<h4>{{T "description"}}</h4>
|
|
<div class="break">{{.Description}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<h4>{{T "hash"}}</h4>
|
|
<p class="torrent-hash break">{{.Hash}}</p>
|
|
<hr>
|
|
<h4>{{T "date"}}</h4>
|
|
<p class="date-full">{{.Date}}</p>
|
|
<hr>
|
|
<h4>{{T "size"}}</h4>
|
|
<p>{{.Filesize}}</p>
|
|
<hr>
|
|
{{if ne .WebsiteLink ""}}
|
|
<h4>{{T "link"}}</h4>
|
|
<p><a href="{{.WebsiteLink}}">{{.WebsiteLink}}</a></p>
|
|
<hr>
|
|
{{end}}
|
|
<div class="row">
|
|
<div class="col-md-4">{{T "seeders"}}</div>
|
|
<div class="col-md-4">{{T "leechers"}}</div>
|
|
<div class="col-md-4">{{T "completed"}}</div>
|
|
</div>
|
|
<div class="row">
|
|
{{if .LastScrape.IsZero}}
|
|
<div class="col-md-12" align="center">{{T "unknown"}}</div>
|
|
{{else}}
|
|
<div class="col-md-4">{{.Seeders}}</div>
|
|
<div class="col-md-4">{{.Leechers}}</div>
|
|
<div class="col-md-4"><span class="completed" style="">{{.Completed}}</span></div>
|
|
<div class="col-md-4">{{T "last_scraped"}}</div>
|
|
<div class="col-md-8">{{.LastScrape.Format (Ts "date_format")}}</div>
|
|
{{end}}
|
|
<div class="col-md-8">
|
|
<div class="proSeedBar">
|
|
<div class="seeds" style="width: {{ calcWidthSeed .Seeders .Leechers }}%;"></div>
|
|
<div class="leechs" style="width: {{ calcWidthLeech .Seeders .Leechers }}%;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
</div>
|
|
</div>
|
|
{{ if gt (len .FileList) 0 }}
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h4 data-toggle="collapse" data-target="#files" class="filelist-control" aria-expanded="false">{{T "files"}}</h4>
|
|
<div class="table-responsive collapse" id="files">
|
|
<table class="table custom-table-hover">
|
|
<tr>
|
|
<th class="col-xs-8">{{T "filename"}}</th>
|
|
<th class="col-xs-1">{{T "size"}}</th>
|
|
</tr>
|
|
{{ range .FileList }}
|
|
<tr>
|
|
<td>{{.Path}}</td>
|
|
<td>{{.Filesize}}</td>
|
|
</tr>
|
|
{{ end }}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{ end }}
|
|
<div class="row" id="comments">
|
|
<div class="col-md-12">
|
|
<div class="commentList">
|
|
<h4>{{T "comments"}}</h4>
|
|
<hr/>
|
|
<ul class="comments">
|
|
{{ range $index, $element := .Comments }}
|
|
<li class="clearfix comment jumptarget" id="comment_{{inc $index}}">
|
|
{{/* The following line is wrong. Should be using the MD5 User hash but i don't knwo how to access it. */}}
|
|
{{/* Changing Gravatar for something else, so it can stay like this. */}}
|
|
<img src="https://www.gravatar.com/avatar/{{ .UserID }}?s=50" class="avatar" alt="">
|
|
<div class="commentBody">
|
|
<div class="commentData">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="row">
|
|
<div class="col-sm-9">
|
|
{{if eq .UserID -1}}
|
|
<a href="#comment_{{inc $index}}">#{{inc $index}}</a> by {{.Username}}
|
|
{{else}}
|
|
<a href="#comment_{{inc $index}}">#{{inc $index}}</a>
|
|
by <span class="break"><a href="{{$.URL.Parse (printf "/user/%d/-" .UserID ) }}">{{.Username}}</a></span>
|
|
{{end}}
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<i class="pull-right date-short comment-date">
|
|
<small>
|
|
{{ .Date.Format ( Ts "date_format" ) }}
|
|
{{/* output: "2017-05-01 15:30"
|
|
Went with "Year-Month-Day" because it's the most unambiguous.
|
|
If you want it to be determined by where you're from, be my guest. */}}
|
|
</small>
|
|
</i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
{{.Content}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
<div class="row" style="margin-bottom: 2em;">
|
|
<div class="col-md-12">
|
|
<form method="post">
|
|
<div class="form-group">
|
|
{{/* There should be a better way to use translation on this... */}}
|
|
<label for="comment">{{ if gt .User.ID 0}} {{T "submit_a_comment_as_username" .User.Username}} {{else}} {{T "submit_a_comment_as_anonymous"}} {{end}}</label>
|
|
<textarea name="comment" class="form-control" rows="5"></textarea>
|
|
</div>
|
|
{{block "captcha" .}}{{end}}
|
|
<button type="submit" class="btn btn-success">{{T "submit" }}</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="reportModal" class="modal fade" role="dialog">
|
|
<div class="modal-dialog">
|
|
<!-- Modal content-->
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
<h4 class="modal-title">{{ T "report_torrent_number" (print .Torrent.ID) }}</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<b>{{ T "report_type" }}:</b>
|
|
<form method="post" action="/report/{{.Torrent.ID}}">
|
|
<input type="radio" name="report_type" value="illegal" required> {{ T "illegal_content" }}<br />
|
|
<input type="radio" name="report_type" value="spam" required> {{ T "spam_garbage" }}<br />
|
|
<input type="radio" name="report_type" value="wrongcat" required> {{ T "wrong_category" }}<br />
|
|
<input type="radio" name="report_type" value="dup" required> {{ T "duplicate_deprecated" }}<br />
|
|
{{block "captcha" .}}{{end}}
|
|
<button type="submit" class="btn btn-default">{{ T "report_btn" }}</button>
|
|
</form> <br />
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|