Revision 69c64a4c snf-cyclades-app/synnefo/ui/new_ui/ui/javascripts/ember/models/network.js

b/snf-cyclades-app/synnefo/ui/new_ui/ui/javascripts/ember/models/network.js
1
/*TODO: 
2
Add tags to Vm model*/
3

  
4

  
5
var statusActionsNetwork = {
6
    'off'      : {
7
        enabledActions : ['start', 'destroy'],
8
    },
9
    'error'      : {
10
        enabledActions : ['destroy'],
11
    },
12
    'building'      : {
13
        enabledActions : [],
14
    },
15
    'running'      : {
16
        enabledActions : ['reboot', 'shutdown', 'destroy'],
17
    },
18
    'rebooting'      : {
19
        enabledActions : ['destroy'],
20
    },
21
    'starting'      : {
22
        enabledActions : ['destroy'],
23
    },
24
    'shutting'      : {
25
        enabledActions : ['destroy'],
26
    },
27
};
28

  
29

  
30

  
31
// the model for a Network
32 1
App.Network = DS.Model.extend({
33
    name    : DS.attr(),
34
    status  : DS.attr(),
35
    vm      : DS.belongsTo('vm', { async:true }),
2
    
3
    name       : DS.attr(),
4
    status     : DS.attr(),
5
    firewall   : DS.attr(),
6
    vms        : DS.hasMany('vm', { async:true }),
36 7

  
37 8
    enabledActions: function() {
38 9
        return statusActionsNetwork[this.get('status')].enabledActions;
39 10
    }.property('status'),
11

  
12
    // firewallState can be off or on
13
    firewallState: function() {
14
        var state = 'off';
15
        if ( _.contains(['on','partial'], this.get('firewall')) ) { state='on'; }
16
        return state;
17
    }.property('firewall'),
18

  
40 19
});
41 20

  
42 21

  
......
45 24
        id: 1,
46 25
        name: 'Network 1',
47 26
        status: 'running',
48
        vm: '1',
27
        vms: [1,2],
28
        firewall: 'on',
49 29
    },
50 30
    {
51 31
        id: 2,
52 32
        name: 'Network 2',
53 33
        status: 'building',
54
        vm: '1',
34
        vms: [3],
35
        firewall: 'partial',
55 36
    },
56 37
    {
57 38
        id: 3,
58 39
        name: 'Network 3',
59 40
        status: 'off',
60
        vm: '2',
41
        firewall: 'off',
61 42
    },
62 43
];

Also available in: Unified diff