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