source: branches/1.2/workflow/js/adminaccess/control_folder.js @ 1349

Revision 1349, 31.1 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1function change_folder(index)
2{
3        if (alternate_border(index) == 0)
4        {
5                switch (index)
6                {
7                        case 0:
8                                draw_administration_control();
9                                break;
10
11                        case 1:
12                                draw_development_control();
13                                break;
14
15                        case 2:
16                                draw_organogram_control();
17                                break;
18
19                        case 3:
20                                draw_process_control();
21                                break;
22
23                        case 4:
24                                draw_monitor_control();
25                                break;
26
27                        case 5:
28                                draw_external_application_control();
29                                break;
30                }
31        }
32}
33
34function setSelectValue(obj, value)
35{
36        /* IE MAGIC */
37        if (obj.outerHTML)
38        {
39                obj.innerHTML = '';
40                obj.outerHTML = obj.outerHTML.match(/<select[^>]*>/gi) + value + '</select>';
41        }
42        else
43                obj.innerHTML = value;
44}
45
46function del_option_values(element)
47{
48        for (var i = 0; i < element.options.length; i++)
49        element.options[i--] = null;
50}
51
52function del_selected_reg(id_name)
53{
54        element = document.getElementById(id_name);
55        for(var i = 0;i < element.options.length; i++)
56        if (element.options[i].selected)
57                {
58                element.options[i] = null;
59                        if (element.options[i])
60                                element.options[i].selected = true;
61                        else
62                                if (i > 0)
63                                        element.options[--i].selected = true;
64
65                        break;
66                }
67}
68
69function del_organogram_admin()
70{
71        var hndDelAdmin = function(data)
72        {
73                refresh_org_admins(data);
74        };
75
76        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
77        {
78                var sel_org = document.getElementById('sel_org');
79                var sel_org_admin = document.getElementById('sel_org_admin');
80                cExecute ("$this.bo_adminaccess.del_organogram_admin", hndDelAdmin, "org_id="+sel_org.value+"&admin_id="+sel_org_admin.value);
81        }
82}
83
84function del_process_admin()
85{
86        var hndDelProc = function(data)
87        {
88                refresh_proc_admins(data);
89        };
90
91        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
92        {
93                var sel_proc = document.getElementById('sel_proc');
94                var sel_proc_admin = document.getElementById('sel_proc_admin');
95                cExecute ("$this.bo_adminaccess.del_process_admin", hndDelProc, "proc_id="+sel_proc.value+"&admin_id="+sel_proc_admin.value);
96        }
97}
98
99function del_monitor_admin()
100{
101        var hndDelProc = function(data)
102        {
103                refresh_mon_admins(data);
104        };
105
106        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
107        {
108                var sel_mon = document.getElementById('sel_mon');
109                var sel_mon_admin = document.getElementById('sel_mon_admin');
110                cExecute ("$this.bo_adminaccess.del_monitor_admin", hndDelProc, "proc_id="+sel_mon.value+"&admin_id="+sel_mon_admin.value);
111        }
112}
113
114function refresh_org_admins(data)
115{
116        var se = document.getElementById('sel_org_admin');
117       
118        del_option_values(se);
119
120        for (i = 0; i < data.length; i++)
121        {
122                op = document.createElement("OPTION");
123                op.setAttribute('value',data[i]['uidnumber']);
124                op.innerHTML = data[i]['cn'];
125                se.appendChild(op);
126        }
127}
128
129function refresh_proc_admins(data)
130{
131        var se = document.getElementById('sel_proc_admin');
132       
133        del_option_values(se);
134
135        for (i = 0; i < data.length; i++)
136        {
137                op = document.createElement("OPTION");
138                op.setAttribute('value',data[i]['uidnumber']);
139                op.innerHTML = data[i]['cn'];
140                se.appendChild(op);
141        }
142}
143
144function refresh_mon_admins(data)
145{
146        /* remove information about the user levels */
147        var divUserLevels = document.getElementById("userLevel");
148        divUserLevels.innerHTML = "";
149
150        var se = document.getElementById('sel_mon_admin');
151       
152        del_option_values(se);
153
154        for (i = 0; i < data.length; i++)
155        {
156                op = document.createElement("OPTION");
157                op.setAttribute('value',data[i]['uidnumber']);
158                op.innerHTML = data[i]['cn'];
159                se.appendChild(op);
160        }
161}
162
163function add_organogram_admins()
164{
165        var hndAddAdmin = function(data)
166        {
167                refresh_org_admins(data);
168               
169                se = document.getElementById('sel_org_user');
170                del_option_values(se);
171        };
172
173        var sel_org = document.getElementById('sel_org');
174        if (sel_org.value == -1) {
175                alert('É necessário selecionar uma organização.');
176                return;
177        }
178
179        element = document.getElementById('sel_org_user');
180        if (element.options.length == 0) return;
181
182        ids = '';
183        for(var i = 0;i < element.options.length; i++)
184        {
185                if (i) {
186                        ids += '.'+element.options[i].value;
187                } else {
188                        ids = element.options[i].value;
189                }
190        }
191
192        cExecute ("$this.bo_adminaccess.add_organogram_admins", hndAddAdmin, "org_id="+sel_org.value+"&user_ids="+ids);
193}
194
195function add_process_admins()
196{
197        var hndAddAdmin = function(data)
198        {
199                refresh_proc_admins(data);
200               
201                var se = document.getElementById('sel_proc_user');
202                del_option_values(se);
203        };
204
205        var sel_proc = document.getElementById('sel_proc');
206        if (sel_proc.value == -1) {
207                alert('É necessário selecionar um processo.');
208                return;
209        }
210
211        var element = document.getElementById('sel_proc_user');
212        if (element.options.length == 0) return;
213
214        ids = '';
215        for(var i = 0;i < element.options.length; i++)
216        {
217                if (i) {
218                        ids += '.'+element.options[i].value;
219                } else {
220                        ids = element.options[i].value;
221                }
222        }
223
224        cExecute ("$this.bo_adminaccess.add_process_admins", hndAddAdmin, "proc_id="+sel_proc.value+"&user_ids="+ids);
225}
226
227function add_monitor_admins()
228{
229        var hndAddAdmin = function(data)
230        {
231                refresh_mon_admins(data);
232               
233                var se = document.getElementById('sel_mon_user');
234                del_option_values(se);
235        };
236
237        var sel_mon = document.getElementById('sel_mon');
238        if (sel_mon.value == -1) {
239                alert('É necessário selecionar um processo.');
240                return;
241        }
242
243        var element = document.getElementById('sel_mon_user');
244        if (element.options.length == 0) return;
245
246        ids = '';
247        for(var i = 0;i < element.options.length; i++)
248        {
249                if (i) {
250                        ids += '.'+element.options[i].value;
251                } else {
252                        ids = element.options[i].value;
253                }
254        }
255
256        cExecute ("$this.bo_adminaccess.add_monitor_admins", hndAddAdmin, "proc_id="+sel_mon.value+"&user_ids="+ids);
257}
258
259function fillOrgAdmins()
260{
261        var hndAdminList = function(data)
262        {
263                refresh_org_admins(data);
264        };
265
266        var sel_org = document.getElementById('sel_org');
267        cExecute ("$this.bo_adminaccess.get_organogram_admins", hndAdminList, "org_id="+sel_org.value);
268}
269
270function fillProcAdmins()
271{
272        var hndAdminList = function(data)
273        {
274                refresh_proc_admins(data);
275        };
276
277        var sel_proc = document.getElementById('sel_proc');
278        cExecute ("$this.bo_adminaccess.get_process_admins", hndAdminList, "proc_id="+sel_proc.value);
279}
280
281function fillMonAdmins()
282{
283        var hndAdminList = function(data)
284        {
285                refresh_mon_admins(data);
286        };
287
288        var sel_mon = document.getElementById('sel_mon');
289        cExecute ("$this.bo_adminaccess.get_monitor_admins", hndAdminList, "proc_id="+sel_mon.value);
290}
291
292function draw_organogram_control()
293{
294        var fillOrgs = function(data)
295        {
296                se = document.getElementById('sel_org');
297
298                op = document.createElement("OPTION");
299                op.setAttribute('value',-1);
300                se.appendChild(op);
301
302                for (i = 0; i < data.length; i++)
303                {
304                        op = document.createElement("OPTION");
305                        op.setAttribute('value',data[i]['organizacao_id']);
306                        op.innerHTML = data[i]['nome'];
307                        se.appendChild(op);
308                }
309        };
310
311
312        var control_folder = getFolder(2);
313        var input_width = '300px';
314        var input_height = '150px';
315
316        control_folder.appendChild(document.createElement('BR'));
317        control_folder.appendChild(document.createElement('BR'));
318
319        tb_out = document.createElement("TABLE");
320        to_out = document.createElement("TBODY");
321        tr_out = document.createElement("TR");
322        td_out = document.createElement("TD");
323
324        tb = document.createElement("TABLE");
325        to = document.createElement("TBODY");
326        tr = document.createElement("TR");
327        td = document.createElement("TD");
328
329        td.innerHTML = 'Organização:<br>';
330        se = document.createElement("SELECT");
331        se.setAttribute('name','sel_org');
332        se.setAttribute('id','sel_org');
333        se.onchange = function() { fillOrgAdmins();  };
334        se.style.width = input_width;
335
336        td.appendChild(se);
337        tr.appendChild(td);     
338
339        td = document.createElement("TD");
340        tr.appendChild(td);
341        td = document.createElement("TD");
342        tr.appendChild(td);
343        to.appendChild(tr);
344
345        tr = document.createElement("TR");
346        td = document.createElement("TD");
347        td.setAttribute("colSpan", 3);
348        td.innerHTML = "&nbsp;";
349        tr.appendChild(td);
350        to.appendChild(tr);
351
352        tr = document.createElement("TR");
353        td = document.createElement("TD");
354
355        td.innerHTML = 'Administradores do organograma:<br>';
356        se = document.createElement("SELECT");
357        se.setAttribute('size','10');
358        se.setAttribute('id','sel_org_admin');
359        se.style.width = input_width;
360        se.style.height = input_height;
361
362        td.appendChild(se);
363        tr.appendChild(td);     
364        to.appendChild(tr);
365
366        td = document.createElement('TD');
367        td.setAttribute('align','center');
368        li = document.createElement('A');
369        li.setAttribute('href',"javascript:add_organogram_admins()");
370        im = new Image();
371        im.src = _icon_dir+'/add_org_admin.png';
372        li.appendChild(im);
373        td.appendChild(li);
374        td.appendChild(document.createElement('BR'));
375        li = document.createElement('A');
376        li.setAttribute('href',"javascript:add_organogram_admins()");
377        li.innerHTML = 'Adicionar';
378        td.appendChild(li);
379        tr.appendChild(td);
380       
381        td = document.createElement("TD");
382        td.innerHTML = 'Usuários para adicionar:<br>';
383        td.setAttribute('valign','top');
384        se = document.createElement("SELECT");
385        se.setAttribute('name','file');
386        se.setAttribute('id','sel_org_user');
387        se.setAttribute('size','10');
388        se.style.width  = input_width;
389        se.style.height = input_height;
390
391        td.appendChild(se);
392        tr.appendChild(td);
393        to.appendChild(tr);
394
395        tr = document.createElement("TR");
396       
397        td = document.createElement("TD");
398        td.setAttribute('align','right');
399        bt = document.createElement("INPUT");
400        bt.setAttribute('type','button');
401        bt.setAttribute('name','Remover');
402        bt.setAttribute('value','Remover');
403        bt.onclick = function() { del_organogram_admin(); };
404        td.appendChild(bt);
405        tr.appendChild(td);
406       
407        td = document.createElement("TD");
408        tr.appendChild(td);
409       
410        td = document.createElement("TD");
411        td.setAttribute('align','right');
412       
413        bt = document.createElement("INPUT");
414        bt.setAttribute('type','button');
415        bt.setAttribute('name','Selecionar');
416        bt.setAttribute('value','Selecionar');
417        bt.onclick = function() { openParticipants('sel_org_user', 'hidegroups=1'); };
418        td.appendChild(bt);
419
420        bt = document.createElement("INPUT");
421        bt.setAttribute('type','button');
422        bt.setAttribute('name','Remover');
423        bt.setAttribute('value','Remover');
424        bt.onclick = function() { del_selected_reg('sel_org_user'); };
425        td.appendChild(bt);
426        tr.appendChild(td);
427
428        to.appendChild(tr);
429        tb.appendChild(to);
430
431        tb_out.setAttribute('align','center');
432        td_out.appendChild(tb);
433        tr_out.appendChild(td_out);
434        to_out.appendChild(tr_out);
435        tb_out.appendChild(to_out);
436
437        control_folder.appendChild(tb_out);     
438
439        cExecute ("$this.bo_orgchart.listOrganization", fillOrgs, "");
440}
441
442function draw_process_control()
443{
444        var fillProcs = function(data)
445        {
446                var se = document.getElementById('sel_proc');
447
448                var op = document.createElement("OPTION");
449                op.setAttribute('value',-1);
450                se.appendChild(op);
451
452                for (i = 0; i < data.length; i++)
453                {
454                        op = document.createElement("OPTION");
455                        op.setAttribute('value',data[i]['proc_in_id']);
456                        op.innerHTML = data[i]['proc_st_name'];
457                        se.appendChild(op);
458                }
459        };
460
461
462        var control_folder = getFolder(3);
463        var input_width = '300px';
464        var input_height = '150px';
465
466        control_folder.appendChild(document.createElement('BR'));
467        control_folder.appendChild(document.createElement('BR'));
468
469        tb_out = document.createElement("TABLE");
470        to_out = document.createElement("TBODY");
471        tr_out = document.createElement("TR");
472        td_out = document.createElement("TD");
473
474        tb = document.createElement("TABLE");
475        to = document.createElement("TBODY");
476        tr = document.createElement("TR");
477        td = document.createElement("TD");
478
479        td.innerHTML = 'Processo:<br>';
480        se = document.createElement("SELECT");
481        se.setAttribute('name','sel_proc');
482        se.setAttribute('id','sel_proc');
483        se.onchange = function() { fillProcAdmins();  };
484        se.style.width = input_width;
485
486        td.appendChild(se);
487        tr.appendChild(td);     
488
489        td = document.createElement("TD");
490        tr.appendChild(td);
491        td = document.createElement("TD");
492        tr.appendChild(td);
493        to.appendChild(tr);
494
495        tr = document.createElement("TR");
496        td = document.createElement("TD");
497        td.setAttribute("colSpan", 3);
498        td.innerHTML = "&nbsp;";
499        tr.appendChild(td);
500        to.appendChild(tr);
501
502        tr = document.createElement("TR");
503        td = document.createElement("TD");
504
505        td.innerHTML = 'Administradores do processo:<br>';
506        se = document.createElement("SELECT");
507        se.setAttribute('size','10');
508        se.setAttribute('id','sel_proc_admin');
509        se.style.width = input_width;
510        se.style.height = input_height;
511
512        td.appendChild(se);
513        tr.appendChild(td);     
514        to.appendChild(tr);
515
516        td = document.createElement('TD');
517        td.setAttribute('align','center');
518        li = document.createElement('A');
519        li.setAttribute('href',"javascript:add_process_admins()");
520        im = new Image();
521        im.src = _icon_dir+'/add_org_admin.png';
522        li.appendChild(im);
523        td.appendChild(li);
524        td.appendChild(document.createElement('BR'));
525        li = document.createElement('A');
526        li.setAttribute('href',"javascript:add_process_admins()");
527        li.innerHTML = 'Adicionar';
528        td.appendChild(li);
529        tr.appendChild(td);
530       
531        td = document.createElement("TD");
532        td.innerHTML = 'Usuários para adicionar:<br>';
533        td.setAttribute('valign','top');
534        se = document.createElement("SELECT");
535        se.setAttribute('name','file');
536        se.setAttribute('id','sel_proc_user');
537        se.setAttribute('size','10');
538        se.style.width  = input_width;
539        se.style.height = input_height;
540
541        td.appendChild(se);
542        tr.appendChild(td);
543        to.appendChild(tr);
544
545        tr = document.createElement("TR");
546       
547        td = document.createElement("TD");
548        td.setAttribute('align','right');
549        bt = document.createElement("INPUT");
550        bt.setAttribute('type','button');
551        bt.setAttribute('name','Remover');
552        bt.setAttribute('value','Remover');
553        bt.onclick = function() { del_process_admin(); };
554        td.appendChild(bt);
555        tr.appendChild(td);
556       
557        td = document.createElement("TD");
558        tr.appendChild(td);
559       
560        td = document.createElement("TD");
561        td.setAttribute('align','right');
562       
563        bt = document.createElement("INPUT");
564        bt.setAttribute('type','button');
565        bt.setAttribute('name','Selecionar');
566        bt.setAttribute('value','Selecionar');
567        bt.onclick = function() { openParticipants('sel_proc_user', ''); };
568        td.appendChild(bt);
569
570        bt = document.createElement("INPUT");
571        bt.setAttribute('type','button');
572        bt.setAttribute('name','Remover');
573        bt.setAttribute('value','Remover');
574        bt.onclick = function() { del_selected_reg('sel_proc_user'); };
575        td.appendChild(bt);
576        tr.appendChild(td);
577
578        to.appendChild(tr);
579        tb.appendChild(to);
580
581        tb_out.setAttribute('align','center');
582        td_out.appendChild(tb);
583        tr_out.appendChild(td_out);
584        to_out.appendChild(tr_out);
585        tb_out.appendChild(to_out);
586
587        control_folder.appendChild(tb_out);     
588
589        cExecute ("$this.bo_adminaccess.get_all_processes", fillProcs, "");
590}
591
592function draw_monitor_control()
593{
594        var fillProcsMon = function(data)
595        {
596                var se = document.getElementById('sel_mon');
597
598                var op = document.createElement("OPTION");
599                op.setAttribute('value',-1);
600                se.appendChild(op);
601
602                for (i = 0; i < data.length; i++)
603                {
604                        op = document.createElement("OPTION");
605                        op.setAttribute('value',data[i]['proc_in_id']);
606                        op.innerHTML = data[i]['proc_st_name'];
607                        se.appendChild(op);
608                }
609        };
610
611
612        var control_folder = getFolder(4);
613        var input_width = '300px';
614        var input_height = '150px';
615
616        control_folder.appendChild(document.createElement('BR'));
617        control_folder.appendChild(document.createElement('BR'));
618
619        tb_out = document.createElement("TABLE");
620        to_out = document.createElement("TBODY");
621        tr_out = document.createElement("TR");
622        td_out = document.createElement("TD");
623
624        tb = document.createElement("TABLE");
625        to = document.createElement("TBODY");
626        tr = document.createElement("TR");
627        td = document.createElement("TD");
628
629        td.innerHTML = 'Processo:<br>';
630        se = document.createElement("SELECT");
631        se.setAttribute('name','sel_mon');
632        se.setAttribute('id','sel_mon');
633        se.onchange = function() { fillMonAdmins();  };
634        se.style.width = input_width;
635
636        td.appendChild(se);
637        tr.appendChild(td);     
638
639        td = document.createElement("TD");
640        tr.appendChild(td);
641        td = document.createElement("TD");
642        tr.appendChild(td);
643        to.appendChild(tr);
644
645        tr = document.createElement("TR");
646        td = document.createElement("TD");
647        td.setAttribute("colSpan", 3);
648        td.innerHTML = "&nbsp;";
649        tr.appendChild(td);
650        to.appendChild(tr);
651
652        tr = document.createElement("TR");
653        td = document.createElement("TD");
654
655        td.innerHTML = 'Usuários monitores:<br>';
656        se = document.createElement("SELECT");
657        se.setAttribute('size','10');
658        se.setAttribute('id','sel_mon_admin');
659        se.onchange = function() { loadLevel();  };
660        se.style.width = input_width;
661        se.style.height = input_height;
662
663        td.appendChild(se);
664        tr.appendChild(td);     
665        to.appendChild(tr);
666
667        td = document.createElement('TD');
668        td.setAttribute('align','center');
669        li = document.createElement('A');
670        li.setAttribute('href',"javascript:add_monitor_admins()");
671        im = new Image();
672        im.src = _icon_dir+'/add_org_admin.png';
673        li.appendChild(im);
674        td.appendChild(li);
675        td.appendChild(document.createElement('BR'));
676        li = document.createElement('A');
677        li.setAttribute('href',"javascript:add_monitor_admins()");
678        li.innerHTML = 'Adicionar';
679        td.appendChild(li);
680        tr.appendChild(td);
681       
682        td = document.createElement("TD");
683        td.innerHTML = 'Usuários para adicionar:<br>';
684        td.setAttribute('valign','top');
685        se = document.createElement("SELECT");
686        se.setAttribute('name','file');
687        se.setAttribute('id','sel_mon_user');
688        se.setAttribute('size','10');
689        se.style.width  = input_width;
690        se.style.height = input_height;
691
692        td.appendChild(se);
693        tr.appendChild(td);
694        to.appendChild(tr);
695
696        tr = document.createElement("TR");
697       
698        td = document.createElement("TD");
699        td.setAttribute('align','right');
700        bt = document.createElement("INPUT");
701        bt.setAttribute('type','button');
702        bt.setAttribute('name','Remover');
703        bt.setAttribute('value','Remover');
704        bt.onclick = function() { del_monitor_admin(); };
705        td.appendChild(bt);
706        tr.appendChild(td);
707       
708        td = document.createElement("TD");
709        tr.appendChild(td);
710       
711        td = document.createElement("TD");
712        td.setAttribute('align','right');
713       
714        bt = document.createElement("INPUT");
715        bt.setAttribute('type','button');
716        bt.setAttribute('name','Selecionar');
717        bt.setAttribute('value','Selecionar');
718        bt.onclick = function() { openParticipants('sel_mon_user', ''); };
719        td.appendChild(bt);
720
721        bt = document.createElement("INPUT");
722        bt.setAttribute('type','button');
723        bt.setAttribute('name','Remover');
724        bt.setAttribute('value','Remover');
725        bt.onclick = function() { del_selected_reg('sel_mon_user'); };
726        td.appendChild(bt);
727        tr.appendChild(td);
728
729        to.appendChild(tr);
730
731        /* include the cell that will hold the user level interface */
732        tr = document.createElement("TR");
733        td = document.createElement("TD");
734        td.setAttribute("id", "userLevel");
735        td.setAttribute("colSpan", 3);
736        tr.appendChild(td);
737        to.appendChild(tr);
738        tb.appendChild(to);
739
740        tb_out.setAttribute('align','center');
741        td_out.appendChild(tb);
742        tr_out.appendChild(td_out);
743        to_out.appendChild(tr_out);
744        tb_out.appendChild(to_out);
745
746        control_folder.appendChild(tb_out);     
747
748        cExecute ("$this.bo_adminaccess.get_all_processes", fillProcsMon, "");
749}
750
751function draw_external_application_control()
752{
753        function fillExternalApplications(data)
754        {
755                var content = '<option value="-1"></option>';
756                for (i = 0; i < data.length; i++)
757                        content += '<option value="' + data[i]['external_application_id'] + '">' + data[i]['name'] + '</option>';
758                setSelectValue(document.getElementById('sel_exa'), content);
759        }
760
761        var inputWidth = '300px';
762        var inputHeight = '150px';
763
764        var content = '<br/><br/>';
765        content += '<table align="center"><tr><td>';
766        content += '<table>';
767        content += '<tr><td>Aplicações Externas:<br/><select name="sel_exa" id="sel_exa" onchange="fillExternalApplicationAdmins();" style="width: ' + inputWidth + ';"></select></td><td></td><td></td></tr>';
768        content += '<tr><td colspan="3">&nbsp;</td></tr>';
769        content += '<tr>';
770        content += '<td>Usuários com acesso:<br/><select id="sel_exa_admin" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
771        content += '<td align="center"><a href="javascript:addExternalApplicationAdmins()"><img src="' + _icon_dir + 'add_org_admin.png"/></a><br/><a href="javascript:addExternalApplicationAdmins();">Adicionar</a></td>';
772        content += '<td valign="top">Usuários para adicionar:<br/><select id="sel_exa_user" name="file" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
773        content += '</tr>';
774        content += '<tr>';
775        content += '<td align="right"><input type="button" name="Remover" value="Remover" onclick="deleteExternalApplicationAdmin();"/></td>';
776        content += '<td></td>';
777        content += '<td align="right"><input type="button" name="Selecionar" value="Selecionar" onclick="openParticipants(\'sel_exa_user\', \'\')"/><input type="button" name="Remover" value="Remover" onclick="del_selected_reg(\'sel_exa_user\');"/></td>';
778        content += '</tr>';
779        content += '<tr><td colspan="3"></td></tr>';
780        content += '</table></td></tr></table>';
781
782        getFolder(5).innerHTML = content;
783        cExecute ("$this.bo_external_applications.getExternalApplications", fillExternalApplications, "");
784}
785
786function fillExternalApplicationAdmins()
787{
788        cExecute ("$this.bo_adminaccess.getExternalApplicationAdmins", refreshExternalApplicationAdmins, "external_application_id=" + document.getElementById('sel_exa').value);
789}
790
791function deleteExternalApplicationAdmin()
792{
793        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
794                cExecute ("$this.bo_adminaccess.deleteExternalApplicationAdmin", refreshExternalApplicationAdmins, "external_application_id=" + document.getElementById('sel_exa').value + "&admin_id=" + document.getElementById('sel_exa_admin').value);
795}
796
797function addExternalApplicationAdmins()
798{
799        var sel_exa = document.getElementById('sel_exa');
800        if (sel_exa.value == -1)
801        {
802                alert('É necessário selecionar uma Aplicação Externa.');
803                return;
804        }
805
806        var element = document.getElementById('sel_exa_user');
807        if (element.options.length == 0)
808                return;
809
810        var ids = '';
811        for(var i = 0; i < element.options.length; i++)
812                ids += ((i == 0) ? '' : '.') + element.options[i].value;
813
814        cExecute("$this.bo_adminaccess.addExternalApplicationAdmins", function(data){refreshExternalApplicationAdmins(data); document.getElementById('sel_exa_user').innerHTML = '';}, "external_application_id="+sel_exa.value+"&user_ids="+ids);
815}
816
817function refreshExternalApplicationAdmins(data)
818{
819        var content = '';
820        for (var i = 0; i < data.length; i++)
821                content += '<option value="' + data[i]['uidnumber'] + '">' + data[i]['cn'] + '</option>';
822        setSelectValue(document.getElementById('sel_exa_admin'), content);
823}
824
825function draw_administration_control()
826{
827        var inputWidth = '300px';
828        var inputHeight = '150px';
829
830        var content = '<br/><br/>';
831        content += '<table align="center"><tr><td>';
832        content += '<table>';
833        content += '<tr>';
834        content += '<td>Administradores do Módulo:<br/><select id="selectWorkflowAdmins" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
835        content += '<td align="center"><a href="javascript:addWorkflowAdministrators()"><img src="' + _icon_dir + 'add_org_admin.png"/></a><br/><a href="javascript:addWorkflowAdministrators();">Adicionar</a></td>';
836        content += '<td valign="top">Usuários para adicionar:<br/><select id="selectWorkflowUsers" name="file" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
837        content += '</tr>';
838        content += '<tr>';
839        content += '<td align="right"><input type="button" name="Remover" value="Remover" onclick="deleteWorkflowAdministrators();"/></td>';
840        content += '<td></td>';
841        content += '<td align="right"><input type="button" name="Selecionar" value="Selecionar" onclick="openParticipants(\'selectWorkflowUsers\', \'\')"/><input type="button" name="Remover" value="Remover" onclick="del_selected_reg(\'selectWorkflowUsers\');"/></td>';
842        content += '</tr>';
843        content += '<tr><td colspan="3"></td></tr>';
844        content += '</table></td></tr></table>';
845
846        getFolder(0).innerHTML = content;
847        cExecute ("$this.bo_adminaccess.getWorkflowAdministrators", refreshWorkflowAdministrators, "");
848}
849
850function refreshWorkflowAdministrators(data)
851{
852        var content = '';
853        for (var i = 0; i < data.length; i++)
854                content += '<option value="' + data[i]['uidnumber'] + '">' + data[i]['cn'] + '</option>';
855        setSelectValue(document.getElementById('selectWorkflowAdmins'), content);
856}
857
858function addWorkflowAdministrators()
859{
860        var element = document.getElementById('selectWorkflowUsers');
861        if (element.options.length == 0)
862                return;
863
864        var ids = '';
865        for(var i = 0; i < element.options.length; i++)
866                ids += ((i == 0) ? '' : '.') + element.options[i].value;
867
868        cExecute("$this.bo_adminaccess.addWorkflowAdministrators", function(data){refreshWorkflowAdministrators(data); document.getElementById('selectWorkflowUsers').innerHTML = '';}, "user_ids="+ids);
869}
870
871function deleteWorkflowAdministrators()
872{
873        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
874                cExecute("$this.bo_adminaccess.deleteWorkflowAdministrators", refreshWorkflowAdministrators, "admin_id=" + document.getElementById('selectWorkflowAdmins').value);
875}
876
877function draw_development_control()
878{
879        var inputWidth = '300px';
880        var inputHeight = '150px';
881
882        var content = '<br/><br/>';
883        content += '<table align="center"><tr><td>';
884        content += '<table>';
885        content += '<tr>';
886        content += '<td>Desenvolvedores de processos:<br/><select id="selectDevelopmentAdmins" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
887        content += '<td align="center"><a href="javascript:addDevelopmentAdministrators()"><img src="' + _icon_dir + 'add_org_admin.png"/></a><br/><a href="javascript:addDevelopmentAdministrators();">Adicionar</a></td>';
888        content += '<td valign="top">Usuários para adicionar:<br/><select id="selectDevelopmentUsers" name="file" size="10" style="width: ' + inputWidth + '; height: ' + inputHeight + ';"/></td>';
889        content += '</tr>';
890        content += '<tr>';
891        content += '<td align="right"><input type="button" name="Remover" value="Remover" onclick="deleteDevelopmentAdministrators();"/></td>';
892        content += '<td></td>';
893        content += '<td align="right"><input type="button" name="Selecionar" value="Selecionar" onclick="openParticipants(\'selectDevelopmentUsers\', \'\')"/><input type="button" name="Remover" value="Remover" onclick="del_selected_reg(\'selectDevelopmentUsers\');"/></td>';
894        content += '</tr>';
895        content += '<tr><td colspan="3"></td></tr>';
896        content += '</table></td></tr></table>';
897
898        getFolder(1).innerHTML = content;
899        cExecute ("$this.bo_adminaccess.getDevelopmentAdministrators", refreshDevelopmentAdministrators, "");
900}
901
902function refreshDevelopmentAdministrators(data)
903{
904        var content = '';
905        for (var i = 0; i < data.length; i++)
906                content += '<option value="' + data[i]['uidnumber'] + '">' + data[i]['cn'] + '</option>';
907        setSelectValue(document.getElementById('selectDevelopmentAdmins'), content);
908}
909
910function addDevelopmentAdministrators()
911{
912        var element = document.getElementById('selectDevelopmentUsers');
913        if (element.options.length == 0)
914                return;
915
916        var ids = '';
917        for(var i = 0; i < element.options.length; i++)
918                ids += ((i == 0) ? '' : '.') + element.options[i].value;
919
920        cExecute("$this.bo_adminaccess.addDevelopmentAdministrators", function(data){refreshDevelopmentAdministrators(data); document.getElementById('selectDevelopmentUsers').innerHTML = '';}, "user_ids="+ids);
921}
922
923function deleteDevelopmentAdministrators()
924{
925        if (confirm('Tem certeza que deseja excluir o registro selecionado?'))
926                cExecute("$this.bo_adminaccess.deleteDevelopmentAdministrators", refreshDevelopmentAdministrators, "admin_id=" + document.getElementById('selectDevelopmentAdmins').value);
927}
928
929/* construct the user level interface */
930function loadLevel()
931{
932        /* required parameters */
933        var pid = document.getElementById('sel_mon').value;
934        var uid = document.getElementById('sel_mon_admin').value;
935
936        var loadLevelHandler = function(data)
937        {
938                var userLevelContainer = document.getElementById("userLevel");
939                userLevelContainer.innerHTML = "";
940
941                /* checkboxes creation */
942                var checkBoxesPerRow = 2;
943                var tb_out = document.createElement("TABLE");
944                var to_out = document.createElement("TBODY");
945                var tr = document.createElement("TR");
946                var td = document.createElement("TD");
947                td.innerHTML = "Permissões de Acesso:";
948                tr.appendChild(td);
949                to_out.appendChild(tr);
950                var table = document.createElement("TABLE");
951                var tbody = document.createElement("TBODY");
952                table.style.border='1px solid gray';
953                tr = null;
954                td = null;
955                for (var i = 0; i < permissionList.length; i++)
956                {
957                        /* create the checkbox and the label */
958                        var checkBox = document.createElement("INPUT");
959                        checkBox.setAttribute("id", "cb_" + permissionList[i]['value']);
960                        checkBox.setAttribute("type", "checkbox");
961                        if (data['bits'][permissionList[i]['value']])
962                                checkBox.defaultChecked = true;
963
964                        var label = "<label for=\"cb_" + permissionList[i]['value']  + "\">" + permissionList[i]['name']  + "</label>";
965                        /* if necessary, start a new row */
966                        if (!tr || (tr.childNodes.length == 2*checkBoxesPerRow))
967                                tr = document.createElement("TR");
968                        td = document.createElement("TD");
969                        td.innerHTML = label;
970                        tr.appendChild(td);
971                        td = document.createElement("TD");
972                        td.appendChild(checkBox);
973                        tr.appendChild(td);
974
975                        /* check if the row is "complete" */
976                        if (tr.childNodes.length == 2*checkBoxesPerRow)
977                        {
978                                tbody.appendChild(tr);
979                        }
980                        else
981                        {
982                                if (i == (permissionList.length - 1))
983                                {
984                                        tr.appendChild(document.createElement("TD"));
985                                        tr.appendChild(document.createElement("TD"));
986                                        tbody.appendChild(tr);
987                                }
988                        }
989                }
990                tr = document.createElement("TR");
991                td = document.createElement("TD");
992                td.colSpan = 4;
993                td.align = 'center';
994                var toggleButton = document.createElement("BUTTON");
995                toggleButton.onclick = toggleCheckboxes;
996                toggleButton.innerHTML = 'Marcar/Desmarcar Tudo';
997
998                td.appendChild(toggleButton);
999                tr.appendChild(td);
1000                tbody.appendChild(tr);
1001                table.appendChild(tbody);
1002
1003                /* submit button */
1004                var button = document.createElement("BUTTON");
1005                button.onclick = function() { changeUserLevel(); };
1006                button.innerHTML = "Salvar";
1007
1008                tr = document.createElement("TR");
1009                td = document.createElement("TD");
1010                td.appendChild(table);
1011                tr.appendChild(td);
1012                to_out.appendChild(tr);
1013
1014                tr = document.createElement("TR");
1015                td = document.createElement("TD");
1016                td.setAttribute("align", "right");
1017                td.appendChild(button);
1018                tr.appendChild(td);
1019                to_out.appendChild(tr);
1020
1021                tb_out.appendChild(to_out);
1022                userLevelContainer.appendChild(tb_out);
1023        };
1024
1025        cExecute ("$this.bo_adminaccess.get_monitor_admin_level", loadLevelHandler, "pid=" + pid + "&uid=" + uid);
1026}
1027
1028/* change the user level */
1029function changeUserLevel()
1030{
1031        /* required parameters */
1032        var pid = document.getElementById('sel_mon').value;
1033        var uid = document.getElementById('sel_mon_admin').value;
1034
1035        /* check for error (ajax callback) */
1036        var changeUserLevelHandler = function(data)
1037        {
1038                if (typeof(data) == "string")
1039                        write_errors(data);
1040                else
1041                        write_msg('As permissões foram salvas');
1042        };
1043       
1044        /* generate the new permission string */
1045        var newPermission = "";
1046        for (var i = 0; i < permissionList.length; i++)
1047        {
1048                var cb = document.getElementById("cb_" + permissionList[i]['value']);
1049                newPermission += permissionList[i]['value'] + "=" + ((cb.checked) ? "1" : "0") + "_";
1050        }
1051        newPermission = newPermission.substring(0, newPermission.length-1);
1052       
1053        /* call ajax */
1054        cExecute ("$this.bo_adminaccess.set_monitor_admin_level", changeUserLevelHandler, "pid=" + pid + "&uid=" + uid + "&np=" + newPermission);
1055}
1056
1057function toggleCheckboxes()
1058{
1059        var value = !document.getElementById('cb_' + permissionList[0]['value']).checked;
1060        for (var i = 0; i < permissionList.length; i++)
1061                document.getElementById('cb_' + permissionList[i]['value']).checked = value;
1062}
1063
1064function draw_control_folder()
1065{
1066        change_folder(0);
1067}
1068
1069function delUsers()
1070{
1071    target = window.document.getElementById('user_list');
1072
1073    for(var i = 0; i < target.options.length; i++)
1074    {
1075        if(target.options[i].selected)
1076        {
1077            target.options[i--] = null;
1078        }
1079    }
1080}
Note: See TracBrowser for help on using the repository browser.