Revision 32a58fdf snf-cyclades-app/synnefo/ui/static/snf/js/ui/web/ui_single_view.js

b/snf-cyclades-app/synnefo/ui/static/snf/js/ui/web/ui_single_view.js
49 49
    // shortcuts
50 50
    var bb = root.Backbone;
51 51
    var hasKey = Object.prototype.hasOwnProperty;
52
    
53
    views.VMSinglePortListView = views.VMPortListView.extend({
54
      
55
      init: function() {
56
        views.VMSinglePortListView.__super__.init.apply(this);
57
        this.open = false;
58
        this.vm_el = $(this.options.vm_view);
59
        this.tags_toggler = this.vm_el.find(".tags-header");
60
        this.tags_content = this.vm_el.find(".tags-content");
61
        this.toggler = this.vm_el.find(".toggler-header.ips");
62
        this.toggler_content = this.vm_el.find(".ips-content");
63
        this.toggler_content.hide();
64
        $(this.el).show();
65
        
66
        var self = this;
67
        this.toggler.click(function() {
68
          self.toggle();
69
        });
70

  
71
        this.tags_toggler.click(function() {
72
          self.toggler.find(".toggler").removeClass("open");
73
          self.toggler_content.slideUp();
74
        });
75
      },
76

  
77
      toggle: function() {
78
        this.open = !this.open;
79

  
80
        if (this.open) {
81
          this.show(true);
82
          this.tags_toggler.find(".toggler").removeClass("open");
83
          this.tags_content.slideUp();
84
          this.toggler.find(".toggler").addClass("open");
85
          this.toggler_content.removeClass(".hidden").slideDown();
86
        } else {
87
          this.toggler.find(".toggler").removeClass("open");
88
          this.toggler_content.removeClass(".hidden").slideUp();
89
        }
90
      }
91
    });
52 92

  
53 93
    views.SingleDetailsView = views.VMDetailsView.extend({
54 94
    
......
61 101
            'disk': '.machine-detail.disk',
62 102
            'image_name': '.machine-detail.image-name',
63 103
            'image_size': '.machine-detail.image-size'
64
        }
104
        },
65 105
    
66 106
    })
67 107

  
......
207 247
            this.details_views = this.details_views || {};
208 248
            this.action_views = this.action_views || {};
209 249
            this.action_error_views = this.action_error_views || {};
250
            this.ports_views = this.ports_views || {};
210 251

  
211 252
            //this.stats_views[vm.id] = new views.IconStatsView(vm, this);
212 253

  
......
217 258
            this.tags_views[vm.id] = new views.VMTagsView(vm, this, true, 20, 10, 35);
218 259
            this.details_views[vm.id] = new views.SingleDetailsView(vm, this);
219 260
            this.action_error_views[vm.id] = new views.VMActionErrorView(vm, this);
261

  
262
            var ports_container = this.vm(vm).find(".ips-content");
263
            var ports_toggler = this.vm(vm).find(".toggler-header.ips");
264
            
265
            var ports_view = new views.VMSinglePortListView({
266
              vm_view: this.vm(vm),
267
              collection: vm.ports, 
268
              container: ports_container,
269
              parent: this
270
            });
271
            this.ports_views[vm.id] = ports_view
272
            ports_view.show();
273
            ports_view.el.hide();
220 274
            
221 275
            if (storage.vms.models.length > 1) { this.vm(vm).hide(); };
222 276
        },

Also available in: Unified diff