source: branches/2.2/listAdmin/js/jscode/maillists.js @ 3548

Revision 3548, 26.4 KB checked in by rafaelraymundo, 13 years ago (diff)

Ticket #1419 - Criticar e-mail externo - ListAdmin?. Atualizacao de dependencia do modulo (setup.inc.php).

Line 
1countFiles = 0;
2function validate_fields(type)
3{
4        document.forms[0].uid.value = document.forms[0].uid.value.toLowerCase();
5        document.forms[0].old_uid.value = document.forms[0].old_uid.value.toLowerCase();
6       
7        if (document.forms[0].uid.value == ''){
8                alert('Campo LOGIN da lista está vazio.');
9                return;
10        }
11
12/*      if (document.forms[0].cn.value == ''){
13                alert('Campo NOME da lista está vazio.');
14                return;
15        }*/
16       
17        if (document.forms[0].restrictionsOnEmailLists.value == 'true')
18        {
19                uid_tmp = document.forms[0].uid.value.split("-");
20                if ((uid_tmp.length < 3) || (uid_tmp[0] != 'lista')){
21                        alert(
22                                'O campo LOGIN da lista está incompleto.\n' +
23                                'O nome da lista deve ser formado assim:\n' +
24                                'lista-ORGANIZACAO-NOME_DA_LISTA.\n' +
25                                'Ex: lista-serpro-rh.');
26                        return;
27                }
28        }
29               
30        if (document.forms[0].uid.value.split(" ").length > 1){
31                alert('Campo LOGIN comtém espaços.');
32                document.forms[0].uid.focus();
33                return;
34        }
35
36        //Verifica se a pagina de origem e a de edicao ou criacao de lista, pois o atributo listPass e usado apenas nestas paginas;
37        if((type == 'edit_maillist') || (type == 'create_maillist')) {
38                if (document.forms[0].listPass.value == ''){
39                        alert('Campo SENHA da lista está vazio.');
40                        document.forms[0].listPass.focus();
41                        return;
42                }
43        }
44       
45/*      if (document.forms[0].mail.value == ''){
46                alert('Campo E-MAIL da lista está vazio.');
47                document.forms[0].mail.focus();
48                return;
49        }
50        var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
51        if(!reEmail.test(document.forms[0].mail.value)){
52                alert("Campo E-mail não é válido.");
53                return false;
54        }
55*/
56// Alteracao para saber de onde vem a chamada do save() - se da pagina de edicao de lista ou da pagina de administrador da lista
57        if((type == 'edit_maillist') || (type == 'create_maillist')) { // pagina de edicao da lista
58                select_userInMaillist = document.getElementById('ea_select_usersInMaillist');
59                if (select_userInMaillist.options.length == 0){
60                        alert('Nenhum usuário faz parte da lista.');
61                        return;
62                }
63               
64        /*}else if(type == 'adm_maillist') { // pagina de administador da lista
65                select_ADM_Maillist = document.getElementById('ea_select_ADM_Maillist');
66                if (select_ADM_Maillist.options.length == 0){
67                        alert('Nenhum usuário faz parte da lista.');
68                        return;
69                }
70        */     
71        }
72
73/* Codigo original preservado, em caso de necessidade
74
75        select_userInMaillist = document.getElementById('ea_select_usersInMaillist');
76        if (select_userInMaillist.options.length == 0){
77                alert('Nenhum usuário faz parte da lista.');
78                return;
79        }
80
81*/
82        var handler_validate_fields = function(data)
83        {
84                if (!data.status)
85                        alert(data.msg);
86                else
87                {
88                        if (type == 'create_maillist')
89                                cExecuteForm ("$this.maillist.create", document.forms[0], handler_create);
90                        else if (type == 'edit_maillist')
91                                cExecuteForm ("$this.maillist.save", document.forms[0], handler_save);
92                        //else if (type == 'adm_maillist')
93                        //      cExecuteForm ("$this.maillist.save_adm", document.forms[0], handler_save);
94                }
95        }
96
97// Alteracao semelhante a descrita acima
98        if((type == 'edit_maillist') || (type == 'create_maillist')) {
99                for(var i=0; i<select_userInMaillist.options.length; i++)
100                        select_userInMaillist.options[i].selected = true;
101
102        /*}else if(type == 'adm_maillist') {
103                for(var i=0; i<select_ADM_Maillist.options.length; i++)
104                        select_ADM_Maillist.options[i].selected = true;
105*/
106        }
107
108/* Codigo original preservado, em caso de necessidade
109
110        // Needed select all options from select
111        for(var i=0; i<select_userInMaillist.options.length; i++)
112                select_userInMaillist.options[i].selected = true;
113*/
114
115        // O UID da lista foi alterado ou é uma nova lista.
116        if ((document.forms[0].old_uid.value != document.forms[0].uid.value) || (type == 'create_maillist')){
117                cExecute ('$this.maillist.validate_fields&uid='+document.forms[0].uid.value, handler_validate_fields);
118        }
119        else if (type == 'edit_maillist')
120        {
121                cExecuteForm ("$this.maillist.save", document.forms[0], handler_save);
122        }
123        //else if (type == 'adm_maillist')
124        //{
125        //      cExecuteForm ("$this.maillist.save_adm", document.forms[0], handler_save);
126        //}
127}
128
129// HANDLER CREATE
130// É necessário 2 funcões de retorno por causa do cExecuteForm.
131function handler_create(data)
132{
133        return_handler_create(data);
134}
135function return_handler_create(data)
136{
137        if (!data.status)
138                alert(data.msg);
139        else{
140                //Rotina alterada em 08/10/2007, para contemplar a sincronização Mailman/RHDS
141                //Faz a chamada do script que atualiza as listas no Mailman/RHDS
142                window.setTimeout("cExecute('$this.maillist.synchronize_mailman&uid='+document.forms[0].uid.value+'&op=1', handler_sync_mailman)", 10);
143                //A nova lista foi criada com sucesso
144                //alert('Lista de emails criada com êxito!');
145        }
146        return;
147}
148
149//Manipulador ascrescentado em 08/10/2007: para tratar da sincronização em tempo real do Mailman com o RHDS
150function handler_sync_mailman(data){
151        //Converte os dados do vetor oriundo de um script PHP para um vetor JavaScript
152        var dados_serializados = eval(data);
153        return_handler_sync_mailman(dados_serializados);
154}
155
156function return_handler_sync_mailman(data){
157        //Depois de processar a sincronização do Mailman com o RHDS, redireciona o usuário para a tela inicial
158        //Mesmo que não tenha tido êxito, segue o comportamento default da aplicação, redirecionando o usuário
159        //EM CASO DE ERRO NA SINCRONIZAÇÃO: CONFERIR O LOG "expresso_sincronizacao_mailmanrhds.log" em "/tmp"
160        //alert("Retorno do socket:\nSTATUS=" + data['status'] +'\nMSG=' + data['msg']);
161        alert('Lista de emails criada com êxito!');
162        location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";           
163//      alert('Teste debug!'+ data["msg"]);
164}
165
166// HANDLER SAVE
167// É necessário 2 funcões de retorno por causa do cExecuteForm.
168function handler_save(data)
169{
170        return_handler_save(data);
171}
172function return_handler_save(data)
173{
174        if (!data.status)
175                alert(data.msg);
176        else{
177
178                //Alterado em 28/04/2008. Linha abaixo foi incluida para sincronizacao do Mailman com o RHDS, apos alteracao de uma
179                //caracteristica nas abas Editar e Adm, em uma lista existente;
180                window.setTimeout("cExecute('$this.maillist.synchronize_mailman&uid='+document.forms[0].uid.value+'&op=1', handler_sync_mailman)", 10);
181        //      alert('Lista de emails salva com êxito!!');
182        //      location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";
183        }
184        return;
185}
186
187function save_adm()
188{
189        select_users_ADM_Maillist = document.getElementById('ea_select_ADM_Maillist');
190        for(var i=0; i<select_users_ADM_Maillist.options.length; i++)
191                select_users_ADM_Maillist.options[i].selected = true;
192
193        cExecuteForm ("$this.maillist.save_adm", document.forms[0], handler_save_adm);
194}
195function handler_save_adm(data)
196{
197        return_handler_save_adm(data);
198}
199
200function return_handler_save_adm(data)
201{
202        if (!data.status)
203                alert(data.msg);
204        else
205
206                //Alterado em 28/04/2008. Linha abaixo foi incluida para sincronizacao do Mailman com o RHDS, apos alteracao de uma
207                //caracteristica na aba ADM, em uma lista existente;
208                window.setTimeout("cExecute('$this.maillist.synchronize_mailman&uid='+document.forms[0].uid.value+'&op=1', handler_sync_mailman)", 10);
209        //      alert('Sending Control List salva com êxito!!');
210        //      location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";
211        return;
212}
213
214function save_scl()
215{
216        select_users_SCL_Maillist = document.getElementById('ea_select_users_SCL_Maillist');
217        // Needed select all options from select
218        for(var i=0; i<select_users_SCL_Maillist.options.length; i++)
219                select_users_SCL_Maillist.options[i].selected = true;
220
221        cExecuteForm ("$this.maillist.save_scl", document.forms[0], handler_save_scl);
222}
223function handler_save_scl(data)
224{
225        return_handler_save_scl(data);
226}
227
228function return_handler_save_scl(data)
229{
230        if (!data.status)
231                alert(data.msg);
232        else
233
234                //Alterado em 28/04/2008. Linha abaixo foi incluida para sincronizacao do Mailman com o RHDS, apos alteracao de uma
235                //caracteristica na aba SCL, em uma lista existente;
236                window.setTimeout("cExecute('$this.maillist.synchronize_mailman&uid='+document.forms[0].uid.value+'&op=1', handler_sync_mailman)", 10);
237        //      alert('Sending Control List salva com êxito!!');
238        //      location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";
239        return;
240}
241
242function sinc_combos_org(context, recursive)
243{
244        combo_org_maillists = document.getElementById('ea_combo_org_maillists');
245
246        for (i=0; i<combo_org_maillists.length; i++)
247        {
248                if (combo_org_maillists.options[i].value == context)
249                {
250                        combo_org_maillists.options[i].selected = true;
251                        get_available_users(context, recursive);
252                        break;
253                }
254        }
255}
256
257function get_available_users(context, recursive)
258{
259        var handler_get_available_users = function(data)
260        {
261                select_available_users = document.getElementById('ea_select_available_users');
262               
263                //Limpa o select
264                for(var i=0; i<select_available_users.options.length; i++)
265                {
266                        select_available_users.options[i] = null;
267                        i--;
268                }
269
270                if ((data) && (data.length > 0))
271                {
272                        // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
273                        select_available_users.innerHTML = 'lixo' + data;
274                        select_available_users.outerHTML = select_available_users.outerHTML;
275                       
276                        select_available_users.disabled = false;
277                        select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true);
278                        document.getElementById('ea_input_searchUser').value = '';
279                }
280        }
281       
282        //Impede chamada recursiva na raiz das organizações
283        if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value))
284        {
285                alert('Nao é possível selecionar todos os usuários da organização raiz.')
286                document.getElementById('ea_check_allUsers').checked = false;
287               
288                // Limpa select
289                select_available_users = document.getElementById('ea_select_available_users');
290                select_available_users.innerHTML = 'lixo';
291                select_available_users.outerHTML = select_available_users.outerHTML;
292                return;
293        }
294                cExecute ('$this.ldap_functions.get_available_users_and_maillist&context='+context+'&recursive='+recursive+'&denied_uidnumber='+document.forms[0].uidnumber.value, handler_get_available_users);
295}
296
297
298function get_available_users_only(context, recursive) // Funcao que busca os usuarios apenas, sem as listas
299{
300
301        itemBusca = document.getElementById('ea_input_searchUser').value;
302
303
304        var handler_get_available_users = function(data)
305        {
306                select_available_users = document.getElementById('ea_select_available_users');
307               
308                //Limpa o select
309                for(var i=0; i<select_available_users.options.length; i++)
310                {
311                        select_available_users.options[i] = null;
312                        i--;
313                }
314
315                if ((data) && (data.length > 0))
316                {
317                        // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
318                        select_available_users.innerHTML = 'lixo' + data;
319                        select_available_users.outerHTML = select_available_users.outerHTML;
320                       
321                        select_available_users.disabled = false;
322//                      select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true);
323                        document.getElementById('ea_input_searchUser').value = '';
324                }
325        }
326
327        //Impede chamada recursiva na raiz das organizações
328        if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value))
329        {
330                alert('Nao é possível selecionar todos os usuários da organização raiz.')
331                document.getElementById('ea_check_allUsers').checked = false;
332               
333                // Limpa select
334                select_available_users = document.getElementById('ea_select_available_users');
335                select_available_users.innerHTML = 'lixo';
336                select_available_users.outerHTML = select_available_users.outerHTML;
337                return;
338        }
339
340                cExecute ('$this.ldap_functions.get_available_users_only&context='+context+'&filtro='+itemBusca+'&recursive='+recursive+'&denied_uidnumber='+document.forms[0].uidnumber.value, handler_get_available_users);
341}
342
343
344function search_users() // Funcao que busca apenas os usuarios, sem as listas
345{
346
347//      dnSearch = document.getElementById("ea_combo_org_maillists").value; //Recebe o dn para busca do usuario;
348        users = document.getElementById('ea_input_searchUser').value; //Recebe qual usuario deve ser buscado;
349        tipoTpl = document.forms[0].tipo.value; //Recebe a opcao de administracao de lista a partir da qual esta sendo feita a busca (Edit, Scl ou Adm);
350
351        //Exige que o argumento de busca tenha, no minimo, 4 caracteres;
352        if(users.length < 4) {
353
354                alert('Argumento de busca deve ter no mínimo 4 caracteres.');
355                return;
356        }
357
358        var handler_search_users = function(data)
359        {
360
361                select_available_users = document.getElementById('ea_select_available_users');
362
363                //Limpa o select
364                for(var i=0; i<select_available_users.options.length; i++)
365                {
366                        select_available_users.options[i] = null;
367                        i--;
368                }
369
370                if ((data) && (data.length > 0))
371                {
372                        // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
373                        select_available_users.innerHTML = 'lixo' + data;
374                        select_available_users.outerHTML = select_available_users.outerHTML;
375
376                        select_available_users.disabled = false;
377                        select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true);
378                        document.getElementById('ea_input_searchUser').value = '';
379                }
380        }
381
382        cExecute ('$this.ldap_functions.search_users_only&&filtro='+users+'&tipo='+tipoTpl+'&denied_uidnumber='+document.forms[0].uidnumber.value, handler_search_users);
383
384}
385
386function LTrim(value)
387{
388        var w_space = String.fromCharCode(32);
389        var strTemp = "";
390        var iTemp = 0;
391
392        var v_length = value ? value.length : 0;
393        if(v_length < 1)
394                return "";
395
396        while(iTemp < v_length){
397                if(value && value.charAt(iTemp) != w_space){
398                        strTemp = value.substring(iTemp,v_length);
399                        break;
400                }
401                iTemp++;
402        }
403        return strTemp;
404}
405
406function validateEmail()
407{
408
409        externalEmail = document.getElementById('ea_input_externalUser');
410        if( externalEmail.value )
411        {
412                //var element = arguments[0];
413                var validate = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
414
415                if(this.LTrim(externalEmail.value) != "" && externalEmail.value != "")
416                {
417                        if(!validate.test(externalEmail.value))
418                        {
419                                alert('Email address is not valid.');
420                                externalEmail.focus();
421                                return false;
422                        }else {
423                                this.add_externalUser2maillist(externalEmail.value);
424                        }
425                }
426        }
427}
428
429function add_externalUser2maillist(mailAddress)
430{
431        input_externalUsers = mailAddress; //document.getElementById('ea_input_externalUser').value;
432        select_usersInMaillist = document.getElementById('ea_select_usersInMaillist');
433
434        var count_externalUsers = input_externalUsers.length;
435        var count_usersInMaillist = select_usersInMaillist.options.length;
436        var new_options = '';
437
438        var teste = ''; //Variavel que ira receber mensagem de alerta ao usuario;
439        var alerta = new Boolean(0); //Variavel que sera usada para verificar se o alerta ao usuario sera exibido ou nao;
440        teste += "Usuário(os) já pertence(m) à lista:\n"; //Inicio da mensagem de alerta ao usuario;
441
442
443        //Laco abaixo compara se o valor escolhido em select_available_users ja existe em select_usersInMaillist
444        //se existir, adiciona o valor em teste e muda a variavel alerta para true; teste sera exibido em tela
445        //apenas de alerta  true; ver if no fim da funcao;
446        for(j = 0; j < count_usersInMaillist; j++)
447        {
448                var tmp = select_usersInMaillist.options[j].text
449
450                if(tmp.match(input_externalUsers))
451                {
452                        teste += input_externalUsers + "\n";
453                        alerta = new Boolean(1);
454                }
455        }
456
457        if(alerta != true)
458        {
459                if(document.all)
460                {
461                        if ( (select_usersInMaillist.innerHTML.indexOf('value='+input_externalUsers)) == '-1' )
462                        {
463                                new_options +=  "<option value="
464                                                        + input_externalUsers
465                                                        + ">"
466                                                        + input_extenalUsers
467                                                        + "</options>";
468                        }
469                }
470                else
471                {               
472                        if ( (select_usersInMaillist.innerHTML.indexOf('value="'+input_externalUsers+'"')) == '-1' )
473                        {
474                                new_options +=  "<option value="
475                                                        + input_externalUsers
476                                                        + ">"
477                                                        + input_externalUsers
478                                                        + "</options>";
479                        }
480                }
481        }
482
483        //Se alerta for true, exibe na tela o valor de teste;
484        if(alerta == true)
485        {
486                alert(teste);
487        }
488
489
490        if (new_options != '')
491        {
492                select_usersInMaillist.innerHTML = 'lixo' + new_options + select_usersInMaillist.innerHTML;
493                select_usersInMaillist.outerHTML = select_usersInMaillist.outerHTML;
494        }
495
496        document.getElementById('ea_input_externalUser').value = '';
497
498}
499
500
501
502function add_user2maillist()
503{
504        select_available_users = document.getElementById('ea_select_available_users');
505        select_usersInMaillist = document.getElementById('ea_select_usersInMaillist');
506
507        var count_available_users = select_available_users.length;
508        var count_usersInMailList = select_usersInMaillist.options.length;
509        var new_options = '';
510
511        var teste = ''; //Variavel que ira receber mensagem de alerta ao usuario;
512        var alerta = new Boolean(0); //Variavel que sera usada para verificar se o alerta ao usuario sera exibido ou nao;
513        teste += "Usuário(os) já pertence(m) à lista:\n"; //Inicio da mensagem de alerta ao usuario;
514
515        for (i = 0 ; i < count_available_users ; i++)
516        {
517                if (select_available_users.options[i].selected)
518                {
519
520
521                        //Laco abaixo compara se o valor escolhido em select_available_users ja existe em select_usersInMaillist
522                        //se existir, adiciona o valor em teste e muda a variavel alerta para true; teste sera exibido em tela
523                        //apenas de alerta  true; ver if no fim da funcao;
524                        for(j = 0; j < count_usersInMailList; j++)
525                        {
526                                if(select_usersInMaillist.options[j].text == select_available_users.options[i].text)
527                                {
528                                        teste += select_available_users.options[i].text + "\n";
529                                        alerta = new Boolean(1);
530                                }
531                        }
532
533
534                        if(document.all)
535                        {
536                                if ( (select_usersInMaillist.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
537                                {
538                                        new_options +=  "<option value="
539                                                                + select_available_users.options[i].value
540                                                                + ">"
541                                                                + select_available_users.options[i].text
542                                                                + "</options>";
543                                }
544                        }
545                        else
546                        {               
547                                if ( (select_usersInMaillist.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
548                                {
549                                        new_options +=  "<option value="
550                                                                + select_available_users.options[i].value
551                                                                + ">"
552                                                                + select_available_users.options[i].text
553                                                                + "</options>";
554                                }
555                        }
556                }
557        }
558
559        //Se alerta for true, exibe na tela o valor de teste;
560        if(alerta == true)
561        {
562                alert(teste);
563        }
564
565
566        if (new_options != '')
567        {
568                select_usersInMaillist.innerHTML = 'lixo' + new_options + select_usersInMaillist.innerHTML;
569                select_usersInMaillist.outerHTML = select_usersInMaillist.outerHTML;
570        }
571}
572
573function remove_user2maillist()
574{
575        select_usersInMaillist = document.getElementById('ea_select_usersInMaillist');
576       
577        for(var i = 0;i < select_usersInMaillist.options.length; i++)
578                if(select_usersInMaillist.options[i].selected)
579                        select_usersInMaillist.options[i--] = null;
580}
581
582function add_user2adm_maillist()
583{
584        select_available_users = document.getElementById('ea_select_available_users');
585        select_ADM_Maillist = document.getElementById('ea_select_ADM_Maillist');
586
587        var count_available_users = select_available_users.length;
588        var count_ADM_MailList = select_ADM_Maillist.options.length;
589        var new_options = '';
590
591
592        var teste = ''; //Variavel que ira receber mensagem de alerta ao usuario;
593        var alerta = new Boolean(0); //Variavel que sera usada para verificar se o alerta ao usuario sera exibido ou nao;
594        teste += "Usuário(os) já pertence(m) à lista:\n"; //Inicio da mensagem de alerta ao usuario;
595
596
597        for (i = 0 ; i < count_available_users ; i++)
598        {
599                if (select_available_users.options[i].selected)
600                {
601
602
603                        //Laco abaixo compara se o valor escolhido em select_available_users ja existe em select_ADM_Maillist
604                        //se existir, adiciona o valor em teste e muda a variavel alerta para true; teste sera exibido em tela
605                        //apenas de alerta  true; ver if no fim da funcao;
606                        for(j = 0; j < count_ADM_MailList; j++)
607                        {
608                                if(select_ADM_Maillist.options[j].text == select_available_users.options[i].text)
609                                {
610                                        teste += select_available_users.options[i].text + "\n";
611                                        alerta = new Boolean(1);
612                                }
613                        }
614
615
616                        if(document.all)
617                        {
618                                if ( (select_ADM_Maillist.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
619                                {
620                                        new_options +=  "<option value="
621                                                                + select_available_users.options[i].value
622                                                                + ">"
623                                                                + select_available_users.options[i].text
624                                                                + "</options>";
625                                }
626                        }
627                        else
628                        {               
629                                if ( (select_ADM_Maillist.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
630                                {
631                                        new_options +=  "<option value="
632                                                                + select_available_users.options[i].value
633                                                                + ">"
634                                                                + select_available_users.options[i].text
635                                                                + "</options>";
636                                }
637                        }
638                }
639        }
640
641
642        //Se alerta for true, exibe na tela o valor de teste;
643        if(alerta == true)
644        {
645                alert(teste);
646        }
647
648        if (new_options != '')
649        {
650                select_ADM_Maillist.innerHTML = 'lixo' + new_options + select_ADM_Maillist.innerHTML;
651                select_ADM_Maillist.outerHTML = select_ADM_Maillist.outerHTML;
652        //      select_AdminInMaillist.outerHTML = select_AdminInMaillist.outerHTML;
653        }
654}
655
656function remove_user2adm_maillist()
657{
658        select_ADM_Maillist = document.getElementById('ea_select_ADM_Maillist');
659       
660        for(var i = 0;i < select_ADM_Maillist.options.length; i++)
661                if(select_ADM_Maillist.options[i].selected)
662                        select_ADM_Maillist.options[i--] = null;
663}
664
665
666function add_user2scl_maillist()
667{
668        select_available_users = document.getElementById('ea_select_available_users');
669        select_usersInMaillist = document.getElementById('ea_select_users_SCL_Maillist');
670
671        var count_available_users = select_available_users.length;
672        var count_usersInMailList = select_usersInMaillist.options.length;
673        var new_options = '';
674
675
676        var teste = ''; //Variavel que ira receber mensagem de alerta ao usuario;
677        var alerta = new Boolean(0); //Variavel que sera usada para verificar se o alerta ao usuario sera exibido ou nao;
678        teste += "Usuário(os) já pertence(m) à lista:\n"; //Inicio da mensagem de alerta ao usuario;
679
680
681        for (i = 0 ; i < count_available_users ; i++)
682        {
683                if (select_available_users.options[i].selected)
684                {
685
686
687                        //Laco abaixo compara se o valor escolhido em select_available_users ja existe em select_usersInMaillist
688                        //se existir, adiciona o valor em teste e muda a variavel alerta para true; teste sera exibido em tela
689                        //apenas de alerta  true; ver if no fim da funcao;
690                        for(j = 0; j < count_usersInMailList; j++)
691                        {
692                                if(select_usersInMaillist.options[j].text == select_available_users.options[i].text)
693                                {
694                                        teste += select_available_users.options[i].text + "\n";
695                                        alerta = new Boolean(1);
696                                }
697                        }
698
699
700                        if(document.all)
701                        {
702                                if ( (select_usersInMaillist.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
703                                {
704                                        new_options +=  "<option value="
705                                                                + select_available_users.options[i].value
706                                                                + ">"
707                                                                + select_available_users.options[i].text
708                                                                + "</options>";
709                                }
710                        }
711                        else
712                        {               
713                                if ( (select_usersInMaillist.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
714                                {
715                                        new_options +=  "<option value="
716                                                                + select_available_users.options[i].value
717                                                                + ">"
718                                                                + select_available_users.options[i].text
719                                                                + "</options>";
720                                }
721                        }
722                }
723        }
724
725
726        //Se alerta for true, exibe na tela o valor de teste;
727        if(alerta == true)
728        {
729                alert(teste);
730        }
731
732        if (new_options != '')
733        {
734                select_usersInMaillist.innerHTML = '#' + new_options + select_usersInMaillist.innerHTML;
735                select_usersInMaillist.outerHTML = select_usersInMaillist.outerHTML;
736        }
737}
738
739function remove_user2scl_maillist()
740{
741        select_usersInMaillist = document.getElementById('ea_select_users_SCL_Maillist');
742       
743        for(var i = 0;i < select_usersInMaillist.options.length; i++)
744                if(select_usersInMaillist.options[i].selected)
745                        select_usersInMaillist.options[i--] = null;
746}
747
748
749// Variaveis Locais
750if (document.getElementById('ea_select_available_users'))
751{
752        var select_available_users  = document.getElementById('ea_select_available_users');
753        var select_available_users_clone = select_available_users.cloneNode(true);
754}
755else
756{
757        var select_available_users  = '';
758        var select_available_users_clone = '';
759}
760var finderTimeout = '';
761
762// Funcoes                                                                                     
763function optionFinderTimeout(obj)
764{
765        clearTimeout(finderTimeout);   
766        var oWait = document.getElementById("ea_span_searching");
767        oWait.innerHTML = 'Buscando...';
768        finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500);
769}
770function optionFinder(id) {
771        var oWait = document.getElementById("ea_span_searching");
772        var oText = document.getElementById(id);
773               
774        //Limpa todo o select
775if(oText.length < 4) {
776        var select_available_users_tmp = document.getElementById('ea_select_available_users');
777
778        for(var i = 0;i < select_available_users_tmp.options.length; i++)
779                select_available_users_tmp.options[i--] = null;
780}
781if(oText.length >= 4) {
782
783get_available_users(oText.value);
784
785                        var select_available_users_tmp = document.getElementById('ea_select_available_users');
786                        for(var i = 0;i < select_available_users_tmp.options.length; i++)
787                                select_available_users_tmp.options[i--] = null;
788        var RegExp_name = new RegExp("\\b"+oText.value, "i");
789       
790        //Inclui usuário começando com a pesquisa
791/*      for(i = 0; i < select_available_users_clone.length; i++){
792                if ( RegExp_name.test(select_available_users_clone[i].text) || (select_available_users_clone[i].value == -1) )
793                {
794                        sel = select_available_users_tmp.options;
795                        option = new Option(select_available_users_clone[i].text,select_available_users_clone[i].value);
796
797                        if (select_available_users_clone[i].value == -1)
798                                option.disabled = true;
799
800                        sel[sel.length] = option;
801                }
802        }*/
803        oWait.innerHTML = '&nbsp;';
804}
805}                       
806
807function delete_maillist(uid, uidnumber)
808{
809        if (confirm("Realmente deletar Lista " + uid + " ??"))
810        {
811                var handler_delete_maillist = function(data)
812                {
813                        if (!data.status)
814                                alert(data.msg);
815                        else
816                                //alert('Lista de email deletada com êxito!!');
817                                window.setTimeout("cExecute('$this.maillist.synchronize_mailman&uid=" + uid + "&op=0', handler_delete_maillist_sync)", 10);
818                       
819//                      location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";
820        //              return;
821                }
822                cExecute ('$this.maillist.delete&uidnumber='+uidnumber, handler_delete_maillist);
823        }
824}
825
826function handler_delete_maillist_sync(data){
827        //Converte os dados do vetor oriundo de um script PHP para um vetor JavaScript
828        var dados_serializados = eval(data);
829        return_handler_delete_maillist_sync(dados_serializados);
830}
831
832function return_handler_delete_maillist_sync(data){
833        //Depois de processar a sincronização do Mailman com o RHDS, redireciona o usuário para a tela inicial
834        //Mesmo que não tenha tido êxito, segue o comportamento default da aplicação, redirecionando o usuário
835        //EM CASO DE ERRO NA SINCRONIZAÇÃO: CONFERIR O LOG "expresso_sincronizacao_mailmanrhds.log" em "/tmp"
836        //alert("Retorno do socket:\nSTATUS=" + data['status'] +'\nMSG=' + data['msg']);
837        alert('Lista de email deletada com êxito!!');
838        location.href="./index.php?menuaction=listAdmin.uimaillists.list_maillists";           
839       
840}
841
842
Note: See TracBrowser for help on using the repository browser.