144 lines
5.2 KiB
JavaScript
Executable File
144 lines
5.2 KiB
JavaScript
Executable File
|
|
function _callbk_update_snapshot_progress_multiLanguage(){
|
|
return interpolate(gettext('Create snapshot [ %(snapshot_name_value)s ] successful'),{'snapshot_name_value':document.getElementById('snapshot_name_value').value},true);
|
|
}
|
|
|
|
|
|
function CheckAdvSumit()
|
|
{
|
|
var msg = '';
|
|
|
|
//check vnc port & password
|
|
var ele = document.getElementById("adv_vnc_port");
|
|
if (ele.options[ele.selectedIndex].value == "custom") {
|
|
var port = document.getElementById("adv_vnc_port_text").value;
|
|
var RegExPattern = /^[0-9]+$/;
|
|
if (!port.match(RegExPattern) ||
|
|
!(parseInt(port) >= 5900 && parseInt(port) <= 5930)) {
|
|
msg += gettext('Invalid Remote port.')+'\n';
|
|
} else {
|
|
for(var vm in InitInfo.vnc_used_ports){
|
|
if (parseInt(port) == InitInfo.vnc_used_ports[vm]) {
|
|
msg += interpolate(gettext('Remote port %(vnc_used_ports)s have been used by [ %(vm)s ].'),{'vnc_used_ports':InitInfo.vnc_used_ports[vm],'vm':vm},true)+'\n';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (document.getElementById("adv_vnc_pwd_text").value) {
|
|
ele = document.getElementById("adv_vnc_pwd_text");
|
|
ele.value = ele.value.replace(/(^\s*|\s*$)/g, "");
|
|
var re = /^([A-Za-z0-9_\-\.]+)$/g;
|
|
if (!re.test(ele.value)) {
|
|
msg += gettext('Invalid characters in remote password name. Please only use:') +'a-z,A-Z,0-9,_,-,.\n';
|
|
}
|
|
|
|
if(ele.value != document.getElementById("adv_vnc_pwd_text_confirm").value){
|
|
msg += gettext('Password and confirmation password do not match')+'\n';
|
|
}
|
|
|
|
}
|
|
|
|
//check auto start with free memory
|
|
if (document.getElementById("adv_autostart").checked) {
|
|
if (InitInfo.autostart_cnt >= InitInfo.startvm_limit) {
|
|
msg += gettext('Exceed maximun auto start num')+':'+InitInfo.startvm_limit+'\n';
|
|
}
|
|
if (parseInt(document.getElementById("adv_memory").value) > InitInfo.auto_free_mem) {
|
|
msg += gettext('For auto start settings, memory must be smaller than ')+InitInfo.auto_free_mem+'MB\n';
|
|
}
|
|
|
|
ele = document.getElementById("adv_start_delay");
|
|
ele.value = ele.value.replace(/(^\s*|\s*$)/g, "");
|
|
var RegExPattern = /^[0-9]+$/;
|
|
if (!ele.value.match(RegExPattern) ||
|
|
!(parseInt(ele.value) >= 0 && parseInt(ele.value) <= 600)) {
|
|
msg += gettext('Invalid startup delay time.')+'\n';
|
|
}
|
|
}
|
|
|
|
//check mac
|
|
var cnt = 0;
|
|
var RegExPattern = /^([0-9a-fA-F]{1,2}[\.:-]){5}([0-9a-fA-F]{1,2})$/;
|
|
while (document.getElementById('adv_nw_mac'+cnt)) {
|
|
currentmac = document.getElementById('adv_nw_mac'+cnt).value;
|
|
if (!currentmac.match(RegExPattern)) {
|
|
msg += gettext('Invalid format of MAC')+' # '+ (cnt+1) + '\n';
|
|
} else if (parseInt(currentmac.split(':')[0],16)%2){
|
|
msg += interpolate(gettext('First number of MAC #%(cnt)s must be even(ex.0,2,4,6,...)'),{'cnt':(cnt+1)},true)+'\n';
|
|
}
|
|
for(var cc=cnt-1;cc>=0;cc--)
|
|
{
|
|
if (document.getElementById('adv_nw_mac'+cc).value == currentmac) {
|
|
msg += interpolate(gettext('MAC %(currentmac)s have been used by yourself.'),{'currentmac':currentmac},true)+'\n';
|
|
}
|
|
}
|
|
cnt++;
|
|
}
|
|
|
|
//check network interface
|
|
cnt = 0;
|
|
while (document.getElementsByName('adv_nw_mode'+cnt).length > 0) {
|
|
var mode = GetRadioBtnValue(document.getElementsByName('adv_nw_mode'+cnt));
|
|
if (((mode == 'direct') && !document.getElementById('adv_eths_combos'+cnt).value) ||
|
|
((mode == 'bridge') && !document.getElementById('adv_bridges_combos'+cnt).value)) {
|
|
msg += interpolate(gettext('Invalid interface mode for adapter %(cnt)s'),{'cnt':(cnt+1)},true)+'\n';
|
|
}
|
|
cnt++;
|
|
}
|
|
|
|
if (msg.length > 0) {
|
|
alert(msg)
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function _callbk_before_advsubmit_check(http_request, elemBtn)
|
|
{
|
|
if (http_request.readyState == 4) {
|
|
CloseMask();
|
|
if (http_request.status == 200) {
|
|
var json = JSON.parse(http_request.responseText);
|
|
if (!json.success) {
|
|
alert(json.errors);
|
|
return;
|
|
}
|
|
|
|
var msg = '';
|
|
// check duplicate mac
|
|
var cnt = 0;
|
|
while (document.getElementById('adv_nw_mac'+cnt)) {
|
|
var currentmac = document.getElementById('adv_nw_mac'+cnt).value;
|
|
for (var i=0; i<json.used_macs.length; i++) {
|
|
if (currentmac == json.used_macs[i]) {
|
|
msg += interpolate(gettext('MAC #%(cnt)s [ %(used_macs)s ] have been used.'),{'cnt':(cnt+1),'used_macs':json.used_macs[i]},true)+'\n';
|
|
break;
|
|
}
|
|
}
|
|
cnt++;
|
|
}
|
|
if (msg.length > 0) {
|
|
alert(msg)
|
|
return false;
|
|
}
|
|
elemBtn.click();
|
|
} else {
|
|
alert(gettext('File check failed.'));
|
|
}
|
|
}
|
|
}
|
|
|
|
function ShowHideCloningWarning(cloningVM)
|
|
{
|
|
var elem = document.getElementById('cloning_warning');
|
|
var elem2 = document.getElementById('vm_background_msg_'+cloningVM);
|
|
elem.style.display = (cloningVM && !elem2) ? '' : 'none';
|
|
elem.innerHTML = interpolate(gettext('Please wait to VM[%(cloningVM)s] cloning finish.'),{'cloningVM':cloningVM},true);
|
|
}
|
|
|
|
function alertExisting(vmName){
|
|
alert(interpolate(gettext('The VM name [%(vmName)s] has been existing.'),{'vmName':vmName},true));
|
|
}
|