source: extensions/event_cats/admin/evntcats_admin.js @ 3985

Last change on this file since 3985 was 3985, checked in by LucMorizur, 14 years ago

[Event Cats] Form submit beginning, "forced problem" improvement

File size: 9.3 KB
Line 
1/* Event Cats Javascript functions LucMorizur June - ... 2009 */
2
3var ec_err = '';
4var ec_avoid_infinite_loop = true;
5var ec_checked_line = 0;
6var ec_selected_user = 'ec_sel_user_old';
7var ec_selected_old_user = '-1';
8var ec_selected_AP = '-1';
9var ec_selected_cat = '-1';
10var ec_selected_action = '';
11var ec_selected_img = '';
12var ec_auto_code_digits_default =
13 document.getElementById('ec_in_up_auto_code_length_id').value;
14var ec_auto_code_digits_nb = ec_auto_code_digits_default;
15var ec_new_code_text = '';
16var ec_new_user_text = '';
17var ec_new_psd_text = '';
18var ec_old_new_psd_text = '';
19var ec_checked_URL = new Array();
20var ec_JS_message = new Array();
21var ec_test_reg = '';
22
23function ec_mark_line(ec_id) {
24  ec_checked_line = ec_id;
25  if (ec_checked_line == 0) {
26    document.getElementById('selection--1').checked = 'checked';
27    document.getElementById('selection--1').checked = '';
28    document.getElementById('ec_show_URL').value = '';
29  }
30  else {
31    document.getElementById("selection-" + ec_checked_line).checked = 'checked';
32    document.getElementById('ec_show_URL').value =
33     ec_checked_URL[ec_checked_line];
34  }
35  if (ec_checked_line >= 0) {
36    document.getElementById('ec_sel_user_none').checked = 'checked';
37    document.getElementById('ec_input_action_home').checked = 'checked';
38    document.getElementById('ec_in_up_usr_txt_id').value = '';
39    document.getElementById('ec_in_up_psd_txt_id').value = '';
40    document.getElementById('ec_in_up_usr_list_id').value = '-1';
41    document.getElementById('ec_in_up_code_id').value = '';
42    document.getElementById('ec_in_up_aps_id').value = '-1';
43    document.getElementById('ec_in_up_cats_id').value = '-1';
44    document.getElementById('ec_in_up_imgs_id').value = '';
45    document.getElementById('ec_sel_user_none').checked = '';
46    document.getElementById('ec_input_action_home').checked = '';
47  }
48  else {
49    document.getElementById('ec_in_up_code_id').value = ec_new_code_text;
50    ec_avoid_infinite_loop = true;
51    ec_mark_user(ec_selected_user);
52  }
53}
54
55function ec_mark_user(ec_id) {
56  ec_selected_user = ec_id;
57  document.getElementById(ec_selected_user).checked = 'checked';
58  switch (ec_selected_user) {
59    case 'ec_sel_user_none': // None
60      ec_selected_action =
61       (ec_ap_ok && (ec_selected_action != 'ec_input_action_home')) ?
62       'ec_input_action_add_p' : 'ec_input_action_home';
63      document.getElementById('ec_in_up_usr_txt_id').value = '';
64      document.getElementById('ec_in_up_psd_txt_id').value = '';
65      document.getElementById('ec_in_up_usr_list_id').value = '-1';
66    break;
67    case 'ec_sel_user_new': // New user
68      document.getElementById('ec_in_up_usr_txt_id').value =
69       ec_new_user_text;
70      document.getElementById('ec_in_up_psd_txt_id').value =
71       ec_new_psd_text;
72      document.getElementById('ec_in_up_usr_list_id').value = '-1';
73    break;
74    case 'ec_sel_user_old': // "Old" user
75      document.getElementById('ec_in_up_usr_txt_id').value = '';
76      document.getElementById('ec_in_up_psd_txt_id').value = '';
77      document.getElementById('ec_in_up_usr_list_id').value =
78       ec_selected_old_user;
79    break;
80  }
81  ec_check_pwd_text();
82  if (ec_avoid_infinite_loop) {
83    ec_avoid_infinite_loop = false;
84    ec_mark_action(ec_selected_action);
85    ec_avoid_infinite_loop = true;
86  }
87}
88
89function ec_mark_action(ec_id) {
90  ec_selected_action = ec_id;
91  if (ec_selected_action != '') {
92    document.getElementById(ec_selected_action).checked = 'checked';
93    switch (ec_selected_action) {
94      case 'ec_input_action_add_p': // Additional Page
95        document.getElementById('ec_in_up_aps_id').value = ec_selected_AP;
96        document.getElementById('ec_in_up_cats_id').value = '-1';
97        document.getElementById('ec_in_up_imgs_id').value = '';
98        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
99      break;
100      case 'ec_input_action_cat': // Category
101        document.getElementById('ec_in_up_aps_id').value = '-1';
102        document.getElementById('ec_in_up_cats_id').value = ec_selected_cat;
103        document.getElementById('ec_in_up_imgs_id').value = '';
104        ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
105         'ec_sel_user_old' : ec_selected_user;
106        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
107      break;
108      case 'ec_input_action_img': // Image
109        document.getElementById('ec_in_up_aps_id').value = '-1';
110        document.getElementById('ec_in_up_cats_id').value = ec_selected_cat;
111        document.getElementById('ec_in_up_imgs_id').value = ec_selected_img;
112        ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
113         'ec_sel_user_old' : ec_selected_user;
114        ec_check_img_text();
115      break;
116      case 'ec_input_action_home': // Home
117        document.getElementById('ec_in_up_aps_id').value = '-1';
118        document.getElementById('ec_in_up_cats_id').value = '-1';
119        document.getElementById('ec_in_up_imgs_id').value = '';
120        document.getElementById('ec_in_up_imgs_warn').innerHTML = '';
121      break;
122    }
123    if (ec_avoid_infinite_loop) {
124      ec_avoid_infinite_loop = false;
125      ec_mark_user(ec_selected_user);
126      ec_avoid_infinite_loop = true;
127    }
128  }
129}
130
131function ec_rnd(ec_min, ec_max) {
132  return Math.floor(ec_min + (ec_max - ec_min + 1) * Math.random() );
133}
134
135function ec_gen_txt(ec_length) {
136  var t = '';
137  var ec_reg_A = /[A-Z]+/;
138  var ec_reg_a = /[a-z]+/;
139  var ec_reg_0 = /[0-9]+/;
140  var i = 0;
141  var ec_l = 0;
142  ec_l = parseInt(ec_length);
143  if (ec_l < 3) {
144    ec_err = '< 3';
145    return '';
146  }
147  do {
148    i++;
149    switch (ec_rnd(0, 2)) {
150      case 0: // A - Z
151        t += String.fromCharCode(ec_rnd(65, 90));
152      break;
153      case 1: // a - z
154        t += String.fromCharCode(ec_rnd(97, 122));
155      break;
156      case 2: // 0 - 9
157        t += String.fromCharCode(ec_rnd(48, 57));
158      break;
159    }
160    if (i > 500) {
161      break;
162    }
163    if ((t.length) > (ec_l)) {
164      t = t.substr(1, ec_l);
165    }
166  } while (
167   (t.length < ec_l) ||
168   !( ec_reg_A.test(t) && ec_reg_a.test(t) && ec_reg_0.test(t) )
169  );
170  if (i > 500) {
171    ec_err = '> 500\n' + t;
172    return '';
173  }
174  else {
175    return t;
176  }
177}
178
179function ec_gen_code() {
180  var t = '';
181  t = ec_gen_txt(ec_auto_code_digits_nb);
182  if (t == '') {
183    alert("Raté :\n" + ec_err);
184    ec_new_code_text = 'Raté...';
185  }
186  else {
187    ec_new_code_text = t;
188  }
189  ec_mark_line(-1);
190}
191
192function ec_gen_user() {
193  var ec_reg_ap = /^\S+/;
194  var ec_reg_cat = /\/\s(.+)$/;
195  var ec_word = '';
196  if (
197   ec_selected_action == '' ||
198   (ec_selected_action == 'ec_input_action_cat' && ec_selected_cat == '-1') ||
199   (ec_selected_action == 'ec_input_action_img' &&
200    (ec_selected_img == '' || ec_selected_cat == '-1')) ||
201   (ec_selected_action == 'ec_input_action_add_p' && ec_selected_AP == '-1')
202  ) {
203    alert(ec_JS_message['ec_gen_user_act_miss']);
204    return false;
205  }
206  else {
207    var t = '';
208    t = ec_gen_txt('8');
209    if (t == '') {
210      alert("Raté :\n" + ec_err);
211      ec_new_psd_text = 'Raté...';
212      return false;
213    }
214    else {
215      ec_new_psd_text = t;
216      ec_old_new_psd_text = ec_new_psd_text;
217    }
218   
219   if (false) {
220    ec_new_user_text = 'Nouvel utilisateur !';
221   }
222   else
223   {
224   
225    switch (ec_selected_action) {
226      case 'ec_input_action_add_p': // Additional Page
227        ec_new_user_text = ec_reg_ap.exec(
228document.ec_up_code.ec_in_up_aps.options[document.ec_up_code.ec_in_up_aps.selectedIndex].label
229        );
230      break;
231      case 'ec_input_action_cat': // Category
232      case 'ec_input_action_img': // Image
233        ec_new_user_text = ec_reg_cat.exec(
234document.ec_up_code.ec_in_up_cat.options[document.ec_up_code.ec_in_up_cat.selectedIndex].label
235        )[1];
236      if (ec_selected_action == 'ec_input_action_img') {
237        ec_new_user_text +=  '_' + document.ec_up_code.ec_in_up_imgs_id.value;
238      }
239      break;
240      case 'ec_input_action_home': // Home
241      break;
242    }
243   
244   }
245   
246    ec_mark_user('ec_sel_user_new');
247    return true;
248  }
249}
250
251function ec_gen_full_auto() {
252  if (ec_gen_user()) ec_gen_code();
253}
254
255function ec_check_img_text() {
256  document.getElementById('ec_in_up_imgs_warn').innerHTML =
257   (ec_selected_img != '' && ec_selected_cat == '-1') ?
258   ec_JS_message['ec_act_cat_miss'] : '';
259}
260
261function ec_check_pwd_text() {
262  document.getElementById('ec_in_up_pwd_warn').innerHTML =
263   (ec_new_psd_text == ec_old_new_psd_text &&
264    ec_selected_user == 'ec_sel_user_new') ?
265   ec_JS_message['ec_new_pwd_gen'] : '';
266  // document.getElementById('ec_in_up_pwd_warn').innerHTML = ec_test_reg;
267}
268
269function ec_check_d(ec_id, ec_act) {
270  ec_mark_line(ec_id);
271  if (confirm(ec_JS_message['ec_confirm_' + ec_act])) {
272    document.getElementById('ec_act1_id').value = ec_act;
273    document.forms['ec_up_code'].submit();
274    /* return true;
275  }
276  else {
277    return false; */
278  }
279}
280
281function ec_check_tst(ec_id) {
282  ec_mark_line(ec_id);
283  return confirm(ec_JS_message['ec_confirm_test']); 
284}
285
286function ec_test() {
287  alert('OK.');
288}
289
290function ec_init() {
291  ec_err = '';
292  ec_checked_line = 0;
293  ec_selected_user = 'ec_sel_user_old';
294  ec_selected_old_user = '-1';
295  ec_selected_AP = '-1';
296  ec_selected_cat = '-1';
297  ec_selected_action = '';
298  ec_selected_img = '';
299  ec_new_code_text = '';
300  ec_new_user_text = '';
301  ec_new_psd_text = '';
302  ec_old_new_psd_text = '';
303  ec_test_reg = '';
304  document.getElementById('ec_act1_id').value = '';
305  document.getElementById('ec_in_up_pwd_warn').innerHTML = '';
306  ec_mark_line(0);
307}
308
Note: See TracBrowser for help on using the repository browser.