Add dead torrents filter

This commit is contained in:
kaso17
2017-02-03 19:11:46 +01:00
parent 64d2e8cdf3
commit c17294052d
2 changed files with 51 additions and 2 deletions

View File

@@ -260,3 +260,9 @@ table td.fit{
.type-semi-private { .type-semi-private {
color: #ec971f color: #ec971f
} }
.dataTables_deadfilter {
float: right;
text-align: right;
margin-right: 1em;
}

View File

@@ -714,17 +714,44 @@ function showSearch(selectedIndexer) {
releaseDialog.modal("show"); releaseDialog.modal("show");
} }
// dataTable dead torrent filter
$.fn.dataTable.ext.search = [
function (settings, data, dataIndex) {
if (settings.sInstance != "jackett-search-results-datatable")
return true;
var deadfiltercheckbox = $(settings.nTableWrapper).find(".dataTables_deadfilter input")
if (!deadfiltercheckbox.length) {
return true;
}
var seeders = data[9];
if (!deadfiltercheckbox.get(0).checked && seeders == 0)
return false;
return true;
}
]
function updateSearchResultTable(element, results) { function updateSearchResultTable(element, results) {
var resultsTemplate = Handlebars.compile($("#jackett-search-results").html()); var resultsTemplate = Handlebars.compile($("#jackett-search-results").html());
element.html($(resultsTemplate(results))); element.html($(resultsTemplate(results)));
element.find('tr.jackett-search-results-row').each(function () { updateReleasesRow(this); }); element.find('tr.jackett-search-results-row').each(function () { updateReleasesRow(this); });
var settings = { "deadfilter": true };
var datatable = element.find('table').DataTable( var datatable = element.find('table').DataTable(
{ {
"fnStateSaveParams": function (oSettings, sValue) {
console.log(oSettings);
sValue.deadfilter = settings.deadfilter;
return sValue;
},
"fnStateLoadParams": function (oSettings, sValue) {
if ("deadfilter" in sValue)
settings.deadfilter = sValue.deadfilter;
},
"dom": "lfr<\"dataTables_deadfilter\">tip",
"stateSave": true, "stateSave": true,
"bAutoWidth": false, "bAutoWidth": false,
"pageLength": 20, "pageLength": 20,
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]], "lengthMenu": [[10, 20, 50, 100, 250, 500, -1], [10, 20, 50, 100, 250, 500, "All"]],
"order": [[0, "desc"]], "order": [[0, "desc"]],
"columnDefs": [ "columnDefs": [
{ {
@@ -752,6 +779,22 @@ function updateSearchResultTable(element, results) {
"iDataSort": 4 "iDataSort": 4
} }
], ],
fnPreDrawCallback: function () {
var table = this;
var deadfilterdiv = element.find(".dataTables_deadfilter");
var deadfiltercheckbox = deadfilterdiv.find("input");
if (!deadfiltercheckbox.length) {
deadfilterlabel = $('<label><input type="checkbox" id="jackett-search-results-datatable_deadfilter_checkbox" value="1">Show dead torrents</label>'
);
deadfilterdiv.append(deadfilterlabel);
deadfiltercheckbox = deadfilterlabel.find("input")
deadfiltercheckbox.on("change", function () {
settings.deadfilter = this.checked;
table.api().draw();
});
deadfiltercheckbox.prop('checked', settings.deadfilter);
}
},
initComplete: function () { initComplete: function () {
var count = 0; var count = 0;
this.api().columns().every(function () { this.api().columns().every(function () {