blob: f0936157aedaeec24eac0f4e72631120c32511ee [file] [log] [blame]
$(document).ready(function(){
$('.alert').parent().hide();
$(function() {
$(document).on('click', '.alert-close', function() {
$(this).parent().hide();
});
});
var postsuccess = function (data) {
$("#Main").show()
$("#loading").hide()
location.reload(true)
};
var postfailure = function (data) {
progress.close();
$("#Main").show()
$("#loading").hide()
$('.errormsg').text('Settings could not be saved. Please check the logs for details.')
$('.errormsg').slideDown('fast')
};
$('.setting_value_input').bind('input', function() {
var text = $(this).val()
if (text.indexOf(',') >= 0) {
// Replace ',' with '.' -> allow comma decimal separator (e.g. Finnish locale)
text = text.split(',').join('.');
}
var name = $(this).attr('name')
// Check if the input text is a legal value for the input
var valid = false
if (name.match(/^edgelimit/) || name.match(/^ztouchlimit/)) {
// Allow negative and zero values
if (text.match(/^-?\d+(\.\d+)?$/) && !isNaN(text)) {
valid = true;
}
}
//else if (name.match(/missing/)) {
else {
// Do not allow negative values
if (text.match(/^\d+(\.\d+)?$/) && parseFloat(text) >= 0) {
valid = true;
}
}
/*
else {
// Do not allow negative or zero values
if (text.match(/^\d+(\.\d+)?$/) && parseFloat(text) > 0) {
valid = true;
}
}
*/
if (valid && $(this).hasClass('invalid')) {
$(this).removeClass('invalid');
}
else if(!valid && !$(this).hasClass('invalid')) {
$(this).addClass('invalid');
}
});
var progress;
$("#save").on('submit', function(e) {
// Check if there are invalid values
e.preventDefault();
if ($('.invalid').length > 0) {
$('.errormsg').text('Please check the invalid values before saving');
$('.errormsg').slideDown('fast');
}
else
{
if($("#save").context.activeElement.value === "recalculate") {
$("#Main").hide();
$("#loading").show();
}
var idvalues = [];
$(".settings_table :input").each(function(){
var idvalue = {id : $(this).attr("name"), value : $(this).val()};
idvalues.push(idvalue);
});
if($("#save").context.activeElement.value === "recalculate") {
progress = new EventSource('/settings?event=progress');
progress.onmessage = function(event) {
var val = Math.round(event.data * 100);
if(val <= 99) {
$('.prog').text(val);
$('.progress-bar').css('width', val + '%').attr('aria-valuenow', val);
} else {
$('.prog').text(100);
$('.progress-bar').css('width', 100 + '%').attr('aria-valuenow', 100);
}
};
$.ajax({
type: "POST",
url: "/settings",
data: {params: JSON.stringify(idvalues),
mode: $("#save").context.activeElement.value},
success : function(msg) {
progress.close();
location.reload(true);
$(document).ready(function() {
$('.alert').text(msg);
$('.alert').parent().show();
$('html, body').animate({ scrollTop: 0 }, 0);
});
}
}).fail(postfailure);
} else {
$.ajax({
type: "POST",
url: "/settings",
data: {params: JSON.stringify(idvalues),
mode: $("#save").context.activeElement.value},
success : function(msg) {
$('.alert').text(msg);
$('.alert').parent().show();
$('html, body').animate({ scrollTop: 0 }, 0);
}
}).fail(postfailure);
}
}
});
});