1
0
Fork 0
mirror of https://github.com/evilhero/mylar synced 2024-12-26 17:46:52 +00:00
mylar/data/interfaces/default/upcoming.html
evilhero cdc3e8a7a0 IMP: Cleaned up interface for StoryArcs / Story Arc Details, IMP: Cleaned up interface for Reading list Management, IMP: Added better reading list management - new status (added, downloaded, read), IMP: Added sync option for use with another device for reading list transfer (ie. tablet) Android only, IMP: Autopopulate new weekly pull releases to reading list, IMP: 'Watch' option in weekly pull list now fully functional. Will watch CV for series' that do not have any series data yet as they are new starting series. Will auto-add once available, IMP: Auto-watch check is run after every refresh/recreate of the weeklypull list, IMP: Improved the Add a Series option where it will now look for issues that are 'new' or 'wanted' during add sequence, IMP: Main page interface now has coloured have/total bars to denote series completion, IMP: New scheduler / threading locks in place in an attempt to avoid database locks, FIX: Removed some erroneous locking that was going on when importing a directory was being run, IMP: Stat counter now present when post-processing multiple issues in sequence, FIX: for issue number error when post-processing and issue number was a non-alphanumeric, FIX: for metatagging: when original file was .cbz, would try to convert and fail, FIX: for issues that were negative and were preceeded by a # in the filename (filechecker), FIX: for publisher having non-alphanumeric character in name when attempting to determine publisher, FIX: if annuals enabled, would incorrectly show as being 'already in library' when viewing search results if results constained annuals, FIX:(#944) for incorrect nzbname being used when post-processing was being performed from an nzb client (experimental mainly), IMP: Turned off logging for ComicVine API counter, FIX: Added retry attempts when connecting to ComicVine in order to avoid errors when adding a series, IMP:(#963) Added ability to add snatched to filter when viewing Wanted issues on Wanted tab, FIX: When importing and then selecting a series to import via the select screen, will now flip back to the importresults and add the selected series in the background, IMP:(#952) Main page is now sorted in ascending order by Continuing/Ended status (and subbed by whether is Active/Paused).Custom sorting is still available, FIX: Dupecheck will now automatically assume existing 0-byte files are to be overwritten when performing post-processing, FIX: If publication date for series contained a '?' (usually with brand new series) will force to 'Present' to allow for pull-list comparisons to take place, FIX: Mylar will now disallow search results which have 'covers only' or 'variant' in the filename, IMP: Better nzbname generation/retrieval (will check inside nzb for possible names) to be used when post-processing, IMP: DB Update will now perform update to all active comics in descending order by Latest Date (instead of random order), FIX: Enforce the 5hr limit rule when running DB update (will only update series that haven't been updated in >5 hours), FIX: Annuals will now have/retain the proper status upon doing DB Update, FIX: Have totals will now be updated when doing a recheck files (sometimes wouldn't get updated depending on various states of status'), FIX:(#966) Added urllib2.URLError exeception trap when attempting to check Git for updates, IMP: Removed the individual sqlite calls for weeklypull, and brought them into line with using the db module (which will minimize concurrent access, which seemed to be causing db locks), IMP: Cleaned up some code and shuffled some functions so they are in more appropriate locations
2015-03-27 13:27:59 -04:00

251 lines
9.8 KiB
HTML
Executable file

<%inherit file="base.html" />
<%!
import mylar
%>
<%def name="headerIncludes()">
<div id="subhead_container">
<div id="subhead_menu">
<a href="#" id="menu_link_scan" onclick="doAjaxCall('forceSearch',$(this))" data-success="Checking for wanted issues successful" data-error="Error checking wanted issues">Force Check</a>
</div>
</div>
</%def>
<%def name="body()">
<div class="title">
<h1 class="clearfix"><img src="interfaces/default/images/icon_wanted.png" alt="Wanted Issues"/>Wanted Issues (${wantedcount})</h1>
</div>
<div id="checkboxControls" style="float: right; vertical-align: middle; margin: 3px; margin-top: -1px;">
<div style="padding-bottom: 5px;">
<label for="Wanted" class="checkbox inline Wanted"><input type="checkbox" id="Wanted" checked="checked" /> Wanted: <b>${isCounts['Wanted']}</b></label>
%if int(isCounts['Snatched']) > 0:
<label for="Snatched" class="checkbox inline Snatched"><input type="checkbox" id="Snatched" checked="checked" /> Snatched: <b>${isCounts['Snatched']}</b></label>
%endif
%if int(isCounts['Failed']) > 0 and mylar.FAILED_DOWNLOAD_HANDLING:
<label for="Failed" class="checkbox inline Failed"><input type="checkbox" id="Failed" checked="checked" /> Failed: <b>${isCounts['Failed']}</b></label>
%endif
</div>
</div>
<div class="table_wrapper" id="wanted_table_wrapper" >
<form action="markissues" method="get" id="markissues">
<div id="markissue" style="top:0;">
Mark selected issues as
<select name="action" onChange="doAjaxCall('markissues',$(this),'table',true);" data-error="You didn't select any issues" data-success="selected issues marked">
<option disabled="disabled" selected="selected">Choose...</option>
<option value="Skipped">Skipped</option>
<option value="Downloaded">Downloaded</option>
<option value="Archived">Archived</option>
<option value="Ignored">Ignored</option>
</select>
<input type="hidden" value="Go">
</div>
<table class="display" id="wanted_table">
<thead>
<tr>
<th id="select"><input type="checkbox" onClick="toggle(this)" /></th>
<th id="comicname">Comic</th>
<th id="issuenumber">Issue</th>
<th id="reldate">Release Date</th>
</tr>
</thead>
<tbody>
%for issue in issues:
<%
if issue['Status'] == 'Wanted':
grade = 'X'
elif issue['Status'] == 'Snatched':
grade = 'C'
elif issue['Status'] == 'Failed':
grade = 'C'
else:
grade = 'Z'
%>
<tr class="${issue['Status']} grade${grade}">
<td id="select"><input type="checkbox" name="${issue['IssueID']}" class="checkbox" value="${issue['IssueID']}"/></td>
<td id="comicname"><a href="comicDetails?ComicID=${issue['ComicID']}">
<%
if any(d['IssueID'] == str(issue['IssueID']) for d in ann_list):
adjcomicname = issue['ComicName'] + ' Annual'
else:
adjcomicname = issue['ComicName']
endif
%>
${adjcomicname}</a></td>
<td id="issuenumber">${issue['Issue_Number']}</td>
<td id="reldate">${issue['IssueDate']}</td>
</tr>
%endfor
</tbody>
</table>
</form>
</div>
<div class="title">
<h1 class="clearfix"><img src="interfaces/default/images/icon_upcoming.png" alt="Upcoming Issues"/>Upcoming Issues</h1>
</div>
<div id="tabs">
<ul>
<li><a href="#tabs-1">This Week's Upcoming (${upcoming_count})</a></li>
<li><a href="#tabs-2">Upcoming nodata</a></li>
<li><a href="#tabs-3">Future Upcoming (${futureupcoming_count})</a></li>
</ul>
<div id="tabs-1">
<div class="table_wrapper">
<table class="display_no_select" id="upcoming_table">
%if upcoming:
<thead>
<tr>
<th id="comicname">Comic</th>
<th id="issuenumber">Issue</th>
<th id="reldate">Release Date</th>
<th id="status">Status</th>
</tr>
</thead>
<tbody>
%for upcome in upcoming:
<tr class="gradeZ">
<td id="comicname"><a href="comicDetails?ComicID=${upcome['ComicID']}">${upcome['DisplayComicName']}</a></td>
<td id="issuenumber">${upcome['IssueNumber']}</td>
<td id="reldate">${upcome['IssueDate']}</td>
<td id="status">${upcome['Status']}</td>
</tr>
%endfor
%else:
<tr><td align="center" width="100%"> no upcoming data to display</td></tr>
%endif
</tbody>
</table>
</div>
</div>
<div id="tabs-2">
<a id="menu_link_edit" href="future_check">Force Check Availability</a>
<div class="table_wrapper">
<table class="display_no_select" id="upcoming_table">
%if future_nodata_upcoming:
<thead>
<tr>
<th id="comicname">Comic</th>
<th id="issuenumber">Issue</th>
<th id="reldate">Release Date</th>
<th id="status">Status</th>
</tr>
</thead>
<tbody>
%for f_nodata in future_nodata_upcoming:
<tr class="gradeZ">
<td id="comicname"><a href="comicDetails?ComicID=${f_nodata['ComicID']}">${f_nodata['ComicName']}</a></td>
<td id="issuenumber">${f_nodata['IssueNumber']}</td>
<td id="reldate">${f_nodata['IssueDate']}</td>
<td id="status">${f_nodata['Status']}</td>
</tr>
%endfor
%else:
<tr><td align="center" width="100%">no upcoming future data to display</td></tr>
%endif
</tbody>
</table>
</div>
</div>
<div id="tabs-3">
<a id="menu_link_edit" href="futurepulllist">View Future Pull-list</a>
<div class="table_wrapper">
<table class="display_no_select" id="upcoming_table">
%if futureupcoming:
<thead>
<tr>
<th id="comicname">Comic</th>
<th id="issuenumber">Issue</th>
<th id="reldate">Release Date</th>
<th id="status">Status</th>
</tr>
</thead>
<tbody>
%for f_upcome in futureupcoming:
<tr class="gradeZ">
<td id="comicname">${f_upcome['DisplayComicName']}</td>
<td id="issuenumber">${f_upcome['IssueNumber']}</td>
<td id="reldate">${f_upcome['IssueDate']}</td>
<td id="status">${f_upcome['Status']}</td>
</tr>
%endfor
%else:
<tr><td align="center" width="100%">no upcoming future data to display</td></tr>
%endif
</tbody>
</table>
</div>
</div>
</div>
</%def>
<%def name="headIncludes()">
<link rel="stylesheet" href="interfaces/default/css/data_table.css">
</%def>
<%def name="javascriptIncludes()">
<script src="js/libs/jquery.dataTables.min.js"></script>
<script>
// show/hide different types of rows when the checkboxes are changed
$("#checkboxControls input").change(function(e){
var whichClass = $(this).attr('id')
$(this).showHideRows(whichClass)
return
$('tr.'+whichClass).each(function(i){
$(this).toggle();
});
});
// initially show/hide all the rows according to the checkboxes
$("#checkboxControls input").each(function(e){
var status = this.checked;
$("tr."+$(this).attr('id')).each(function(e){
if (status) {
$(this).show();
} else {
$(this).hide();
}
});
});
$.fn.showHideRows = function(whichClass){
var status = $('#checkboxControls > input, #'+whichClass).prop('checked')
$("tr."+whichClass).each(function(e){
if (status) {
$(this).show();
} else {
$(this).hide();
}
});
}
function initThisPage() {
$(function() {
$( "#tabs" ).tabs();
});
$('#wanted_table').dataTable({
"bDestroy":true,
"bFilter": false,
"bInfo": false,
"bPaginate": false
});
resetFilters("issues");
initActions();
}
$(document).ready(function() {
initThisPage();
});
</script>
</%def>