source: trunk/jmessenger/js/AddUser.js @ 2983

Revision 2983, 8.6 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #1116 - Melhorar a visualizacao/avisos de novos contatos e pedidos de autorizacao no modulo.

  • Property svn:executable set to *
Line 
1(function()
2{
3                var Xtools      = null;
4                var conn        = null;
5       
6                function addContact()
7                {
8                        if( arguments.length > 0 )
9                        {
10                                var jidFrom             = Base64.decode( loadscript.getUserCurrent().jid );
11                                var jidTo               = arguments[0];
12                                var group               = "";
13                                var name                = jidTo.substring(0, jidTo.indexOf('@'));
14
15                                var _paramNewUser =
16                                {
17                                        'name_contact'  : name,
18                                        'jidFrom'               : jidFrom,                                     
19                                        'jidTo'                 : jidTo,
20                                        'onclickClose'  : '_winBuild("new_user_jabberit","remove");',
21                                };
22                               
23                                var winNewUser =
24                                {
25                                                id_window        : "new_user_jabberit",
26                                                width            : 280,
27                                                height           : 120,
28                                                top                      : 100,
29                                                left             : 350,
30                                                draggable        : true,
31                                                visible          : "display",
32                                                resizable        : true,
33                                                zindex           : loadscript.getZIndex(),
34                                                title            : 'Expresso Messenger - ' + i18n.NEW_USER,
35                                                closeAction  : "remove",
36                                                content          : Xtools.parse( Xtools.xml('new_user'), 'newUser.xsl', _paramNewUser)
37                                };
38
39                                _winBuild( winNewUser );
40                        }
41                        else
42                        {       
43                                var jidFrom             = loadscript.getUserCurrent().jid;
44                                var jidTo               = getElement('user_jid_jabberIM').value;
45                                var name                = getElement('user_name_jabberIM').value;
46                                var group               = getElement('user_group_jabberIM').value;
47                               
48                                _winBuild('add_user_info','remove');
49                               
50                                if( jidFrom != jidTo )
51                                {
52                                        TrophyIM.addContact( jidTo, name, group );
53                                }
54                        }
55                }
56               
57                function addNewUser()
58                {
59                        var name        = getElement('name_new_user_jabberit').value;
60                        var group       = getElement('name_group_new_user_jabberit').value;
61                        var jidFrom     = getElement('jidFrom_new_user_jabberit').value;
62                        var jidTo       = getElement('jidTo_new_user_jabberit').value;
63
64                        // Name
65                        if(( name = name.replace(/^\s+|\s+$|^\n|\n$/g,"")) == "" )
66                                name = "";
67
68                        if( name == null || name == "")
69                                name = "";
70                       
71                        // Group
72                        if(( group = group.replace(/^\s+|\s+$|^\n|\n$/g,"")) == "" )
73                                group = "";
74
75                        if( group == null || group == "")
76                                group = "";
77                       
78                        // Add Contact
79                        if( jidFrom != jidTo )
80                        {
81                                // Remove Element
82                                loadscript.removeElement( getElement('itenContact_' + jidTo ) );
83                                loadscript.removeElement( getElement('span_show_itenContact_' + jidTo ) );
84                                loadscript.removeElement( getElement('itenContactNotification_' + jidTo ) );
85       
86                                TrophyIM.rosterObj.removeContact( jidTo );
87
88                                TrophyIM.addContact( jidTo, name, group );
89                               
90                                _winBuild("new_user_jabberit","remove");
91                        }
92
93                }
94               
95                function getElement( elementId )
96                {
97                        return document.getElementById( elementId );
98                }
99
100                function search()
101                {
102                        var _input      = document.getElementById('search_user_jabber');
103                        var _span       = document.getElementById('span_searching_im');
104                        var _div        = document.getElementById('list_users_ldap_im');
105
106                        _span.style.display = "block";
107                       
108                        if( _input.value.substring((_input.value.length-1),_input.value.length) === "*" )
109                                _input.value = _input.value.substring(0, ( _input.value.length - 1 ));
110
111                        if( _input.value.substring(0 ,1) === "*" )
112                                _input.value = _input.value.substring( 1, _input.value.length );
113                       
114                        conn.go('p.cc.getListContacts',
115                                        function(data)
116                                        {       
117                                                var _paramsVar =
118                                                {
119                                                        'lang_addContact'       : 'Adicionar Contatos',
120                                                        'lang_empty'            : 'None result was found.',
121                                                        'lang_many_results' : 'Many results. Please, try to refine your search.'
122                                                };     
123                                               
124                                                _div.innerHTML = Xtools.parse( data, 'listLdapContacts.xsl', _paramsVar );
125
126                                                var _newUser = _div.firstChild;
127                                               
128                                                while ( _newUser )
129                                                {
130                                                        if( _newUser.getAttribute('photo') === '1' )
131                                                        {
132                                                                var jid         = _newUser.getAttribute('jid');
133                                                                var ou          = _newUser.getAttribute('ou');
134                                                               
135                                                                var _img_path  = path_jabberit + 'inc/WebService.php?' + Date.parse( new Date );
136                                                                        _img_path += '&photo_session=' + jid + '&ou=' + ou;
137                                                               
138                                                                _newUser.style.backgroundImage = 'url(' + _img_path + ')';
139                                                        }
140                                                       
141                                                        loadscript.configEvents(_newUser, 'onclick', showContact);
142                                                       
143                                                        _newUser = _newUser.nextSibling;
144                                                }
145
146                                                _input.focus();
147                                                _input.value            = "";
148                                                _span.style.display = "none";
149                                               
150                                        },'name=' + _input.value );
151                }
152               
153                function showContact(Element)
154                {
155                        var element             = ( Element.target ) ? Element.target : Element.srcElement;
156                        var infoUser    = null;         
157                        var img                 = document.createElement('img');
158                        var _groups             = "Sem Grupos";
159
160                        if( TrophyIM.rosterObj)
161                        {
162                                _groups = "";
163                               
164                                for (var group in TrophyIM.rosterObj.groups)
165                                {
166                                        _groups += group + ";";
167                                }       
168                               
169                                _groups = _groups.substring(0, ( _groups.length - 1) );
170                        }
171                       
172                        if( element.getAttribute('value') )
173                        {
174                                var infoUser =
175                                {
176                                        'email'                         : element.getAttribute('value').substring( 0, element.getAttribute('value').indexOf(';')),
177                                        'jid'                           : element.getAttribute('jid'),
178                                        'lang_group'            : "Grupo",
179                                        'lang_name_contact'     : "Contato",                                   
180                                        'group'                         : element.getAttribute('ou'),
181                                        'name'                          : element.getAttribute('name').substring( 0, element.getAttribute('name').indexOf(' ')),
182                                        'ou'                            : element.getAttribute('ou'),
183                                        'selectBoxOptions'      : _groups,
184                                        'uid'                           : element.getAttribute('value').substring( element.getAttribute('value').indexOf(';') + 1 )
185                                };
186                        }
187                        else if( element.parentNode.getAttribute('value') )
188                        {
189                                var infoUser =
190                                {
191                                        'email'                         : element.parentNode.getAttribute('value').substring( 0, element.parentNode.getAttribute('value').indexOf(';')),
192                                        'jid'                           : element.parentNode.getAttribute('jid'),
193                                        'lang_group'            : "Grupo",
194                                        'lang_name_contact'     : "Contato",                                   
195                                        'group'                         : element.parentNode.getAttribute('ou'),
196                                        'name'                          : element.parentNode.getAttribute('name').substring( 0, element.parentNode.getAttribute('name').indexOf(' ')),
197                                        'ou'                            : element.parentNode.getAttribute('ou'),
198                                        'selectBoxOptions'      : _groups,
199                                        'uid'                           : element.parentNode.getAttribute('value').substring( element.parentNode.getAttribute('value').indexOf(';') + 1)
200                                };
201                        }
202                       
203                        var winAddUser =
204                        {
205                                        id_window        : "add_user_info",
206                                        width            : 370,
207                                        height           : 200,
208                                        top                      : 85,
209                                        left             : 220,
210                                        draggable        : true,
211                                        visible          : "display",
212                                        resizable        : true,
213                                        zindex           : loadscript.getZIndex(),
214                                        title            : 'Expresso Messenger - Add Contact',
215                                        closeAction  : "remove",
216                                        content          : Xtools.parse( Xtools.xml('adduser'), 'addUser.xsl', infoUser )
217                        };
218
219                        _winBuild( winAddUser );
220                       
221                       
222                        var _pButtons =
223                        {
224                                'lang1'                 : 'Adicionar',
225                                'lang2'                 : 'Fechar',
226                                'onclickClose'  : '_winBuild("' + winAddUser.id_window + '","remove");',
227                                'onclickSubmit' : 'loadscript.addContact(this);'
228                        };
229
230                        // Add Buttons
231                        document.getElementById('buttons_adduser').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons);
232                       
233                        // Select Editable
234                        loadscript.setSelectEditable(document.getElementById('user_group_jabberIM'));
235                       
236                        // Load Photo;
237                        var _img = null;
238                       
239                        if( element.style.backgroundImage )
240                                _img = element.cloneNode( false );
241                                                       
242                        if( element.parentNode.style.backgroundImage )
243                                _img = element.parentNode.cloneNode( false );
244                       
245                        if( _img != null )
246                        {
247                                _img.style.width        = '60px';
248                                _img.style.height       = '80px';
249                                _img.style.display      = 'block';
250                                _img.style.backgroundRepeat = 'no-repeat';
251                               
252                        }
253                        else
254                        {
255                                _img = document.createElement("img");
256                                _img.style.width        = '60px';
257                                _img.style.height       = '80px';
258                                _img.style.display      = 'block';
259                                _img.src                        = path_jabberit + "templates/default/images/photo.png";
260                        }
261                       
262                       
263                        with ( document.getElementById('photo_user_ldap_jabber') )
264                        {
265                                if( hasChildNodes( ) )
266                                        while( hasChildNodes( ) )
267                                        {
268                                                removeNode( firstChild );
269                                        }
270                               
271                                appendChild( _img );
272                        }
273                }
274               
275                function showForm()
276                {
277                       
278                        var _paramsWindAddUser =
279                        {
280                                        'lang_group'            : 'Grupo',
281                                        'lang_load'                     : 'Carregando',
282                                        'lang_name_contact'     : 'Nome do Contato',
283                                        'lang_result'           : 'Resultado da Busca',
284                                        'path'                          : path_jabberit
285                        };
286
287                        var windAddUser =
288                        {
289                                        id_window        : "add_user_im",
290                                        width            : 440,
291                                        height           : 350,
292                                        top                      : 80,
293                                        left             : 200,
294                                        draggable        : true,
295                                        visible          : "display",
296                                        resizable        : true,
297                                        zindex           : loadscript.getZIndex(),
298                                        title            : 'Expresso Messenger - Search users',
299                                        closeAction  : "remove",
300                                        content          : Xtools.parse( Xtools.xml('userinfo'), 'addUser.xsl', _paramsWindAddUser )
301                        };
302                       
303                        _winBuild( windAddUser );
304                       
305                }
306       
307                function loadAddUser()
308                {
309                        if( arguments.length > 0 )
310                        {
311                                Xtools  = arguments[0];
312                                conn    = arguments[1];                         
313                        }       
314                }
315
316                loadAddUser.prototype.add               = addContact;
317                loadAddUser.prototype.newUser   = addNewUser;
318                loadAddUser.prototype.search    = search;
319                loadAddUser.prototype.show              = showForm;
320                               
321                window.addUserIM        = loadAddUser;
322})();
Note: See TracBrowser for help on using the repository browser.