source: trunk/jabberit_messenger/js/setup.js @ 3126

Revision 3126, 11.3 KB checked in by alexandrecorreia, 14 years ago (diff)

Ticket #1091 - Implementado a busca de salas para bate-papo no novo modulo Expresso messenger XEP-0045-MUC.

  • Property svn:executable set to *
Line 
1(function()
2{
3        // Envio para o PHP
4        var _conn   = new JITConnector('jabberit_messenger/');
5        var Xtools  = new JITXtools('jabberit_messenger/');     
6
7        function addParticipantsExternals(pDocument)
8        {
9                var form = pDocument.forms[0];
10                var organization = "";
11               
12                for(var i = 0; i < form.elements.length; i++)
13                {
14                        if( form.elements[i].type == 'text' )
15                        {
16                                var nameElement = form.elements[i].name;
17                                        nameElement = nameElement.substring(nameElement.indexOf('_') +1);
18                               
19                                if( form.elements[i].value != "" && ltrim(form.elements[i].value) != "" )
20                                {
21                                                document.getElementById('label_' + nameElement).style.color = "black";
22                                                organization = form.elements[i].value;
23                                                form.elements[i].value = '';
24                                }
25                                else
26                                {
27                                                document.getElementById('label_' + nameElement).style.color = "red";
28                                                alert(jabberitGetLang('Define Organization!'));
29                                                return false;
30                                }
31                        }
32                }
33               
34                _conn.go("$this.db_im.setOrganization",
35                                function(data)
36                                {
37                                        if ( data )
38                                        {
39                                                var _params = {
40                                                        'lang1': jabberitGetLang('Organization'),
41                                                        'lang2': jabberitGetLang('Delete')
42                                                };
43               
44                                                var Table = document.getElementById('tableExternalParticipantsJabberit');
45                                                Table.parentNode.innerHTML = Xtools.parse( data, 'tableExternalParticipants.xsl', _params);
46                                        }
47                                },
48                                "organization=" + organization);
49        }
50       
51        function editHostsJabber()
52        {
53                if( arguments.length > 0 )
54                {
55                        _conn.go("$this.db_im.editHostJabber",
56                                         function(data)
57                                         {
58                                                        var fields = [
59                                                                                        ['org','organizationLdapJabberit'],
60                                                                                        ['jabberName','hostNameJabberit'],
61                                                                                        ['serverLdap','serverLdapJabberit'],
62                                                                                        ['contextLdap','contextLdapJabberit'],
63                                                                                        ['user','userLdapJabberit'],
64                                                                                        ['password','passwordLdapJabberit']                                                                             
65                                                                                 ];                                                     
66
67                                                        data = data.split(';');
68
69                                                        for( var i = 0 ; i < data.length ; i++ )
70                                                        {
71                                                                var values = data[i].split(':');
72
73                                                                for( var j in fields )
74                                                                        if( values[0] == fields[j][0] )
75                                                                                document.getElementById(fields[j][1]).value = values[1];
76                                                        }
77                                                       
78                                         },"item="+arguments[0]);
79                }
80        }
81       
82        function getInputs(pDocument)
83        {
84                var form = pDocument.forms[0];
85                var values = "";
86                var field_blank = false;
87                var anonymousBind;
88                var selectedAnonymous = document.getElementById("JETTI_anonymous_bind_jabberit");
89               
90                // Anonymous Bind Element Select
91                for( var i = 0; i < selectedAnonymous.length; i++ )
92                        if ( selectedAnonymous.options[i].selected == true)
93                                anonymousBind = eval(selectedAnonymous.options[i].value);
94               
95                for( var i = 0 ; i < form.elements.length; i++ )       
96                {
97                        switch(form.elements[i].type)
98                        {
99                                case "text" :
100                                       
101                                                if( form.elements[i].id.toUpperCase() != "JETTI_PORT_2_JABBERIT" )
102                                                {
103                                                        if( anonymousBind )
104                                                        {
105                                                                if( form.elements[i].id.toUpperCase() != "JETTI_USER_LDAP_JABBERIT" )
106                                                                {
107                                                                        if( form.elements[i].value != "" )
108                                                                        {
109                                                                                values += form.elements[i].id.toUpperCase() + ";" + escape(form.elements[i].value) + "\n";
110                                                                                document.getElementById(form.elements[i].id + "__label").style.color = "black";
111                                                                        }
112                                                                        else
113                                                                        {
114                                                                                field_blank = true;
115                                                                                document.getElementById(form.elements[i].id + "__label").style.color = "red";
116                                                                        }
117                                                                }
118                                                                else
119                                                                {
120                                                                        form.elements[i].value = "";
121                                                                        document.getElementById(form.elements[i].id + "__label").style.color = "black";
122                                                                }
123                                                        }
124                                                        else
125                                                        {
126                                                                if ( form.elements[i].value != "" )
127                                                                {
128                                                                        values += form.elements[i].id.toUpperCase() + ";" + escape(form.elements[i].value) + "\n";
129                                                                        document.getElementById(form.elements[i].id + "__label").style.color = "black";
130                                                                }
131                                                                else
132                                                                {
133                                                                        field_blank = true;
134                                                                        document.getElementById(form.elements[i].id + "__label").style.color = "red";
135                                                                }
136       
137                                                        }
138                                                }
139                                               
140                                                break;
141
142                                case "password" :
143                                               
144                                                if( anonymousBind )
145                                                {
146                                                        form.elements[i].value = "";
147                                                        document.getElementById(form.elements[i].id + "__label").style.color = "black";
148                                                }
149                                                else
150                                                {
151                                                        if( form.elements[i].value != "" )
152                                                        {
153                                                                values += form.elements[i].id.toUpperCase() + ";" + escape(form.elements[i].value) + "\n";
154                                                                document.getElementById(form.elements[i].id + "__label").style.color = "black";
155                                                        }
156                                                        else
157                                                        {
158                                                                field_blank = true;
159                                                                document.getElementById(form.elements[i].id + "__label").style.color = "red";
160                                                        }
161                                                }
162                                               
163                                                break;
164                        }
165                }
166
167                if( !field_blank )
168                {
169                        values = values.substring(0,(values.length - 1 ));
170                        _conn.go("$this.fileDefine.ldapInternal", function(){ form.submit.click(); }, "val=" + values);
171                }
172                else
173                {
174                        alert('Preencha os campos em vermelho !');
175                        return false;
176                }
177        }
178
179        function ltrim(value)
180        {
181                var w_space = String.fromCharCode(32);
182                var strTemp = "";
183                var iTemp = 0;
184               
185                if(v_length < 1)
186                        return "";
187       
188                var v_length = value ? value.length : 0;
189               
190                while(iTemp < v_length)
191                {
192                        if(value && value.charAt(iTemp) != w_space)
193                        {
194                                strTemp = value.substring(iTemp,v_length);
195                                break;
196                        }
197                        iTemp++;
198                }       
199                return strTemp;
200        }
201
202        function sendf()
203        {
204                var doc = ( arguments.length == 1) ? arguments[0] : false;
205                var form = doc.forms[0];
206                var flag = false;
207                var nameForm = '';
208               
209                for( var i = 0; i < form.elements.length; i++ )
210                {
211                        if( form.elements[i].type == 'hidden' )
212                        {
213                                flag = true;
214                                if( form.elements[i].name == 'HiddenJabberitExternals')
215                                        nameForm = form.elements[i].name;
216                        }
217               
218                }
219       
220                if( flag )
221                {
222                        if(flag && nameForm == 'HiddenJabberitExternals')
223                                addParticipantsExternals(doc);
224                }       
225                else
226                {
227                        if( doc )
228                                return getInputs(doc);
229                }
230        }
231
232        function setConfServerJabber()
233        {
234                var orgLdap             = document.getElementById('organizationLdapJabberit');
235                var hostName    = document.getElementById('hostNameJabberit');
236                var     serverLdap      = document.getElementById('serverLdapJabberit');
237                var contextLdap = document.getElementById('contextLdapJabberit');
238                var userLdap    = document.getElementById('userLdapJabberit');
239                var pwdLdap             = document.getElementById('passwordLdapJabberit');     
240
241                var ArrayConf = [
242                                                        ['orgLdap', 'Informe uma organizacao !'],
243                                                        ['hostName', 'Informe o nome do servidor Jabber !'],
244                                                        ['serverLdap', 'Informe o nome do servidor Ldap !'],
245                                                        ['contextLdap', 'Informe um contexto Ldap !'],
246                                                        ['userLdap', ''],
247                                                        ['pwdLdap', '']
248                                                ];
249
250                for (var i in ArrayConf)
251                {
252                        if( !ltrim(eval(ArrayConf[i][0]).value) && ltrim(ArrayConf[i][1]) )
253                        {
254                                alert(ArrayConf[i][1]);
255                                eval(ArrayConf[i][0]).focus();
256                                return false;                           
257                        }       
258                }
259
260                _conn.go("$this.db_im.setHostJabber",
261                                 function(data)
262                                 {
263                                        var _params = {
264                                                        'lang1': jabberitGetLang('Organization'),
265                                                        'lang2': jabberitGetLang('Servers Jabber'),
266                                                        'lang3': jabberitGetLang('Delete'),                                                             
267                                                        'lang4': jabberitGetLang('Edit')                                                       
268                                        };
269
270                                        var Table = document.getElementById('tableConfServersJabber');
271                                        Table.parentNode.innerHTML = Xtools.parse( data, 'tableConfServersJabber.xsl', _params);
272                                       
273                                        for( var i in ArrayConf )
274                                                eval(ArrayConf[i][0]).value = "";
275                                 },
276                                 "org="+orgLdap.value+"&jabberName="+hostName.value+
277                                 "&serverLdap="+serverLdap.value+"&contextLdap="+contextLdap.value+
278                                 "&user="+userLdap.value+"&password="+pwdLdap.value);
279        }
280
281        function setOrganizationsForGroups()
282        {
283                var elementSel = document.getElementById('organizations_ldap_jabberit');
284                var Organization = "";
285               
286                for(var i = 0; i < elementSel.options.length; i++)
287                {
288                        if( elementSel.options[i].selected == true && elementSel.options[i].value != "-1" )
289                                Organization = elementSel.options[i].value;
290                }
291               
292                if( Organization )
293                {
294               
295                        var group = document.getElementById('nameGroup').value;
296                        var gidNumber = document.getElementById('gidNumber').value;
297       
298                        _conn.go("$this.db_im.setOuGroupsLocked",
299                                         function(data)
300                                         {
301                                                if ( data )
302                                                {
303                                                        var _params = {
304                                                                'lang1': jabberitGetLang('Organization'),
305                                                                'lang2': jabberitGetLang('Delete')
306                                                        };
307                                                       
308                                                        var Table = document.getElementById('tableOrganizationsEnabledGroupsJabberit');
309                                                        Table.parentNode.innerHTML = Xtools.parse( data, 'tableOrganizationsEnabledGroupsJabberit.xsl', _params);
310                                                }
311                                         },     
312                                         "group="+group+"&gidnumber="+gidNumber+"&ou="+Organization);
313                }
314        }
315
316        function setParticipantsExternal()
317        {
318                if( arguments.length > 0 )
319                {
320                        var element = arguments[0];
321                        var form = arguments[1].forms[0];
322                        var value = false;
323                       
324                        for(var i = 0; i < element.options.length; i++)
325                        {
326                                if( element.options[i].selected == true && element.options[i].value == 'true')
327                                        value = true;
328                        }
329                       
330                        for(var i = 0; i < form.elements.length; i++)
331                        {
332                                switch(form.elements[i].type)
333                                {
334                                        case 'text':
335                                        case 'button':
336                                                form.elements[i].disabled = false;                     
337                                                if(!value)
338                                                        form.elements[i].disabled = true;
339
340                                                break;
341                                }
342                        }
343                       
344                        _conn.go("$this.db_im.setUseParticipantsExternal",
345                                function(data)
346                                {
347                                        if(!data)
348                                                alert('Error !');
349                                },
350                                "value=" + value);
351                }
352        }
353
354        function removeHostsJabber()
355        {
356                if( arguments.length > 0 )
357                {
358                        var idElement = arguments[0];
359                        var elementTableTr = document.getElementById(idElement);
360
361                        _conn.go("$this.db_im.removeHostsJabber",
362                                     function(data)
363                                     {
364                                        data = eval(data);
365                                        if( data )
366                                                        elementTableTr.parentNode.removeChild(elementTableTr);                                         
367                                     },
368                                         "item="+idElement);
369                }
370        }
371
372        function removeOrgGroupsLocked()
373        {
374                if( arguments.length > 0 )
375                {
376                        var element = document.getElementById(arguments[0]);
377                        var org = arguments[0];
378                        var group = document.getElementById('nameGroup').value;
379                        var gidNumber = document.getElementById('gidNumber').value;
380                       
381                       
382                        _conn.go("$this.db_im.removeOuGroupsLocked",
383                                        function(data)
384                                        {
385                                                if( data )
386                                                        element.parentNode.removeChild(element);
387                                        },
388                                        "group="+group+"&gidnumber="+gidNumber+"&ou="+org);
389                }
390        }
391
392
393        function removeOrgLdapAttributes()
394        {
395                if( arguments.length > 0 )
396                {
397                        var element = document.getElementById(arguments[0]);
398                        var org = arguments[0];
399                       
400                        _conn.go("$this.db_im.removeAttributesLdap",
401                                        function(data)
402                                        {
403                                                if( data )
404                                                        element.parentNode.removeChild(element);
405                                        },
406                                        "org=" + org);
407                }
408        }
409
410        function removeParticipantsExternal()
411        {
412                if( arguments.length > 0 )
413                {
414                        var element = document.getElementById(arguments[0]);
415                        var participantsExternal = arguments[0];
416                       
417                        _conn.go("$this.db_im.removeParticipantsExternal",
418                                        function(data)
419                                        {
420                                                if( data )
421                                                        element.parentNode.removeChild(element);
422                                        },
423                                        "participants=" + participantsExternal);
424                }
425        }
426
427        function constructScript(){}
428
429        constructScript.prototype.editHostsJ                            = editHostsJabber;
430        constructScript.prototype.removeHostsJ                          = removeHostsJabber;
431        constructScript.prototype.removeOrg                             = removeOrgLdapAttributes;
432        constructScript.prototype.removeOrgGroupsLocked         = removeOrgGroupsLocked;
433        constructScript.prototype.removePartExternal            = removeParticipantsExternal;
434        constructScript.prototype.setConfServerJabber           = setConfServerJabber;
435        constructScript.prototype.setOrgFgroups                         = setOrganizationsForGroups;
436        constructScript.prototype.setPartExternal                       = setParticipantsExternal;     
437        constructScript.prototype.sendf                                         = sendf;
438       
439        window.constructScript = new constructScript;
440}
441)();
Note: See TracBrowser for help on using the repository browser.