root / snf-cyclades-app / synnefo / ui / new_ui / ui / javascripts / vm-wizard.js @ 27a54f35
History | View | Annotate | Download (14.2 kB)
1 | bb8cc1dc | Olga Brani | ui.wizard = { |
---|---|---|---|
2 | 148aeffe | Athina Bekakou | current_step: undefined, |
3 | bb8cc1dc | Olga Brani | total_step: $('.wizard-content .step').length, |
4 | 148aeffe | Athina Bekakou | current_position: undefined, |
5 | 148aeffe | Athina Bekakou | relocation: undefined, |
6 | eba2aada | Athina Bekakou | btns: {
|
7 | eba2aada | Athina Bekakou | start: undefined, |
8 | eba2aada | Athina Bekakou | close: undefined, |
9 | eba2aada | Athina Bekakou | next: undefined, |
10 | eba2aada | Athina Bekakou | previous: undefined, |
11 | eba2aada | Athina Bekakou | expand_down: undefined |
12 | eba2aada | Athina Bekakou | }, |
13 | 9b6be833 | Olga Brani | speed: 500, |
14 | 935e59b9 | Olga Brani | semaphore:1, |
15 | 1a3be78b | Athina Bekakou | vm: {
|
16 | 1a3be78b | Athina Bekakou | getSize: function(elem) { |
17 | 1a3be78b | Athina Bekakou | if ($(elem).hasClass('small')) { |
18 | 1a3be78b | Athina Bekakou | return 'small'; |
19 | 1a3be78b | Athina Bekakou | } else if ($(elem).hasClass('medium')) { |
20 | 1a3be78b | Athina Bekakou | return 'medium'; |
21 | 1a3be78b | Athina Bekakou | } else if ($(elem).hasClass('large')) { |
22 | 1a3be78b | Athina Bekakou | return 'large'; |
23 | 1a3be78b | Athina Bekakou | } |
24 | adcfc986 | Athina Bekakou | }, |
25 | adcfc986 | Athina Bekakou | |
26 | adcfc986 | Athina Bekakou | |
27 | adcfc986 | Athina Bekakou | pickResources: function(resource) { |
28 | adcfc986 | Athina Bekakou | $('.flavor .with-flavor a:not(.' + resource + ')').removeClass('current'); |
29 | adcfc986 | Athina Bekakou | $('.flavor .with-flavor a.' + resource + '').addClass('current'); |
30 | adcfc986 | Athina Bekakou | }, |
31 | adcfc986 | Athina Bekakou | |
32 | adcfc986 | Athina Bekakou | hideNext: function() { |
33 | adcfc986 | Athina Bekakou | if(ui.wizard.current_step == 2 && $('.flavor a.disabled').hasClass('small')) { |
34 | adcfc986 | Athina Bekakou | return true; |
35 | adcfc986 | Athina Bekakou | } |
36 | adcfc986 | Athina Bekakou | else {
|
37 | adcfc986 | Athina Bekakou | return false; |
38 | adcfc986 | Athina Bekakou | } |
39 | 1a3be78b | Athina Bekakou | } |
40 | 148aeffe | Athina Bekakou | }, |
41 | 1a3be78b | Athina Bekakou | network: {},
|
42 | 1a3be78b | Athina Bekakou | |
43 | bb8cc1dc | Olga Brani | getCurrent: function(){ |
44 | 935e59b9 | Olga Brani | return $('.step').filter('.current').first(); |
45 | bb8cc1dc | Olga Brani | }, |
46 | bb8cc1dc | Olga Brani | |
47 | bb8cc1dc | Olga Brani | getNextStep: function() { |
48 | bb8cc1dc | Olga Brani | return ui.wizard.getCurrent().next();
|
49 | bb8cc1dc | Olga Brani | }, |
50 | bb8cc1dc | Olga Brani | |
51 | bb8cc1dc | Olga Brani | getPreviousStep: function() { |
52 | bb8cc1dc | Olga Brani | return ui.wizard.getCurrent().prev();
|
53 | bb8cc1dc | Olga Brani | }, |
54 | 148aeffe | Athina Bekakou | |
55 | bb8cc1dc | Olga Brani | getScrollOffset: function() { |
56 | bb8cc1dc | Olga Brani | return document.body.scrollTop;
|
57 | bb8cc1dc | Olga Brani | }, |
58 | bb8cc1dc | Olga Brani | |
59 | bb8cc1dc | Olga Brani | submitData: function() { |
60 | 9b6be833 | Olga Brani | console.log('submit data dummy function');
|
61 | 9b6be833 | Olga Brani | }, |
62 | 148aeffe | Athina Bekakou | |
63 | bb8cc1dc | Olga Brani | data_next_array: ['el0', 'el2', 'el4', 'el7'], |
64 | 5bda20fe | Olga Brani | |
65 | bb8cc1dc | Olga Brani | focusFun: function() { |
66 | bb8cc1dc | Olga Brani | $('.firstfocus-' + ui.wizard.current_step + '').first().focus(); |
67 | 770ad9fa | Olga Brani | $('.nav.next').removeAttr('data-next'); |
68 | 770ad9fa | Olga Brani | $('.nav.next').attr('data-next', ui.wizard.data_next_array[ui.wizard.current_step]); |
69 | 5bda20fe | Olga Brani | }, |
70 | 5bda20fe | Olga Brani | |
71 | bb8cc1dc | Olga Brani | move: function(step, pos) { |
72 | 935e59b9 | Olga Brani | ui.wizard.semaphore = 0;
|
73 | 8896dd4e | Olga Brani | $('.actions-bar').hide(); |
74 | 0c26d55c | Athina Bekakou | ui.wizard.focusFun(); |
75 | 0c26d55c | Athina Bekakou | ui.wizard.indicateStep(ui.wizard.current_step); |
76 | 0c26d55c | Athina Bekakou | ui.wizard.setMovementTags(ui.wizard.current_step, ui.wizard.btns.previous, ui.wizard.btns.next); |
77 | bba1c85c | Olga Brani | $('body').css('overflow','hidden'); |
78 | bb8cc1dc | Olga Brani | // the current visible pane
|
79 | 935e59b9 | Olga Brani | var current = this.getCurrent(); |
80 | bb8cc1dc | Olga Brani | // Set next pane position on the right of the current one
|
81 | bb8cc1dc | Olga Brani | // Add current to the next pane, so that it will become
|
82 | bb8cc1dc | Olga Brani | // visible
|
83 | bb8cc1dc | Olga Brani | step.css({ |
84 | bb8cc1dc | Olga Brani | left: pos.toString() + '%' |
85 | bb8cc1dc | Olga Brani | }).addClass("current");
|
86 | bb8cc1dc | Olga Brani | // identify the current scroll position. Use it to
|
87 | bb8cc1dc | Olga Brani | // set next pane top position. We assume all panes
|
88 | bb8cc1dc | Olga Brani | // are within the scroll context of the main window.
|
89 | bb8cc1dc | Olga Brani | step.css({ |
90 | bb8cc1dc | Olga Brani | top: this.getScrollOffset() + 'px' |
91 | bb8cc1dc | Olga Brani | }); |
92 | 8896dd4e | Olga Brani | $('.step').animate({ |
93 | bb8cc1dc | Olga Brani | marginLeft: (-pos).toString() + '%' |
94 | bb8cc1dc | Olga Brani | }, { |
95 | 935e59b9 | Olga Brani | complete: _.bind(function() { |
96 | bb8cc1dc | Olga Brani | // assuming all the following take place
|
97 | bb8cc1dc | Olga Brani | // instantaneously within a single browser
|
98 | bb8cc1dc | Olga Brani | // render cycle, no flickering should occur.
|
99 | bb8cc1dc | Olga Brani | current.removeClass("current");
|
100 | 935e59b9 | Olga Brani | window.scroll(0, 0); |
101 | bb8cc1dc | Olga Brani | step.css({ |
102 | bb8cc1dc | Olga Brani | left: '0', |
103 | bb8cc1dc | Olga Brani | top: '0' |
104 | bb8cc1dc | Olga Brani | }); |
105 | bb8cc1dc | Olga Brani | $('.step').css({ |
106 | bb8cc1dc | Olga Brani | marginLeft: '0' |
107 | bb8cc1dc | Olga Brani | }); |
108 | bba1c85c | Olga Brani | $('body').css('overflow','visible'); |
109 | e4c44fcc | Olga Brani | if (ui.wizard.current_step == 3 ){ |
110 | e4c44fcc | Olga Brani | $('.vm-name input').first().focus(); |
111 | e4c44fcc | Olga Brani | } |
112 | 8896dd4e | Olga Brani | $('.actions-bar').show(); |
113 | 935e59b9 | Olga Brani | ui.wizard.semaphore =1;
|
114 | bb8cc1dc | Olga Brani | }, this)
|
115 | bb8cc1dc | Olga Brani | }); |
116 | 935e59b9 | Olga Brani | |
117 | 148aeffe | Athina Bekakou | }, |
118 | 148aeffe | Athina Bekakou | |
119 | bb8cc1dc | Olga Brani | goNext: function() { |
120 | bb8cc1dc | Olga Brani | var next = ui.wizard.getNextStep();
|
121 | 935e59b9 | Olga Brani | if (ui.wizard.semaphore == 1) { |
122 | 935e59b9 | Olga Brani | ui.wizard.current_step++; |
123 | 935e59b9 | Olga Brani | ui.wizard.move(next, 100);
|
124 | 935e59b9 | Olga Brani | } |
125 | 9b6be833 | Olga Brani | }, |
126 | 148aeffe | Athina Bekakou | |
127 | bb8cc1dc | Olga Brani | goPrev: function() { |
128 | bb8cc1dc | Olga Brani | var prev = ui.wizard.getPreviousStep();
|
129 | 935e59b9 | Olga Brani | if (ui.wizard.semaphore == 1) { |
130 | 935e59b9 | Olga Brani | ui.wizard.current_step--; |
131 | 935e59b9 | Olga Brani | ui.wizard.move(prev, -100);
|
132 | 935e59b9 | Olga Brani | } |
133 | 9b6be833 | Olga Brani | }, |
134 | df5f7743 | Athina Bekakou | |
135 | bb8cc1dc | Olga Brani | initEvents: function() { |
136 | df5f7743 | Athina Bekakou | $(document).keydown(function(e) { |
137 | 1a3be78b | Athina Bekakou | var exp1 = $('.vm-name input').is(':focus') && $('.vm-name input').val().length>0; |
138 | 1a3be78b | Athina Bekakou | var exp2 = $('.form-item input').is(':focus') && $('.form-item input').val().length>0; |
139 | eba2aada | Athina Bekakou | // right arrow keyCode == 39
|
140 | bb8cc1dc | Olga Brani | if ($('.wizard:visible').length != 0) { |
141 | 1a3be78b | Athina Bekakou | if (e.keyCode == 39 && ui.wizard.current_step != (ui.wizard.total_step) &&(!exp1) && (!exp2)) { |
142 | 0c26d55c | Athina Bekakou | ui.wizard.goNext(); |
143 | 0c26d55c | Athina Bekakou | return false; |
144 | 0c26d55c | Athina Bekakou | } |
145 | 0c26d55c | Athina Bekakou | // left arrow keyCode == 37
|
146 | 1a3be78b | Athina Bekakou | else if (e.keyCode == 37 && ui.wizard.current_step != 1 &&(!exp1) &&(!exp2)) { |
147 | 0c26d55c | Athina Bekakou | ui.wizard.goPrev(); |
148 | 0c26d55c | Athina Bekakou | return false; |
149 | 0c26d55c | Athina Bekakou | } |
150 | 0c26d55c | Athina Bekakou | // ESC
|
151 | bb8cc1dc | Olga Brani | else if (e.keyCode == 27 && ui.wizard.current_step == 1) { |
152 | 6fcab23b | Olga Brani | ui.wizard.close(); |
153 | 0c26d55c | Athina Bekakou | } |
154 | 96d15954 | Olga Brani | } |
155 | df5f7743 | Athina Bekakou | }); |
156 | bb8cc1dc | Olga Brani | |
157 | bb8cc1dc | Olga Brani | ui.wizard.btns.next.click(function(e) {
|
158 | e4c44fcc | Olga Brani | if (ui.wizard.current_step == ui.wizard.total_step ){
|
159 | e4c44fcc | Olga Brani | ui.wizard.submitData(); |
160 | e4c44fcc | Olga Brani | ui.wizard.close(); |
161 | e4c44fcc | Olga Brani | return false; |
162 | e4c44fcc | Olga Brani | } |
163 | 0c26d55c | Athina Bekakou | ui.wizard.goNext(); |
164 | e4c44fcc | Olga Brani | }); |
165 | df5f7743 | Athina Bekakou | |
166 | bb8cc1dc | Olga Brani | ui.wizard.btns.previous.click(function(e) {
|
167 | e4c44fcc | Olga Brani | if (ui.wizard.current_step == 1 ){ |
168 | e4c44fcc | Olga Brani | ui.wizard.close(); |
169 | e4c44fcc | Olga Brani | return false; |
170 | e4c44fcc | Olga Brani | } |
171 | 0c26d55c | Athina Bekakou | ui.wizard.goPrev(); |
172 | df5f7743 | Athina Bekakou | }); |
173 | 148aeffe | Athina Bekakou | }, |
174 | df5f7743 | Athina Bekakou | |
175 | 148aeffe | Athina Bekakou | // for the carousel index
|
176 | 0c26d55c | Athina Bekakou | indicateStep: function(step) { |
177 | 188fe5d9 | Olga Brani | $('.wizard .top .sub-menu[data-step]').hide(); |
178 | bb8cc1dc | Olga Brani | $('.wizard .top .sub-menu[data-step=' + step + ']').fadeIn(); |
179 | bb8cc1dc | Olga Brani | |
180 | 148aeffe | Athina Bekakou | $('.nums').children().removeClass('current'); |
181 | bb8cc1dc | Olga Brani | $('.nums li:not(".current")').show().css("display", "inline"); |
182 | bb8cc1dc | Olga Brani | $('.nums li:nth-child(' + ui.wizard.current_step + ')').addClass('current'); |
183 | 55f6cbfe | Athina Bekakou | $('.nums li.current').hide(); |
184 | bb8cc1dc | Olga Brani | $('.nums li.current').fadeIn('slow').css("display", "inline"); |
185 | 61b185d6 | Olga Brani | $('.nums .current').prevAll('li').hide(); |
186 | 8b3ba816 | Athina Bekakou | }, |
187 | 8b3ba816 | Athina Bekakou | |
188 | df5f7743 | Athina Bekakou | // changes the text of next and previous buttons
|
189 | 0c26d55c | Athina Bekakou | setMovementTags: function() { |
190 | bb8cc1dc | Olga Brani | if (ui.wizard.current_step == 1) { |
191 | eba2aada | Athina Bekakou | ui.wizard.btns.previous.find('span').html('CANCEL'); |
192 | eba2aada | Athina Bekakou | ui.wizard.btns.next.find('span').html('NEXT'); |
193 | bb8cc1dc | Olga Brani | } else if (ui.wizard.current_step == ui.wizard.total_step) { |
194 | eba2aada | Athina Bekakou | ui.wizard.btns.previous.find('span').html('PREVIOUS'); |
195 | eba2aada | Athina Bekakou | ui.wizard.btns.next.find('span').html('CREATE'); |
196 | adcfc986 | Athina Bekakou | } else if (ui.wizard.vm.hideNext()){ |
197 | adcfc986 | Athina Bekakou | ui.wizard.btns.next.hide(); |
198 | bb8cc1dc | Olga Brani | } else {
|
199 | eba2aada | Athina Bekakou | ui.wizard.btns.previous.find('span').html('PREVIOUS'); |
200 | eba2aada | Athina Bekakou | ui.wizard.btns.next.find('span').html('NEXT'); |
201 | 8b3ba816 | Athina Bekakou | } |
202 | df5f7743 | Athina Bekakou | }, |
203 | df5f7743 | Athina Bekakou | |
204 | 6fcab23b | Olga Brani | close: function() { |
205 | bb8cc1dc | Olga Brani | $('body').removeClass('with-overlay'); |
206 | bb8cc1dc | Olga Brani | $('.overlay-area').fadeOut(400, function() { |
207 | bb8cc1dc | Olga Brani | $('.overlay-div').hide(); |
208 | 6fcab23b | Olga Brani | }); |
209 | 45d9d315 | Athina Bekakou | ui.wizard.reset(); |
210 | df5f7743 | Athina Bekakou | }, |
211 | df5f7743 | Athina Bekakou | // manually sets elements to a initial state
|
212 | 45d9d315 | Athina Bekakou | reset: function() { |
213 | bb8cc1dc | Olga Brani | ui.wizard.current_step = 1;
|
214 | bba1c85c | Olga Brani | $('.step').removeAttr('style'); |
215 | bb8cc1dc | Olga Brani | $('.bottom').show(); |
216 | bb8cc1dc | Olga Brani | ui.wizard.indicateStep(ui.wizard.current_step); |
217 | bb8cc1dc | Olga Brani | ui.wizard.setMovementTags(); |
218 | bb8cc1dc | Olga Brani | $('.networks-area .more').show(); |
219 | bb8cc1dc | Olga Brani | $('.details').hide(); |
220 | 97ee3637 | Athina Bekakou | $('.vm-name input').val(""); |
221 | 97ee3637 | Athina Bekakou | $('.form-item input').val(""); |
222 | bb8cc1dc | Olga Brani | $('.advanced-conf-options').hide(); |
223 | bb8cc1dc | Olga Brani | $('.snf-color-picker').hide(); |
224 | bb8cc1dc | Olga Brani | ui.wizard.preselectElements('.wizard');
|
225 | 6bd1416f | Athina Bekakou | }, |
226 | 6bd1416f | Athina Bekakou | |
227 | 0c26d55c | Athina Bekakou | expandArea: function() { |
228 | bb8cc1dc | Olga Brani | ui.wizard.btns.expand_down.click(function(e) {
|
229 | bb8cc1dc | Olga Brani | ui.expandArrow(ui.wizard.btns.expand_down); |
230 | bb8cc1dc | Olga Brani | $('.wizard-content').removeAttr('style'); |
231 | bb8cc1dc | Olga Brani | ui.wizard.btns.expand_down.parents('div.advanced-conf-step').find('.advanced-conf-options').stop().slideToggle(600, function() { |
232 | bb8cc1dc | Olga Brani | if ($('.advanced-conf-options:visible').length != 0) { |
233 | bb8cc1dc | Olga Brani | ui.wizard.btns.expand_down.find('.snf-arrow-down .snf-arrow-up').removeClass('snf-arrow-down').addClass('snf-arrow-up'); |
234 | bb8cc1dc | Olga Brani | } else {
|
235 | bb8cc1dc | Olga Brani | ui.wizard.btns.expand_down.find('.snf-arrow-down .snf-arrow-up').addClass('snf-arrow-down'); |
236 | bb8cc1dc | Olga Brani | } |
237 | bb8cc1dc | Olga Brani | |
238 | bb8cc1dc | Olga Brani | }); |
239 | bb8cc1dc | Olga Brani | }) |
240 | d53ad190 | Athina Bekakou | }, |
241 | 0c26d55c | Athina Bekakou | focusCustom: function(el, step) { |
242 | 9b6be833 | Olga Brani | el.focus(); |
243 | bb8cc1dc | Olga Brani | el.attr('data-step', step);
|
244 | ca3c8b6e | Athina Bekakou | }, |
245 | ca3c8b6e | Athina Bekakou | |
246 | 0c26d55c | Athina Bekakou | preselectElements: function(area) { |
247 | bb8cc1dc | Olga Brani | $(area).find('.current').not('.preselected').removeClass('current'); |
248 | bb8cc1dc | Olga Brani | $(area).find('.preselected').not('.current').addClass('current'); |
249 | bb8cc1dc | Olga Brani | $(area).find('.custom.dropdown.medium a:first').addClass('current'); // to fix |
250 | bb8cc1dc | Olga Brani | $(area).find('.snf-radio-checked').not('.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked'); |
251 | bb8cc1dc | Olga Brani | $(area).find('.snf-radio-unchecked.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked'); |
252 | bb8cc1dc | Olga Brani | $(area).find('.snf-checkbox-checked').not('.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked'); |
253 | bb8cc1dc | Olga Brani | $(area).find('.snf-checkbox-unchecked.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked'); |
254 | bb8cc1dc | Olga Brani | $('.expand-link').find('.snf-arrow-up.preselected').toggleClass('snf-arrow-up snf-arrow-down'); |
255 | bba1c85c | Olga Brani | $('.step-1').addClass('current'); |
256 | f6cfe41c | Athina Bekakou | |
257 | f6cfe41c | Athina Bekakou | $('.os li').hide(); |
258 | f6cfe41c | Athina Bekakou | $('#vm-wizard .top .sub-menu[data-step=1] .preselected').data('img-type') |
259 | f6cfe41c | Athina Bekakou | $('.os').find('.'+$('#vm-wizard .top .sub-menu[data-step=1] .preselected').data('img-type')).show(); |
260 | ffaabee9 | Olga Brani | }, |
261 | ffaabee9 | Olga Brani | |
262 | f6cfe41c | Athina Bekakou | |
263 | f6cfe41c | Athina Bekakou | showImageCategory: function(imagesCategory) { |
264 | f6cfe41c | Athina Bekakou | $(imagesCategory).closest('.sub-menu').find('.current').removeClass('current'); |
265 | f6cfe41c | Athina Bekakou | $(imagesCategory).addClass('current'); |
266 | f6cfe41c | Athina Bekakou | $('.os li').hide(); |
267 | f6cfe41c | Athina Bekakou | $('.os .details').hide(); |
268 | f6cfe41c | Athina Bekakou | selectedImages = $(imagesCategory).data('img-type'); |
269 | f6cfe41c | Athina Bekakou | $('.os').find('.'+selectedImages).fadeIn(); |
270 | f6cfe41c | Athina Bekakou | |
271 | f6cfe41c | Athina Bekakou | |
272 | 17118c18 | Athina Bekakou | } |
273 | df5f7743 | Athina Bekakou | |
274 | 148aeffe | Athina Bekakou | } |
275 | 148aeffe | Athina Bekakou | |
276 | 148aeffe | Athina Bekakou | |
277 | bb8cc1dc | Olga Brani | $(document).ready(function() { |
278 | 148aeffe | Athina Bekakou | |
279 | bb8cc1dc | Olga Brani | /*
|
280 | 9b6be833 | Olga Brani | Various functions for vm creation wizard
|
281 | 9b6be833 | Olga Brani | */
|
282 | 9b6be833 | Olga Brani | |
283 | bb8cc1dc | Olga Brani | /* step functions */
|
284 | bb8cc1dc | Olga Brani | /* step-1: Pick OS */
|
285 | 96e40ea0 | Olga Brani | $('.wizard .os > li').keydown(function(e) { |
286 | 96e40ea0 | Olga Brani | if(e.keyCode == 13) { |
287 | 96e40ea0 | Olga Brani | $(this).trigger("click", true); |
288 | 96e40ea0 | Olga Brani | e.preventDefault(); |
289 | 96e40ea0 | Olga Brani | } |
290 | 96e40ea0 | Olga Brani | }); |
291 | 96e40ea0 | Olga Brani | |
292 | 96e40ea0 | Olga Brani | $('.wizard .os > li').click(function(e, wasEnterKey) { |
293 | bb8cc1dc | Olga Brani | e.preventDefault(); |
294 | 96e40ea0 | Olga Brani | if ( $(this).hasClass('current') && wasEnterKey) { |
295 | 96e40ea0 | Olga Brani | ui.wizard.goNext(); |
296 | 96e40ea0 | Olga Brani | } |
297 | bb8cc1dc | Olga Brani | $('.wizard .os >li').removeClass('current'); |
298 | bb8cc1dc | Olga Brani | $(this).addClass('current'); |
299 | 6f4b6de9 | Olga Brani | }); |
300 | 9b6be833 | Olga Brani | |
301 | bb8cc1dc | Olga Brani | $('.os .btn-col a').click(function(e) { |
302 | bb8cc1dc | Olga Brani | e.preventDefault(); |
303 | bb8cc1dc | Olga Brani | e.stopPropagation(); |
304 | bb8cc1dc | Olga Brani | $(this).toggleClass('current'); |
305 | bb8cc1dc | Olga Brani | var self = this; |
306 | bb8cc1dc | Olga Brani | $(this).parents('li').find('.details').stop().slideToggle(); |
307 | bb8cc1dc | Olga Brani | }); |
308 | 9b6be833 | Olga Brani | |
309 | bb8cc1dc | Olga Brani | |
310 | bb8cc1dc | Olga Brani | /* step-2: Select flavor */
|
311 | adcfc986 | Athina Bekakou | var disabledElems = $('.flavor a.disabled'); |
312 | adcfc986 | Athina Bekakou | var disabledElemsNum = $('.flavor a.disabled').length; |
313 | 1a3be78b | Athina Bekakou | if(disabledElemsNum>0) { |
314 | adcfc986 | Athina Bekakou | var size;
|
315 | 1a3be78b | Athina Bekakou | for(i=0; i<disabledElemsNum; i++) { |
316 | adcfc986 | Athina Bekakou | size = ui.wizard.vm.getSize(disabledElems.get(i)); |
317 | adcfc986 | Athina Bekakou | $('.wizard .sub-menu[data-step=2]').find('a[data-size=' + size + ']').removeClass('current').addClass('disabled'); |
318 | adcfc986 | Athina Bekakou | $('#vm-wizard .flavor').find('.'+size).removeClass('current preselected'); |
319 | adcfc986 | Athina Bekakou | if(size == 'small') { |
320 | adcfc986 | Athina Bekakou | $('#vm-wizard .flavor .vm-storage-selection a').removeClass('current preselected'); |
321 | adcfc986 | Athina Bekakou | |
322 | adcfc986 | Athina Bekakou | } |
323 | 1a3be78b | Athina Bekakou | } |
324 | 1a3be78b | Athina Bekakou | } |
325 | 1a3be78b | Athina Bekakou | $('.wizard .sub-menu a[data-size]:not(.disabled)').on("click", function(e) { |
326 | bb8cc1dc | Olga Brani | // e.preventDefault();
|
327 | bb8cc1dc | Olga Brani | $(this).parents('.sub-menu').find('a').removeClass('current'); |
328 | bb8cc1dc | Olga Brani | $(this).addClass('current'); |
329 | adcfc986 | Athina Bekakou | ui.wizard.vm.pickResources($(this).data('size')); |
330 | bb8cc1dc | Olga Brani | }); |
331 | bb8cc1dc | Olga Brani | |
332 | 1a3be78b | Athina Bekakou | $('.wizard .flavor .options:not(".vm-storage-selection") a:not(.disabled)').click(function(e) { |
333 | bb8cc1dc | Olga Brani | // e.preventDefault();
|
334 | bb8cc1dc | Olga Brani | $('.wizard .sub-menu a[data-size]').removeClass('current'); |
335 | bb8cc1dc | Olga Brani | $(this).parents('.options').find('a').removeClass('current'); |
336 | bb8cc1dc | Olga Brani | $(this).addClass('current'); |
337 | 1a3be78b | Athina Bekakou | var size = ui.wizard.vm.getSize(this); |
338 | 1a3be78b | Athina Bekakou | var count = $('.wizard .step-2 .options.with-flavor .' + size + '.current').length; |
339 | bb8cc1dc | Olga Brani | if (count == 3) { |
340 | bb8cc1dc | Olga Brani | $('.wizard .sub-menu[data-step=2]').find('a[data-size=' + size + ']').addClass('current'); |
341 | bb8cc1dc | Olga Brani | } |
342 | bb8cc1dc | Olga Brani | }); |
343 | bb8cc1dc | Olga Brani | |
344 | bb8cc1dc | Olga Brani | $('.wizard .flavor .options.vm-storage-selection a').click(function(e) { |
345 | bb8cc1dc | Olga Brani | // e.preventDefault();
|
346 | bb8cc1dc | Olga Brani | $(this).parents('.options').find('a').removeClass('current'); |
347 | bb8cc1dc | Olga Brani | $(this).addClass('current'); |
348 | bb8cc1dc | Olga Brani | }); |
349 | 17118c18 | Athina Bekakou | |
350 | 0a891fe0 | Olga Brani | $('.flavor .options a').hover( |
351 | bb8cc1dc | Olga Brani | function() {
|
352 | 0a891fe0 | Olga Brani | var paragraph = $(this).parents('.options-bar').siblings('.title').find('p'); |
353 | 0a891fe0 | Olga Brani | var text = $(this).data('help'); |
354 | 0a891fe0 | Olga Brani | paragraph.html(text); |
355 | bb8cc1dc | Olga Brani | paragraph.css('visibility', 'visible'); |
356 | 0a891fe0 | Olga Brani | }, function() {
|
357 | 0a891fe0 | Olga Brani | var paragraph = $(this).parents('.options-bar').siblings('.title').find('p'); |
358 | bb8cc1dc | Olga Brani | paragraph.css('visibility', 'hidden'); |
359 | bb8cc1dc | Olga Brani | } |
360 | bb8cc1dc | Olga Brani | ); |
361 | 1a3be78b | Athina Bekakou | |
362 | 1a3be78b | Athina Bekakou | |
363 | bb8cc1dc | Olga Brani | /* step-3: Advanced options */
|
364 | 0c26d55c | Athina Bekakou | |
365 | 0c26d55c | Athina Bekakou | // reaction li.click
|
366 | bb8cc1dc | Olga Brani | $('.advanced-conf-options .checkbox').click(function(e) { |
367 | bb8cc1dc | Olga Brani | e.preventDefault(); |
368 | bb8cc1dc | Olga Brani | var self = this; |
369 | bb8cc1dc | Olga Brani | var checkbox = $(this).find('.check'); |
370 | bb8cc1dc | Olga Brani | ui.changeCheckboxState(checkbox); |
371 | bb8cc1dc | Olga Brani | if ($(this).hasClass('has-more')) { |
372 | bb8cc1dc | Olga Brani | $(this).next('.more').stop().slideToggle(400, function() { |
373 | bb8cc1dc | Olga Brani | if ($(self).next('.more:visible').length != 0) { |
374 | bb8cc1dc | Olga Brani | $(checkbox).find('span').removeClass('snf-checkbox-unchecked').addClass('snf-checkbox-checked'); |
375 | bb8cc1dc | Olga Brani | } else {
|
376 | bb8cc1dc | Olga Brani | $(checkbox).find('span').removeClass('snf-checkbox-checked').addClass('snf-checkbox-unchecked'); |
377 | bb8cc1dc | Olga Brani | } |
378 | bb8cc1dc | Olga Brani | }); |
379 | bb8cc1dc | Olga Brani | } |
380 | bb8cc1dc | Olga Brani | }); |
381 | bb8cc1dc | Olga Brani | |
382 | bb8cc1dc | Olga Brani | |
383 | bb8cc1dc | Olga Brani | |
384 | bb8cc1dc | Olga Brani | // reaction a.click
|
385 | bb8cc1dc | Olga Brani | $('.checkbox .check').click(function(e) { |
386 | 0c26d55c | Athina Bekakou | e.stopPropagation(); |
387 | 0c26d55c | Athina Bekakou | var self = this; |
388 | bb8cc1dc | Olga Brani | if ($(this).closest('.checkbox').hasClass('has-more')) { |
389 | bb8cc1dc | Olga Brani | $(this).parent().next('.more').stop().slideToggle(400, function() { |
390 | bb8cc1dc | Olga Brani | if ($(self).parent().next('.more:visible').length != 0) { |
391 | bb8cc1dc | Olga Brani | $(self).find('span').removeClass('snf-checkbox-unchecked').addClass('snf-checkbox-checked'); |
392 | bb8cc1dc | Olga Brani | } else {
|
393 | bb8cc1dc | Olga Brani | $(self).find('span').removeClass('snf-checkbox-checked').addClass('snf-checkbox-unchecked'); |
394 | bb8cc1dc | Olga Brani | } |
395 | bb8cc1dc | Olga Brani | }); |
396 | bb8cc1dc | Olga Brani | } |
397 | 0c26d55c | Athina Bekakou | }); |
398 | 9b6be833 | Olga Brani | |
399 | bb8cc1dc | Olga Brani | $('.show-add-tag').click(function(e) { |
400 | bb8cc1dc | Olga Brani | e.preventDefault(); |
401 | bb8cc1dc | Olga Brani | $(this).parents('.tags-area').find('.snf-color-picker').slideDown('slow', function() { |
402 | bb8cc1dc | Olga Brani | $('#hide-add-tag-dummy').scrollintoview({ |
403 | bb8cc1dc | Olga Brani | 'duration': 'slow' |
404 | bb8cc1dc | Olga Brani | }); |
405 | bb8cc1dc | Olga Brani | }); |
406 | bb8cc1dc | Olga Brani | ui.colorPickerVisible = 1;
|
407 | bb8cc1dc | Olga Brani | }); |
408 | 9b6be833 | Olga Brani | |
409 | bb8cc1dc | Olga Brani | $('.hide-add-tag').click(function(e) { |
410 | bb8cc1dc | Olga Brani | e.preventDefault(); |
411 | bb8cc1dc | Olga Brani | $(this).parents('.tags-area').find('.snf-color-picker').slideUp(400, function() { |
412 | bb8cc1dc | Olga Brani | $('.show-add-tag').first().scrollintoview({ |
413 | bb8cc1dc | Olga Brani | 'duration': 'slow' |
414 | bb8cc1dc | Olga Brani | }); |
415 | bb8cc1dc | Olga Brani | ui.colorPickerVisible = 0;
|
416 | bb8cc1dc | Olga Brani | }); |
417 | bb8cc1dc | Olga Brani | }); |
418 | 6bd1416f | Athina Bekakou | |
419 | bb8cc1dc | Olga Brani | /* end of step functions */
|
420 | 62462e34 | Athina Bekakou | |
421 | bb8cc1dc | Olga Brani | /* navigation and numbers functions */
|
422 | bb8cc1dc | Olga Brani | $('.nav.previous').focus(function(e) { |
423 | bb8cc1dc | Olga Brani | $(this).addClass('active'); |
424 | bb8cc1dc | Olga Brani | }); |
425 | d53ad190 | Athina Bekakou | |
426 | bb8cc1dc | Olga Brani | $('.nav.previous').focusout(function(e) { |
427 | bb8cc1dc | Olga Brani | $(this).removeClass('active'); |
428 | d53ad190 | Athina Bekakou | |
429 | bb8cc1dc | Olga Brani | }); |
430 | d53ad190 | Athina Bekakou | |
431 | bb8cc1dc | Olga Brani | $('.sub-menu[data-step=2] li:last').find('a').focusout(function(e) { |
432 | bb8cc1dc | Olga Brani | $('.step-2').find('.dropdown a:first').focus(); |
433 | d53ad190 | Athina Bekakou | |
434 | bb8cc1dc | Olga Brani | }); |
435 | d53ad190 | Athina Bekakou | |
436 | bb8cc1dc | Olga Brani | $('.os .name-col').focus(function(e) { |
437 | bb8cc1dc | Olga Brani | $(this).parents('li').addClass('hover'); |
438 | bb8cc1dc | Olga Brani | }); |
439 | bb8cc1dc | Olga Brani | |
440 | bb8cc1dc | Olga Brani | $('.os .name-col').focusout(function(e) { |
441 | bb8cc1dc | Olga Brani | $(this).parents('li').removeClass('hover'); |
442 | bb8cc1dc | Olga Brani | }); |
443 | d53ad190 | Athina Bekakou | |
444 | eba2aada | Athina Bekakou | |
445 | bb8cc1dc | Olga Brani | /* end of navigation and numbers functions */
|
446 | eba2aada | Athina Bekakou | |
447 | 62462e34 | Athina Bekakou | |
448 | bb8cc1dc | Olga Brani | /* focus and tabs functionality */
|
449 | 62462e34 | Athina Bekakou | |
450 | bb8cc1dc | Olga Brani | $('a').keyup(function(e) { |
451 | 935e59b9 | Olga Brani | |
452 | bb8cc1dc | Olga Brani | var self = this; |
453 | bb8cc1dc | Olga Brani | if (e.keyCode == 9 || e.which == 9) { |
454 | 935e59b9 | Olga Brani | if (e.shiftKey) {
|
455 | 935e59b9 | Olga Brani | } else {
|
456 | bb8cc1dc | Olga Brani | //Focus next input
|
457 | bb8cc1dc | Olga Brani | if ($(self).attr('data-next')) { |
458 | bb8cc1dc | Olga Brani | $(self).focusout(function(e) { |
459 | bb8cc1dc | Olga Brani | var classname = $(self).data('next'); |
460 | bb8cc1dc | Olga Brani | $('.' + classname + '').first().focus(); |
461 | bb8cc1dc | Olga Brani | }); |
462 | bb8cc1dc | Olga Brani | } |
463 | 770ad9fa | Olga Brani | } |
464 | 5bda20fe | Olga Brani | } |
465 | bb8cc1dc | Olga Brani | }) |
466 | 62462e34 | Athina Bekakou | |
467 | bb8cc1dc | Olga Brani | /* end of focus and tabs functionality */
|
468 | d53ad190 | Athina Bekakou | |
469 | 9b6be833 | Olga Brani | $('#vm-wizard').find('a').click(function(e) { |
470 | 9b6be833 | Olga Brani | e.preventDefault(); |
471 | 9b6be833 | Olga Brani | }); |
472 | bb8cc1dc | Olga Brani | ui.wizard.current_step = 1;
|
473 | 9b6be833 | Olga Brani | ui.wizard.btns.previous = $('.bottom').find('.nav.prev'); |
474 | 9b6be833 | Olga Brani | ui.wizard.btns.next = $('.bottom').find('.nav.next'); |
475 | bb8cc1dc | Olga Brani | ui.wizard.btns.expand_down = $('.adv-main').find('.expand-link'); |
476 | bb8cc1dc | Olga Brani | ui.wizard.btns.close = $('#vm-wizard').find('.close'); |
477 | 0c26d55c | Athina Bekakou | ui.wizard.initEvents(); |
478 | 0c26d55c | Athina Bekakou | ui.wizard.setMovementTags(); |
479 | 0c26d55c | Athina Bekakou | ui.wizard.expandArea(); |
480 | 6fcab23b | Olga Brani | ui.wizard.btns.close.click(function() {
|
481 | 6fcab23b | Olga Brani | ui.wizard.close(); |
482 | 9b6be833 | Olga Brani | }); |
483 | f6cfe41c | Athina Bekakou | |
484 | f6cfe41c | Athina Bekakou | $('.os .system-images').show(); |
485 | f6cfe41c | Athina Bekakou | |
486 | f6cfe41c | Athina Bekakou | $('#vm-wizard .top .sub-menu[data-step=1] a').click(function() { |
487 | f6cfe41c | Athina Bekakou | ui.wizard.showImageCategory(this);
|
488 | f6cfe41c | Athina Bekakou | }) |
489 | 148aeffe | Athina Bekakou | }); |