Revision d6eb963b
b/ui/static/synnefo.js | ||
---|---|---|
387 | 387 |
// merge object properties |
388 | 388 |
merge = function() { |
389 | 389 |
var initial = arguments[0]; |
390 |
var status_changed = undefined; |
|
390 | 391 |
$.each(arguments, function(index, el) { |
391 | 392 |
$.each(el, function(key,v) { |
392 | 393 |
// new attribute added |
394 |
var previous_value = initial[key]; |
|
395 |
|
|
393 | 396 |
if (initial[key] == undefined) { |
394 | 397 |
$(window).trigger("vm:attr:add", initial, key, v); |
395 | 398 |
} else { |
396 | 399 |
// value changed |
397 | 400 |
if (initial[key] != v) { |
401 |
if (key == "status") { |
|
402 |
status_changed = {'old': previous_value, 'new': v}; |
|
403 |
} |
|
398 | 404 |
$(window).trigger("vm:attr:change", {'initial': initial, 'attr': key, 'newvalue': v}); |
399 | 405 |
} |
400 | 406 |
} |
401 | 407 |
initial[key] = v; |
402 | 408 |
}); |
403 | 409 |
}); |
410 |
if (status_changed !== undefined) { |
|
411 |
$(window).trigger('vm:status:change', {'vm': initial, 'old': status_changed['old'], 'new': status_changed['new']}); |
|
412 |
} |
|
404 | 413 |
return initial; |
405 | 414 |
} |
406 | 415 |
|
... | ... | |
416 | 425 |
$.each(servers_update, function(index, server) { |
417 | 426 |
var exists = server_exists(server); |
418 | 427 |
if (exists !== false) { |
419 |
servers[exists[1]] = merge(servers[exists[1]], server); |
|
428 |
try { |
|
429 |
servers[exists[1]] = merge(servers[exists[1]], server); |
|
430 |
} catch (err) { |
|
431 |
console.log("merge error", err); |
|
432 |
} |
|
420 | 433 |
} else { |
421 | 434 |
servers.push(server); |
422 | 435 |
$(window).trigger("vm:add", server); |
Also available in: Unified diff