var updateTips = function ( t ) {
$( ".validateTips" )
.text( t )
.addClass( "ui-state-highlight" );
setTimeout(
function() {
$( ".validateTips" ).removeClass( "ui-state-highlight", 1500 );
},
500 );
};
var checkLength = function ( o, n, min, max ) {
if ( o.val().length > max || o.val().length < min ) {
o.addClass( "ui-state-error" );
updateTips( "Length of " + n + " must be between " +
min + " and " + max + "." );
return false;
} else {
return true;
}
};
var checkRegexp = function ( o, regexp, n ) {
if ( !( regexp.test( o.val() ) ) ) {
o.addClass( "ui-state-error" );
updateTips( n );
return false;
} else {
return true;
}
};
var showLog = function (t) {
$("#nd_show_log_msg").val(t);
$("#nd_show_log_msg").attr('readonly','readonly');
$("#nd_show_log_dialog").dialog(
{ minWidth: 450,
modal: true,
resizable: false,
draggable: false
});
};
var ip4_manualConfigurationDialog = function () {
var jsonArr = fbgui.getManualConfInterfaces();
//jsonArr = eval('(' + jsonArr + ')');
var c = "<select name='nd_mc_ifname_select' id='nd_mc_ifname_select'>";
if(jsonArr == "") {
c += "<option>NO INTERFACE</option>";
} else {
jQuery.each(jsonArr, function() {
c += " <option>"+ this +"</option>";
}
);
}
c += "</select>";
$("#nd_mc_ifname").html(c);
var ifname = $("#nd_mc_ifname_select :selected").text(),
ipaddr = $("#ipaddr"),
netmask = $("#netmask"),
broadcast = $("#broadcast"),
gateway = $("#gateway"),
dns = $("#dns"),
allFields = $([]).add(ipaddr).add(netmask).add(broadcast).add(gateway).add(dns);
$("#nd_manual_configuration_dialog").dialog(
{ buttons: { "Cancel": function() {
$(this).dialog("close");},
"Ok": function() {
var bValid = true;
allFields.removeClass("ui-state-error");
bValid = bValid && checkLength(ipaddr, "IP-Address", 7, 15);
bValid = bValid && checkLength(netmask, "Netmask Address", 7, 15);
bValid = bValid && checkLength(broadcast, "Broadcast Address", 7, 15);
bValid = bValid && checkLength(gateway, "Gateway Address", 7, 15);
bValid = bValid && checkLength(dns, "DNS Address", 7, 15);
bValid = bValid && checkRegexp(ipaddr, /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, "Is not a valid IP-Address! Format has to be e.g.: 192.168.1.2 (max value is 255)");
bValid = bValid && checkRegexp(netmask, /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, "Is not a valid IP-Address! Format has to be e.g.: 255.255.255.0 (max value is 255)");
bValid = bValid && checkRegexp(broadcast, /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, "Is not a valid IP-Address! Format has to be e.g.: 192.168.1.255 (max value is 255)");
bValid = bValid && checkRegexp(gateway, /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, "Is not a valid IP-Address! Format has to be e.g.: 192.168.1.254 (max value is 255)");
bValid = bValid && checkRegexp(dns, /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/, "Is not a valid IP-Address! Format has to be e.g.: 192.168.1.111 (max value is 255)");
if (bValid) {
// put variables into a json object
// send to qt networkdiscovery
var o = {"ifname" : ifname,
"ipaddr" : ipaddr.val(),
"netmask" : netmask.val(),
"broadcast" : broadcast.val(),
"gateway" : gateway.val(),
"dns" : dns.val() }
try {
fbgui.ip4_setManualConfiguration(o);
} catch (e) {
fbgui.notifyCall(e);
}
$(this).dialog("close");
} }
} ,
minWidth: 450,
modal: true,
resizable: false,
draggable: false,
close: function() {allFields.val("").removeClass("ui-state-error");},
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide();}
});
};
var abortBootDialog = function (m) {
fbgui.notifyCall("abortBootDialog");
$("#nd_abort_boot_msg").html(m);
$("#nd_abort_boot_dialog").dialog(
{ buttons: { "Manual Configure": function() {
ip4_manualConfigurationDialog();},
"Show Log": function() {
var text = fbgui.readLogFile();
showLog(text);
$(this).dialog("close");},
"Restart": function() {fbgui.restartSystem();
$(this).dialog("close"); },
"Shut Down": function() { fbgui.shutDownSystem();
$(this).dialog("close"); }
} ,
minWidth: 450,
modal: true,
resizable: false,
draggable: false,
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide();}
});
};
var chooseInterfaceDialog = function (i) {
var cb = "<label> Choose your interface: </label>"+
"<select id='nd_ifName_select'>";
jQuery.each(i, function() {
cb += " <option>"+ this +"</option>";
}
);
cb += "</select>";
$("#nd_choose_interface_msg").html(cb);
$("#nd_choose_interface_dialog").dialog(
{ buttons: { "Manual Configure": function() {
ip4_manualConfigurationDialog();},
"Show Log": function() {
var text = fbgui.readLogFile();
showLog(text);},
"Restart": function() {fbgui.restartSystem();
$(this).dialog("close"); },
"Shut Down": function() { fbgui.shutDownSystem();
$(this).dialog("close"); },
"Continue": function() {
var ifName = $("#nd_ifName_select :selected").text();
fbgui.continueBoot(ifName,1);
$(this).dialog("close");
}
} ,
minWidth: 550,
modal: true,
resizable: false,
draggable: false,
open: function(event, ui) { $(".ui-dialog-titlebar-close").hide();}
});
}
var updateStatus = function (s){
};
var updateIfProgressBar = function (i, p){
if (p >= 0 && p <= 100){
$("#"+i+"_progress").progressbar({ value: p });
}else{
$("#"+i+"_progress").progressbar({ value: 0 });
}
};
var updateIfStatus = function(i, s){
$("#"+i+"_status").html(s);
};
var addInterface = function (i){
$("#nd_progress_container").append(
"<div class='interface'>"+
" Interface: " +i+
" <span id='"+i+"_status'>Start DHCP </span>" +
" <div id='"+i+"_progress' class='progressbar' "+
" style='height: 10px;'></div>"+
"</div>"
);
$("#"+i+"_progress").progressbar({ value: 33 });
};