sonarr-repo-only/NzbDrone.Web/Scripts/NzbDrone/AutoComplete.js

92 lines
2.8 KiB
JavaScript
Raw Normal View History

2011-07-27 22:59:48 +00:00
jQuery(document).ready(function () {
$.ajaxSetup({
cache: false
});
2011-06-30 06:15:06 +00:00
bindAutoCompletes();
2011-11-26 18:27:44 +00:00
$(document).bind('keydown', 'ctrl+shift+f', function () {
$('#localSeriesLookup').focus();
});
$(document).bind('keyup', 's', function () {
$('#localSeriesLookup').focus();
});
});
//
$('.folderLookup:not(.ui-autocomplete-input), .seriesLookup:not(.ui-autocomplete-input), .localSeriesLookup:not(.ui-autocomplete-input)').live('focus', function (event) {
bindAutoCompletes();
});
function bindAutoCompletes() {
bindFolderAutoComplete(".folderLookup");
bindSeriesAutoComplete(".seriesLookup");
2011-11-26 18:27:44 +00:00
bindLocalSeriesAutoComplete("#localSeriesLookup");
}
2011-07-27 22:59:48 +00:00
function bindFolderAutoComplete(selector) {
$(selector).each(function (index, element) {
$(element).autocomplete({
//source: "/Directory/GetDirectories",
source: function (request, response) {
$.ajax({
url: "/Directory/GetDirectories",
dataType: "json",
data: {
term: request.term
},
success: function (data) {
var re = $.ui.autocomplete.escapeRegex(request.term);
var matcher = new RegExp("^" + re, "i");
response($.grep(data, function (item) { return matcher.test(item); }));
}
});
},
minLength: 3
2011-06-30 06:15:06 +00:00
});
2011-07-27 22:59:48 +00:00
});
}
function bindSeriesAutoComplete(selector) {
$(selector).each(function (index, element) {
$(element).autocomplete({
source: "/AddSeries/LookupSeries",
minLength: 3,
delay: 500,
select: function (event, ui) {
$(this).val(ui.item.Title);
$(this).siblings('.seriesId').val(ui.item.Id);
return false;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><strong>" + item.Title + "</strong><br>" + item.FirstAired + "</a>")
.appendTo(ul);
};
2011-07-27 22:59:48 +00:00
});
}
function bindLocalSeriesAutoComplete(selector) {
$(selector).each(function (index, element) {
2011-11-26 18:27:44 +00:00
$(element).watermark('Search...');
$(element).autocomplete({
source: "/Series/LocalSearch",
2011-11-26 18:27:44 +00:00
minLength: 1,
delay: 100,
autoFocus:true,
select: function (event, ui) {
window.location = "../Series/Details?seriesId=" + ui.item.Id;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><strong>" + item.Title + "</strong><br>" + "</a>")
.appendTo(ul);
};
});
2011-06-30 06:15:06 +00:00
}