mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Attempt to fix #820
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
var basePath = '';
|
var basePath = '';
|
||||||
|
|
||||||
|
var indexers = [];
|
||||||
|
var configuredIndexers = [];
|
||||||
|
var unconfiguredIndexers = [];
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$.ajaxSetup({ cache: false });
|
$.ajaxSetup({ cache: false });
|
||||||
window.jackettIsLocal = window.location.hostname === 'localhost' ||
|
window.jackettIsLocal = window.location.hostname === 'localhost' ||
|
||||||
@@ -48,8 +52,9 @@ function loadJackettSettings() {
|
|||||||
function reloadIndexers() {
|
function reloadIndexers() {
|
||||||
$('#indexers').hide();
|
$('#indexers').hide();
|
||||||
var jqxhr = $.get("get_indexers", function (data) {
|
var jqxhr = $.get("get_indexers", function (data) {
|
||||||
var configuredIndexers = [];
|
indexers = data;
|
||||||
var unconfiguredIndexers = [];
|
configuredIndexers = [];
|
||||||
|
unconfiguredIndexers = [];
|
||||||
for (var i = 0; i < data.items.length; i++) {
|
for (var i = 0; i < data.items.length; i++) {
|
||||||
var item = data.items[i];
|
var item = data.items[i];
|
||||||
item.torznab_host = resolveUrl(basePath + "/torznab/" + item.id);
|
item.torznab_host = resolveUrl(basePath + "/torznab/" + item.id);
|
||||||
@@ -513,152 +518,136 @@ function updateReleasesRow(row)
|
|||||||
|
|
||||||
function showSearch(selectedIndexer) {
|
function showSearch(selectedIndexer) {
|
||||||
$('#select-indexer-modal').remove();
|
$('#select-indexer-modal').remove();
|
||||||
var jqxhr = $.get("get_indexers", function (data) {
|
var releaseTemplate = Handlebars.compile($("#jackett-search").html());
|
||||||
var scope = {
|
var releaseDialog = $(releaseTemplate({
|
||||||
items: data.items
|
indexers: configuredIndexers
|
||||||
};
|
}));
|
||||||
|
|
||||||
var indexers = [];
|
$("#modals").append(releaseDialog);
|
||||||
indexers.push({
|
|
||||||
id: '', name: '-- All --'
|
|
||||||
});
|
|
||||||
for (var i = 0; i < data.items.length; i++) {
|
|
||||||
if (data.items[i].configured === true) {
|
|
||||||
indexers.push(data.items[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var releaseTemplate = Handlebars.compile($("#jackett-search").html());
|
releaseDialog.on('shown.bs.modal', function () {
|
||||||
var releaseDialog = $(releaseTemplate({
|
releaseDialog.find('#searchquery').focus();
|
||||||
indexers: indexers
|
});
|
||||||
}));
|
|
||||||
if (selectedIndexer)
|
|
||||||
releaseDialog.find("#searchTracker").val(selectedIndexer);
|
|
||||||
$("#modals").append(releaseDialog);
|
|
||||||
releaseDialog.modal("show");
|
|
||||||
|
|
||||||
releaseDialog.on('shown.bs.modal', function () {
|
var setCategories = function (tracker, items) {
|
||||||
releaseDialog.find('#searchquery').focus();
|
var cats = {};
|
||||||
});
|
for (var i = 0; i < items.length; i++) {
|
||||||
|
if (items[i].configured === true && (items[i].id === tracker || tracker === '')) {
|
||||||
var setCategories = function (tracker, items) {
|
indexers["'" + items[i].id + "'"] = items[i].name;
|
||||||
var cats = {};
|
for (var prop in items[i].caps) {
|
||||||
for (var i = 0; i < items.length; i++) {
|
cats[prop] = items[i].caps[prop];
|
||||||
if (items[i].configured === true && (items[i].id === tracker || tracker === '')) {
|
|
||||||
indexers["'" + items[i].id + "'"] = items[i].name;
|
|
||||||
for (var prop in items[i].caps) {
|
|
||||||
cats[prop] = items[i].caps[prop];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var select = $('#searchCategory');
|
}
|
||||||
select.html("<option value=''>-- All --</option>");
|
var select = $('#searchCategory');
|
||||||
$.each(cats, function (value, key) {
|
select.html("<option value=''>-- All --</option>");
|
||||||
select.append($("<option></option>")
|
$.each(cats, function (value, key) {
|
||||||
.attr("value", value).text(key + ' (' + value + ')'));
|
select.append($("<option></option>")
|
||||||
});
|
.attr("value", value).text(key + ' (' + value + ')'));
|
||||||
};
|
|
||||||
|
|
||||||
setCategories('', data.items);
|
|
||||||
$('#searchTracker').change(jQuery.proxy(function () {
|
|
||||||
var trackerId = $('#searchTracker').val();
|
|
||||||
setCategories(trackerId, this.items);
|
|
||||||
}, scope));
|
|
||||||
|
|
||||||
document.getElementById("searchquery")
|
|
||||||
.addEventListener("keyup", function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
if (event.keyCode == 13) {
|
|
||||||
document.getElementById("jackett-search-perform").click();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
|
||||||
$('#jackett-search-perform').click(function () {
|
$('#searchTracker').change(jQuery.proxy(function () {
|
||||||
if ($('#jackett-search-perform').text().trim() !== 'Search trackers') {
|
var trackerId = $('#searchTracker').val();
|
||||||
// We are searchin already
|
setCategories(trackerId, this.items);
|
||||||
return;
|
}, { items: configuredIndexers }));
|
||||||
}
|
|
||||||
var queryObj = {
|
|
||||||
Query: releaseDialog.find('#searchquery').val(),
|
|
||||||
Category: releaseDialog.find('#searchCategory').val(),
|
|
||||||
Tracker: releaseDialog.find('#searchTracker').val().replace("'", "").replace("'", ""),
|
|
||||||
};
|
|
||||||
$('#searchResults').empty();
|
|
||||||
|
|
||||||
$('#jackett-search-perform').html($('#spinner').html());
|
document.getElementById("searchquery")
|
||||||
var jqxhr = $.post("search", queryObj, function (data) {
|
.addEventListener("keyup", function (event) {
|
||||||
$('#jackett-search-perform').html('Search trackers');
|
event.preventDefault();
|
||||||
var resultsTemplate = Handlebars.compile($("#jackett-search-results").html());
|
if (event.keyCode == 13) {
|
||||||
var results = $('#searchResults');
|
document.getElementById("jackett-search-perform").click();
|
||||||
results.html($(resultsTemplate(data)));
|
}
|
||||||
results.find('tr.jackett-search-results-row').each(function () { updateReleasesRow(this); });
|
});
|
||||||
|
|
||||||
results.find('table').DataTable(
|
$('#jackett-search-perform').click(function () {
|
||||||
{
|
if ($('#jackett-search-perform').text().trim() !== 'Search trackers') {
|
||||||
"pageLength": 20,
|
// We are searchin already
|
||||||
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],
|
return;
|
||||||
"order": [[0, "desc"]],
|
}
|
||||||
"columnDefs": [
|
var queryObj = {
|
||||||
|
Query: releaseDialog.find('#searchquery').val(),
|
||||||
|
Category: releaseDialog.find('#searchCategory').val(),
|
||||||
|
Tracker: releaseDialog.find('#searchTracker').val().replace("'", "").replace("'", ""),
|
||||||
|
};
|
||||||
|
$('#searchResults').empty();
|
||||||
|
|
||||||
|
$('#jackett-search-perform').html($('#spinner').html());
|
||||||
|
var jqxhr = $.post("search", queryObj, function (data) {
|
||||||
|
$('#jackett-search-perform').html('Search trackers');
|
||||||
|
var resultsTemplate = Handlebars.compile($("#jackett-search-results").html());
|
||||||
|
var results = $('#searchResults');
|
||||||
|
results.html($(resultsTemplate(data)));
|
||||||
|
results.find('tr.jackett-search-results-row').each(function () { updateReleasesRow(this); });
|
||||||
|
|
||||||
|
results.find('table').DataTable(
|
||||||
|
{
|
||||||
|
"pageLength": 20,
|
||||||
|
"lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],
|
||||||
|
"order": [[0, "desc"]],
|
||||||
|
"columnDefs": [
|
||||||
|
{
|
||||||
|
"targets": 0,
|
||||||
|
"visible": false,
|
||||||
|
"searchable": false,
|
||||||
|
"type": 'date'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"targets": 1,
|
||||||
|
"visible": true,
|
||||||
|
"searchable": false,
|
||||||
|
"iDataSort": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"targets": 4,
|
||||||
|
"visible": false,
|
||||||
|
"searchable": false,
|
||||||
|
"type": 'num'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"targets": 0,
|
"targets": 5,
|
||||||
"visible": false,
|
|
||||||
"searchable": false,
|
|
||||||
"type": 'date'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"targets": 1,
|
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"searchable": false,
|
"searchable": false,
|
||||||
"iDataSort": 0
|
"iDataSort": 4
|
||||||
},
|
}
|
||||||
{
|
],
|
||||||
"targets": 4,
|
initComplete: function () {
|
||||||
"visible": false,
|
var count = 0;
|
||||||
"searchable": false,
|
this.api().columns().every(function () {
|
||||||
"type": 'num'
|
count++;
|
||||||
},
|
if (count === 3 || count === 8) {
|
||||||
{
|
var column = this;
|
||||||
"targets": 5,
|
var select = $('<select><option value=""></option></select>')
|
||||||
"visible": true,
|
.appendTo($(column.footer()).empty())
|
||||||
"searchable": false,
|
.on('change', function () {
|
||||||
"iDataSort": 4
|
var val = $.fn.dataTable.util.escapeRegex(
|
||||||
}
|
$(this).val()
|
||||||
],
|
);
|
||||||
initComplete: function () {
|
|
||||||
var count = 0;
|
|
||||||
this.api().columns().every(function () {
|
|
||||||
count++;
|
|
||||||
if (count === 3 || count === 8) {
|
|
||||||
var column = this;
|
|
||||||
var select = $('<select><option value=""></option></select>')
|
|
||||||
.appendTo($(column.footer()).empty())
|
|
||||||
.on('change', function () {
|
|
||||||
var val = $.fn.dataTable.util.escapeRegex(
|
|
||||||
$(this).val()
|
|
||||||
);
|
|
||||||
|
|
||||||
column
|
column
|
||||||
.search(val ? '^' + val + '$' : '', true, false)
|
.search(val ? '^' + val + '$' : '', true, false)
|
||||||
.draw();
|
.draw();
|
||||||
});
|
|
||||||
|
|
||||||
column.data().unique().sort().each(function (d, j) {
|
|
||||||
select.append('<option value="' + d + '">' + d + '</option>')
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}).fail(function () {
|
column.data().unique().sort().each(function (d, j) {
|
||||||
$('#jackett-search-perform').html('Search trackers');
|
select.append('<option value="' + d + '">' + d + '</option>')
|
||||||
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
});
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}).fail(function () {
|
||||||
|
$('#jackett-search-perform').html('Search trackers');
|
||||||
|
doNotify("Request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
||||||
});
|
});
|
||||||
|
|
||||||
}).fail(function () {
|
|
||||||
doNotify("Error loading indexers, request to Jackett server failed", "danger", "glyphicon glyphicon-alert");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var searchTracker = releaseDialog.find("#searchTracker");
|
||||||
|
if (selectedIndexer)
|
||||||
|
searchTracker.val(selectedIndexer);
|
||||||
|
searchTracker.trigger("change");
|
||||||
|
releaseDialog.modal("show");
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindUIButtons() {
|
function bindUIButtons() {
|
||||||
|
@@ -358,6 +358,7 @@
|
|||||||
<select name="category" id="searchCategory"></select>
|
<select name="category" id="searchCategory"></select>
|
||||||
<label>Tracker</label>
|
<label>Tracker</label>
|
||||||
<select name="tracker" id="searchTracker">
|
<select name="tracker" id="searchTracker">
|
||||||
|
<option value="">-- All --</option>
|
||||||
{{#each indexers}}
|
{{#each indexers}}
|
||||||
<option value="{{id}}">{{name}}</option>
|
<option value="{{id}}">{{name}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
Reference in New Issue
Block a user