Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / ui / new_ui / ui / javascripts / common.js @ 03bcb595

History | View | Annotate | Download (11.5 kB)

1 5acf3fcf Olga Brani
/*
2 5acf3fcf Olga Brani
* Various functions that will be used throughout all templates
3 5acf3fcf Olga Brani
* are inside ui Object
4 5acf3fcf Olga Brani
*/
5 b3c1328b Olga Brani
6 5acf3fcf Olga Brani
ui = {};
7 98714f8a Olga Brani
8 5acf3fcf Olga Brani
/* when closeEl el is clicked, its parent with class divToCloseClass slidesUp */
9 98714f8a Olga Brani
ui.closeDiv = function(closeEl, divToCloseClass) {
10 d3bfabe8 Olga Brani
    closeEl.click(function(e){
11 d3bfabe8 Olga Brani
        e.preventDefault();
12 d3bfabe8 Olga Brani
        $(this).parents(divToCloseClass).slideUp('slow');
13 d3bfabe8 Olga Brani
    });
14 b3c1328b Olga Brani
}
15 b3c1328b Olga Brani
16 98714f8a Olga Brani
17 9569cdc8 Olga Brani
ui.trimChars = function( str, chars) {
18 9569cdc8 Olga Brani
    if ( str.length>chars){
19 5acf3fcf Olga Brani
        return $.trim(str).substring(0, chars)+ "...";
20 9569cdc8 Olga Brani
    } else {
21 9569cdc8 Olga Brani
        return str;
22 9569cdc8 Olga Brani
    }
23 9569cdc8 Olga Brani
}
24 9569cdc8 Olga Brani
25 5acf3fcf Olga Brani
/* sets lt-sidebar height. Useful for jscrollpane scrollbar */
26 98714f8a Olga Brani
ui.setSidebarHeight = function(){
27 d3bfabe8 Olga Brani
    var WindowHeight = $(window).height();
28 d3bfabe8 Olga Brani
    var h1= WindowHeight - $('.header').outerHeight();
29 5acf3fcf Olga Brani
    var h2= $('.main').outerHeight();
30 5acf3fcf Olga Brani
    $('.lt-sidebar').height((h2>h1) ? h2 : h1);
31 98714f8a Olga Brani
}
32 98714f8a Olga Brani
33 5acf3fcf Olga Brani
34 5acf3fcf Olga Brani
/* 
35 5acf3fcf Olga Brani
* Logic for Entities actions. Present in items_list pages
36 5acf3fcf Olga Brani
* Available categories are :
37 5acf3fcf Olga Brani
*  - both/single ( for multiple entities/single entities)
38 5acf3fcf Olga Brani
*  - running/stopped ( for running/stopped entities)
39 5acf3fcf Olga Brani
*  - permanent ( for entities always active )
40 5acf3fcf Olga Brani
*/
41 5acf3fcf Olga Brani
ui.entitiesActionsEnabled = function(){
42 8db75456 Athina Bekakou
    var all = $('.snf-checkbox-checked').length;
43 8db75456 Athina Bekakou
    var running = $('.snf-checkbox-checked').parents('.container').find('.running').length;
44 8db75456 Athina Bekakou
    var stopped = $('.snf-checkbox-checked').parents('.container').find('.stopped').length;
45 6e3d008c Olga Brani
    $('.header .main-actions li:not(.permanent) a').removeClass('active');  
46 5e62e9c1 Olga Brani
    if ( (running*stopped) > 0 ){          
47 e5c8c342 Olga Brani
         $('.main-actions li.both a').addClass('active');
48 e5c8c342 Olga Brani
         $('.main-actions li.single a').removeClass('active');
49 5e62e9c1 Olga Brani
    } else {
50 5e62e9c1 Olga Brani
        if (running > 0) {
51 e5c8c342 Olga Brani
            $('.main-actions li.both a').addClass('active');
52 e5c8c342 Olga Brani
            $('.main-actions li.running a').addClass('active');
53 5e62e9c1 Olga Brani
        } else if (stopped>0) {
54 e5c8c342 Olga Brani
            $('.main-actions li.both a').addClass('active');
55 e5c8c342 Olga Brani
            $('.main-actions li.stopped a').addClass('active');
56 5e62e9c1 Olga Brani
        }
57 5e62e9c1 Olga Brani
        if ( all > 1 ) {
58 e5c8c342 Olga Brani
            $('.main-actions li.single a').removeClass('active');
59 5e62e9c1 Olga Brani
        }
60 5e62e9c1 Olga Brani
    }
61 5e62e9c1 Olga Brani
}
62 a18bd0ed Olga Brani
63 788833c7 Olga Brani
ui.entitiesActionsInit = function(){
64 5e62e9c1 Olga Brani
65 321113f5 Olga Brani
    $('.entities li .container').mouseleave(
66 5e62e9c1 Olga Brani
        function(e){
67 5acf3fcf Olga Brani
            $(this).find('.snf-checkbox-unchecked').parents('.check').removeClass('active');
68 d3bfabe8 Olga Brani
         }
69 5e62e9c1 Olga Brani
    );
70 5e62e9c1 Olga Brani
71 321113f5 Olga Brani
    $('.entities .container .check').click(function(e){
72 5e62e9c1 Olga Brani
        e.preventDefault();
73 8db75456 Athina Bekakou
        var checkbox = $(this).find('.snf-checkbox-unchecked, .snf-checkbox-checked');
74 8db75456 Athina Bekakou
        checkbox.toggleClass('snf-checkbox-unchecked');
75 8db75456 Athina Bekakou
        checkbox.toggleClass('snf-checkbox-checked');
76 5e62e9c1 Olga Brani
        
77 8db75456 Athina Bekakou
        if(checkbox.hasClass('snf-checkbox-checked')){
78 d3bfabe8 Olga Brani
            $(this).parents('.container').addClass('set-bg');
79 c9655064 Olga Brani
            $(this).addClass('active');
80 5e62e9c1 Olga Brani
        }
81 5e62e9c1 Olga Brani
        else{
82 d3bfabe8 Olga Brani
            $(this).parents('.container').removeClass('set-bg');
83 5e62e9c1 Olga Brani
        }
84 5acf3fcf Olga Brani
        ui.entitiesActionsEnabled();
85 5e62e9c1 Olga Brani
    })
86 d3bfabe8 Olga Brani
   
87 5e62e9c1 Olga Brani
}
88 01fa9e32 Olga Brani
89 5acf3fcf Olga Brani
/*
90 5acf3fcf Olga Brani
* In order for the editable value functionality to work, the html markup
91 5acf3fcf Olga Brani
* should be:
92 5acf3fcf Olga Brani
    <div class="editable">
93 5acf3fcf Olga Brani
        <span class="input-txt">editable value</span>
94 5acf3fcf Olga Brani
        <input type="text">
95 5acf3fcf Olga Brani
        <a href="#" class="edit">edit</a>
96 5acf3fcf Olga Brani
        <a href="#" class="save">save</a>
97 5acf3fcf Olga Brani
        <a href="#" class="cancel">cancel</a>
98 5acf3fcf Olga Brani
    </div>
99 5acf3fcf Olga Brani
*/
100 788833c7 Olga Brani
ui.editable = function(){
101 788833c7 Olga Brani
102 788833c7 Olga Brani
/*
103 5acf3fcf Olga Brani
* resetForm hides save and cancel buttons,
104 5acf3fcf Olga Brani
* text input and shows input-txt. resetForm does not alter
105 5acf3fcf Olga Brani
* input-txt content.
106 788833c7 Olga Brani
*/
107 788833c7 Olga Brani
108 788833c7 Olga Brani
    function resetForm(e, elem) {
109 788833c7 Olga Brani
        var el = elem.parents('.editable');
110 788833c7 Olga Brani
        el.find('input[type="text"]').hide();
111 788833c7 Olga Brani
        el.find('a.cancel, a.save').hide();
112 5acf3fcf Olga Brani
        el.find('a.edit, .input-txt').show();
113 788833c7 Olga Brani
    }
114 788833c7 Olga Brani
115 788833c7 Olga Brani
/* 
116 5acf3fcf Olga Brani
* showForm hides input-txt, shows save and cancel buttons and
117 5acf3fcf Olga Brani
* sets input value to input-txt content.
118 788833c7 Olga Brani
*/
119 788833c7 Olga Brani
    function showForm(e,elem) {
120 788833c7 Olga Brani
        e.stopPropagation(); 
121 788833c7 Olga Brani
        e.preventDefault();
122 788833c7 Olga Brani
        var el = elem.parents('.editable'); 
123 788833c7 Olga Brani
        el.find('input[type="text"]').val(el.find('.input-txt').html());
124 788833c7 Olga Brani
        el.find('input[type="text"]').show();
125 788833c7 Olga Brani
        el.find('a.cancel, a.save').show();
126 788833c7 Olga Brani
        elem.hide();
127 788833c7 Olga Brani
        el.find('.input-txt').hide();
128 788833c7 Olga Brani
129 788833c7 Olga Brani
    }
130 788833c7 Olga Brani
131 788833c7 Olga Brani
/*
132 788833c7 Olga Brani
setValue sets input-txt value to the input value.
133 788833c7 Olga Brani
Makes sure that the input value is not empty.
134 788833c7 Olga Brani
TODO:
135 788833c7 Olga Brani
Ajax request to submit form
136 788833c7 Olga Brani
*/
137 788833c7 Olga Brani
138 788833c7 Olga Brani
    function setValue(elem) {
139 788833c7 Olga Brani
        var el = elem.parents('.editable');
140 788833c7 Olga Brani
        if( el.find('input[type="text"]').val() ) {
141 788833c7 Olga Brani
            el.find('.input-txt').html(el.find('input[type="text"]').val());
142 788833c7 Olga Brani
        }
143 788833c7 Olga Brani
    }
144 788833c7 Olga Brani
145 788833c7 Olga Brani
146 788833c7 Olga Brani
    $('.editable .edit').click(function(e){
147 788833c7 Olga Brani
        showForm(e, $(this));
148 788833c7 Olga Brani
    })
149 788833c7 Olga Brani
150 788833c7 Olga Brani
    $('.editable .cancel').click(function(e){
151 788833c7 Olga Brani
        e.stopPropagation();
152 788833c7 Olga Brani
        e.preventDefault();
153 788833c7 Olga Brani
        resetForm(e, $(this));
154 788833c7 Olga Brani
    })
155 788833c7 Olga Brani
156 788833c7 Olga Brani
    $('.editable .save').click(function(e){
157 788833c7 Olga Brani
        e.stopPropagation();
158 788833c7 Olga Brani
        e.preventDefault();
159 788833c7 Olga Brani
        setValue($(this));
160 788833c7 Olga Brani
        resetForm(e, $(this));
161 788833c7 Olga Brani
162 788833c7 Olga Brani
    })
163 788833c7 Olga Brani
164 788833c7 Olga Brani
165 788833c7 Olga Brani
    $('.editable input[type="text"]').click(function(e){
166 788833c7 Olga Brani
        e.stopPropagation();
167 788833c7 Olga Brani
    })
168 788833c7 Olga Brani
169 788833c7 Olga Brani
    $('.editable input[type="text"]').keyup(function(e){
170 788833c7 Olga Brani
        if(e.keyCode == 13) { 
171 788833c7 Olga Brani
            setValue($(this));
172 788833c7 Olga Brani
            resetForm(e, $(this));
173 788833c7 Olga Brani
            
174 788833c7 Olga Brani
        }
175 788833c7 Olga Brani
    
176 788833c7 Olga Brani
    })
177 788833c7 Olga Brani
178 788833c7 Olga Brani
    $('html').click(function(e) {
179 788833c7 Olga Brani
        resetForm(e, $('.editable a.cancel'));
180 788833c7 Olga Brani
    });
181 788833c7 Olga Brani
182 9569cdc8 Olga Brani
}
183 9569cdc8 Olga Brani
184 5acf3fcf Olga Brani
/* TODO: better overlay functionality */
185 9569cdc8 Olga Brani
ui.overlay = function() {
186 9569cdc8 Olga Brani
    $('[data-overlay-id]').click(function(e){
187 9569cdc8 Olga Brani
        e.preventDefault();
188 9569cdc8 Olga Brani
        var el = $(this);
189 9569cdc8 Olga Brani
        // main-actions a need to be active to trigger overlay
190 9569cdc8 Olga Brani
        if ( (el.parents('.main-actions').find('li a.active').length == 0) && (el.parents('.main-actions').length > 0) ) {
191 9569cdc8 Olga Brani
            return false;
192 9569cdc8 Olga Brani
        }
193 9569cdc8 Olga Brani
        var id = el.data('overlay-id');
194 03bcb595 Olga Brani
195 9569cdc8 Olga Brani
        $('.overlay-area').show();
196 9569cdc8 Olga Brani
        $(id).slideDown('slow');
197 9569cdc8 Olga Brani
    });
198 9569cdc8 Olga Brani
199 788833c7 Olga Brani
200 788833c7 Olga Brani
}
201 788833c7 Olga Brani
202 3820a3de Athina Bekakou
//permits only one checkbox to be checked in a ul
203 3820a3de Athina Bekakou
ui.checkAction = function(checkbox) {
204 3820a3de Athina Bekakou
        var otherChecked = checkbox.closest('li').siblings('li').find('span.snf-checkbox-checked').length;
205 3820a3de Athina Bekakou
        if(otherChecked!=0){
206 3820a3de Athina Bekakou
            checkbox.toggleClass('snf-checkbox-checked');
207 3820a3de Athina Bekakou
            checkbox.toggleClass('snf-checkbox-unchecked');
208 3820a3de Athina Bekakou
        }
209 3820a3de Athina Bekakou
        
210 3820a3de Athina Bekakou
}
211 3820a3de Athina Bekakou
212 3820a3de Athina Bekakou
213 3820a3de Athina Bekakou
// when user moves a vm or network icon (list view)
214 3820a3de Athina Bekakou
ui.placementByUser = function() {
215 3820a3de Athina Bekakou
    if($('.sortable').length != 0) {
216 3820a3de Athina Bekakou
        $( ".sortable" ).sortable({
217 3820a3de Athina Bekakou
            items: "> li:not(:last)",
218 3820a3de Athina Bekakou
            stop: function(event, ui) {
219 3820a3de Athina Bekakou
                $.map($(this).find('li'), function(el) {
220 3820a3de Athina Bekakou
                            return $(el).attr('data-order', $(el).index());
221 3820a3de Athina Bekakou
                        });
222 3820a3de Athina Bekakou
            }
223 3820a3de Athina Bekakou
        });
224 3820a3de Athina Bekakou
225 3820a3de Athina Bekakou
        $( ".sortable" ).disableSelection(); //i think unnecessary
226 3820a3de Athina Bekakou
    }
227 3820a3de Athina Bekakou
}
228 3820a3de Athina Bekakou
229 3820a3de Athina Bekakou
//create vm
230 3820a3de Athina Bekakou
ui.pickFlavor = function(flavorSelection) {
231 3820a3de Athina Bekakou
        ui.select_flavor = 1;
232 3820a3de Athina Bekakou
        console.log(flavorSelection);
233 3820a3de Athina Bekakou
        var classes = $(flavorSelection).attr('class').split(" ");
234 3820a3de Athina Bekakou
        // the second class is: 'small_flavor' or 'medium_flavor' or 'large_flavor'
235 3820a3de Athina Bekakou
        
236 3820a3de Athina Bekakou
        $(flavorSelection).parent('li').siblings('li').find('a.chosen_flavor').removeClass('chosen_flavor');
237 3820a3de Athina Bekakou
        $(flavorSelection).addClass('chosen_flavor');
238 3820a3de Athina Bekakou
        $('.select-flavor').find('dl.cpus span.current, dl.ram span.current, dl.disk span.current').removeClass('current');
239 3820a3de Athina Bekakou
        $('.select-flavor').find('.'+classes[1]).addClass('current');
240 3820a3de Athina Bekakou
241 3820a3de Athina Bekakou
}
242 3820a3de Athina Bekakou
243 3820a3de Athina Bekakou
244 3820a3de Athina Bekakou
ui.pickResources = function(resource) {
245 3820a3de Athina Bekakou
        $(resource).parents('dl').find('span').removeClass('current');
246 3820a3de Athina Bekakou
        $(resource).addClass('current');
247 3820a3de Athina Bekakou
        if(ui.select_flavor == 1){
248 3820a3de Athina Bekakou
            if(!$(resource).parents('dl').hasClass('storage')){
249 3820a3de Athina Bekakou
            $('.lt-sidebar').find('a.chosen_flavor').removeClass('chosen_flavor');
250 3820a3de Athina Bekakou
            select_flavor = 0;
251 3820a3de Athina Bekakou
            }
252 3820a3de Athina Bekakou
        }
253 3820a3de Athina Bekakou
    }
254 3820a3de Athina Bekakou
255 3820a3de Athina Bekakou
256 3820a3de Athina Bekakou
ui.netOptions = function(option) {
257 3820a3de Athina Bekakou
    var checkbox = $(option).find('.snf-checkbox-checked, .snf-checkbox-unchecked');
258 3820a3de Athina Bekakou
    var list = $(option).closest('ul');
259 3820a3de Athina Bekakou
    
260 3820a3de Athina Bekakou
    ui.checkAction(checkbox); //allazw to checkbox p pataw
261 3820a3de Athina Bekakou
    if(list.hasClass('subnet_options')){
262 3820a3de Athina Bekakou
        checkedBefore = $(option).closest('li').siblings('li').find('span.snf-checkbox-checked');
263 3820a3de Athina Bekakou
        if($(checkedBefore).closest('li').find('a').hasClass('manual'))
264 3820a3de Athina Bekakou
        {
265 3820a3de Athina Bekakou
            $(checkedBefore).closest('li').find('.manual_sub').hide();
266 3820a3de Athina Bekakou
        }
267 3820a3de Athina Bekakou
        ui.checkAction(checkedBefore); //allazw ta alla checkboxes
268 3820a3de Athina Bekakou
        
269 3820a3de Athina Bekakou
        if($(option).hasClass('manual')) {
270 f8f24db6 Olga Brani
271 3820a3de Athina Bekakou
            if($(checkbox).hasClass('snf-checkbox-unchecked')) {
272 3820a3de Athina Bekakou
                $(option).closest('span').find('.manual_sub').hide();
273 3820a3de Athina Bekakou
            }
274 3820a3de Athina Bekakou
            else {
275 3820a3de Athina Bekakou
                $(option).closest('span').find('.manual_sub').show();
276 3820a3de Athina Bekakou
            }
277 3820a3de Athina Bekakou
        }
278 3820a3de Athina Bekakou
    }
279 3820a3de Athina Bekakou
    else if($(option).closest('li').hasClass('dhcp_option')) {
280 3820a3de Athina Bekakou
        if($(checkbox).hasClass('snf-checkbox-unchecked')) {
281 3820a3de Athina Bekakou
            $('.network_options').find('.subnet_options').hide();
282 3820a3de Athina Bekakou
        }
283 3820a3de Athina Bekakou
        else {
284 3820a3de Athina Bekakou
            $('.network_options').find('.subnet_options').show();
285 3820a3de Athina Bekakou
        }
286 3820a3de Athina Bekakou
    }
287 3820a3de Athina Bekakou
}
288 3820a3de Athina Bekakou
    
289 9569cdc8 Olga Brani
290 b3c1328b Olga Brani
$(document).ready(function(){
291 b3c1328b Olga Brani
292 5acf3fcf Olga Brani
    ui.setSidebarHeight();
293 d3bfabe8 Olga Brani
    ui.closeDiv($('.info .close'), '.info');
294 5acf3fcf Olga Brani
    ui.entitiesActionsInit();
295 5acf3fcf Olga Brani
    ui.editable();
296 5acf3fcf Olga Brani
    ui.overlay();
297 d3bfabe8 Olga Brani
298 d3bfabe8 Olga Brani
299 d3bfabe8 Olga Brani
    $('.select-os li').click(function(e){
300 d3bfabe8 Olga Brani
        $('.select-os li').removeClass('selected');
301 d3bfabe8 Olga Brani
        $(this).addClass('selected');
302 d3bfabe8 Olga Brani
    })
303 d3bfabe8 Olga Brani
304 d3bfabe8 Olga Brani
    
305 d3bfabe8 Olga Brani
    if ($('.overlay').length >0 ){
306 d3bfabe8 Olga Brani
        $('body').addClass('with-overlay');
307 d3bfabe8 Olga Brani
    }
308 d3bfabe8 Olga Brani
309 d3bfabe8 Olga Brani
    $('.new-btn a.current').click(function(e){
310 d3bfabe8 Olga Brani
        e.preventDefault();
311 d3bfabe8 Olga Brani
    })
312 d3bfabe8 Olga Brani
313 d3bfabe8 Olga Brani
    $('.main-actions li a').click(function(e){
314 d3bfabe8 Olga Brani
        if (!($(this).hasClass('active'))) {
315 d3bfabe8 Olga Brani
            e.preventDefault();
316 d3bfabe8 Olga Brani
        }
317 d3bfabe8 Olga Brani
    })
318 788833c7 Olga Brani
    $('.scroll-pane').jScrollPane();
319 f2126967 Olga Brani
320 9569cdc8 Olga Brani
    $('.main .items-list .title em').each(function(){
321 5acf3fcf Olga Brani
        $(this).html( ui.trimChars($(this).html(), 20) );
322 9569cdc8 Olga Brani
323 9569cdc8 Olga Brani
    })
324 9569cdc8 Olga Brani
325 f2126967 Olga Brani
    $('.main-actions li a').click(function(e){
326 f2126967 Olga Brani
        if (!($(this).hasClass('active'))) {
327 f2126967 Olga Brani
            e.preventDefault();
328 f2126967 Olga Brani
        }
329 f2126967 Olga Brani
    })
330 9569cdc8 Olga Brani
    $('.overlay-area .close').click(function(e){
331 9569cdc8 Olga Brani
        e.preventDefault();
332 9569cdc8 Olga Brani
        $(this).parents('.overlay-area').hide();
333 03bcb595 Olga Brani
        $(this).parents('.overlay-area').find($('.overlay-div')).hide();
334 9569cdc8 Olga Brani
    })
335 f2126967 Olga Brani
336 182f3fe2 Olga Brani
    $('.browse-files').click(function(e){
337 182f3fe2 Olga Brani
        e.preventDefault();
338 182f3fe2 Olga Brani
    })
339 182f3fe2 Olga Brani
340 846f5913 Olga Brani
    Dropzone.options.filesDropzone = {
341 182f3fe2 Olga Brani
        dictDefaultMessage:'',
342 182f3fe2 Olga Brani
        clickable: '.browse-files',
343 846f5913 Olga Brani
        previewsContainer: '.dropzone-files',
344 846f5913 Olga Brani
        createImageThumbnails: false,
345 846f5913 Olga Brani
        dictRemoveFile: "snf-Remove file",
346 182f3fe2 Olga Brani
    };
347 182f3fe2 Olga Brani
348 342fa48b Olga Brani
349 342fa48b Olga Brani
    $('.main .files').magnificPopup({
350 342fa48b Olga Brani
        delegate: 'a.show.image',
351 342fa48b Olga Brani
        type: 'image',
352 342fa48b Olga Brani
        tLoading: 'Loading image #%curr%...',
353 342fa48b Olga Brani
        mainClass: 'mfp-img-mobile',
354 342fa48b Olga Brani
        gallery: {
355 342fa48b Olga Brani
            enabled: true,
356 342fa48b Olga Brani
            navigateByImgClick: true,
357 342fa48b Olga Brani
            preload: [0,1] // Will preload 0 - before current, and 1 after the current image
358 342fa48b Olga Brani
        },
359 342fa48b Olga Brani
        image: {
360 342fa48b Olga Brani
            tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
361 342fa48b Olga Brani
            titleSrc: function(item) {
362 342fa48b Olga Brani
                return item.el.data('title');
363 342fa48b Olga Brani
            }
364 342fa48b Olga Brani
        }
365 342fa48b Olga Brani
    });
366 342fa48b Olga Brani
367 3820a3de Athina Bekakou
368 3820a3de Athina Bekakou
    // create vm
369 3820a3de Athina Bekakou
    // choose resources one by one
370 3820a3de Athina Bekakou
    ui.select_flavor =0;
371 3820a3de Athina Bekakou
    $('.select-flavor dl span').click(function(e){
372 3820a3de Athina Bekakou
        e.preventDefault();
373 3820a3de Athina Bekakou
        ui.pickResources(this);
374 3820a3de Athina Bekakou
        
375 3820a3de Athina Bekakou
        
376 3820a3de Athina Bekakou
    });
377 3820a3de Athina Bekakou
378 3820a3de Athina Bekakou
    // create vm
379 3820a3de Athina Bekakou
    // if a predefined flavor has been selected from the user, it highlights the proper resources 
380 3820a3de Athina Bekakou
    $('.lt-sidebar li a.flavor_selection').click(function(e){
381 3820a3de Athina Bekakou
        e.preventDefault();
382 3820a3de Athina Bekakou
        ui.pickFlavor(this);        
383 3820a3de Athina Bekakou
    });
384 3820a3de Athina Bekakou
385 3820a3de Athina Bekakou
    // create network
386 3820a3de Athina Bekakou
    // checkbox: basic reaction on click (checked, unchecked)
387 3820a3de Athina Bekakou
    $('.network_options .check').click(function(e){
388 3820a3de Athina Bekakou
        e.preventDefault();
389 3820a3de Athina Bekakou
        ui.netOptions(this);
390 3820a3de Athina Bekakou
    })
391 3820a3de Athina Bekakou
  
392 3820a3de Athina Bekakou
    ui.placementByUser();
393 03bcb595 Olga Brani
    $('.os .btn-col a').click( function(e){
394 03bcb595 Olga Brani
        e.preventDefault();
395 03bcb595 Olga Brani
        $(this).toggleClass('current');
396 03bcb595 Olga Brani
        $(this).parents('li').find('.details').slideToggle();
397 03bcb595 Olga Brani
    })
398 3820a3de Athina Bekakou
399 98714f8a Olga Brani
})
400 b3c1328b Olga Brani
401 9569cdc8 Olga Brani
402 98714f8a Olga Brani
$(window).resize(function(e){
403 d3bfabe8 Olga Brani
    ui.setSidebarHeight();
404 e106fc8f Olga Brani
    $('.scroll-pane').jScrollPane();
405 b3c1328b Olga Brani
})