source: extensions/event_cats/admin/template/autolog_new.js @ 4027

Last change on this file since 4027 was 4027, checked in by LucMorizur, 15 years ago

[Event Cats] Modify template/autolog_new.tpl

File size: 12.8 KB
Line 
1/* Event Cats Javascript functions LucMorizur June - ... 2009 */
2
3var ec_avoid_infinite_loop      = true;
4var ec_err                      = '';
5var ec_selected_action          = '';
6var ec_selected_img             = '';
7var ec_new_code_text            = '';
8var ec_new_user_text            = '';
9var ec_new_psd_text             = '';
10var ec_old_new_psd_text         = '';
11var ec_test_reg                 = '';
12var ec_auto_code_digits_nb      = '';
13var ec_selected_old_user        = '-1';
14var ec_selected_old_code        = '-1';
15var ec_selected_AP              = '-1';
16var ec_selected_cat             = '-1';
17var ec_selected_user            = 'ec_sel_user_old';
18var ec_selected_code            = 'ec_sel_code_new';
19var ec_JS_message               = new Array();
20var ec_def_vals                 = new Array();
21
22function ec_mark_code(ec_id) {
23  if (
24   !(document.getElementById('ec_sel_code_old').disabled == 'disabled' ||
25   document.getElementById('ec_sel_code_old').disabled == true)
26  ) {
27    ec_selected_code = ec_id;
28    document.getElementById(ec_selected_code).checked = 'checked';
29    switch (ec_selected_code) {
30      case 'ec_sel_code_new':
31        document.getElementById('ec_in_up_code_list_id').value = '-1';
32        document.getElementById('ec_in_up_code_id').value = ec_new_code_text;
33      break;
34      case 'ec_sel_code_old':
35        document.getElementById('ec_in_up_code_list_id').value =
36         ec_selected_old_code;
37        document.getElementById('ec_in_up_code_id').value = '';
38      break;
39    }
40  }
41}
42
43function ec_mark_user(ec_id) {
44  if (
45   !(document.getElementById('ec_sel_user_old').disabled == 'disabled' ||
46   document.getElementById('ec_sel_user_old').disabled == true)
47  ) {
48    ec_selected_user = ec_id;
49    document.getElementById(ec_selected_user).checked = 'checked';
50    switch (ec_selected_user) {
51      /* case 'ec_sel_user_none': // None
52        ec_selected_action =
53         (ec_ap_ok && (ec_selected_action != 'ec_input_action_home')) ?
54         'ec_input_action_add_p' : 'ec_input_action_home';
55        document.getElementById('ec_in_up_usr_txt_id').value = '';
56        document.getElementById('ec_in_up_psd_txt_id').value = '';
57        document.getElementById('ec_in_up_usr_list_id').value = '-1';
58      break; */
59      case 'ec_sel_user_new': // New user
60        document.getElementById('ec_in_up_usr_txt_id').value =
61         ec_new_user_text;
62        document.getElementById('ec_in_up_psd_txt_id').value =
63         ec_new_psd_text;
64        document.getElementById('ec_in_up_usr_list_id').value = '-1';
65      break;
66      case 'ec_sel_user_old': // "Old" user
67        document.getElementById('ec_in_up_usr_txt_id').value = '';
68        document.getElementById('ec_in_up_psd_txt_id').value = '';
69        document.getElementById('ec_in_up_usr_list_id').value =
70         ec_selected_old_user;
71      break;
72    }
73    ec_check_pwd_text();
74    if (ec_avoid_infinite_loop) {
75      ec_avoid_infinite_loop = false;
76      ec_mark_action(ec_selected_action);
77      ec_avoid_infinite_loop = true;
78    }
79  }
80}
81
82function ec_mark_action(ec_id) {
83  ec_selected_action = ec_id;
84  if (ec_selected_action != '') {
85    document.getElementById(ec_selected_action).checked = 'checked';
86    switch (ec_selected_action) {
87      case 'ec_input_action_add_p': // Additional Page
88        document.getElementById('ec_in_up_aps_id').value = ec_selected_AP;
89        document.getElementById('ec_in_up_cats_id').value = '-1';
90        document.getElementById('ec_in_up_imgs_id').value = '';
91        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
92      break;
93      case 'ec_input_action_cat': // Category
94        document.getElementById('ec_in_up_aps_id').value = '-1';
95        document.getElementById('ec_in_up_cats_id').value = ec_selected_cat;
96        document.getElementById('ec_in_up_imgs_id').value = '';
97        /* ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
98         'ec_sel_user_old' : ec_selected_user; */
99        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
100      break;
101      case 'ec_input_action_img': // Image
102        document.getElementById('ec_in_up_aps_id').value = '-1';
103        document.getElementById('ec_in_up_cats_id').value = ec_selected_cat;
104        document.getElementById('ec_in_up_imgs_id').value = ec_selected_img;
105        /* ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
106         'ec_sel_user_old' : ec_selected_user; */
107        ec_check_img_text();
108      break;
109      case 'ec_input_action_home': // Home
110        document.getElementById('ec_in_up_aps_id').value = '-1';
111        document.getElementById('ec_in_up_cats_id').value = '-1';
112        document.getElementById('ec_in_up_imgs_id').value = '';
113        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
114      break;
115    }
116    if (ec_avoid_infinite_loop) {
117      ec_avoid_infinite_loop = false;
118      ec_mark_user(ec_selected_user);
119      ec_avoid_infinite_loop = true;
120    }
121  }
122}
123
124function ec_rnd(ec_min, ec_max) {
125  return Math.floor(ec_min + (ec_max - ec_min + 1) * Math.random() );
126}
127
128function ec_gen_txt(ec_length) {
129  var t = '';
130  var ec_reg_A = /[A-Z]+/;
131  var ec_reg_a = /[a-z]+/;
132  var ec_reg_0 = /[0-9]+/;
133  var i = 0;
134  var ec_l = 0;
135  ec_l = parseInt(ec_length);
136  if (ec_l < 3) {
137    ec_err = '< 3';
138    return '';
139  }
140  do {
141    i++;
142    switch (ec_rnd(0, 2)) {
143      case 0: // A - Z
144        t += String.fromCharCode(ec_rnd(65, 90));
145      break;
146      case 1: // a - z
147        t += String.fromCharCode(ec_rnd(97, 122));
148      break;
149      case 2: // 0 - 9
150        t += String.fromCharCode(ec_rnd(48, 57));
151      break;
152    }
153    if (i > 500) {
154      break;
155    }
156    if ((t.length) > (ec_l)) {
157      t = t.substr(1, ec_l);
158    }
159  } while (
160   (t.length < ec_l) ||
161   !( ec_reg_A.test(t) && ec_reg_a.test(t) && ec_reg_0.test(t) )
162  );
163  if (i > 500) {
164    ec_err = '> 500\n' + t;
165    return '';
166  }
167  else {
168    return t;
169  }
170}
171
172function ec_gen_code() {
173  var t = '';
174  t = ec_gen_txt(ec_auto_code_digits_nb);
175  if (t == '') {
176    alert("Failed :\n" + ec_err);
177    ec_new_code_text = 'Failed...';
178  }
179  else {
180    ec_new_code_text = t;
181  }
182  ec_mark_code('ec_sel_code_new');
183}
184
185function ec_gen_user() {
186  var t           = '';
187  var ec_word     = '';
188  var ec_cat_sel  = '';
189  var ec_reg_cat2 = /\//;
190  var ec_reg_ap   = /^\S+/;
191  var ec_reg_cat1 = /\/\s(.+)$/;
192  if (
193   ec_selected_action == '' ||
194   (ec_selected_action == 'ec_input_action_cat' && ec_selected_cat == '-1') ||
195   (ec_selected_action == 'ec_input_action_img' &&
196    (ec_selected_img == '' || ec_selected_cat == '-1')) ||
197   (ec_selected_action == 'ec_input_action_add_p' && ec_selected_AP == '-1')
198  ) {
199    alert(ec_JS_message['ec_gen_user_act_miss']);
200    return false;
201  }
202  else {
203    t = ec_gen_txt('8');
204    if (t == '') {
205      alert("Failed :\n" + ec_err);
206      ec_new_psd_text = 'Failed...';
207      return false;
208    }
209    else {
210      ec_new_psd_text = t;
211      ec_old_new_psd_text = ec_new_psd_text;
212    }
213    switch (ec_selected_action) {
214      case 'ec_input_action_add_p': // Additional Page
215        ec_new_user_text = ec_reg_ap.exec(
216         document.ec_new_code.ec_in_up_aps.options[
217          document.ec_new_code.ec_in_up_aps.selectedIndex
218         ].label
219        );
220      break;
221      case 'ec_input_action_cat': // Category
222      case 'ec_input_action_img': // Image
223        ec_cat_sel = document.ec_new_code.ec_in_up_cat.options[
224          document.ec_new_code.ec_in_up_cat.selectedIndex
225         ].label;
226        ec_new_user_text = (ec_reg_cat2.test(ec_cat_sel)) ?
227         ec_reg_cat1.exec(ec_cat_sel)[1] : ec_cat_sel;
228      if (ec_selected_action == 'ec_input_action_img') {
229        ec_new_user_text +=  '_' + document.ec_new_code.ec_in_up_imgs_id.value;
230      }
231      break;
232      case 'ec_input_action_home': // Home
233        t = ec_gen_txt('3');
234        if (t == '') {
235          alert("Failed :\n" + ec_err);
236          ec_new_psd_text = 'Failed...';
237          return false;
238        }
239        ec_new_user_text = ec_JS_message['ec_up_code_lbl_home'] + '_' + t;
240      break;
241    }
242    ec_mark_user('ec_sel_user_new');
243    return true;
244  }
245}
246
247function ec_gen_full_auto() {
248  if (ec_gen_user()) ec_gen_code();
249}
250
251function ec_check_img_text() {
252  if (isNaN(document.getElementById('ec_in_up_imgs_id').value)) {
253    alert(ec_JS_message['ec_act_img_miss']);
254    ec_selected_img = '';
255    document.getElementById('ec_in_up_imgs_id').value = '';
256  }
257  else {
258    document.getElementById('ec_in_up_imgs_warn').innerHTML = (
259     document.getElementById('ec_in_up_imgs_id').value != '' &&
260     document.getElementById('ec_in_up_cats_id').value == '-1'
261    ) ? ec_JS_message['ec_act_cat_miss'] : '';
262  }
263}
264
265function ec_check_pwd_text() {
266  document.getElementById('ec_in_up_pwd_warn').innerHTML = (
267   document.getElementById('ec_in_up_psd_txt_id').value == ec_old_new_psd_text
268   && ec_old_new_psd_text != ''
269   && ec_selected_user == 'ec_sel_user_new'
270  ) ? ec_JS_message['ec_new_pwd_gen'] : '';
271}
272
273function ec_check_code_text() {
274  var t    = document.getElementById('ec_in_up_code_id').value;
275  var treg = /^[a-zA-Z0-9_-]{4,32}$/
276  if (t == '' || treg.test(t)) {
277    ec_new_code_text = t;
278  }
279  else {
280    alert(ec_JS_message['ec_submit_code_bad']);
281    ec_new_code_text = '';
282    document.getElementById('ec_in_up_code_id').value = '';
283  }
284}
285
286function ec_check_submit() {
287  if ((
288    document.getElementById('ec_sel_code_new').checked != '' &&
289    document.getElementById('ec_in_up_code_id').value == ''
290    ) || (
291    document.getElementById('ec_sel_code_old').checked != '' &&
292    document.getElementById('ec_in_up_code_list_id').value == '-1'
293    )
294  ) {
295    alert(ec_JS_message['ec_submit_code_miss']);
296    return false;
297  }
298  if ((
299    document.getElementById('ec_sel_user_new').checked != '' &&
300    document.getElementById('ec_in_up_usr_txt_id').value == ''
301    ) || (
302    document.getElementById('ec_sel_user_old').checked != '' &&
303    document.ec_new_code.ec_in_up_usr_list.value == '-1'
304    ) || (
305    document.getElementById('ec_sel_user_new').checked == '' &&
306    document.getElementById('ec_sel_user_old').checked == ''
307    )
308  ) {
309    alert(ec_JS_message['ec_submit_user_miss']);
310    return false;
311  }
312  if (
313    document.ec_new_code.ec_in_up_aps.selectedIndex < 1 &&
314    document.ec_new_code.ec_in_up_cat.selectedIndex < 1 && (
315      document.getElementById('ec_in_up_imgs_id').value == '' || (
316        document.getElementById('ec_in_up_imgs_id').value != '' &&
317        isNaN(document.getElementById('ec_in_up_imgs_id').value) &&
318        document.ec_new_code.ec_in_up_cat.selectedIndex < 1
319      )
320    ) &&
321    document.getElementById('ec_input_action_home').checked == ''
322  ) {
323    alert(ec_JS_message['ec_submit_action_miss']);
324    return false;
325  }
326}
327
328function ec_test() {
329  alert('OK.');
330}
331
332function ec_init() {
333  var t = (ec_def_vals['code'] == '') ? '' : 'disabled';
334  ec_err = '';
335  ec_selected_user = 'ec_sel_user_old';
336  ec_selected_code = 'ec_sel_code_new';
337  ec_selected_old_user = '-1';
338  ec_selected_old_code = '-1';
339  ec_selected_AP = '-1';
340  ec_selected_cat = '-1';
341  ec_selected_action = '';
342  ec_selected_img = '';
343  ec_new_code_text = '';
344  ec_new_user_text = '';
345  ec_new_psd_text = '';
346  ec_old_new_psd_text = '';
347  ec_test_reg = '';
348  document.getElementById('ec_act1_id').value = ec_def_vals['act1'];
349  document.getElementById('ec_in_up_pwd_warn').innerHTML = '';
350  document.getElementById('ec_sel_code_old').checked = 'checked';
351  document.getElementById('ec_sel_code_old').checked =
352   (ec_def_vals['code'] == '') ? '' : 'checked';
353  document.getElementById('ec_sel_user_old').checked = 'checked';
354  document.getElementById('ec_sel_user_old').checked =
355   (ec_def_vals['user'] == '-1') ? '' : 'checked';
356  document.getElementById('ec_input_action_home').checked = 'checked';
357  document.getElementById('ec_input_action_home').checked = '';
358  document.getElementById('ec_in_up_usr_txt_id').value = '';
359  document.getElementById('ec_in_up_psd_txt_id').value = '';
360  document.getElementById('ec_in_up_usr_list_id').value = ec_def_vals['user'];
361  document.getElementById('ec_in_up_code_id').value = ec_def_vals['code'];
362  document.getElementById('ec_in_up_aps_id').value = '-1';
363  document.getElementById('ec_in_up_cats_id').value = '-1';
364  document.getElementById('ec_in_up_imgs_id').value = '';
365  document.getElementById('ec_in_up_auto_code_length_id').value =
366   ec_auto_code_digits_nb;
367  document.getElementById('ec_submit_gen_full_auto_id').disabled = t;
368  document.getElementById('ec_in_up_code_id').disabled = t;
369  document.getElementById('ec_submit_gen_code_id').disabled = t;
370  document.getElementById('ec_in_up_auto_code_length_id').disabled = t;
371  document.getElementById('ec_sel_user_new').disabled = t;
372  document.getElementById('ec_submit_gen_user_id').disabled = t;
373  document.getElementById('ec_in_up_usr_txt_id').disabled = t;
374  document.getElementById('ec_in_up_psd_txt_id').disabled = t;
375  document.getElementById('ec_sel_user_old').disabled = t;
376  document.getElementById('ec_in_up_usr_list_id').disabled = t;
377  ec_def_vals['code'] = '';
378  ec_def_vals['user'] = '-1';
379  ec_def_vals['act1'] = 'create';
380}
Note: See TracBrowser for help on using the repository browser.