Changeset 3070 for trunk


Ignore:
Timestamp:
07/19/10 17:43:27 (14 years ago)
Author:
alexandrecorreia
Message:

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

Location:
trunk/jabberit_messenger/jmessenger
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/jabberit_messenger/jmessenger/js/jscode/loadIM.js

    r3065 r3070  
    12551255        { 
    12561256                element = element.getElementsByTagName( 'item' ); 
    1257                 var _rooms = 0; 
    1258                 var _list = document.createElement( 'div' ); 
     1257 
     1258                var _roomsCount = 0; 
     1259                var _xml                = Xtools.xml('listRooms'); 
     1260                var _listRooms  = _xml.documentElement;  
    12591261                 
    12601262                var show = function( ) 
    12611263                { 
    1262                         if ( _rooms != element.length ) 
     1264                        if ( _roomsCount != element.length ) 
    12631265                                return false; 
    1264  
    1265                         var winTeste = 
     1266                         
     1267                        var paramsListRooms =  
     1268                        { 
     1269                                "path_jabberit" : path_jabberit  
     1270                        }; 
     1271                         
     1272                        var winListRooms = 
    12661273                {        
    1267                          id_window              : "window_Teste", 
     1274                         id_window              : "window_List_Rooms", 
    12681275                         width                  : 450, 
    12691276                         height                 : 300, 
     
    12761283                         title                  : "Expresso Messenger - Salas de Bate Papo", 
    12771284                         closeAction    : "remove", 
    1278                          content                : _list.innerHTML 
     1285                         content                : Xtools.parse( _xml, "listRooms.xsl", paramsListRooms ) 
    12791286                }; 
    12801287                         
    1281                         _winBuild( winTeste ); 
     1288                        _winBuild( winListRooms ); 
     1289                         
     1290                        var _pButtons = 
     1291                        { 
     1292                                'lang1'                 : 'Criar Nova Sala', 
     1293                                'lang2'                 : 'Fechar', 
     1294                                'onclickClose'  : '_winBuild("window_List_Rooms","remove");', 
     1295                                'onclickSubmit' : 'alert(\'Vou criar mais uma sala\')' 
     1296                        };  
     1297 
     1298                        // Add Buttons 
     1299                        document.getElementById('buttons_addChatRoom').innerHTML = Xtools.parse(Xtools.xml('buttons_main'), 'buttons.xsl', _pButtons); 
    12821300                }; 
    12831301 
    12841302                var _add_room = function( _room ) 
    12851303        { 
    1286                         _rooms++; 
    1287  
    1288                         // Name Room 
    1289                         var nameRoom = _room.getAttribute( 'from' ); 
    1290                                 nameRoom = nameRoom.substring(0, nameRoom.indexOf("@")); 
    1291                          
    1292                         var _desc = document.createElement("div"); 
    1293                                 _desc.setAttribute("style","margin:5px 3px 10px 3px; border-bottom:1px dashed #cecece"); 
    1294                                 _desc.appendChild(document.createTextNode( "Nome da Sala : " + nameRoom.toUpperCase() )); 
    1295                                  
     1304                        _roomsCount++; 
     1305 
     1306                        var _ROOM               = _xml.createElement('room') 
     1307                        var nameRoom    = _room.getAttribute( 'from' ); 
     1308                                nameRoom        = nameRoom.substring(0, nameRoom.indexOf("@")); 
     1309                         
     1310                        _ROOM.setAttribute('nameRoom', nameRoom.toUpperCase() ); 
     1311                         
     1312                        // Get fields elements; 
    12961313                        var _fields = _room.getElementsByTagName( 'field' ); 
     1314                         
    12971315                        for ( var f = 0; f < _fields.length; f++ ) 
    12981316                        { 
     
    13001318                                { 
    13011319                                        if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_description' ) 
    1302                                                 _desc.innerHTML += "<br/> Descrição : " + _fields[ f ].firstChild.firstChild.nodeValue;                                          
    1303                                                  
     1320                                        { 
     1321                                                var _description        = _xml.createElement("description"); 
     1322                                                        _description.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue ) ); 
     1323                                                        _ROOM.appendChild( _description ); 
     1324                                        } 
     1325 
    13041326                                        if ( _fields[ f ].firstChild.hasChildNodes( ) && _fields[ f ].getAttribute( 'var' ) == 'muc#roominfo_occupants' ) 
    1305                                                 _desc.innerHTML += "<br/> Ocupantes : " + _fields[ f ].firstChild.firstChild.nodeValue; 
     1327                                        { 
     1328                                                var _occupants = _xml.createElement("occupants") 
     1329                                                        _occupants.appendChild( _xml.createTextNode( _fields[ f ].firstChild.firstChild.nodeValue) ); 
     1330                                                        _ROOM.appendChild( _occupants ); 
     1331                                        } 
    13061332                                } 
    13071333                        } 
    13081334 
    1309                         _list.appendChild( _desc ); 
     1335                        // Get feature elements; 
     1336                        var _feature = _room.getElementsByTagName( 'feature' ); 
     1337                         
     1338                        for( var f = 0 ; f < _feature.length; f++ ) 
     1339                        { 
     1340                                if ( _feature[ f ].hasAttribute( 'var' ) ) 
     1341                                { 
     1342                                        if( _feature[ f ].getAttribute( 'var' ) == 'muc_unsecured' ) 
     1343                                        { 
     1344                                                var _password = _xml.createElement("password"); 
     1345                                                        _password.appendChild( _xml.createTextNode("false") ); 
     1346                                                        _ROOM.appendChild( _password ); 
     1347                                        } 
     1348                                        else if( _feature[ f ].getAttribute( 'var' ) == 'muc_passwordprotected' ) 
     1349                                        { 
     1350                                                var _password = _xml.createElement("password"); 
     1351                                                        _password.appendChild( _xml.createTextNode("true") ); 
     1352                                                        _ROOM.appendChild( _password ); 
     1353                                        }        
     1354                                } 
     1355                        } 
     1356                         
     1357                        _listRooms.appendChild( _ROOM ); 
    13101358                         
    13111359                        show( ); 
     
    13191367                                function( a ) 
    13201368                                { 
    1321                                         _rooms++; 
     1369                                        _roomsCount++; 
    13221370                                 
    13231371                                        show( ); 
     
    13321380                } 
    13331381                                 
    1334                  
    1335                  
    1336                 /* 
    1337                 element = element.getElementsByTagName( 'item' ); 
    1338                 var _rooms = 0; 
    1339                 var _list = document.createElement( 'ul' ); 
    1340                  
    1341                 var show = function( ) 
    1342                 { 
    1343                         if ( _rooms != element.length ) 
    1344                                 return false; 
    1345  
    1346                         var winTeste = 
    1347                 {        
    1348                          id_window              : "window_Teste", 
    1349                          width                  : 400, 
    1350                          height                 : 300, 
    1351                          top                    : 100, 
    1352                          left                   : 400, 
    1353                          draggable              : true, 
    1354                          visible                : "display", 
    1355                          resizable              : true, 
    1356                          zindex                 : loadscript.getZIndex(), 
    1357                          title                  : "Expresso Messenger - Salas de Bate Papo", 
    1358                          closeAction    : "remove", 
    1359                          content                : '<ul>' + _list.innerHTML + '</ul>' 
    1360                 }; 
    1361                          
    1362                         _winBuild( winTeste ); 
    1363                 }; 
    1364  
    1365                 var _add_room = function( _room ) 
    1366         { 
    1367                         _rooms++; 
    1368                          
    1369                         var _desc = _room.getAttribute( 'from' ); 
    1370                          
    1371                         var _fields = _room.getElementsByTagName( 'field' ); 
    1372                         for ( var f = 0; f < _fields.length; f++ ) 
    1373                                 if ( ! ( _fields[ f ].hasAttribute( 'type' ) && _fields[ f ].getAttribute( 'type' ) == 'hidden' ) ) 
    1374                                         if ( _fields[ f ].hasAttribute( 'label' ) && _fields[ f ].firstChild.hasChildNodes( ) ) 
    1375                                                 _desc += ' :: ' + _fields[ f ].getAttribute( 'label' ) + ' ( ' + _fields[ f ].firstChild.firstChild.nodeValue + ' ) ';  
    1376                  
    1377                         _list.appendChild( 
    1378                                 document.createElement( 'li' ) 
    1379                         ).appendChild( 
    1380                                 document.createTextNode( _desc ) 
    1381                         ); 
    1382                          
    1383                         show( ); 
    1384         }; 
    1385                  
    1386                 var _get_room_info = function( _room ) 
    1387                 { 
    1388                 TrophyIM.connection.sendIQ( 
    1389                                 $iq( { "to" : _room, "type" : "get" } ).c( "query",{xmlns: Strophe.NS.DISCO_INFO } ), 
    1390                                 _add_room, 
    1391                                 function( a ) 
    1392                                 { 
    1393                                         _rooms++; 
    1394                                  
    1395                                         show( ); 
    1396                                 }, 
    1397                                 500 
    1398                         ); 
    1399                 }; 
    1400  
    1401                 for ( var i = 0; i < element.length; i++ ) 
    1402                 { 
    1403                         _get_room_info( element[ i ].getAttribute( 'jid' ) ); 
    1404                 } 
    1405                  */ 
     1382         
    14061383                 
    14071384        } 
     
    14091386        function getListRooms() 
    14101387        { 
    1411                 TrophyIM.getListRooms(); 
    1412         } 
     1388                TrophyIM.getListRooms();         
     1389                 
     1390        } 
     1391         
    14131392         
    14141393        loadIM.prototype.getListRooms   = getListRooms; 
    14151394        loadIM.prototype.listRooms              = listRooms; 
    1416          
    1417          
     1395 
    14181396         
    14191397         
  • trunk/jabberit_messenger/jmessenger/xsl/listRooms.xsl

    r3059 r3070  
    33        <xsl:output method="html" omit-xml-declaration="yes"/> 
    44 
    5         <xsl:template match="child::*"> 
    6                 <xsl:for-each select="descendant::*"> 
    7                         <xsl:if test="name( ) = 'item'"> 
    8                                 :: <xsl:value-of select="name( )" /> - <xsl:value-of select="@jid" /> ::<br/> 
    9                         </xsl:if> 
    10                 </xsl:for-each> 
     5        <xsl:param name="path_jabberit" /> 
     6 
     7        <xsl:template match="listRooms"> 
     8                 
     9                <div style="margin:5px; height:200px; overflow-y: auto"> 
     10                         
     11                        <xsl:for-each select="room"> 
     12                                <xsl:sort select="@nameRoom"/> 
     13                                <div onclick="alert('aqui dentro');" style="cursor:pointer;padding :5px 0px 5px 45px; background:url({$path_jabberit}templates/default/images/conference.png) no-repeat center left; border-bottom:1px dashed #cecece; margin:6px 1px;"> 
     14                                        Nome da Sala : <xsl:value-of select="@nameRoom"/> <br/> 
     15                                        <xsl:choose> 
     16                                                <xsl:when test="description != ''"> 
     17                                                        Descrição : <xsl:value-of select="description"/> <br/> 
     18                                                </xsl:when> 
     19                                                <xsl:otherwise> 
     20                                                        Descrição : &lt; Sem Descrição &gt; <br/> 
     21                                                </xsl:otherwise> 
     22                                        </xsl:choose>                                    
     23                                        Ocupantes : <xsl:value-of select="occupants"/> <br/> 
     24                                        <xsl:choose> 
     25                                                <xsl:when test="password = 'true'"> 
     26                                                        Password : <span style="color:red; font-weight: bold;"><blink>Com Senha</blink></span><br/> 
     27                                                </xsl:when> 
     28                                                <xsl:otherwise> 
     29                                                        Password : Sem Senha <br/> 
     30                                                </xsl:otherwise> 
     31                                        </xsl:choose>                                    
     32                                </div> 
     33                        </xsl:for-each> 
     34                         
     35                </div> 
     36                 
     37                <div id="buttons_addChatRoom" style="float:left; margin:10px 0px 0px 10px;" /> 
     38                 
    1139        </xsl:template> 
    1240 
Note: See TracChangeset for help on using the changeset viewer.