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

Revision 560, 7.1 KB checked in by niltonneto, 15 years ago (diff)

resolve #376

  • 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                                                _status.innerHTML = '<br/>O campo destacado em vermelho é obrigatório!<br/>';
67
68                                                if ( !(_name.value) )
69                                                {
70                                                        _name.previousSibling.style.color = "#f00";
71                                                        _status.innerHTML += '<br/>** Informe um "NOME" para o contato.';
72                                                }
73
74                                                if ( !(_group.value) )
75                                                {
76                                                        _status.innerHTML += '<br/>** Informe um "GRUPO" para o contato.';
77                                                }
78                                        }
79                                        else
80                                        {
81                                                var _uid;
82
83                                                if ( (_uid = document.getElementById('im_uid')) )
84                                                        _uid = _uid.value;
85                                                else
86                                                        _uid = _jid.substr(0, (_jid.indexOf('@') - 1));
87
88                                               
89                                                _name.parentNode.style.display = 'none';
90                                                _name.parentNode.nextSibling.style.display = 'none';
91                                                _status.innerHTML = '<br/>Adicionando contato, aguarde....<br/>';
92
93                                                _conn.go(
94                                                        '$this.ujabber.AddNewContact',
95                                                        function()
96                                                        {
97                                                                _status.innerHTML = '<br/>Contato adicionado !<br/>';
98                                                                setTimeout('cleanStatusAddContactIM();',2500);
99                                                        },
100                                                        'uid='+_uid+'&name='+_name.value+'&group='+_group.value
101                                                );
102
103                                                _name.value = '';
104                                                _group.value = '';
105                                        }
106                                }
107                        }
108                );
109
110                _config(_win_add.wc.childNodes[2].childNodes[1],
111                        'onclick',
112                        function()
113                        {
114                                _win_add.button(_win_add.bc);
115                        }
116                );
117        }
118
119        function _config(pObj, pEvent, pHandler)
120        {
121                if ( typeof pObj == 'object' )
122                {
123                        if ( pEvent.substring(0, 2) == 'on' )
124                                pEvent = pEvent.substring(2, pEvent.length);
125
126                        if ( pObj.addEventListener )
127                                pObj.addEventListener(pEvent, pHandler, false);
128                        else if ( pObj.attachEvent )
129                                pObj.attachEvent('on' + pEvent, pHandler);
130                }
131        }
132
133        function _highlight(e)
134        {
135                var el = ( e.target ) ? e.target : e.srcElement;
136                var color = "#fff";
137                if ( e.type.indexOf('mouseover') != -1 )
138                        color = "#dedede";
139                el.style.backgroundColor = color;
140        }
141
142        function _search()
143        {
144                var _loading = document.getElementById('__span_load_im');
145                var _target = document.getElementById('im_ldap_user');
146                var _particiExt = document.getElementById('external_Participants_Jabberit').firstChild;
147
148                function getUsersLdap(_data)
149                {
150                        var _params = {
151                                'many_results' : jabberitGetLang('More than 50 results. Please, try to refine your search.'),
152                                'empty' : jabberitGetLang('None result was found.')
153                         };
154               
155                        _target.innerHTML = _xtools.parse(_data,'list_ldap_contacts.xsl', _params);
156                       
157                        function _show(m)
158                        {
159                                m = ( m.target ) ? m.target : m.srcElement;
160                                if ( m.getAttribute('value'))
161                                        m = m.getAttribute('value');
162                                else
163                                        m = m.parentNode.getAttribute('value');
164                               
165                                if ( !m )
166                                        return false;
167
168                                document.getElementById('__span_load_im_group').style.display = 'block';
169                                document.getElementById('im_jid').value = m.substr(0, m.indexOf(';'));
170                                document.getElementById('im_uid').value = m.substr((m.indexOf(';')+1));
171                               
172                                var _name = document.getElementById('im_name');
173
174                                var first_name = document.getElementById(m).innerHTML;
175                                        first_name = first_name.substr(0, first_name.indexOf(' '));
176                                       
177                                        _name.value = first_name;                                                       
178                                        _name.previousSibling.style.color = "#000";
179                                        _name.parentNode.style.display = 'block';
180                                        _name.parentNode.nextSibling.style.display = 'block';
181                                        _name.parentNode.nextSibling.nextSibling.innerHTML = '';
182                               
183                                _conn.go('$this.ujabber.getGroupsJabber',
184                                                function(data)
185                                                {
186                                                        if( data = data.replace(/(^\s*)|(\s*$)/g,''))
187                                                        {
188                                                                var _group = document.getElementById('im_group');
189                                                                var _groupOptions = '';
190
191                                                                _group.setAttribute('selectBoxOptions', data);
192                                                                if( document.getElementById('selectBox0') == null)
193                                                                        editS.create(document.getElementById('im_group'));
194                                                        }
195                                                        document.getElementById('__span_load_im_group').style.display = 'none';
196                                                });
197
198                                document.getElementById('im_group').value = '';
199                                document.getElementById('im_group').focus();
200                        }
201
202                        var _member = _target.firstChild;
203                       
204                        while ( _member )
205                        {
206                                if( _member.getAttribute('photo') === '1' )
207                                {
208                                        var uid = _member.getAttribute('value');
209                                        uid = uid.substr(uid.indexOf(';') + 1);
210                                        _member.style.backgroundImage = 'url(' + path_jabberit + 'inc/getphoto.php?uid=' + uid + ')';
211                                }
212                                _config(_member, 'onclick', _show);
213                               
214                                _member = _member.nextSibling;
215                        }
216               
217                }
218
219                _loading.style.display = "block";       
220               
221                if(!_particiExt.checked)
222                {
223                        _conn.go(
224                                        '$this.contacts_im.list_contacts',             
225                                        function(_data)
226                                        {
227                                                getUsersLdap(_data);
228                                                _loading.style.display = "none";                                               
229                                        },
230                                        'name='+ arguments[0]
231                                    );
232                }
233                else
234                {
235
236                        function checkMail(pMail)
237                        {
238                                var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
239                                if(er.test(pMail))
240                                        return true;
241                                else
242                                        return false;
243                        }
244                       
245                        if( checkMail(arguments[0]) )                   
246                        {                       
247                                _conn.go(
248                                        '$this.ldap_im.list_participants_externals',           
249                                        function(data)
250                                        {
251                                                getUsersLdap(data);
252                                                _loading.style.display = "none";
253                                        },
254                                        'mail=' + arguments[0]
255                                        );
256                        }
257                        else
258                        {
259                                alert(jabberitGetLang('Inform a valid e-mail!'));
260                                _loading.style.display = "none";       
261                        }
262                }
263                               
264        }
265
266        function LDAP()
267        {
268                _conn = arguments[0];
269                _xtools = arguments[1];
270                _window = arguments[2];
271        }
272
273        LDAP.prototype.search = _search;
274        LDAP.prototype.add = _add_user;
275        window.JITLdap = LDAP;
276}
277)();
278
279function cleanStatusAddContactIM()
280{
281        document.getElementById('im_status_add').innerHTML = '';
282}
Note: See TracBrowser for help on using the repository browser.