Fixed scripts on DownloadClient settings

This commit is contained in:
Mark McDowall 2012-11-06 17:06:19 -08:00
parent f40305cb04
commit 171e0cbb31
1 changed files with 85 additions and 83 deletions

View File

@ -62,98 +62,100 @@
<div id="result" class="hiddenResult"> <div id="result" class="hiddenResult">
</div> </div>
<script type="text/javascript"> @section Scripts{
$(document).ready(function () { <script type="text/javascript">
$('#downloadClientAccordion').accordion("activate", false); $(document).ready(function () {
$('#downloadClientAccordion').accordion("activate", false);
//Allow unobstrusive validation of the AJAX loaded form //Allow unobstrusive validation of the AJAX loaded form
$.validator.unobtrusive.parse('#DownloadClientForm'); $.validator.unobtrusive.parse('#DownloadClientForm');
//Validator Settings //Validator Settings
var settings = $.data($('#DownloadClientForm')[0], 'validator').settings; var settings = $.data($('#DownloadClientForm')[0], 'validator').settings;
settings.ignore = []; settings.ignore = [];
settings.focusInvalid = false; settings.focusInvalid = false;
settings.onfocusout = function (element) { $(element).valid(); }; settings.onfocusout = function (element) { $(element).valid(); };
var oldHighlight = settings.highlight; var oldHighlight = settings.highlight;
var oldUnhighlight = settings.unhighlight; var oldUnhighlight = settings.unhighlight;
settings.highlight = function (element, errorClass, validClass) { settings.highlight = function (element, errorClass, validClass) {
oldHighlight(element, errorClass, validClass); oldHighlight(element, errorClass, validClass);
$(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error'); $(element).parents('div.ui-accordion-content').prev('h3.ui-accordion-header').addClass('validation-error');
}; };
settings.unhighlight = function (element, errorClass, validClass) { settings.unhighlight = function (element, errorClass, validClass) {
oldUnhighlight(element, errorClass, validClass); oldUnhighlight(element, errorClass, validClass);
var container = $(element).parents('div.ui-accordion-content'); var container = $(element).parents('div.ui-accordion-content');
if ($(container).children('.' + errorClass).length == 0) if ($(container).children('.' + errorClass).length == 0)
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
};
});
$(document).on('change', '#DownloadClient', function () {
$("#DownloadClientForm").validate().form();
var container = $('div.ui-accordion-content');
if ($(container).children('.input-validation-error').length == 0)
$(container).prev('h3.ui-accordion-header').removeClass('validation-error'); $(container).prev('h3.ui-accordion-header').removeClass('validation-error');
};
});
$(document).on('change', '#DownloadClient', function () {
$("#DownloadClientForm").validate().form();
var container = $('div.ui-accordion-content');
if ($(container).children('.input-validation-error').length == 0)
$(container).prev('h3.ui-accordion-header').removeClass('validation-error');
});
var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")';
function autoConfigureSab() {
$.ajax({
type: "GET",
url: autoConfigureSabUrl,
error: function (req, status, error) {
alert("Sorry! We could not autoconfigure SABnzbd for you");
},
success: autoConfigureSuccess
}); });
function autoConfigureSuccess(data) { var autoConfigureSabUrl = '@Url.Action("AutoConfigureSab", "Settings")';
$('#SabHost').val(data.Host);
$('#SabPort').val(data.Port);
$('#SabApiKey').val(data.ApiKey);
}
}
var sabCategoryUrl = '../Command/GetSabnzbdCategories';
$('#SabTvCategory').focus(function () { function autoConfigureSab() {
var host = $('#SabHost').val(); $.ajax({
var port = $('#SabPort').val(); type: "GET",
var apiKey = $('#SabApiKey').val(); url: autoConfigureSabUrl,
var username = $('#SabUsername').val(); error: function (req, status, error) {
var password = $('#SabPassword').val(); alert("Sorry! We could not autoconfigure SABnzbd for you");
},
success: autoConfigureSuccess
});
$.ajax({ function autoConfigureSuccess(data) {
type: "POST", $('#SabHost').val(data.Host);
url: sabCategoryUrl, $('#SabPort').val(data.Port);
data: jQuery.param({ host: host, port: port, apiKey: apiKey, username: username, password: password }), $('#SabApiKey').val(data.ApiKey);
error: function (req, status, error) {
$.each($('#SabTvCategory option'), function () {
$(this).remove();
});
$('#SabTvCategory').append($('<option />').val('tv').text('Please check your SABnzbd Settings'));
},
success: function (data, textStatus, jqXHR) {
//Get the current value
var currentlySelected = $('#SabTvCategory').val();
//Remove all existing options
$.each($('#SabTvCategory option'), function () {
$(this).remove();
});
//Add the new ones
$.each(data.categories, function () {
$('#SabTvCategory').append($('<option />').val(this.toString()).text(this.toString()));
});
//Attempt to reset to the preiously selected value (change to lower-case)
$("#SabTvCategory").val(currentlySelected.toLowerCase());
} }
}
var sabCategoryUrl = '../Command/GetSabnzbdCategories';
$('#SabTvCategory').focus(function () {
var host = $('#SabHost').val();
var port = $('#SabPort').val();
var apiKey = $('#SabApiKey').val();
var username = $('#SabUsername').val();
var password = $('#SabPassword').val();
$.ajax({
type: "POST",
url: sabCategoryUrl,
data: jQuery.param({ host: host, port: port, apiKey: apiKey, username: username, password: password }),
error: function (req, status, error) {
$.each($('#SabTvCategory option'), function () {
$(this).remove();
});
$('#SabTvCategory').append($('<option />').val('tv').text('Please check your SABnzbd Settings'));
},
success: function (data, textStatus, jqXHR) {
//Get the current value
var currentlySelected = $('#SabTvCategory').val();
//Remove all existing options
$.each($('#SabTvCategory option'), function () {
$(this).remove();
});
//Add the new ones
$.each(data.categories, function () {
$('#SabTvCategory').append($('<option />').val(this.toString()).text(this.toString()));
});
//Attempt to reset to the preiously selected value (change to lower-case)
$("#SabTvCategory").val(currentlySelected.toLowerCase());
}
});
}); });
}); </script>
</script> }