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