source: trunk/jabberit_messenger/js/ldap.js @ 697

Revision 697, 7.6 KB checked in by niltonneto, 15 years ago (diff)

Fechamento das ocorrências referentes à versão 0.7.11

  • Property svn:executable set to *
Line 
1(function()
2{
3        var _conn;
4        var _xtools;
5        var _window;
6
7        function _add_user()
8        {
9                var _win_add = _window.load('add_user_im');
10                        _win_add.title('.:: Adicionar Novos Contatos ::.');
11                        _win_add.size(440);
12                        _win_add.position(200,80);
13                        _win_add.wc.style.padding = "3px";
14               
15                var _params = {
16                        'lang1':jabberitGetLang('Name of Contacts'),
17                        'lang2':jabberitGetLang('Search'),
18                        'lang3':jabberitGetLang('member of organization'),
19                        'lang4':jabberitGetLang('nickname'),
20                        'lang5':jabberitGetLang('group'),
21                        'lang6':jabberitGetLang('add'),
22                        'lang7':jabberitGetLang('close'),
23                        'lang8':jabberitGetLang('Others Expressos')                     
24                };
25
26                _win_add.bz.style.display = "none";
27                _win_add.bx.style.display = "none";
28
29                _win_add.content( _xtools.parse(_xtools.xml('adduser'), 'add_user.xsl', _params));
30
31                _conn.go('$this.contacts_im.getParticipantsExternal',
32                                function(data)
33                                {
34                                        var data = eval(data);
35                                        var elementDiv =  document.getElementById('external_Participants_Jabberit');                                   
36                                       
37                                        if( data )
38                                                elementDiv.style.display = 'block';
39                                });
40
41                _config( _win_add.wc.childNodes[2].childNodes[0],
42                        'onclick',
43                        function()
44                        {
45                                var _name = document.getElementById('im_name');
46                                var _group = document.getElementById('im_group');
47                                var     _jid = document.getElementById('im_jid').value;
48                                var _status = document.getElementById('im_status_add');
49
50                                _status.innerHTML = '';
51                                _name.previousSibling.style.color = "#000";
52
53                                if ( !_jid )
54                                {
55                                        _status.innerHTML = 'Selecione uma organização no campo da esquerda e em<br/>'
56                                                                                + ' seguida, no campo da direita, um membro da organização<br/>'
57                                                                                + ' para adicionar como contato';
58                                }
59                                else
60                                {
61                                        _name.value = _name.value.replace(/^( )*|( )*$/g, '');
62                                        _group.value = _group.value.replace(/^( )*|( )*$/g, '');
63
64                                        if ( !(_name.value) || !(_group.value) )
65                                        {
66                                                if ( !(_name.value) )
67                                                        alert( jabberitGetLang('ATTENTION') + "!!\nInforme um \"NOME\".");
68
69                                                if ( !(_group.value) )
70                                                        alert( jabberitGetLang('ATTENTION') + "!!\nInforme um \"GRUPO\".");                                                     
71                                        }
72                                        else
73                                        {
74                                                var _uid;
75                                               
76                                                if ( (_uid = document.getElementById('im_uid')) )
77                                                        _uid = _uid.value;
78                                                else
79                                                        _uid = _jid.substr(0, (_jid.indexOf('@') - 1));
80
81                                               
82                                                _conn.go('$this.contacts_im.verifyAddNewContact',
83                                                                 function(data)
84                                                                 {
85                                                                        data = eval(data);
86                                                                       
87                                                                        if( !data )
88                                                                        {
89                                                                                alert("*********** " + jabberitGetLang("Attention") + "!! ***********\n" +
90                                                                                          jabberitGetLang("This user is part of a small group!") +
91                                                                                          "\n" + jabberitGetLang("Contact was not added!"));
92
93                                                                                _name.value = '';
94                                                                                _group.value = '';
95                                                                                         
96                                                                        }
97                                                                        else
98                                                                        {       
99                                                                               
100                                                                                _name.parentNode.style.display = 'none';
101                                                                                _name.parentNode.nextSibling.style.display = 'none';
102                                                                                _status.innerHTML = '<br/>Adicionando contato, aguarde....<br/>';
103                               
104                                                                                _conn.go(
105                                                                                        '$this.ujabber.AddNewContact',
106                                                                                        function()
107                                                                                        {
108                                                                                                _status.innerHTML = '<br/>Contato adicionado !<br/>';
109                                                                                                setTimeout('cleanStatusAddContactIM();',2500);
110                                                                                        },
111                                                                                        'uid='+_uid+'&name='+_name.value+'&group='+_group.value
112                                                                                );
113
114                                                                                _name.value = '';
115                                                                                _group.value = '';
116                                                                               
117                                                                        }
118                                                                 }, "uid="+_uid);
119                                        }
120                                }
121                        }
122                );
123
124                _config(_win_add.wc.childNodes[2].childNodes[1],
125                        'onclick',
126                        function()
127                        {
128                                _win_add.button(_win_add.bc);
129                        }
130                );
131        }
132
133        function _config(pObj, pEvent, pHandler)
134        {
135                if ( typeof pObj == 'object' )
136                {
137                        if ( pEvent.substring(0, 2) == 'on' )
138                                pEvent = pEvent.substring(2, pEvent.length);
139
140                        if ( pObj.addEventListener )
141                                pObj.addEventListener(pEvent, pHandler, false);
142                        else if ( pObj.attachEvent )
143                                pObj.attachEvent('on' + pEvent, pHandler);
144                }
145        }
146
147        function _highlight(e)
148        {
149                var el = ( e.target ) ? e.target : e.srcElement;
150                var color = "#fff";
151                if ( e.type.indexOf('mouseover') != -1 )
152                        color = "#dedede";
153                el.style.backgroundColor = color;
154        }
155
156        function _search()
157        {
158                var _loading = document.getElementById('__span_load_im');
159                var _target = document.getElementById('im_ldap_user');
160                var _particiExt = document.getElementById('external_Participants_Jabberit').firstChild;
161
162                function getUsersLdap(_data)
163                {
164                        var _params = {
165                                'many_results' : jabberitGetLang('More than 50 results. Please, try to refine your search.'),
166                                'empty' : jabberitGetLang('None result was found.')
167                         };
168               
169                        _target.innerHTML = _xtools.parse(_data,'list_ldap_contacts.xsl', _params);
170                       
171                        function _show(m)
172                        {
173                                m = ( m.target ) ? m.target : m.srcElement;
174                                if ( m.getAttribute('value'))
175                                        m = m.getAttribute('value');
176                                else
177                                        m = m.parentNode.getAttribute('value');
178                               
179                                if ( !m )
180                                        return false;
181
182                                document.getElementById('__span_load_im_group').style.display = 'block';
183                                document.getElementById('im_jid').value = m.substr(0, m.indexOf(';'));
184                                document.getElementById('im_uid').value = m.substr((m.indexOf(';')+1));
185                               
186                                var _name = document.getElementById('im_name');
187
188                                var first_name = document.getElementById(m).innerHTML;
189                                        first_name = first_name.substr(0, first_name.indexOf(' '));
190                                       
191                                        _name.value = first_name;                                                       
192                                        _name.previousSibling.style.color = "#000";
193                                        _name.parentNode.style.display = 'block';
194                                        _name.parentNode.nextSibling.style.display = 'block';
195                                        _name.parentNode.nextSibling.nextSibling.innerHTML = '';
196                               
197                                _conn.go('$this.ujabber.getGroupsJabber',
198                                                function(data)
199                                                {
200                                                        if( data = data.replace(/(^\s*)|(\s*$)/g,''))
201                                                        {
202                                                                var _group = document.getElementById('im_group');
203                                                                var _groupOptions = '';
204
205                                                                _group.setAttribute('selectBoxOptions', data);
206                                                                if( document.getElementById('selectBox0') == null)
207                                                                        editS.create(document.getElementById('im_group'));
208                                                        }
209                                                        document.getElementById('__span_load_im_group').style.display = 'none';
210                                                });
211
212                                document.getElementById('im_group').value = '';
213                                document.getElementById('im_group').focus();
214                        }
215
216                        var _member = _target.firstChild;
217                       
218                        while ( _member )
219                        {
220                                if( _member.getAttribute('photo') === '1' )
221                                {
222                                        var uid = _member.getAttribute('value');
223                                        uid = uid.substr(uid.indexOf(';') + 1);
224                                        _member.style.backgroundImage = 'url(' + path_jabberit + 'inc/getphoto.php?uid=' + uid + ')';
225                                }
226                                _config(_member, 'onclick', _show);
227                               
228                                _member = _member.nextSibling;
229                        }
230               
231                }
232
233                _loading.style.display = "block";       
234               
235                if(!_particiExt.checked)
236                {
237                        _conn.go(
238                                        '$this.contacts_im.list_contacts',             
239                                        function(_data)
240                                        {
241                                                getUsersLdap(_data);
242                                                _loading.style.display = "none";                                               
243                                        },
244                                        'name='+ arguments[0]
245                                    );
246                }
247                else
248                {
249
250                        function checkMail(pMail)
251                        {
252                                var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
253                                if(er.test(pMail))
254                                        return true;
255                                else
256                                        return false;
257                        }
258                       
259                        if( checkMail(arguments[0]) )                   
260                        {                       
261                                _conn.go(
262                                        '$this.ldap_im.list_participants_externals',           
263                                        function(data)
264                                        {
265                                                getUsersLdap(data);
266                                                _loading.style.display = "none";
267                                        },
268                                        'mail=' + arguments[0]
269                                        );
270                        }
271                        else
272                        {
273                                alert(jabberitGetLang('Inform a valid e-mail!'));
274                                _loading.style.display = "none";       
275                        }
276                }
277                               
278        }
279
280        function LDAP()
281        {
282                _conn = arguments[0];
283                _xtools = arguments[1];
284                _window = arguments[2];
285        }
286
287        LDAP.prototype.search = _search;
288        LDAP.prototype.add = _add_user;
289        window.JITLdap = LDAP;
290}
291)();
292
293function cleanStatusAddContactIM()
294{
295        document.getElementById('im_status_add').innerHTML = '';
296}
Note: See TracBrowser for help on using the repository browser.