mirror of
https://github.com/evilhero/mylar
synced 2024-12-23 16:22:45 +00:00
262 lines
10 KiB
HTML
Executable file
262 lines
10 KiB
HTML
Executable file
<%inherit file="base.html"/>
|
|
<%!
|
|
from mylar import db
|
|
import mylar
|
|
%>
|
|
|
|
<%def name="headerIncludes()">
|
|
<div id="subhead_container">
|
|
<div id="subhead_menu">
|
|
<a id="menu_link_edit" href="editIssue?ComicID=${comic['ComicID']}">Edit Comic</a>
|
|
<a id="menu_link_refresh" onclick="doAjaxCall('refreshArtist?ComicID=${comic['ComicID']}', $(this)),'table'" href="#" data-success="'${comic['ComicName']}' is being refreshed">Refresh Comic</a>
|
|
<a id="menu_link_delete" href="deleteArtist?ComicID=${comic['ComicID']}" data-success="Deleting all traces of '${comic['ComicName']}'">Delete Comic</a>
|
|
%if comic['Status'] == 'Paused':
|
|
<a id="menu_link_resume" href="#" onclick="doAjaxCall('resumeArtist?ComicID=${comic['ComicID']}',$(this),true)" data-success="${comic['ComicName']} resumed">Resume Comic</a>
|
|
%else:
|
|
<a id="menu_link_pauze" href="#" onclick="doAjaxCall('pauseArtist?ComicID=${comic['ComicID']}',$(this),true)" data-success="${comic['ComicName']} paused">Pause Comic</a>
|
|
%endif
|
|
</div>
|
|
</div>
|
|
<a href="home" class="back">« Back to overview</a>
|
|
</%def>
|
|
|
|
<%def name="body()">
|
|
<div id="tabs">
|
|
<ul>
|
|
<li><a href="#tabs-1">Comic Details</a></li>
|
|
<li><a href="#tabs-2">Download Settings</a></li>
|
|
</ul>
|
|
|
|
<div id="tabs-1">
|
|
|
|
<table class="configtable" summary="Comic Details">
|
|
<tr>
|
|
<td>
|
|
<fieldset>
|
|
<div id="artistImg">
|
|
<img src="${comic['ComicImage']}" class="editArt" alt="" />
|
|
</div>
|
|
</fieldset>
|
|
</td>
|
|
<td>
|
|
<fieldset>
|
|
<h1>
|
|
%if comic['Status'] == 'Loading':
|
|
<img src="interfaces/default/images/loader_black.gif" alt="loading" style="float:left; margin-right: 5px;"/>
|
|
%endif
|
|
<div class="row">
|
|
<a href="http://comicvine.com/volume/${comic['ComicID']}">${comic['ComicName']} (${comic['ComicYear']})</a>
|
|
%if comic['Status'] == 'Loading':
|
|
<h3><i>(Comic information for this comic is currently being loaded)</i></h3>
|
|
%endif
|
|
</div>
|
|
</h1>
|
|
<div class="row">
|
|
<label>Publisher: ${comic['ComicPublisher']}</label>
|
|
</div>
|
|
<div class="row">
|
|
<label>Comics in Series: ${comic['Total']} issues (${comic['ComicPublished']})</label>
|
|
</div>
|
|
%if comic['ComicPublisher'] == 'DC Comics':
|
|
<img src="interfaces/default/images/logo-dccomics.png" align="right" alt="DC" height="50" width="50" />
|
|
%elif comic['ComicPublisher'] == 'Marvel':
|
|
<img src="interfaces/default/images/logo-marvel.jpg" align="right" alt="Marvel" height="50" width="100" />
|
|
%endif
|
|
<div class="row">
|
|
<label>Status: ${comic['Status']}
|
|
%if comic['Status'] == 'Active':
|
|
<img src="interfaces/default/images/checkmark.png"/>
|
|
%endif
|
|
</label>
|
|
</div>
|
|
<div class="row">
|
|
<label>Comic Directory Location:</label>
|
|
<label>${comic['ComicLocation']}</label>
|
|
</div>
|
|
</fieldset>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="tabs-2">
|
|
<table class="configtable" summary="Download Settings">
|
|
<tr>
|
|
<td>
|
|
<fieldset>
|
|
<legend>Quality Control</legend>
|
|
<div class="row">
|
|
<label>Version: v5</label>
|
|
</div>
|
|
<div class="row">
|
|
<label>Scanner: GreenGiant <small>(Fallback ON)</small></label>
|
|
</div>
|
|
<div class="row">
|
|
<label>Type: NOADS <small>(Fallback ON)</small></label>
|
|
</div>
|
|
<div class="row">
|
|
<label>Pixel Quality: None <small>(Fallback OFF</small></label>
|
|
</div>
|
|
</fieldset>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<form action="markissues" method="get" id="markissues">
|
|
<input type="hidden" name="ComicID" value=${comic['ComicID']}>
|
|
<div id="markissue">Mark selected issues as
|
|
<select name="action" onChange="doAjaxCall('markissues',$(this),'table',true);" data-error="You didn't select any issues">
|
|
<option disabled="disabled" selected="selected">Choose...</option>
|
|
<option value="Wanted">Wanted</option>
|
|
<option value="Skipped">Skipped</option>
|
|
<option value="Downloaded">Downloaded</option>
|
|
</select>
|
|
<input type="hidden" value="Go">
|
|
</div>
|
|
<table class="display" id="issue_table">
|
|
<thead>
|
|
<tr>
|
|
<th id="select"><input type="checkbox" onClick="toggle(this)" /></th>
|
|
<th id="issuenumber">Number</th>
|
|
<th id="issuename">Name</th>
|
|
<th id="reldate">Date</th>
|
|
<th id="type">Type</th>
|
|
<th id="status">Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
%for issue in issues:
|
|
<%
|
|
if issue['Status'] == 'Skipped':
|
|
grade = 'Z'
|
|
elif issue['Status'] == 'Wanted':
|
|
grade = 'X'
|
|
elif issue['Status'] == 'Snatched':
|
|
grade = 'C'
|
|
else:
|
|
grade = 'A'
|
|
%>
|
|
<tr class="grade${grade}">
|
|
<td id="select"><input type="checkbox" name="${issue['IssueID']}" class="checkbox" /></td>
|
|
<td id="issuenumber">${issue['Issue_Number']}</td>
|
|
<td id="issuename"><a href="issuePage?IssueID=${issue['IssueID']}">${issue['IssueName']}</a></td>
|
|
<td id="reldate">${issue['IssueDate']}</td>
|
|
<td id="type">${issue['Type']}</td>
|
|
<td id="status">${issue['Status']}
|
|
%if issue['Status'] == 'Skipped':
|
|
[<a href="#" onclick="doAjaxCall('queueissue?ComicName=${issue['ComicName']}&ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&ComicYear=${issue['IssueDate']}&mode=want',$(this),'table')" data-success="'${issue['Issue_Number']}' marked as wanted">want</a>]
|
|
%elif (issue['Status'] == 'Wanted'):
|
|
[<a href="#" onclick="doAjaxCall('unqueueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}',$(this),'table')" data-success="'${issue['Issue_Number']}' has been marked as skipped">skip</a>]
|
|
%else:
|
|
[<a href="#" onclick="doAjaxCall('queueissue?ComicName=${issue['ComicName']}&ComicID=${issue['ComicID']}&IssueID=${issue['IssueID']}&ComicIssue=${issue['Issue_Number']}&mode=want', $(this),'table')" data-success="Retrying the same version of '${issue['ComicName']}' '${issue['Issue_Number']}'" title="Retry the same download again">retry</a>][<a href="#" onclick="doAjaxCall('queueissue?IssueID=${issue['IssueID']}&ComicID=${issue['ComicID']}&ComicName=${issue['ComicName']}&ComicIssue=${issue['Issue_Number']}&new=True', $(this),'table')" title="Try a new download, skipping all previously tried nzbs" data-success="Downloading new version for '${issue['ComicName']}' '${issue['Issue_Number']}'" data-success="Looking for a new version of '${issue['ComicName']}' '${issue['Issue_Number']}'">new</a>]
|
|
%endif
|
|
</td>
|
|
</tr>
|
|
%endfor
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
</%def>
|
|
|
|
<%def name="headIncludes()">
|
|
<link rel="stylesheet" href="interfaces/default/css/data_table.css">
|
|
%if comic['Status'] == 'Loading':
|
|
<meta http-equiv="refresh" content="60">
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="javascriptIncludes()">
|
|
<script src="js/libs/jquery.dataTables.min.js"></script>
|
|
|
|
<script>
|
|
|
|
hideServerDivs = function () {
|
|
$("#customoptions").slideUp();
|
|
$("#hpserveroptions").slideUp();
|
|
};
|
|
|
|
handleNewSelection = function () {
|
|
|
|
hideServerDivs();
|
|
|
|
switch ($(this).val()) {
|
|
case 'custom':
|
|
$("#customoptions").slideDown();
|
|
break;
|
|
case 'mylar':
|
|
$("#hpserveroptions").slideDown();
|
|
break;
|
|
}
|
|
};
|
|
|
|
|
|
function getComicArt() {
|
|
var id = "${comic['ComicID']}";
|
|
var name = "${comic['ComicImage']}";
|
|
var image = $("div#artistImg img#artistImage");
|
|
if ( !image.hasClass('done') ) {
|
|
image.addClass('done');
|
|
getComicArtwork(image,id,name,'comic');
|
|
}
|
|
}
|
|
|
|
function getComicBio() {
|
|
var id = "${comic['ComicID']}";
|
|
var elem = $("#ComicBio");
|
|
getInfo(elem,id,'comic');
|
|
}
|
|
|
|
|
|
function initThisPage() {
|
|
%if comic['Status'] == 'Loading':
|
|
showMsg("Getting comic information",true);
|
|
%endif
|
|
$(function() {
|
|
$( "#tabs" ).tabs();
|
|
});
|
|
}
|
|
initActions();
|
|
|
|
getComicArt();
|
|
getComicBio();
|
|
$('#issue_table').dataTable({
|
|
"bDestroy": true,
|
|
"aoColumns": [
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
|
|
],
|
|
"aoColumnDefs": [
|
|
{ 'bSortable': false, 'aTargets': [ 0,1 ] }
|
|
],
|
|
"oLanguage": {
|
|
"sLengthMenu":"Show _MENU_ issues per page",
|
|
"sEmptyTable": "No issue information available",
|
|
"sInfo":"Showing _TOTAL_ issues",
|
|
"sInfoEmpty":"Showing 0 to 0 of 0 issues",
|
|
"sInfoFiltered":"(filtered from _MAX_ total issues)",
|
|
"sSearch": ""},
|
|
"bPaginate": false,
|
|
"aaSorting": [[4, 'asc'],[3,'desc']]
|
|
|
|
});
|
|
resetFilters("issues");
|
|
setTimeout(function(){
|
|
initFancybox();
|
|
},1500)
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
initThisPage();
|
|
});
|
|
|
|
</script>
|
|
</%def>
|