source: trunk/expressoAdmin1_2/js/jscode/maillists.js @ 2

Revision 2, 8.1 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
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        uid_tmp = document.forms[0].uid.value.split("-");
18        if ((uid_tmp.length < 3) || (uid_tmp[0] != 'lista')){
19                alert(
20                        'O campo LOGIN da lista está incompleto.\n' +
21                        'O nome da lista deve ser formado assim:\n' +
22                        'lista-ORGANIZACAO-NOME_DA_LISTA.\n' +
23                        'Ex: lista-celepar-rh.');
24                return;
25        }
26               
27        if (document.forms[0].uid.value.split(" ").length > 1){
28                alert('Campo LOGIN comtém espaços.');
29                document.forms[0].uid.focus();
30                return;
31        }
32       
33        if (document.forms[0].mail.value == ''){
34                alert('Campo E-MAIL da lista está vazio.');
35                document.forms[0].mail.focus();
36                return;
37        }
38        var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
39        if(!reEmail.test(document.forms[0].mail.value)){
40                alert("Campo E-mail não é válido.");
41                return false;
42        }
43       
44        select_userInMaillist = document.getElementById('ea_select_usersInMaillist');
45        if (select_userInMaillist.options.length == 0){
46                alert('Nenhum usuário faz parte da lista.');
47                return;
48        }
49       
50        var handler_validate_fields = function(data)
51        {
52                if (!data.status)
53                        alert(data.msg);
54                else
55                {
56                        if (type == 'create_maillist')
57                                cExecuteForm ("$this.maillist.create", document.forms[0], handler_create);
58                        else if (type == 'edit_maillist')
59                                cExecuteForm ("$this.maillist.save", document.forms[0], handler_save);
60                }
61        }
62
63        // Needed select all options from select
64        for(var i=0; i<select_userInMaillist.options.length; i++)
65                select_userInMaillist.options[i].selected = true;
66       
67        // O UID da lista foi alterado ou é uma nova lista.
68        if ((document.forms[0].old_uid.value != document.forms[0].uid.value) || (type == 'create_maillist')){
69                cExecute ('$this.maillist.validate_fields&uid='+document.forms[0].uid.value, handler_validate_fields);
70        }
71        else if (type == 'edit_maillist')
72        {
73                cExecuteForm ("$this.maillist.save", document.forms[0], handler_save);
74        }
75}
76
77// HANDLER CREATE
78// É necessário 2 funcões de retorno por causa do cExecuteForm.
79function handler_create(data)
80{
81        return_handler_create(data);
82}
83function return_handler_create(data)
84{
85        if (!data.status)
86                alert(data.msg);
87        else{
88                alert('Lista de emails criada com êxito!');
89                location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
90        }
91        return;
92}
93
94// HANDLER SAVE
95// É necessário 2 funcões de retorno por causa do cExecuteForm.
96function handler_save(data)
97{
98        return_handler_save(data);
99}
100function return_handler_save(data)
101{
102        if (!data.status)
103                alert(data.msg);
104        else{
105                alert('Lista de emails salva com êxito!!');
106                location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
107        }
108        return;
109}
110
111
112function sinc_combos_org(context, recursive)
113{
114        combo_org_maillists = document.getElementById('ea_combo_org_maillists');
115
116        for (i=0; i<combo_org_maillists.length; i++)
117        {
118                if (combo_org_maillists.options[i].value == context)
119                {
120                        combo_org_maillists.options[i].selected = true;
121                        get_available_users(context, recursive);
122                        break;
123                }
124        }
125}
126
127function get_available_users(context, recursive)
128{
129        var handler_get_available_users = function(data)
130        {
131                select_available_users = document.getElementById('ea_select_available_users');
132               
133                //Limpa o select
134                for(var i=0; i<select_available_users.options.length; i++)
135                {
136                        select_available_users.options[i] = null;
137                        i--;
138                }
139
140                if ((data) && (data.length > 0))
141                {
142                        // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
143                        select_available_users.innerHTML = 'lixo' + data;
144                        select_available_users.outerHTML = select_available_users.outerHTML;
145                       
146                        select_available_users.disabled = false;
147                        select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true);
148                        document.getElementById('ea_input_searchUser').value = '';
149                }
150        }
151       
152        //Impede chamada recursiva na raiz das organizações
153        if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value))
154        {
155                alert('Nao é possível selecionar todos os usuários da organização raiz.')
156                document.getElementById('ea_check_allUsers').checked = false;
157               
158                // Limpa select
159                select_available_users = document.getElementById('ea_select_available_users');
160                select_available_users.innerHTML = 'lixo';
161                select_available_users.outerHTML = select_available_users.outerHTML;
162                return;
163        }
164        cExecute ('$this.ldap_functions.get_available_users_and_maillist&context='+context+'&recursive='+recursive, handler_get_available_users);
165}
166
167function add_user2maillist()
168{
169        select_available_users = document.getElementById('ea_select_available_users');
170        select_usersInMaillist = document.getElementById('ea_select_usersInMaillist');
171
172        var count_available_users = select_available_users.length;
173        var count_usersInMailList = select_usersInMaillist.options.length;
174        var new_options = '';
175
176        for (i = 0 ; i < count_available_users ; i++)
177        {
178                if (select_available_users.options[i].selected)
179                {
180                        if(document.all)
181                        {
182                                if ( (select_usersInMaillist.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
183                                {
184                                        new_options +=  "<option value="
185                                                                + select_available_users.options[i].value
186                                                                + ">"
187                                                                + select_available_users.options[i].text
188                                                                + "</options>";
189                                }
190                        }
191                        else
192                        {               
193                                if ( (select_usersInMaillist.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
194                                {
195                                        new_options +=  "<option value="
196                                                                + select_available_users.options[i].value
197                                                                + ">"
198                                                                + select_available_users.options[i].text
199                                                                + "</options>";
200                                }
201                        }
202                }
203        }
204
205        if (new_options != '')
206        {
207                select_usersInMaillist.innerHTML = 'lixo' + new_options + select_usersInMaillist.innerHTML;
208                select_usersInMaillist.outerHTML = select_usersInMaillist.outerHTML;
209        }
210}
211
212function remove_user2maillist()
213{
214        select_usersInMaillist = document.getElementById('ea_select_usersInMaillist');
215       
216        for(var i = 0;i < select_usersInMaillist.options.length; i++)
217                if(select_usersInMaillist.options[i].selected)
218                        select_usersInMaillist.options[i--] = null;
219}
220
221// Variaveis Locais
222if (document.getElementById('ea_select_available_users'))
223{
224        var select_available_users  = document.getElementById('ea_select_available_users');
225        var select_available_users_clone = select_available_users.cloneNode(true);
226}
227else
228{
229        var select_available_users  = '';
230        var select_available_users_clone = '';
231}
232var finderTimeout = '';
233
234// Funcoes                                                                                     
235function optionFinderTimeout(obj)
236{
237        clearTimeout(finderTimeout);   
238        var oWait = document.getElementById("ea_span_searching");
239        oWait.innerHTML = 'Buscando...';
240        finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500);
241}
242function optionFinder(id) {     
243        var oWait = document.getElementById("ea_span_searching");
244        var oText = document.getElementById(id);
245               
246        //Limpa todo o select
247        var select_available_users_tmp = document.getElementById('ea_select_available_users')
248        for(var i = 0;i < select_available_users_tmp.options.length; i++)
249                select_available_users_tmp.options[i--] = null;
250               
251        var RegExp_name = new RegExp("\\b"+oText.value, "i");
252               
253        //Inclui usuário começando com a pesquisa
254        for(i = 0; i < select_available_users_clone.length; i++){                                                                                                                                                                                       
255                if (RegExp_name.test(select_available_users_clone[i].text))
256                {
257                        sel = select_available_users_tmp.options;
258                        option = new Option(select_available_users_clone[i].text,select_available_users_clone[i].value);                               
259                        sel[sel.length] = option;
260                }
261        }
262        oWait.innerHTML = '&nbsp;';
263}                       
264
265function delete_maillist(uid, uidnumber)
266{
267        if (confirm("Realmente deletar Lista " + uid + " ??"))
268        {
269                var handler_delete_maillist = function(data)
270                {
271                        if (!data.status)
272                                alert(data.msg);
273                        else
274                                alert('Lista de email deletada com êxito!!');
275                       
276                        location.href="./index.php?menuaction=expressoAdmin1_2.uimaillists.list_maillists";
277                        return;
278                }
279                cExecute ('$this.maillist.delete&uidnumber='+uidnumber, handler_delete_maillist);
280        }
281}
Note: See TracBrowser for help on using the repository browser.