Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / ui / new_ui / ui / javascripts / common.js @ 788833c7

History | View | Annotate | Download (7.2 kB)

1 b3c1328b Olga Brani
ui = {};
2 b3c1328b Olga Brani
3 98714f8a Olga Brani
4 98714f8a Olga Brani
ui.closeDiv = function(closeEl, divToCloseClass) {
5 d3bfabe8 Olga Brani
    closeEl.click(function(e){
6 d3bfabe8 Olga Brani
        e.preventDefault();
7 d3bfabe8 Olga Brani
        $(this).parents(divToCloseClass).slideUp('slow');
8 d3bfabe8 Olga Brani
    });
9 b3c1328b Olga Brani
}
10 b3c1328b Olga Brani
11 98714f8a Olga Brani
12 98714f8a Olga Brani
// set lt-sidebar height 
13 98714f8a Olga Brani
ui.setSidebarHeight = function(){
14 d3bfabe8 Olga Brani
    var WindowHeight = $(window).height();
15 d3bfabe8 Olga Brani
    var h1= WindowHeight - $('.header').outerHeight();
16 d3bfabe8 Olga Brani
    var h2= $('.main.details').outerHeight();
17 e106fc8f Olga Brani
    
18 d3bfabe8 Olga Brani
    if (h2>h1) {
19 d3bfabe8 Olga Brani
        var ltSidebarHeight = h2;
20 d3bfabe8 Olga Brani
    } else {
21 d3bfabe8 Olga Brani
        var ltSidebarHeight = h1;
22 d3bfabe8 Olga Brani
    }
23 d3bfabe8 Olga Brani
    $('.lt-sidebar').height(ltSidebarHeight);
24 98714f8a Olga Brani
}
25 98714f8a Olga Brani
26 5e62e9c1 Olga Brani
ui.cntCheckbox = function(){ 
27 d3bfabe8 Olga Brani
    var all = $('.checkbox-checked').length;
28 ce385b85 Olga Brani
    var running = $('.checkbox-checked').parents('.container').find('.running').length;
29 ce385b85 Olga Brani
    var stopped = $('.checkbox-checked').parents('.container').find('.stopped').length;
30 5e62e9c1 Olga Brani
    $('.header .main-actions li a').removeClass('active');  
31 5e62e9c1 Olga Brani
    if ( (running*stopped) > 0 ){          
32 5e62e9c1 Olga Brani
         $('.header .main-actions li.both a').addClass('active');   
33 5e62e9c1 Olga Brani
         $('.header .main-actions li.single a').removeClass('active');   
34 5e62e9c1 Olga Brani
    } else {
35 5e62e9c1 Olga Brani
        if (running > 0) {
36 d3bfabe8 Olga Brani
            $('.header .main-actions li.both a').addClass('active');   
37 d3bfabe8 Olga Brani
            $('.header .main-actions li.running a').addClass('active');   
38 5e62e9c1 Olga Brani
        } else if (stopped>0) {
39 d3bfabe8 Olga Brani
            $('.header .main-actions li.both a').addClass('active');   
40 d3bfabe8 Olga Brani
            $('.header .main-actions li.stopped a').addClass('active');   
41 5e62e9c1 Olga Brani
42 5e62e9c1 Olga Brani
        } else {
43 5e62e9c1 Olga Brani
44 5e62e9c1 Olga Brani
        }
45 5e62e9c1 Olga Brani
        if ( all > 1 ) {
46 d3bfabe8 Olga Brani
            $('.header .main-actions li.single a').removeClass('active');   
47 5e62e9c1 Olga Brani
        }
48 5e62e9c1 Olga Brani
49 5e62e9c1 Olga Brani
    }
50 5e62e9c1 Olga Brani
}
51 a18bd0ed Olga Brani
52 a18bd0ed Olga Brani
ui.setCheckedVMBgColor = function(){
53 788833c7 Olga Brani
54 d3bfabe8 Olga Brani
    if ($('.check span').length >0) {
55 a18bd0ed Olga Brani
        $('.more_checkbox .checkbox-checked').parents('.container').addClass('set-bg');
56 a18bd0ed Olga Brani
    } else {
57 a18bd0ed Olga Brani
        $('.more_checkbox').parents('.container').removeClass('set-bg');    
58 a18bd0ed Olga Brani
    }
59 a18bd0ed Olga Brani
60 a18bd0ed Olga Brani
}
61 a18bd0ed Olga Brani
62 a18bd0ed Olga Brani
63 788833c7 Olga Brani
ui.entitiesActionsInit = function(){
64 5e62e9c1 Olga Brani
65 d3bfabe8 Olga Brani
    // if VM is stopped hide connect option 
66 5b2f3030 Olga Brani
    $('.vms .container .stopped').parents('.container').find('.options .connect').hide();
67 5b2f3030 Olga Brani
    
68 321113f5 Olga Brani
    $('.entities li .container').mouseenter(
69 5e62e9c1 Olga Brani
      function (e) {
70 c9655064 Olga Brani
        $(this).find('.img').stop(true, true).fadeOut({
71 c9655064 Olga Brani
            'duration':200,
72 c9655064 Olga Brani
        });
73 c9655064 Olga Brani
        $(this).find('.options, .check').stop(true, true).addClass('active');
74 c9655064 Olga Brani
        $(this).find('.options').stop(true, true).fadeIn(500); 
75 c9655064 Olga Brani
        $(this).stop(true, true).addClass('set-border');
76 c9655064 Olga Brani
        $(this).find('.visible-info em').stop(true, true).each(function(){
77 d3bfabe8 Olga Brani
            var emLeft = $(this).position();
78 d3bfabe8 Olga Brani
            $(this).animate({
79 d3bfabe8 Olga Brani
            left: -emLeft.left,
80 c9655064 Olga Brani
            }, 300);        
81 d3bfabe8 Olga Brani
        }) 
82 5e62e9c1 Olga Brani
      }
83 5e62e9c1 Olga Brani
    );
84 5e62e9c1 Olga Brani
85 321113f5 Olga Brani
    $('.entities li .container').mouseleave(
86 5e62e9c1 Olga Brani
        function(e){
87 c9655064 Olga Brani
            $(this).stop(true, true).removeClass('set-border');
88 c9655064 Olga Brani
            $(this).find('.options').stop(true, true).fadeOut(200); 
89 c9655064 Olga Brani
            $(this).find('.img').stop(true, true).fadeIn('slow');
90 c9655064 Olga Brani
            $(this).find('.custom_checkbox:not(.checkbox-checked)').parents('.check').stop(true, true).removeClass('active');
91 c9655064 Olga Brani
            $(this).find('.visible-info em').stop(true, true).each(function(){
92 a6f667a2 Olga Brani
                $(this).animate({
93 a6f667a2 Olga Brani
                 left: 0,
94 a6f667a2 Olga Brani
                }, 300);        
95 d3bfabe8 Olga Brani
            }) 
96 d3bfabe8 Olga Brani
         }
97 5e62e9c1 Olga Brani
    );
98 5e62e9c1 Olga Brani
99 321113f5 Olga Brani
    $('.entities .container .check').click(function(e){
100 5e62e9c1 Olga Brani
        e.preventDefault();
101 5b2f3030 Olga Brani
102 5e62e9c1 Olga Brani
        var checkbox = $(this).find('.custom_checkbox');
103 5e62e9c1 Olga Brani
104 5e62e9c1 Olga Brani
        checkbox.toggleClass('checkbox-checked');
105 5e62e9c1 Olga Brani
        
106 5e62e9c1 Olga Brani
        if(checkbox.hasClass('checkbox-checked')){
107 5e62e9c1 Olga Brani
            checkbox.html('b');
108 d3bfabe8 Olga Brani
            $(this).parents('.container').addClass('set-bg');
109 c9655064 Olga Brani
            $(this).addClass('active');
110 5e62e9c1 Olga Brani
        }
111 5e62e9c1 Olga Brani
        else{
112 5e62e9c1 Olga Brani
            checkbox.html('a'); 
113 d3bfabe8 Olga Brani
            $(this).parents('.container').removeClass('set-bg');
114 2ef21a75 Olga Brani
            
115 5e62e9c1 Olga Brani
      
116 5e62e9c1 Olga Brani
        }
117 5b2f3030 Olga Brani
118 a6f667a2 Olga Brani
        
119 c2c9975a Olga Brani
120 5e62e9c1 Olga Brani
        ui.cntCheckbox();
121 5e62e9c1 Olga Brani
    })
122 d3bfabe8 Olga Brani
   
123 5e62e9c1 Olga Brani
}
124 01fa9e32 Olga Brani
125 788833c7 Olga Brani
ui.editable = function(){
126 788833c7 Olga Brani
127 788833c7 Olga Brani
/*
128 788833c7 Olga Brani
resetForm hides save and cancel buttons, 
129 788833c7 Olga Brani
text input and shows input-txt. resetForm does not alter 
130 788833c7 Olga Brani
input-txt content.
131 788833c7 Olga Brani
*/
132 788833c7 Olga Brani
133 788833c7 Olga Brani
    function resetForm(e, elem) {
134 788833c7 Olga Brani
        var el = elem.parents('.editable');
135 788833c7 Olga Brani
        el.find('input[type="text"]').hide();
136 788833c7 Olga Brani
        el.find('a.cancel, a.save').hide();
137 788833c7 Olga Brani
        el.find('a.edit').show();
138 788833c7 Olga Brani
        el.find('.input-txt').show();
139 788833c7 Olga Brani
    }
140 788833c7 Olga Brani
141 788833c7 Olga Brani
/* 
142 788833c7 Olga Brani
showForm hides input-txt, shows save and cancel buttons and
143 788833c7 Olga Brani
set input value to input-txt content.
144 788833c7 Olga Brani
*/
145 788833c7 Olga Brani
    function showForm(e,elem) {
146 788833c7 Olga Brani
        e.stopPropagation(); 
147 788833c7 Olga Brani
        e.preventDefault();
148 788833c7 Olga Brani
        var el = elem.parents('.editable'); 
149 788833c7 Olga Brani
        el.find('input[type="text"]').val(el.find('.input-txt').html());
150 788833c7 Olga Brani
        el.find('input[type="text"]').show();
151 788833c7 Olga Brani
        el.find('a.cancel, a.save').show();
152 788833c7 Olga Brani
        elem.hide();
153 788833c7 Olga Brani
        el.find('.input-txt').hide();
154 788833c7 Olga Brani
155 788833c7 Olga Brani
    }
156 788833c7 Olga Brani
157 788833c7 Olga Brani
/*
158 788833c7 Olga Brani
setValue sets input-txt value to the input value.
159 788833c7 Olga Brani
Makes sure that the input value is not empty.
160 788833c7 Olga Brani
TODO:
161 788833c7 Olga Brani
Ajax request to submit form
162 788833c7 Olga Brani
*/
163 788833c7 Olga Brani
164 788833c7 Olga Brani
    function setValue(elem) {
165 788833c7 Olga Brani
        var el = elem.parents('.editable');
166 788833c7 Olga Brani
        if( el.find('input[type="text"]').val() ) {
167 788833c7 Olga Brani
            el.find('.input-txt').html(el.find('input[type="text"]').val());
168 788833c7 Olga Brani
        }
169 788833c7 Olga Brani
    }
170 788833c7 Olga Brani
171 788833c7 Olga Brani
172 788833c7 Olga Brani
    $('.editable .edit').click(function(e){
173 788833c7 Olga Brani
        showForm(e, $(this));
174 788833c7 Olga Brani
    })
175 788833c7 Olga Brani
176 788833c7 Olga Brani
    $('.editable .cancel').click(function(e){
177 788833c7 Olga Brani
        e.stopPropagation();
178 788833c7 Olga Brani
        e.preventDefault();
179 788833c7 Olga Brani
        resetForm(e, $(this));
180 788833c7 Olga Brani
    })
181 788833c7 Olga Brani
182 788833c7 Olga Brani
    $('.editable .save').click(function(e){
183 788833c7 Olga Brani
        e.stopPropagation();
184 788833c7 Olga Brani
        e.preventDefault();
185 788833c7 Olga Brani
        setValue($(this));
186 788833c7 Olga Brani
        resetForm(e, $(this));
187 788833c7 Olga Brani
188 788833c7 Olga Brani
    })
189 788833c7 Olga Brani
190 788833c7 Olga Brani
191 788833c7 Olga Brani
    $('.editable input[type="text"]').click(function(e){
192 788833c7 Olga Brani
        e.stopPropagation();
193 788833c7 Olga Brani
    })
194 788833c7 Olga Brani
195 788833c7 Olga Brani
    $('.editable input[type="text"]').keyup(function(e){
196 788833c7 Olga Brani
        if(e.keyCode == 13) { 
197 788833c7 Olga Brani
            setValue($(this));
198 788833c7 Olga Brani
            resetForm(e, $(this));
199 788833c7 Olga Brani
            
200 788833c7 Olga Brani
        }
201 788833c7 Olga Brani
    
202 788833c7 Olga Brani
    })
203 788833c7 Olga Brani
204 788833c7 Olga Brani
    $('html').click(function(e) {
205 788833c7 Olga Brani
        resetForm(e, $('.editable a.cancel'));
206 788833c7 Olga Brani
    });
207 788833c7 Olga Brani
208 788833c7 Olga Brani
    
209 788833c7 Olga Brani
210 788833c7 Olga Brani
}
211 788833c7 Olga Brani
212 f8f24db6 Olga Brani
213 b3c1328b Olga Brani
$(document).ready(function(){
214 b3c1328b Olga Brani
215 d3bfabe8 Olga Brani
    ui.closeDiv($('.info .close'), '.info');
216 d3bfabe8 Olga Brani
    ui.closeDiv($('.dummy-navigation .close'), '.dummy-navigation');
217 d3bfabe8 Olga Brani
218 d3bfabe8 Olga Brani
    $('.dummy-navigation .our').click(function(e){
219 d3bfabe8 Olga Brani
        e.preventDefault();
220 d3bfabe8 Olga Brani
        $('.ours.'+$(this).data('our')).toggle();
221 d3bfabe8 Olga Brani
        $(this).toggleClass('open');
222 d3bfabe8 Olga Brani
    });
223 d3bfabe8 Olga Brani
224 d3bfabe8 Olga Brani
    ui.setSidebarHeight();
225 d3bfabe8 Olga Brani
    $('.select-os li').click(function(e){
226 d3bfabe8 Olga Brani
        $('.select-os li').removeClass('selected');
227 d3bfabe8 Olga Brani
        $(this).addClass('selected');
228 d3bfabe8 Olga Brani
    })
229 d3bfabe8 Olga Brani
230 d3bfabe8 Olga Brani
    
231 d3bfabe8 Olga Brani
    if ($('.overlay').length >0 ){
232 d3bfabe8 Olga Brani
        $('body').addClass('with-overlay');
233 d3bfabe8 Olga Brani
    }
234 d3bfabe8 Olga Brani
235 d3bfabe8 Olga Brani
    $('.new-btn a.current').click(function(e){
236 d3bfabe8 Olga Brani
        e.preventDefault();
237 d3bfabe8 Olga Brani
    })
238 d3bfabe8 Olga Brani
239 788833c7 Olga Brani
    ui.entitiesActionsInit();
240 788833c7 Olga Brani
    ui.editable();
241 d3bfabe8 Olga Brani
242 d3bfabe8 Olga Brani
    $('.main-actions li a').click(function(e){
243 d3bfabe8 Olga Brani
        if (!($(this).hasClass('active'))) {
244 d3bfabe8 Olga Brani
            e.preventDefault();
245 d3bfabe8 Olga Brani
        }
246 d3bfabe8 Olga Brani
    })
247 788833c7 Olga Brani
    $('.scroll-pane').jScrollPane();
248 f2126967 Olga Brani
249 f2126967 Olga Brani
    // TODO: more general function
250 f2126967 Olga Brani
    $('.has-overlay a').click(function(e){
251 f2126967 Olga Brani
        e.preventDefault();
252 f2126967 Olga Brani
        if ($(this).hasClass('active')){
253 f2126967 Olga Brani
            $('.content').append('<div class="overlay-modal overlay"><a href="vm_list_v1.html" class="close" title="cancel vm creation">close</a></div>');
254 f2126967 Olga Brani
            $($(this).parents('.has-overlay').data('overlay-id')).fadeIn('slow');
255 f2126967 Olga Brani
        }
256 f2126967 Olga Brani
    })
257 f2126967 Olga Brani
258 f2126967 Olga Brani
259 f2126967 Olga Brani
    $('.main-actions li a').click(function(e){
260 f2126967 Olga Brani
        if (!($(this).hasClass('active'))) {
261 f2126967 Olga Brani
            e.preventDefault();
262 f2126967 Olga Brani
        }
263 f2126967 Olga Brani
    })
264 f2126967 Olga Brani
265 f2126967 Olga Brani
266 98714f8a Olga Brani
})
267 b3c1328b Olga Brani
268 98714f8a Olga Brani
$(window).resize(function(e){
269 d3bfabe8 Olga Brani
    ui.setSidebarHeight();
270 e106fc8f Olga Brani
    $('.scroll-pane').jScrollPane();
271 b3c1328b Olga Brani
})