root / snf-astakos-app / astakos / im / static / im / js / quotas.js @ 2934e509
History | View | Annotate | Download (8.7 kB)
1 | bdc1c103 | Olga Brani | function group_form_show_resources(el){ |
---|---|---|---|
2 | bdc1c103 | Olga Brani | |
3 | bdc1c103 | Olga Brani | el.addClass('selected');
|
4 | bdc1c103 | Olga Brani | var id = el.attr('id'); |
5 | bdc1c103 | Olga Brani | $('.quotas-form .group').each(function() { |
6 | bdc1c103 | Olga Brani | if( $(this).hasClass(id) ) { |
7 | 59728d4e | Olga Brani | |
8 | 3cbd5e47 | Olga Brani | $(this).appendTo('.visible'); |
9 | bdc1c103 | Olga Brani | $(this).show('slow'); |
10 | bdc1c103 | Olga Brani | $(this).find('input')[0].focus() |
11 | bdc1c103 | Olga Brani | } |
12 | bdc1c103 | Olga Brani | }); |
13 | 5841646f | Olga Brani | if ($('.quotas-form .with-info .with-errors input[type="text"]')){ |
14 | 5841646f | Olga Brani | $(this)[0].focus(); |
15 | 5841646f | Olga Brani | } |
16 | 5841646f | Olga Brani | |
17 | bdc1c103 | Olga Brani | } |
18 | bdc1c103 | Olga Brani | |
19 | bdc1c103 | Olga Brani | |
20 | bdc1c103 | Olga Brani | function bytesToSize2(bytes) { |
21 | bdc1c103 | Olga Brani | var sizes = [ 'n/a', 'bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; |
22 | bdc1c103 | Olga Brani | var i = +Math.floor(Math.log(bytes) / Math.log(1024)); |
23 | bdc1c103 | Olga Brani | return (bytes / Math.pow(1024, i)).toFixed( 0 ) + sizes[ isNaN( bytes ) ? 0 : i+1 ]; |
24 | bdc1c103 | Olga Brani | } |
25 | bdc1c103 | Olga Brani | |
26 | 1b866d9e | Olga Brani | $(document).ready(function() { |
27 | 1b866d9e | Olga Brani | |
28 | bdc1c103 | Olga Brani | |
29 | bdc1c103 | Olga Brani | |
30 | bdc1c103 | Olga Brani | // ugly fix to transfer data easily
|
31 | bdc1c103 | Olga Brani | $('.with-info input[name^="is_selected_"]').each(function() { |
32 | bdc1c103 | Olga Brani | $(this).parents('.form-row').hide(); |
33 | bdc1c103 | Olga Brani | }); |
34 | bdc1c103 | Olga Brani | |
35 | 1b866d9e | Olga Brani | $('.quotas-form ul li a').click(function(e){ |
36 | bdc1c103 | Olga Brani | |
37 | bdc1c103 | Olga Brani | // check the hidden input field
|
38 | 30dd9e0e | Olga Brani | $(this).siblings('input[type="hidden"]').val("1"); |
39 | bdc1c103 | Olga Brani | |
40 | bdc1c103 | Olga Brani | // get the hidden input field without the proxy
|
41 | bdc1c103 | Olga Brani | // and check the python form field
|
42 | bdc1c103 | Olga Brani | hidden_name = $(this).siblings('input[type="hidden"]').attr('name').replace("proxy_",""); |
43 | 30dd9e0e | Olga Brani | $("input[name='"+hidden_name+"']").val("1"); |
44 | bdc1c103 | Olga Brani | |
45 | bdc1c103 | Olga Brani | // prevent extra actions if it is checked
|
46 | ed2f0452 | Olga Brani | if ( $(this).hasClass('selected')){ |
47 | ed2f0452 | Olga Brani | e.preventDefault(); |
48 | bdc1c103 | Olga Brani | } else {
|
49 | bdc1c103 | Olga Brani | |
50 | bdc1c103 | Olga Brani | // show the relevant fieldsets
|
51 | bdc1c103 | Olga Brani | group_form_show_resources($(this)); |
52 | 1b866d9e | Olga Brani | } |
53 | 1b866d9e | Olga Brani | }); |
54 | 1b866d9e | Olga Brani | |
55 | bdc1c103 | Olga Brani | |
56 | bdc1c103 | Olga Brani | |
57 | bdc1c103 | Olga Brani | |
58 | bdc1c103 | Olga Brani | |
59 | bdc1c103 | Olga Brani | |
60 | 1b866d9e | Olga Brani | $('.quotas-form .group .delete').click(function(e){ |
61 | bdc1c103 | Olga Brani | |
62 | 7c76af95 | Olga Brani | e.preventDefault(); |
63 | bdc1c103 | Olga Brani | |
64 | bdc1c103 | Olga Brani | // clear form fields
|
65 | 1b866d9e | Olga Brani | $(this).siblings('fieldset').find('input').val(''); |
66 | 1b866d9e | Olga Brani | |
67 | bdc1c103 | Olga Brani | // clear errors
|
68 | bdc1c103 | Olga Brani | $(this).siblings('fieldset').find('.form-row').removeClass('with-errors'); |
69 | bdc1c103 | Olga Brani | |
70 | bdc1c103 | Olga Brani | // hide relevant fieldset
|
71 | f932b578 | Olga Brani | $(this).parents('.group').hide('slow', function() { |
72 | 3cbd5e47 | Olga Brani | $(this).appendTo('.not-visible'); |
73 | f932b578 | Olga Brani | }); |
74 | bdc1c103 | Olga Brani | |
75 | bdc1c103 | Olga Brani | group_class = $(this).parents('.group').attr('class').replace('group ', ''); |
76 | bdc1c103 | Olga Brani | |
77 | bdc1c103 | Olga Brani | // unselect group icon
|
78 | 1b866d9e | Olga Brani | $('.quotas-form ul li a').each(function() { |
79 | bdc1c103 | Olga Brani | if($(this).attr('id')==group_class) { |
80 | 1b866d9e | Olga Brani | $(this).removeClass('selected'); |
81 | 30dd9e0e | Olga Brani | $(this).siblings('input[type="hidden"]').val('0'); |
82 | bdc1c103 | Olga Brani | |
83 | bdc1c103 | Olga Brani | // get the hidden input field without the proxy
|
84 | bdc1c103 | Olga Brani | // and check the python form field
|
85 | bdc1c103 | Olga Brani | hidden_name = $(this).siblings('input[type="hidden"]').attr('name').replace("proxy_",""); |
86 | 30dd9e0e | Olga Brani | $("input[name='"+hidden_name+"']").val('0'); |
87 | bdc1c103 | Olga Brani | |
88 | 1b866d9e | Olga Brani | } |
89 | 1b866d9e | Olga Brani | }); |
90 | 93b6cb50 | Olga Brani | |
91 | bdc1c103 | Olga Brani | // clear hidden fields
|
92 | bdc1c103 | Olga Brani | $(this).siblings('fieldset').find('input[type="text"]').each(function() { |
93 | bdc1c103 | Olga Brani | hidden_name = $(this).attr('name').replace("_proxy",""); |
94 | bdc1c103 | Olga Brani | hidden_input = $("input[name='"+hidden_name+"']"); |
95 | bdc1c103 | Olga Brani | hidden_input.val('');
|
96 | bdc1c103 | Olga Brani | }); |
97 | bdc1c103 | Olga Brani | |
98 | f932b578 | Olga Brani | |
99 | 1b866d9e | Olga Brani | }); |
100 | 2934e509 | Olga Brani | |
101 | bdc1c103 | Olga Brani | |
102 | bdc1c103 | Olga Brani | // if you fill _proxy fields do stuff
|
103 | dcd1c383 | Olga Brani | $('.quotas-form .quota input[type="text"]').change(function () { |
104 | dcd1c383 | Olga Brani | |
105 | 595dde70 | Olga Brani | if ( $('#icons span.info').hasClass('error-msg')){ |
106 | 595dde70 | Olga Brani | $('#icons span.info').find('span').html('Here you add resources to your Project. Each resource you specify here, will be granted to *EACH* user of this Project. So the total resources will be: <Total number of members> * <amount_of_resource> for each resource.'); |
107 | 595dde70 | Olga Brani | } |
108 | 6abd262c | Olga Brani | |
109 | dcd1c383 | Olga Brani | // get value from input
|
110 | dcd1c383 | Olga Brani | var value = $(this).val(); |
111 | 2934e509 | Olga Brani | |
112 | 6abd262c | Olga Brani | //get input name without _proxy
|
113 | 6abd262c | Olga Brani | hidden_name = $(this).attr('name').replace("_proxy",""); |
114 | 6abd262c | Olga Brani | var hidden_input = $("input[name='"+hidden_name+"']"); |
115 | 6abd262c | Olga Brani | |
116 | bdc1c103 | Olga Brani | if (value) {
|
117 | 2934e509 | Olga Brani | |
118 | bdc1c103 | Olga Brani | // actions for humanize fields
|
119 | bdc1c103 | Olga Brani | if ($(this).hasClass('dehumanize')){ |
120 | bdc1c103 | Olga Brani | |
121 | bdc1c103 | Olga Brani | var flag = 0; |
122 | 3cbd5e47 | Olga Brani | |
123 | 3cbd5e47 | Olga Brani | // check if the value is not float
|
124 | 3cbd5e47 | Olga Brani | var num_float = parseFloat(value);
|
125 | 3cbd5e47 | Olga Brani | num_float= String(num_float); |
126 | 3cbd5e47 | Olga Brani | |
127 | 3cbd5e47 | Olga Brani | if (num_float.indexOf(".") == 1){ |
128 | 3cbd5e47 | Olga Brani | flag = 1 ;
|
129 | 3cbd5e47 | Olga Brani | msg="Please enter an integer";
|
130 | 3cbd5e47 | Olga Brani | } else {
|
131 | 3cbd5e47 | Olga Brani | var num = parseInt(value);
|
132 | 3cbd5e47 | Olga Brani | if ( num == '0' ) { |
133 | 3cbd5e47 | Olga Brani | flag = 1 ; msg="zero" |
134 | 3cbd5e47 | Olga Brani | } else {
|
135 | 595dde70 | Olga Brani | if ( value && !num ) { flag = 1 ; msg="Invalid format. Try something like 10GB, 2MB etc"} |
136 | 3cbd5e47 | Olga Brani | |
137 | 3cbd5e47 | Olga Brani | var bytes = num;
|
138 | 3cbd5e47 | Olga Brani | |
139 | 3cbd5e47 | Olga Brani | // remove any numbers and get suffix
|
140 | 3cbd5e47 | Olga Brani | var suffix = value.replace( num, ''); |
141 | 3cbd5e47 | Olga Brani | |
142 | 3cbd5e47 | Olga Brani | // validate suffix. 'i' renders it case insensitive
|
143 | 3cbd5e47 | Olga Brani | var suf = suffix.match( new RegExp('^(GB|KB|MB|TB|bytes|G|K|M|T|byte)$', 'i')); |
144 | 3cbd5e47 | Olga Brani | if (suf){
|
145 | 3cbd5e47 | Olga Brani | |
146 | 3cbd5e47 | Olga Brani | suf = suf[0].toLowerCase();
|
147 | 3cbd5e47 | Olga Brani | suf = suf.substr(0,1); |
148 | 3cbd5e47 | Olga Brani | |
149 | 3cbd5e47 | Olga Brani | // transform to bytes
|
150 | 3cbd5e47 | Olga Brani | switch (suf){
|
151 | 3cbd5e47 | Olga Brani | case 'b': |
152 | 3cbd5e47 | Olga Brani | bytes = num*Math.pow(1024,0); |
153 | 3cbd5e47 | Olga Brani | break;
|
154 | 3cbd5e47 | Olga Brani | case 'k': |
155 | 3cbd5e47 | Olga Brani | bytes = num*Math.pow(1024,1); |
156 | 3cbd5e47 | Olga Brani | break;
|
157 | 3cbd5e47 | Olga Brani | case 'm': |
158 | 3cbd5e47 | Olga Brani | bytes = num*Math.pow(1024,2); |
159 | 3cbd5e47 | Olga Brani | break;
|
160 | 3cbd5e47 | Olga Brani | case 'g': |
161 | 3cbd5e47 | Olga Brani | bytes = num*Math.pow(1024,3); |
162 | 3cbd5e47 | Olga Brani | break;
|
163 | 3cbd5e47 | Olga Brani | case 't': |
164 | 3cbd5e47 | Olga Brani | bytes = num*Math.pow(1024,4); |
165 | 3cbd5e47 | Olga Brani | break;
|
166 | 3cbd5e47 | Olga Brani | default:
|
167 | 3cbd5e47 | Olga Brani | bytes = num; |
168 | 3cbd5e47 | Olga Brani | } |
169 | 3cbd5e47 | Olga Brani | } else {
|
170 | 3cbd5e47 | Olga Brani | if (num) {
|
171 | 3cbd5e47 | Olga Brani | flag = 1;
|
172 | 3cbd5e47 | Olga Brani | msg ="You must specify correct units"
|
173 | 3cbd5e47 | Olga Brani | } |
174 | 3cbd5e47 | Olga Brani | |
175 | 3cbd5e47 | Olga Brani | } |
176 | 2934e509 | Olga Brani | } |
177 | 2934e509 | Olga Brani | } |
178 | bdc1c103 | Olga Brani | |
179 | bdc1c103 | Olga Brani | if ( flag == '1' ){ |
180 | bdc1c103 | Olga Brani | $(this).parents('.form-row').addClass('with-errors'); |
181 | 5841646f | Olga Brani | $(this).parents('.form-row').find('.error-msg').html(msg); |
182 | bdc1c103 | Olga Brani | bytes = value; |
183 | bdc1c103 | Olga Brani | $(this).focus(); |
184 | bdc1c103 | Olga Brani | |
185 | bdc1c103 | Olga Brani | |
186 | bdc1c103 | Olga Brani | } else {
|
187 | bdc1c103 | Olga Brani | $(this).parents('.form-row').removeClass('with-errors'); |
188 | bdc1c103 | Olga Brani | } |
189 | bdc1c103 | Olga Brani | |
190 | bdc1c103 | Olga Brani | hidden_input.val(bytes); |
191 | bdc1c103 | Olga Brani | |
192 | 3cbd5e47 | Olga Brani | |
193 | 6abd262c | Olga Brani | } |
194 | bdc1c103 | Olga Brani | |
195 | 3cbd5e47 | Olga Brani | // validation actions for int fields
|
196 | bdc1c103 | Olga Brani | else {
|
197 | bdc1c103 | Olga Brani | |
198 | bdc1c103 | Olga Brani | var is_int = value.match (new RegExp('^[0-9]*$')); |
199 | bdc1c103 | Olga Brani | if ( !is_int ){
|
200 | 3cbd5e47 | Olga Brani | $(this).parents('.form-row').find('.error-msg').html('Enter a positive integer'); |
201 | bdc1c103 | Olga Brani | $(this).parents('.form-row').addClass('with-errors'); |
202 | bdc1c103 | Olga Brani | |
203 | bdc1c103 | Olga Brani | } else {
|
204 | bdc1c103 | Olga Brani | if ( value == '0'){ |
205 | bdc1c103 | Olga Brani | $(this).parents('.form-row').find('.error-msg').html('Ensure this value is greater than or equal to 1'); |
206 | bdc1c103 | Olga Brani | $(this).parents('.form-row').addClass('with-errors'); |
207 | bdc1c103 | Olga Brani | }else {
|
208 | bdc1c103 | Olga Brani | $(this).parents('.form-row').removeClass('with-errors'); |
209 | bdc1c103 | Olga Brani | } |
210 | bdc1c103 | Olga Brani | |
211 | bdc1c103 | Olga Brani | |
212 | bdc1c103 | Olga Brani | } |
213 | bdc1c103 | Olga Brani | hidden_input.val(value); |
214 | bdc1c103 | Olga Brani | |
215 | dcd1c383 | Olga Brani | } |
216 | bdc1c103 | Olga Brani | |
217 | 6abd262c | Olga Brani | } else {
|
218 | 2934e509 | Olga Brani | ; $(this).parents('.with-errors').removeClass('with-errors') |
219 | bdc1c103 | Olga Brani | hidden_input.removeAttr('value');
|
220 | dcd1c383 | Olga Brani | } |
221 | 3cbd5e47 | Olga Brani | $('#icons span.info').removeClass('error-msg'); |
222 | dcd1c383 | Olga Brani | |
223 | dcd1c383 | Olga Brani | }); |
224 | bdc1c103 | Olga Brani | |
225 | bdc1c103 | Olga Brani | |
226 | bdc1c103 | Olga Brani | // if hidden checkboxes are checked, the right group is selected
|
227 | bdc1c103 | Olga Brani | $('.with-info input[name^="is_selected_"]').each(function() { |
228 | 30dd9e0e | Olga Brani | if ( ($(this).val()) == 1 ){ |
229 | bdc1c103 | Olga Brani | |
230 | bdc1c103 | Olga Brani | // get hidden input name
|
231 | bdc1c103 | Olga Brani | hidden_name = $(this).attr('name'); |
232 | 30dd9e0e | Olga Brani | $("input[name='proxy_"+hidden_name+"']").val("1"); |
233 | bdc1c103 | Olga Brani | |
234 | bdc1c103 | Olga Brani | // pretend to check the ul li a
|
235 | bdc1c103 | Olga Brani | // show the relevant fieldsets
|
236 | bdc1c103 | Olga Brani | var mock_a = $("input[name='proxy_"+hidden_name+"']").siblings('a'); |
237 | bdc1c103 | Olga Brani | group_form_show_resources(mock_a); |
238 | bdc1c103 | Olga Brani | |
239 | bdc1c103 | Olga Brani | } |
240 | bdc1c103 | Olga Brani | }); |
241 | bdc1c103 | Olga Brani | |
242 | 2934e509 | Olga Brani | |
243 | 30dd9e0e | Olga Brani | |
244 | 30dd9e0e | Olga Brani | $('.group input[name$="_uplimit_proxy"]').each(function() { |
245 | 30dd9e0e | Olga Brani | if ($(this).val()){ |
246 | 30dd9e0e | Olga Brani | |
247 | 30dd9e0e | Olga Brani | // get value from input
|
248 | 30dd9e0e | Olga Brani | var value = $(this).val(); |
249 | 30dd9e0e | Olga Brani | |
250 | 30dd9e0e | Olga Brani | |
251 | 30dd9e0e | Olga Brani | // get hidden input name
|
252 | 30dd9e0e | Olga Brani | hidden_name = $(this).attr('name'); |
253 | 30dd9e0e | Olga Brani | hidden_field_name = hidden_name.replace("_proxy",""); |
254 | 30dd9e0e | Olga Brani | $("input[name='"+hidden_field_name+"']").val(value); |
255 | 30dd9e0e | Olga Brani | var field = $(this); |
256 | 30dd9e0e | Olga Brani | |
257 | 30dd9e0e | Olga Brani | |
258 | 30dd9e0e | Olga Brani | if ( (field.hasClass('dehumanize')) && !($(this).parents('.form-row').hasClass('with-errors'))) { |
259 | 30dd9e0e | Olga Brani | // for dehumanize fields transform bytes to KB, MB, etc
|
260 | 30dd9e0e | Olga Brani | // unless there is an error
|
261 | 30dd9e0e | Olga Brani | field.val(bytesToSize2(value)) |
262 | 30dd9e0e | Olga Brani | } else {
|
263 | 30dd9e0e | Olga Brani | // else just return the value
|
264 | 30dd9e0e | Olga Brani | field.val(value); |
265 | 30dd9e0e | Olga Brani | } |
266 | 30dd9e0e | Olga Brani | |
267 | 30dd9e0e | Olga Brani | var group_class = field.parents('div[class^="group"]').attr('class').replace('group ', ''); |
268 | 30dd9e0e | Olga Brani | |
269 | 30dd9e0e | Olga Brani | |
270 | 30dd9e0e | Olga Brani | |
271 | 30dd9e0e | Olga Brani | |
272 | 30dd9e0e | Olga Brani | // select group icon
|
273 | 30dd9e0e | Olga Brani | $('.quotas-form ul li a').each(function() { |
274 | 30dd9e0e | Olga Brani | |
275 | 30dd9e0e | Olga Brani | if($(this).attr('id') == group_class) { |
276 | 30dd9e0e | Olga Brani | $(this).addClass('selected'); |
277 | 30dd9e0e | Olga Brani | $(this).siblings('input[type="hidden"]').val("1"); |
278 | 30dd9e0e | Olga Brani | |
279 | 30dd9e0e | Olga Brani | // get the hidden input field without the proxy
|
280 | 30dd9e0e | Olga Brani | // and check the python form field
|
281 | 30dd9e0e | Olga Brani | hidden_name = $(this).siblings('input[type="hidden"]').attr('name').replace("proxy_",""); |
282 | 30dd9e0e | Olga Brani | $("input[name='"+hidden_name+"']").val("1"); |
283 | 30dd9e0e | Olga Brani | |
284 | 30dd9e0e | Olga Brani | group_form_show_resources($(this)); |
285 | 30dd9e0e | Olga Brani | |
286 | 30dd9e0e | Olga Brani | } |
287 | 30dd9e0e | Olga Brani | }); |
288 | 30dd9e0e | Olga Brani | |
289 | 30dd9e0e | Olga Brani | |
290 | 30dd9e0e | Olga Brani | |
291 | 30dd9e0e | Olga Brani | // if the field has class error, transfer error to the proxy fields
|
292 | 30dd9e0e | Olga Brani | if ( $(this).parents('.form-row').hasClass('with-errors') ) { |
293 | 30dd9e0e | Olga Brani | field.parents('.form-row').addClass('with-errors'); |
294 | 30dd9e0e | Olga Brani | } |
295 | 30dd9e0e | Olga Brani | |
296 | 30dd9e0e | Olga Brani | |
297 | 30dd9e0e | Olga Brani | } |
298 | 30dd9e0e | Olga Brani | }); |
299 | 55a845c0 | Olga Brani | |
300 | 2934e509 | Olga Brani | function goToByScroll(id){ |
301 | 2934e509 | Olga Brani | $('html,body').animate({scrollTop: $("#"+id).offset().top},'slow'); |
302 | 2934e509 | Olga Brani | } |
303 | 2934e509 | Olga Brani | |
304 | 2934e509 | Olga Brani | |
305 | 595dde70 | Olga Brani | $('#group_create_form').submit(function(){ |
306 | 2934e509 | Olga Brani | |
307 | 2934e509 | Olga Brani | var flag = 0; |
308 | 595dde70 | Olga Brani | $('.quotas-form .group input[type="text"]').each(function() { |
309 | 595dde70 | Olga Brani | var value = $(this).val(); |
310 | 595dde70 | Olga Brani | if (value){
|
311 | 2934e509 | Olga Brani | flag = 1;
|
312 | 595dde70 | Olga Brani | } |
313 | 595dde70 | Olga Brani | }); |
314 | 2934e509 | Olga Brani | |
315 | 2934e509 | Olga Brani | console.info(flag); |
316 | 2934e509 | Olga Brani | |
317 | 595dde70 | Olga Brani | if (flag =='0') { |
318 | 2934e509 | Olga Brani | $('#icons').focus(); |
319 | 595dde70 | Olga Brani | $('#icons span.info').addClass('error-msg'); |
320 | 595dde70 | Olga Brani | $('#icons span.info').find('span').html('You must fill in at least one resource'); |
321 | 2934e509 | Olga Brani | goToByScroll("icons");
|
322 | 2934e509 | Olga Brani | |
323 | 595dde70 | Olga Brani | return false; |
324 | 595dde70 | Olga Brani | |
325 | 595dde70 | Olga Brani | } |
326 | 2934e509 | Olga Brani | if ($('.quotas-form .group .form-row.with-errors').length>0 ){ |
327 | 2934e509 | Olga Brani | $('.quotas-form .group .form-row.with-errors input[type="text"]')[0].focus(); |
328 | 2934e509 | Olga Brani | return false; |
329 | 2934e509 | Olga Brani | |
330 | 2934e509 | Olga Brani | } |
331 | 2934e509 | Olga Brani | |
332 | 2934e509 | Olga Brani | |
333 | 2934e509 | Olga Brani | |
334 | 595dde70 | Olga Brani | }); |
335 | 595dde70 | Olga Brani | |
336 | 595dde70 | Olga Brani | |
337 | 595dde70 | Olga Brani | |
338 | 595dde70 | Olga Brani | |
339 | 595dde70 | Olga Brani | |
340 | 1b866d9e | Olga Brani | }); |