root / ui / templates / list.html @ 038383b1
History | View | Annotate | Download (10.5 kB)
1 | 42f67a2a | Dimitris Moraitis | {% load i18n %} |
---|---|---|---|
2 | 42f67a2a | Dimitris Moraitis | |
3 | 1c86af5b | Christodoulos Psaltis | <div id="machinesview" class="list"> |
4 | 1c86af5b | Christodoulos Psaltis | <div id="spinner"></div> |
5 | b303ba05 | Christodoulos Psaltis | <div class="actions"> |
6 | 379a34cf | Dimitris Moraitis | <a id="action-start">Start</a> |
7 | 379a34cf | Dimitris Moraitis | <a id="action-reboot">Reboot</a> |
8 | 379a34cf | Dimitris Moraitis | <a id="action-shutdown">Shutdown</a> |
9 | b303ba05 | Christodoulos Psaltis | <br /> |
10 | 379a34cf | Dimitris Moraitis | <a id="action-destroy">Destroy</a> |
11 | b303ba05 | Christodoulos Psaltis | <br /> |
12 | 379a34cf | Dimitris Moraitis | <a id="action-details">Show Details</a> |
13 | 379a34cf | Dimitris Moraitis | <a id="action-group">Add to group</a> |
14 | b303ba05 | Christodoulos Psaltis | <br /> |
15 | 379a34cf | Dimitris Moraitis | <a id="action-band">Out of band</a> |
16 | b303ba05 | Christodoulos Psaltis | <br /> |
17 | 379a34cf | Dimitris Moraitis | <a id="action-attach">Attach disk</a> |
18 | 379a34cf | Dimitris Moraitis | <a id="action-detach">Detach disk</a> |
19 | b303ba05 | Christodoulos Psaltis | <br /> |
20 | 379a34cf | Dimitris Moraitis | <a id="action-connect">Connect to network</a> |
21 | 379a34cf | Dimitris Moraitis | <a id="action-disconnect">Disconnect from net</a> |
22 | b303ba05 | Christodoulos Psaltis | </div>
|
23 | 008b3ae8 | Christodoulos Psaltis | <table class="list-machines" style="display: none"> |
24 | 1c86af5b | Christodoulos Psaltis | <thead>
|
25 | 1c86af5b | Christodoulos Psaltis | <tr>
|
26 | 1e03328c | Christodoulos Psaltis | <th id="selection" class="select-running"> |
27 | 1e03328c | Christodoulos Psaltis | <input type="checkbox"/> |
28 | 190e3256 | Dimitris Moraitis | <div class="expand-icon"></div> |
29 | 164d6386 | Christodoulos Psaltis | </th>
|
30 | 7dda8900 | Christodoulos Psaltis | <th id="os">OS</th> |
31 | 7dda8900 | Christodoulos Psaltis | <th id="name">Name</th> |
32 | 7dda8900 | Christodoulos Psaltis | <th id="ip">IP</th> |
33 | 7dda8900 | Christodoulos Psaltis | <th id="group">Group</th> |
34 | 7dda8900 | Christodoulos Psaltis | <th id="status">Status</th> |
35 | 4da3085a | Dimitris Moraitis | </tr>
|
36 | 4da3085a | Dimitris Moraitis | </thead>
|
37 | 48ce8b68 | Christodoulos Psaltis | <tbody class="machines"></tbody> |
38 | 1c86af5b | Christodoulos Psaltis | </table>
|
39 | 190e3256 | Dimitris Moraitis | <ul class="dropdown-selector" style="display: none"> |
40 | 190e3256 | Dimitris Moraitis | <li class="select-all" ><a href="#">all</a></li> |
41 | 190e3256 | Dimitris Moraitis | <li class="select-none"><a href="#">none</a></li> |
42 | 190e3256 | Dimitris Moraitis | <li class="select-group"><a href="#">group</a></li> |
43 | 190e3256 | Dimitris Moraitis | </ul>
|
44 | b303ba05 | Christodoulos Psaltis | </div>
|
45 | c3b3043d | Dimitris Moraitis | |
46 | c3b3043d | Dimitris Moraitis | <script>
|
47 | 990772be | Dimitris Moraitis | |
48 | 35b8688f | Christodoulos Psaltis | // select/deselect all from checkbox widget of table headers
|
49 | 35b8688f | Christodoulos Psaltis | $("table thead tr th#selection :checkbox").live('change', function() {
|
50 | 35b8688f | Christodoulos Psaltis | if ( $(this).is(":checked") ) {
|
51 | 008b3ae8 | Christodoulos Psaltis | $(":checkbox").attr("checked", true);
|
52 | 35b8688f | Christodoulos Psaltis | }
|
53 | 35b8688f | Christodoulos Psaltis | else {
|
54 | 008b3ae8 | Christodoulos Psaltis | $(":checkbox").attr("checked", false);
|
55 | 35b8688f | Christodoulos Psaltis | }
|
56 | 4da3085a | Dimitris Moraitis | updateActions();
|
57 | 190e3256 | Dimitris Moraitis | return false;
|
58 | 35b8688f | Christodoulos Psaltis | });
|
59 | 35b8688f | Christodoulos Psaltis | |
60 | 190e3256 | Dimitris Moraitis | // select all from drop down menu
|
61 | 190e3256 | Dimitris Moraitis | $("ul.dropdown-selector li.select-all a").live('click', function() {
|
62 | 190e3256 | Dimitris Moraitis | $(":checkbox").attr("checked", true);
|
63 | 79b68e7c | Christodoulos Psaltis | $(".dropdown-selector").slideToggle('medium');
|
64 | 82bf6df0 | Dimitris Moraitis | updateActions();
|
65 | 190e3256 | Dimitris Moraitis | return false;
|
66 | 1e03328c | Christodoulos Psaltis | });
|
67 | 1e03328c | Christodoulos Psaltis | |
68 | 190e3256 | Dimitris Moraitis | // select none from drop down menu
|
69 | 190e3256 | Dimitris Moraitis | $("ul.dropdown-selector li.select-none a").live('click', function() {
|
70 | 190e3256 | Dimitris Moraitis | $(":checkbox").attr("checked", false);
|
71 | 79b68e7c | Christodoulos Psaltis | $(".dropdown-selector").slideToggle('medium');
|
72 | 82bf6df0 | Dimitris Moraitis | updateActions();
|
73 | 190e3256 | Dimitris Moraitis | return false;
|
74 | 164d6386 | Christodoulos Psaltis | });
|
75 | 164d6386 | Christodoulos Psaltis | |
76 | 190e3256 | Dimitris Moraitis | // select group from drop down menu
|
77 | 190e3256 | Dimitris Moraitis | $("ul.dropdown-selector li.select-group a").live('click', function() {
|
78 | 190e3256 | Dimitris Moraitis | $(":checkbox").attr("checked", true);
|
79 | 79b68e7c | Christodoulos Psaltis | $(".dropdown-selector").slideToggle('medium');
|
80 | 82bf6df0 | Dimitris Moraitis | updateActions();
|
81 | 190e3256 | Dimitris Moraitis | return false;
|
82 | 190e3256 | Dimitris Moraitis | });
|
83 | 190e3256 | Dimitris Moraitis | |
84 | 190e3256 | Dimitris Moraitis | // menu toggle, running menu
|
85 | 190e3256 | Dimitris Moraitis | $("table.list-machines thead tr th#selection .expand-icon").click( function (obj) {
|
86 | 190e3256 | Dimitris Moraitis | $(".dropdown-selector").slideToggle('medium');
|
87 | 164d6386 | Christodoulos Psaltis | return false;
|
88 | 164d6386 | Christodoulos Psaltis | });
|
89 | 164d6386 | Christodoulos Psaltis | |
90 | bd96a56b | Christodoulos Psaltis | // TODO: This should be populated with more rules for all available states
|
91 | a9d8ed3a | Christodoulos Psaltis | var actions = { 'reboot': ['ACTIVE', 'REBOOT', 'multiple'],
|
92 | a9d8ed3a | Christodoulos Psaltis | 'shutdown': ['ACTIVE', 'REBOOT', 'multiple'],
|
93 | a9d8ed3a | Christodoulos Psaltis | 'connect': ['ACTIVE', ],
|
94 | a9d8ed3a | Christodoulos Psaltis | 'disconnect': ['ACTIVE', 'network'],
|
95 | a9d8ed3a | Christodoulos Psaltis | 'band': ['ACTIVE', 'REBOOT'],
|
96 | a9d8ed3a | Christodoulos Psaltis | 'details': ['ACTIVE', 'REBOOT', 'STOPPED'],
|
97 | a9d8ed3a | Christodoulos Psaltis | 'start': ['STOPPED', 'multiple'],
|
98 | 48ce8b68 | Christodoulos Psaltis | 'destroy': ['ACTIVE', 'STOPPED', 'REBOOT', 'ERROR', 'multiple'],
|
99 | a9d8ed3a | Christodoulos Psaltis | 'group': ['ACTIVE', 'STOPPED', 'REBOOT','multiple'],
|
100 | 0604f74f | Dimitris Moraitis | };
|
101 | 0604f74f | Dimitris Moraitis | |
102 | 379a34cf | Dimitris Moraitis | // on checkbox click, update the actions
|
103 | bdbd43a1 | Christodoulos Psaltis | $("tbody input[type='checkbox']").live('change', function() {
|
104 | bdbd43a1 | Christodoulos Psaltis | updateActions();
|
105 | bdbd43a1 | Christodoulos Psaltis | pending_actions = [];
|
106 | bdbd43a1 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
107 | bdbd43a1 | Christodoulos Psaltis | update_confirmations();
|
108 | bdbd43a1 | Christodoulos Psaltis | });
|
109 | 4da3085a | Dimitris Moraitis | |
110 | df1257a5 | Christodoulos Psaltis | $("div.confirm_multiple button").click(function() {
|
111 | df1257a5 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
112 | df1257a5 | Christodoulos Psaltis | });
|
113 | df1257a5 | Christodoulos Psaltis | |
114 | d7c4ab32 | Dimitris Moraitis | // destroy action
|
115 | ae0aea6d | Dimitris Moraitis | $("a.enabled#action-destroy").live('click', function() {
|
116 | 217b2431 | Dimitris Moraitis | var checked = $("table.list-machines tbody input[type='checkbox']:checked");
|
117 | bdbd43a1 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
118 | bdbd43a1 | Christodoulos Psaltis | $(this).addClass('selected');
|
119 | 990772be | Dimitris Moraitis | pending_actions = []; // reset pending actions
|
120 | 217b2431 | Dimitris Moraitis | checked.each(function(i,c) {
|
121 | 48ce8b68 | Christodoulos Psaltis | serverID=c.id;
|
122 | 990772be | Dimitris Moraitis | serverName = $('#'+serverID+' span.name').text();
|
123 | 990772be | Dimitris Moraitis | pending_actions.push([destroy, serverID]);
|
124 | 217b2431 | Dimitris Moraitis | });
|
125 | 990772be | Dimitris Moraitis | update_confirmations();
|
126 | 217b2431 | Dimitris Moraitis | return false;
|
127 | d7c4ab32 | Dimitris Moraitis | });
|
128 | d7c4ab32 | Dimitris Moraitis | |
129 | ae0aea6d | Dimitris Moraitis | $("a.enabled#action-reboot").live('click', function() {
|
130 | 42f67a2a | Dimitris Moraitis | var checked = $("table.list-machines tbody input[type='checkbox']:checked");
|
131 | bdbd43a1 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
132 | bdbd43a1 | Christodoulos Psaltis | $(this).addClass('selected');
|
133 | 990772be | Dimitris Moraitis | pending_actions = []; // reset pending actions
|
134 | 217b2431 | Dimitris Moraitis | checked.each(function(i,c) {
|
135 | 48ce8b68 | Christodoulos Psaltis | serverID=c.id;
|
136 | 990772be | Dimitris Moraitis | serverName = $('#'+serverID+' span.name').text();
|
137 | 990772be | Dimitris Moraitis | pending_actions.push([reboot, serverID]);
|
138 | 217b2431 | Dimitris Moraitis | });
|
139 | 990772be | Dimitris Moraitis | update_confirmations();
|
140 | 217b2431 | Dimitris Moraitis | return false;
|
141 | d7c4ab32 | Dimitris Moraitis | });
|
142 | d7c4ab32 | Dimitris Moraitis | |
143 | a37690bd | Markos Gogoulos | $("a.enabled#action-start").live('click', function() {
|
144 | 42f67a2a | Dimitris Moraitis | var checked = $("table.list-machines tbody input[type='checkbox']:checked");
|
145 | bdbd43a1 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
146 | bdbd43a1 | Christodoulos Psaltis | $(this).addClass('selected');
|
147 | 990772be | Dimitris Moraitis | pending_actions = []; // reset pending actions
|
148 | 217b2431 | Dimitris Moraitis | checked.each(function(i,c) {
|
149 | 48ce8b68 | Christodoulos Psaltis | serverID=c.id;
|
150 | 990772be | Dimitris Moraitis | serverName = $('#'+serverID+' span.name').text();
|
151 | 990772be | Dimitris Moraitis | pending_actions.push([start, serverID]);
|
152 | 217b2431 | Dimitris Moraitis | });
|
153 | 990772be | Dimitris Moraitis | update_confirmations();
|
154 | 217b2431 | Dimitris Moraitis | return false;
|
155 | a37690bd | Markos Gogoulos | });
|
156 | a37690bd | Markos Gogoulos | |
157 | a37690bd | Markos Gogoulos | $("a.enabled#action-shutdown").live('click', function() {
|
158 | 42f67a2a | Dimitris Moraitis | var checked = $("table.list-machines tbody input[type='checkbox']:checked");
|
159 | bdbd43a1 | Christodoulos Psaltis | $(".selected").removeClass('selected');
|
160 | bdbd43a1 | Christodoulos Psaltis | $(this).addClass('selected');
|
161 | 990772be | Dimitris Moraitis | pending_actions = []; // reset pending actions
|
162 | 217b2431 | Dimitris Moraitis | checked.each(function(i,c) {
|
163 | 48ce8b68 | Christodoulos Psaltis | serverID=c.id;
|
164 | 990772be | Dimitris Moraitis | serverName = $('#'+serverID+' span.name').text();
|
165 | 990772be | Dimitris Moraitis | pending_actions.push([shutdown, serverID]);
|
166 | 217b2431 | Dimitris Moraitis | });
|
167 | 990772be | Dimitris Moraitis | update_confirmations();
|
168 | 217b2431 | Dimitris Moraitis | return false;
|
169 | d7c4ab32 | Dimitris Moraitis | });
|
170 | d7c4ab32 | Dimitris Moraitis | |
171 | eae0a59a | Dimitris Moraitis | function update_machines_view(data){
|
172 | eae0a59a | Dimitris Moraitis | /*
|
173 | 1a49199e | Dimitris Moraitis | Go through the servers in the input data. Update existing entries, add
|
174 | eae0a59a | Dimitris Moraitis | new ones to the list
|
175 | 1a49199e | Dimitris Moraitis | */
|
176 | 1a49199e | Dimitris Moraitis | tableData = vmTable.fnGetData();
|
177 | 1a49199e | Dimitris Moraitis | $.each(data.servers, function(i,server){
|
178 | 1a49199e | Dimitris Moraitis | current = -1;
|
179 | c459a72f | Christodoulos Psaltis | // check server status to select the appropriate OS icon
|
180 | c459a72f | Christodoulos Psaltis | osTag = image_tags[server.imageRef]
|
181 | e2ccad35 | Dimitris Moraitis | var osIcon = osTag + ".png", imgStr, imgSrc;
|
182 | c459a72f | Christodoulos Psaltis | |
183 | 1a49199e | Dimitris Moraitis | // check if the server already exists in the datatable
|
184 | 1a49199e | Dimitris Moraitis | tableData.forEach(function(row,index){
|
185 | 1a49199e | Dimitris Moraitis |
|
186 | 1a49199e | Dimitris Moraitis | if (row[0].split(' ')[2].replace('id=','') == server.id){
|
187 | 1a49199e | Dimitris Moraitis | current = index;
|
188 | 1a49199e | Dimitris Moraitis | }
|
189 | 1a49199e | Dimitris Moraitis | });
|
190 | eae0a59a | Dimitris Moraitis |
|
191 | 1a49199e | Dimitris Moraitis | if (current != -1){ // if it's there, simply update the values
|
192 | 1a49199e | Dimitris Moraitis | try {
|
193 | 1a49199e | Dimitris Moraitis | console.info(server.name + ' from '
|
194 | 1a49199e | Dimitris Moraitis | + tableData[current][5] + ' to ' + STATUS_MESSAGES[server.status]);
|
195 | e2ccad35 | Dimitris Moraitis | } catch(err) {}
|
196 | 0e1531b4 | Markos Gogoulos | if (server.status == "DELETED") {
|
197 | 1a49199e | Dimitris Moraitis | vmTable.fnDeleteRow(current);
|
198 | e2ccad35 | Dimitris Moraitis | } else { // server exists and should not be deleted
|
199 | c459a72f | Christodoulos Psaltis | // check server status to select the appropriate OS icon
|
200 | c459a72f | Christodoulos Psaltis | if (['ERROR', 'STOPPED'].indexOf(server.status) >= 0) {
|
201 | c459a72f | Christodoulos Psaltis | osIcon = osTag + "-off.png";
|
202 | c459a72f | Christodoulos Psaltis | }
|
203 | e2ccad35 | Dimitris Moraitis | // if the new state does not differ from the previous one
|
204 | e2ccad35 | Dimitris Moraitis | if (tableData[current][5].indexOf(STATUS_MESSAGES[server.status]) > -1){
|
205 | e2ccad35 | Dimitris Moraitis | // do nothing
|
206 | e2ccad35 | Dimitris Moraitis | } else { // state has changed
|
207 | e2ccad35 | Dimitris Moraitis | //$('#'+server.id).parent().parent().find('.list-logo').attr('src').indexOf('wave')>-1){
|
208 | e2ccad35 | Dimitris Moraitis |
|
209 | e2ccad35 | Dimitris Moraitis | imgSrc = "static/wave.gif";
|
210 | e2ccad35 | Dimitris Moraitis | tableData[current][0] = "<input class="+server.status+" id="+server.id+" type=checkbox>";
|
211 | e2ccad35 | Dimitris Moraitis | imgStr = "<img class=list-logo src=" + imgSrc + " title=" + osTag + " height=16 width=16 />";
|
212 | e2ccad35 | Dimitris Moraitis | tableData[current][1] = "<span class=imagetag>" + osTag + "</span>" + imgStr;
|
213 | e2ccad35 | Dimitris Moraitis | tableData[current][2] = "<a class=name><span class=name>" + server.name + "</span></a>";
|
214 | e2ccad35 | Dimitris Moraitis | tableData[current][3] = "<a class=ip><span class=public>"+ server.addresses.public.ip.addr + "</span></a>";
|
215 | e2ccad35 | Dimitris Moraitis | //tableData[current][4] = "group"; //TODO
|
216 | e2ccad35 | Dimitris Moraitis | tableData[current][5] = "<span class=status>" + STATUS_MESSAGES[server.status] + "</span>";
|
217 | e2ccad35 | Dimitris Moraitis | vmTable.fnUpdate(tableData[current],current);
|
218 | e2ccad35 | Dimitris Moraitis | |
219 | e2ccad35 | Dimitris Moraitis | //try{console.info('vm ' + server.id + ' from ' + tableData[current][5] + ' to ' + STATUS_MESSAGES[server.status])} catch(err) {}
|
220 | e2ccad35 | Dimitris Moraitis | setTimeout("$('#"+server.id+"').parent().parent().find('.list-logo').attr('src','static/os_logos/" + osIcon+"')", 2000);
|
221 | 6d0a36e5 | Dimitris Moraitis | }
|
222 | 1a49199e | Dimitris Moraitis | }
|
223 | 1a49199e | Dimitris Moraitis | updateActions();
|
224 | 0e1531b4 | Markos Gogoulos | } else if (server.status != "DELETED") { // does not exist, we should create it
|
225 | 48ce8b68 | Christodoulos Psaltis | // check server status to select the appropriate OS icon
|
226 | 48ce8b68 | Christodoulos Psaltis | if (['ERROR', 'STOPPED'].indexOf(server.status) >= 0) {
|
227 | 48ce8b68 | Christodoulos Psaltis | osIcon = osTag + "-off.png";
|
228 | eae0a59a | Dimitris Moraitis | }
|
229 | 48ce8b68 | Christodoulos Psaltis | // add new row to the table
|
230 | 48ce8b68 | Christodoulos Psaltis | vmTable.fnAddData([
|
231 | 48ce8b68 | Christodoulos Psaltis | "<input class=" + server.status + " id=" + server.id + " type=checkbox>",
|
232 | 48ce8b68 | Christodoulos Psaltis | "<span class=imagetag>" + osTag + "</span><img class=list-logo src=static/os_logos/" + osIcon +
|
233 | 48ce8b68 | Christodoulos Psaltis | " title=" + osTag + " height=16 width=16>",
|
234 | 48ce8b68 | Christodoulos Psaltis | "<a class=name><span class=name>" + server.name + "</span></a>",
|
235 | 48ce8b68 | Christodoulos Psaltis | "<a class=ip><span class=public>"+ server.addresses.public.ip.addr + "</span></a>",
|
236 | 48ce8b68 | Christodoulos Psaltis | "group",
|
237 | 48ce8b68 | Christodoulos Psaltis | "<span class=status>" + STATUS_MESSAGES[server.status] + "</span>"
|
238 | 48ce8b68 | Christodoulos Psaltis | ]);
|
239 | eae0a59a | Dimitris Moraitis | }
|
240 | eae0a59a | Dimitris Moraitis | });
|
241 | 1a49199e | Dimitris Moraitis | updateActions();
|
242 | 48ce8b68 | Christodoulos Psaltis | $("#spinner").hide();
|
243 | 48ce8b68 | Christodoulos Psaltis | // in case there are no data, leave the page empty
|
244 | eae0a59a | Dimitris Moraitis | if ($("div.list table.list-machines tbody").length > 0) {
|
245 | 48ce8b68 | Christodoulos Psaltis | $("div.list div.dataTables_filter").show();
|
246 | 48ce8b68 | Christodoulos Psaltis | $("div.list div.dataTables_filter input").show();
|
247 | eae0a59a | Dimitris Moraitis | $("div.list table.list-machines").show();
|
248 | eae0a59a | Dimitris Moraitis | $("div.list div.actions").show();
|
249 | eae0a59a | Dimitris Moraitis | }
|
250 | ed4781b5 | Dimitris Moraitis |
|
251 | ed4781b5 | Dimitris Moraitis | // set confirm box position
|
252 | e2ccad35 | Dimitris Moraitis | if (window.innerHeight - 200 < $('#machinesview').height())
|
253 | ed4781b5 | Dimitris Moraitis | $('.confirm_multiple').addClass('fixed');
|
254 | ed4781b5 | Dimitris Moraitis | else
|
255 | ed4781b5 | Dimitris Moraitis | $('.confirm_multiple').removeClass('fixed');
|
256 | eae0a59a | Dimitris Moraitis | }
|
257 | eae0a59a | Dimitris Moraitis | |
258 | a1a31201 | Dimitris Moraitis | function display_success(serverID) {
|
259 | 6d0a36e5 | Dimitris Moraitis | // do nothing
|
260 | 879748ec | Markos Gogoulos | }
|
261 | 879748ec | Markos Gogoulos | |
262 | 879748ec | Markos Gogoulos | // indicate that the requested action was not completed
|
263 | 038383b1 | Dimitris Moraitis | function display_failure(status, serverID, action, responseText) {
|
264 | 695e1b21 | Dimitris Moraitis | osIcon = $('#'+serverID).parent().parent().find('.list-logo');
|
265 | 695e1b21 | Dimitris Moraitis | osIcon.attr('src',osIcon.attr('os'));
|
266 | 038383b1 | Dimitris Moraitis | ajax_error(status, serverID, action, responseText);
|
267 | a1a31201 | Dimitris Moraitis | }
|
268 | a1a31201 | Dimitris Moraitis | |
269 | 48ce8b68 | Christodoulos Psaltis | var vmTable = $("div.list table.list-machines").dataTable({
|
270 | 48ce8b68 | Christodoulos Psaltis | "bInfo": false,
|
271 | 48ce8b68 | Christodoulos Psaltis | "bRetrieve": true,
|
272 | 48ce8b68 | Christodoulos Psaltis | "bPaginate": false,
|
273 | 48ce8b68 | Christodoulos Psaltis | "bAutoWidth": false,
|
274 | 48ce8b68 | Christodoulos Psaltis | "bSort": true,
|
275 | 48ce8b68 | Christodoulos Psaltis | "bStateSave": true,
|
276 | 48ce8b68 | Christodoulos Psaltis | "sScrollY": "270px",
|
277 | 48ce8b68 | Christodoulos Psaltis | "sScrollX": "515px",
|
278 | 48ce8b68 | Christodoulos Psaltis | "sScrollXInner": "500px",
|
279 | 48ce8b68 | Christodoulos Psaltis | "aoColumnDefs": [
|
280 | 48ce8b68 | Christodoulos Psaltis | { "bSortable": false, "aTargets": [ 0 ] }
|
281 | 48ce8b68 | Christodoulos Psaltis | ]
|
282 | 48ce8b68 | Christodoulos Psaltis | });
|
283 | 48ce8b68 | Christodoulos Psaltis | |
284 | 146b6003 | Dimitris Moraitis | if (images.length == 0) {
|
285 | 146b6003 | Dimitris Moraitis | // populate image list
|
286 | 146b6003 | Dimitris Moraitis | update_images();
|
287 | 146b6003 | Dimitris Moraitis | }
|
288 | 146b6003 | Dimitris Moraitis | if (flavors.length == 0) {
|
289 | 146b6003 | Dimitris Moraitis | // configure flavors
|
290 | 146b6003 | Dimitris Moraitis | update_flavors();
|
291 | 146b6003 | Dimitris Moraitis | }
|
292 | c53d09e2 | Christodoulos Psaltis | // set the label of the multiple buttons
|
293 | c53d09e2 | Christodoulos Psaltis | $('div.confirm_multiple button.yes').text('Confirm');
|
294 | c53d09e2 | Christodoulos Psaltis | $('div.confirm_multiple button.no').text('Cancel');
|
295 | 82bf6df0 | Dimitris Moraitis | |
296 | 82bf6df0 | Dimitris Moraitis | // reposition multiple confirmation box on window resize
|
297 | 82bf6df0 | Dimitris Moraitis | $(window).resize(function(){
|
298 | 82bf6df0 | Dimitris Moraitis | if (this.innerHeight - 200 < $('#machinesview').height())
|
299 | 82bf6df0 | Dimitris Moraitis | $('.confirm_multiple').addClass('fixed');
|
300 | 82bf6df0 | Dimitris Moraitis | else
|
301 | 82bf6df0 | Dimitris Moraitis | $('.confirm_multiple').removeClass('fixed');
|
302 | 82bf6df0 | Dimitris Moraitis | });
|
303 | 82bf6df0 | Dimitris Moraitis | |
304 | c53d09e2 | Christodoulos Psaltis | // start updating vm list
|
305 | 146b6003 | Dimitris Moraitis | update_vms(UPDATE_INTERVAL);
|
306 | 42f67a2a | Dimitris Moraitis | |
307 | 35b8688f | Christodoulos Psaltis | </script> |