Files
LazyLibrarian/data/interfaces/bookstrap/magazines.html

211 lines
10 KiB
HTML

<%inherit file="base.html" />
<%!
import lazylibrarian
%>
<%def name="headerIncludes()">
<div id="subhead_container" class="row">
<form action="addMagazine" method="get">
<div id="subhead_menu" class="col-xs-12 col-md-8">
%if perm&lazylibrarian.perm_force:
<a href="forceSearch?source=magazines" class="button btn btn-sm btn-primary"><i class="fa fa-search"></i> Search</a>
<a href="forceProcess?source=magazines" class="button btn btn-sm btn-primary"><i class="fa fa-cogs"></i> Run Post-Processor</a>
<a href="magazineScan" class="button btn btn-sm btn-primary"><i class="fa fa-bolt"></i> Library Scan</a>
<a href="pastIssues?whichStatus=Skipped" class="button btn btn-sm btn-primary"><i class="fa fa-calendar-alt"></i> Past Issues</a>
%endif
<a href="magWall" class="button btn btn-sm btn-primary"><i class="fa fa-calendar-check"></i> Recent Issues</a>
%if lazylibrarian.CONFIG['USER_ACCOUNTS'] == True:
<a href="rssFeed?user=${user}&type=Magazine&limit=10.xml" class="button btn btn-sm btn-primary" data-toggle="tooltip" title="RSS feed of recent downloads"><i class="fa fa-rss"></i></a>
<link rel="alternate" type="application/rss+xml" title="LazyLibrarian latest magazines" href="rssFeed?user=${user}&type=Magazine&limit=10.xml">
%endif
</div>
<div class="clearfix visible-xs"><hr/></div>
<div class="col-xs-12 col-md-4">
<div class="form-group">
<label class="sr-only">Magazine Title</label>
<div class="input-group">
<input type="text" placeholder="Magazine Title" name="title" class="form-control input-sm col-xs-12">
<span class="input-group-btn">
<button type="submit" value="Magazine" class="btn btn-sm btn-primary" data-toggle="tooltip" data-placement="bottom" title="Search and add Magazine"><i class="fa fa-search-plus"></i><span> Magazine</span></button>
</span>
</div>
</div>
</div>
</form>
</div>
</%def>
<%def name="body()">
<h1>${title}</h1>
%if lazylibrarian.MAG_UPDATE == True:
<p>
<button onclick="" id="myAlert" title=""><i class="fa fa-circle-notch fa-spin"></i> Libraryscan in progress ...</button>
</p>
%endif
<form name="markMagazines" id="markMagazines" action="markMagazines" method="get" class="form-inline" onsubmit="return false;">
<div class="indented">
% if perm%lazylibrarian.perm_status:
<div class="form-group">
<label for="action" class="">Mark selected as</label>
<select class="markMagazines form-control input-sm" id="action" name="action">
<option value="Active">Active</option>
<option value="Paused">Paused</option>
<option value="Reset">Reset</option>
<option value="Remove">Remove</option>
<option value="Delete">Delete</option>
</select>
</div>
<button type="submit" class="btn btn-sm btn-primary" onclick="validateForm()">Go</button>
%endif
%if lazylibrarian.CONFIG['TOGGLES'] == True:
&nbsp;&nbsp;Toggle: <a class="toggle-vis" data-column="1">Cover</a> - <a class="toggle-vis" data-column="2">Title</a> - <a class="toggle-vis" data-column="3">Num</a> - <a class="toggle-vis" data-column="4">Added</a> - <a class="toggle-vis" data-column="5">Latest</a> - <a class="toggle-vis" data-column="6">Status</a> - <a class="toggle-vis" data-column="7">Select</a>
%endif
</div>
<p>&nbsp;</p>
<div class="table-responsive">
<table class="display table table-striped table-hover table-bordered" id="book_table">
<thead>
<tr>
%if perm&lazylibrarian.perm_status:
<th class="select text-center no-sort"><input type="checkbox" onClick="toggleAll(this)" /></th>
%else:
<th class="hidden"></th>
%endif
% if covercount > 0:
<th class="bookart text-center no-sort">Cover</th>
% else:
<th class="bookart hidden">Cover</th>
% endif
<th class="bookname text-center">Title</th>
<th class="number text-center">Num</th>
<th class="series text-center">Added</th>
<th class="date text-center">Latest Issue</th>
<th class="stars text-center">Status</th>
<th class="status text-center no-sort">Select</th>
</tr>
</thead>
</table>
</div>
</form>
</%def>
<%def name="headIncludes()">
%if lazylibrarian.MAG_UPDATE == True:
<meta http-equiv="refresh" content="10">
%endif
</%def>
<%def name="javascriptIncludes()">
<script>
$(document).ready(function()
{
var show = ""+${lazylibrarian.CONFIG['MAG_IMG']};
if ( show != '1' ) { showimg = false }
else { showimg = true }
var oTable = $('#book_table').DataTable(
{
"bAutoWidth": false,
"stateSave": true,
"order": [[ 2, 'asc']],
"columnDefs":
[{ targets: 'no-sort', orderable: false },
{ targets: [0],
'class': 'text-center',
'render': function(data, type, row) {
return '<input type="checkbox" name="' + data + '" class="checkbox" />';} },
{ targets: [1],
'class': 'text-center',
'visible': showimg,
'render': function(data, type, row) {
return '<a href="' + data + '" target="_blank" rel="noreferrer"><img src="' + data + '" alt="Cover" class="bookcover-sm img-responsive"></a>';} },
{ targets: [2],
'class': 'text-center',
'render': function(data, type, row) {
return '<a href=\'openMag?bookid=' + row[0] + '\'">' + row[2] + '</a>'
;} },
{ targets: [3, 4, 5, 6],
'class': 'text-center'},
{ targets: [7],
'class': 'text-center',
'render': function(data, type, row) {
var btn = data
if ( btn.indexOf('Open') >= 0 ) {
btn = '<a class="button green btn btn-xs btn-warning" href="openMag?bookid=' +
row[0] + '" target="_self"><i class="fa fa-book"></i>'
%if lazylibrarian.CONFIG['MAG_SINGLE']:
if ( row[3] == 1) { btn = btn + ' Open</a>' }
else { btn = btn + ' Show</a>' }
%else:
btn = btn + ' Show</a>'
%endif
}
else if ( btn.indexOf('Wanted') >= 0 ) {
btn = '<p><a class="a btn btn-xs btn-danger">' + btn + '</a></p>'
%if perm&lazylibrarian.perm_force:
btn += '<p><a class="b btn btn-xs btn-success" href="searchForMag?bookid=' + row[0] +
'" target="_self"><i class="fa fa-search"></i> Search</a></p>'
%endif
}
else if ( btn.indexOf('Snatched') >= 0 ) {
btn = '<a class="button btn btn-xs btn-info">' + btn + '</a>'}
else if ( btn.indexOf('Have') >= 0 ) {
btn = '<a class="button btn btn-xs btn-info">' + btn + '</a>'}
else { btn = '<a class="button btn btn-xs btn-default grey">' + btn + '</a>'}
return btn;} },
],
"oLanguage": {
"sSearch": "Filter: ",
"sLengthMenu":"_MENU_ rows per page",
"sEmptyTable": "No magazines found",
"sInfo":"Showing _START_ to _END_ of _TOTAL_ rows",
"sInfoEmpty":"Showing 0 to 0 of 0 results",
"sInfoFiltered":"(filtered from _MAX_ total rows)"},
"sPaginationType": "full_numbers",
"aaSorting": [[2, 'asc']],
"bServerSide": true,
"sAjaxSource": 'getMags',
"aLengthMenu": [[5, 10, 15, 25, 50, 100, -1], [5, 10, 15, 25, 50, 100, "All"]],
"iDisplayLength": ${lazylibrarian.CONFIG['DISPLAYLENGTH']},
"bFilter": true,
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
%if perm&lazylibrarian.perm_status == 0:
$('td', nRow).eq(0).addClass("hidden");
%endif
return nRow;
},
});
$('.dataTables_filter input').attr("placeholder", "Results filter");
$('a.toggle-vis').click(function (e) {
e.preventDefault();
var column = oTable.column( $(this).attr('data-column') );
column.visible( ! column.visible() );
} );
$('#w_width').val(window.innerWidth);
});
function validateForm() {
var x = document.forms["markMagazines"]["action"].value;
var c = (document.querySelectorAll('input[class="checkbox"]:checked').length);
if (c > 0 && x == "Delete") {
if (c == 1) {msg = "Are you sure you want to permanently delete the selected magazine?"}
if (c > 1) {msg = "Are you sure you want to permanently delete the " + c + " selected magazines?"}
bootbox.confirm({
message: msg,
buttons: {
confirm: {
label: 'Yes',
className: 'btn-success'
},
cancel: {
label: 'No',
className: 'btn-danger'
}
},
callback: function (result) {
if (result) { document.getElementById("markMagazines").submit(); }
}
});
return false;
}
else { document.getElementById("markMagazines").submit(); }
}
</script>
</%def>