in web/js/vm.js [182:282]
function vmToHostCB(data, ioArgs) {
if(data.items.failed) {
if(data.items.failed == 'nohostaccess')
alert('You do not have access to manage this VM host.');
if(data.items.failed == 'invaliddata')
alert('Invalid list of VMs submitted.');
document.body.style.cursor = 'default';
return;
}
/*
for each vmid sent back we
search through allvms until we find it keeping track of the previous item with inout == 1
we set allvms[vmid].inout to 1
we find the previous item in the select.options array
we insert a new option right after that one
*/
var vms = data.items.vms;
var addrem = data.items.addrem; // 1 for add, 0 for rem
var fails = data.items.fails;
var obj = dojo.byId('freevms');
for(var i = obj.options.length - 1; i >= 0; i--) {
if(obj.options[i].selected) {
var remove = 1;
for(var j = 0; j < fails.length; j++) {
if(obj.options[i].value == fails[j].id) {
obj.options[i].selected = false;
remove = 0;
break;
}
}
if(remove)
obj.remove(i);
}
}
var obj = dojo.byId('currvms');
for(var i = 0; i < vms.length; i++) {
var lastid = -1;
for(var j = 0; j < allvms.length; j++) {
if(allvms[j].id == vms[i].id) {
allvms[j].inout = addrem;
if(lastid < 0) {
if(addrem)
currvms.splice(0, 0, vms[i]);
var before = obj.options[0];
var newoption = new Option(allvms[j].name, allvms[j].id);
try {
obj.add(newoption, before);
}
catch(ex) {
obj.add(newoption, 0);
}
break;
}
else {
for(var k = 0; k < obj.options.length; k++) {
if(obj.options[k].value == lastid) {
if(addrem)
currvms.splice(0, 0, vms[i]);
var before = obj.options[k + 1];
var newoption = new Option(allvms[j].name, allvms[j].id);
if(before)
try {
obj.add(newoption, before);
}
catch(ex) {
obj.add(newoption, k + 1);
}
else
obj.options[obj.options.length] = newoption;
break;
}
}
}
break;
}
if(allvms[j].inout == addrem)
lastid = allvms[j].id;
}
}
dojo.byId('assignedcnt').innerHTML = dojo.byId('currvms').options.length;
document.body.style.cursor = 'default';
if(fails.length) {
var msg = '';
var msg1 = 'There was a problem that prevented the following\n'
+ 'VM(s) from being added to the host:\n\n';
var msg2 = 'You do not have access to add the following vm(s):\n\n';
var msg3 = ''; // problem
var msg4 = ''; // no access
for(var i = 0; i < fails.length; i++) {
if(fails[i].reason == 'noaccess')
msg4 += fails[i].name + '\n';
else
msg3 += fails[i].name + '\n';
}
if(msg3 != '')
msg += msg1 + msg3 + '\n';
if(msg4 != '')
msg += msg2 + msg4 + '\n';
alert(msg);
}
}