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

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

[Event Cats] Many changes, mainly separate existing/new entries

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