Ignore:
Timestamp:
03/25/10 16:38:23 (14 years ago)
Author:
alexandrecorreia
Message:

Ticket #986 - Implementado function para adição de contatos e caixa de menu.

Location:
sandbox/jabberit_messenger/trophy
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • sandbox/jabberit_messenger/trophy/js/loadIM.js

    r2339 r2345  
    55        var _xtools                     = null; 
    66        var zIndex                      = 9001; 
     7 
     8         
     9        function actionButton() 
     10        { 
     11                if( arguments.length > 0 ) 
     12                { 
     13                        var e   = arguments[0]; 
     14                        var jid = arguments[1]; 
     15                 
     16                        if ( !e ) 
     17                                var e = window.event; 
     18                         
     19                        ( ( e.target ) ? e.target : e.srcElement ).oncontextmenu = function(e) 
     20                        { 
     21                                return false; 
     22                        }; 
     23         
     24                        if ( ( e.which && e.which > 1 ) || ( e.button && e.button > 1 ) ) 
     25                                optionsItensContact(e, jid); 
     26                        else 
     27                                TrophyIM.rosterClick(jid); 
     28                } 
     29        } 
     30 
     31        function addContacts() 
     32        { 
     33                /* 
     34                var jid         = 'contact@servidor_jabber'; 
     35                var name        = 'Nome Contato'; 
     36                var group       = 'CONTATOS'; 
     37                 
     38                TrophyIM.addContacts( jid, name, group ); 
     39                */ 
     40        } 
    741         
    842        function configEvents(pObj, pEvent, pHandler) 
     
    1852                                pObj.attachEvent('on' + pEvent, pHandler); 
    1953                } 
    20         } 
    21          
    22         function TrophyIMChatArea() 
    23         { 
    24                 /* 
    25                 var winImChatArea =  
    26                 { 
    27                          id_window              : "window_chat_area", 
    28                          width                  : 490, 
    29                          height                 : 395, 
    30                          top                    : 100, 
    31                          left                   : 400, 
    32                          draggable              : true, 
    33                          visible                : "display", 
    34                          resizable              : true, 
    35                          zindex                 : zIndex++, 
    36                          title                  : "Mensagens - Expresso Messenger", 
    37                          closeAction    : "remove", 
    38                          content                : '<div id="trophyimchat"><div id="trophyimchattabs"/></div>'    
    39                 }; 
    40                  
    41                 _winBuild( winImChatArea ); 
    42                  
    43                 return '<div id="trophyimchat"><div id="trophyimchattabs"/></div>'; 
    44                 */ 
    45         } 
    46          
    47         function TrophyIMChatBox() 
    48         { 
    49                 var chatBox = '<div>' + 
    50                                                 '<div id="trophyimchattabs"/>' + 
    51                                                 '<div class="trophyimchatbox"/>' + 
    52                                                         '<form name="chat" onsubmit="TrophyIM.sendMessage(this); return(false);">' + 
    53                                                                 '<textarea class="trophyimchatinput" rows="3" cols="50"></textarea>' + 
    54                                                                 '<input type="button" value="Send" onclick="TrophyIM.sendMessage(this)"/>' + 
    55                                                         '</form>' + 
    56                                            '</div>'; 
    57                  
    58                 return chatBox; 
    59         } 
    60          
    61         function TrophyIMChatTab() 
    62         { 
    63         var chatTab     =       '<div class="trophyimchattab" onclick="TrophyIM.tabClick(this);">' + 
    64                                         '<div class="trophyimchattabjid" />' + 
    65                                                 '<div class="trophyimtabclose" onclick="TrophyIM.tabClose(this);">X</div>' + 
    66                                         '<div class="trophyimchattabname" />' + 
    67                                 '</div>'; 
    68                 return chatTab; 
    6954        } 
    7055         
     
    120105        } 
    121106         
    122         function TrophyIMRosterGroup() 
    123         { 
    124                 return '<div class="trophyimrostergroup"><div class="trophyimrosterlabel"/></div>'; 
    125         } 
    126          
    127         function TrophyIMRosterItem() 
    128         { 
    129                 var rosterItem = '<div class="trophyimrosteritem" onclick="TrophyIM.rosterClick(this)">' +  
    130                                                 '<div class="trophyimrosterjid" />' + 
    131                                                 '<div class="trophyimrostername" />' + 
    132                                          '</div>'; 
    133          
    134         return rosterItem; 
    135         } 
    136          
    137107        function HTMLSnippets( pType ) 
    138108        { 
    139109                return new ( function( ) 
    140110                { 
    141                         //this.chatArea         = TrophyIMChatArea; 
    142          
    143                         this.chatBox            = TrophyIMChatBox; 
    144          
    145                         this.chatTab            = TrophyIMChatTab; 
    146                                  
    147111                        this.loggingDiv         = TrophyIMLoggingDiv; 
    148112                 
     
    150114                                 
    151115                        this.rosterDiv          = TrophyIMRosterDiv; 
    152                                  
    153                         this.rosterGroup        = TrophyIMRosterGroup; 
    154          
    155                         this.rosterItem         = TrophyIMRosterItem; 
    156  
    157116                } ); 
    158117        } 
     
    244203        } 
    245204 
     205         
     206        function optionsItensContact() 
     207        { 
     208                if( arguments.length > 0 ) 
     209                { 
     210                        var element = ( arguments[0].target ) ? arguments[0].target : arguments[0].srcElement; 
     211                        var jid         = arguments[1]; 
     212                         
     213                        if( _showhidden == null ) 
     214                                _showhidden = new ShowHidden(300); 
     215 
     216                        var _options = [ 
     217                                                ['Autorizar', 'Autorizar : ' + jid ], 
     218                                                ['Remover', 'Remover : ' + jid ], 
     219                                                ['Renomear', 'Renomear : ' + jid], 
     220                                                ['Trocar grupo', 'Trocar grupo : ' + jid], 
     221                                                   ]; 
     222 
     223                        var _itens = ""; 
     224                         
     225                        for( var i in _options ) 
     226                        { 
     227                                _itens += '<img src="images/arrow_right.gif"/><span style="cursor:pointer; margin:3px;" onclick="alert(\'' +_options[i][1] + '\');">'; 
     228                                _itens += _options[i][0] + '</span><br/>'; 
     229                        } 
     230                         
     231                        var _optionsItens = document.createElement("div"); 
     232                                _optionsItens.setAttribute("style", "margin: -5px 0px 0px 20px;"); 
     233                                _optionsItens.className         = "x-menu"; 
     234                                _optionsItens.style.zIndex      = '99999'; 
     235                                _optionsItens.innerHTML         = _itens;   
     236                                                                                   
     237                                _showhidden.action('onmouseover', 'onmouseout', _optionsItens); 
     238                                 
     239                        element.parentNode.onmouseout   = function(){ _showhidden.hiddenObject(false); }; 
     240                        element.parentNode.onmouseover  = function(){ _showhidden.hiddenObject(true); }; 
     241                        element.parentNode.appendChild( _optionsItens ); 
     242                } 
     243                 
     244        } 
    246245         
    247246        function setPresence() 
     
    310309                                 'js/show_hidden.js', 
    311310                                 'css/trophyim.css', 
    312                                  'css/window_azul.css' 
     311                                 //'css/window_azul.css' 
    313312                                 //'css/window_cataratas.css' 
    314313                                 //'css/window_celepar.css' 
     
    317316                                 //'css/window_escritorio.css' 
    318317                                 //'css/window_metropole.css' 
    319                                  //'css/window_rochas.css' 
     318                                 'css/window_rochas.css' 
    320319                            ]; 
    321320                 
     
    324323        } 
    325324         
     325        loadIM.prototype.actionButton           = actionButton; 
     326        loadIM.prototype.addContacts            = addContacts; 
    326327        loadIM.prototype.configEvents           = configEvents; 
    327328        loadIM.prototype.getZIndex                      = getZindex; 
  • sandbox/jabberit_messenger/trophy/js/trophyim.js

    r2340 r2345  
    6161 * 
    6262 */ 
     63 
    6364HTMLSnippets = { 
    6465 
    65                 //chatArea      : loadIM.HTMLSnippets.chatArea( ), 
    66                  
    67         chatBox         : loadIM.HTMLSnippets.chatBox( ), 
    68  
    69         chatTab         : loadIM.HTMLSnippets.chatTab( ), 
    70                  
    71                 //loginPage     : loadIM.HTMLSnippets.loginPage( ), 
    72      
     66        //chatBox               : loadIM.HTMLSnippets.chatBox( ), 
     67 
     68        //chatTab               : loadIM.HTMLSnippets.chatTab( ), 
     69 
    7370        loggingDiv      : loadIM.HTMLSnippets.loggingDiv( ), 
    7471     
    7572        rosterDiv       : loadIM.HTMLSnippets.rosterDiv( ), 
    76      
    77         rosterGroup     : loadIM.HTMLSnippets.rosterGroup( ), 
    78          
    79         rosterItem      : loadIM.HTMLSnippets.rosterItem( ), 
    80      
    81         //statusDiv     : loadIM.HTMLSnippets.statusDiv( ), 
    8273}; 
    8374 
     
    535526     *  Roster iq handler 
    536527     */ 
    537     onRoster : function(msg) { 
     528    onRoster : function(msg) 
     529        { 
    538530        Strophe.debug("Roster handler"); 
    539531        var roster_items = msg.firstChild.getElementsByTagName('item'); 
    540         for (var i = 0; i < roster_items.length; i++) { 
     532                for (var i = 0; i < roster_items.length; i++) { 
    541533            var groups = roster_items[i].getElementsByTagName('group'); 
    542534            var group_array = new Array(); 
     
    656648                ); 
    657649    }, 
     650 
     651        /** Function addContacts 
     652         *  
     653         *  Parameters: 
     654         *      (string) jid  
     655         *              (string) name 
     656         *              (string) group    
     657         */ 
     658         
     659        addContacts : function( jid, name, group ) 
     660        { 
     661                var newPresence = $pres({from:'alexandrecorreia@ecelepar10612.celepar.parana', to: jid, type: 'subscribe'}).tree(); 
     662                 
     663                TrophyIM.connection.send(newPresence); 
     664 
     665                var newContact = $iq({type: 'set', id: 'set1'}); 
     666                        newContact = newContact.c('query').attrs({xmlns : 'jabber:iq:roster'}); 
     667                        newContact = newContact.c('item').attrs({jid: jid, name: name, ask:'subscribe', subscription :'none'}); 
     668                        newContact = newContact.c('group').t(group).tree(); 
     669 
     670                TrophyIM.connection.send(newContact); 
     671        }, 
    658672 
    659673    /** Function: addMessage 
     
    878892                if( arguments.length > 0 ) 
    879893                { 
    880                         TrophyIM.connection.send($pres( ).c('show').t(arguments[0])); 
     894                        TrophyIM.connection.send($pres( ).c('show').t(arguments[0]).tree()); 
    881895                } 
    882896        }, 
     
    13261340} 
    13271341 
    1328 /** Function: getElementsByClassName 
    1329  * 
    1330  *  DOMObject.getElementsByClassName implementation for browsers that don't 
    1331  *  support it yet. 
    1332  * 
    1333  *  Developed by Robert Nyman, http://www.robertnyman.com 
    1334  *  Code/licensing: http://code.google.com/p/getelementsbyclassname/ 
    1335 */ 
    1336 var getElementsByClassName = function (className, tag, elm){ 
    1337     if (document.getElementsByClassName) { 
    1338         getElementsByClassName = function (className, tag, elm) { 
    1339             elm = elm || document; 
    1340             var elements = elm.getElementsByClassName(className), 
    1341                 nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null, 
    1342                 returnElements = [], 
    1343                 current; 
    1344             for(var i=0, il=elements.length; i<il; i+=1){ 
    1345                 current = elements[i]; 
    1346                 if(!nodeName || nodeName.test(current.nodeName)) { 
    1347                     returnElements.push(current); 
    1348                 } 
    1349             } 
    1350             return returnElements; 
    1351         }; 
    1352     } else if (document.evaluate) { 
    1353         getElementsByClassName = function (className, tag, elm) { 
    1354             tag = tag || "*"; 
    1355             elm = elm || document; 
    1356             var classes = className.split(" "), 
    1357                 classesToCheck = "", 
    1358                 xhtmlNamespace = "http://www.w3.org/1999/xhtml", 
    1359                 namespaceResolver = (document.documentElement.namespaceURI === 
    1360                     xhtmlNamespace)? xhtmlNamespace : null, 
    1361                 returnElements = [], 
    1362                 elements, 
    1363                 node; 
    1364             for(var j=0, jl=classes.length; j<jl; j+=1){ 
    1365                 classesToCheck += "[contains(concat(' ', @class, ' '), ' " + 
    1366                     classes[j] + " ')]"; 
    1367             } 
    1368             try { 
    1369                 elements = document.evaluate(".//" + tag + classesToCheck, 
    1370                     elm, namespaceResolver, 0, null); 
    1371             } catch (e) { 
    1372                 elements = document.evaluate(".//" + tag + classesToCheck, 
    1373                     elm, null, 0, null); 
    1374             } 
    1375             while ((node = elements.iterateNext())) { 
    1376                 returnElements.push(node); 
    1377             } 
    1378             return returnElements; 
    1379         }; 
    1380     } else { 
    1381         getElementsByClassName = function (className, tag, elm) { 
    1382             tag = tag || "*"; 
    1383             elm = elm || document; 
    1384             var classes = className.split(" "), 
    1385                 classesToCheck = [], 
    1386                 elements = (tag === "*" && elm.all)? elm.all : 
    1387                      elm.getElementsByTagName(tag), 
    1388                 current, 
    1389                 returnElements = [], 
    1390                 match; 
    1391             for(var k=0, kl=classes.length; k<kl; k+=1){ 
    1392                 classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + 
    1393                     "(\\s|$)")); 
    1394             } 
    1395             for(var l=0, ll=elements.length; l<ll; l+=1){ 
    1396                 current = elements[l]; 
    1397                 match = false; 
    1398                 for(var m=0, ml=classesToCheck.length; m<ml; m+=1){ 
    1399                     match = classesToCheck[m].test(current.className); 
    1400                     if (!match) { 
    1401                         break; 
    1402                     } 
    1403                 } 
    1404                 if (match) { 
    1405                     returnElements.push(current); 
    1406                 } 
    1407             } 
    1408             return returnElements; 
    1409         }; 
    1410     } 
    1411     return getElementsByClassName(className, tag, elm); 
    1412 }; 
    1413  
    14141342/** 
    14151343 * 
  • sandbox/jabberit_messenger/trophy/xsl/contactsList.xsl

    r2325 r2345  
    1515                         
    1616                        <div style="position: absolute; margin-top: -50px; margin-left: 75px;"> 
    17                                 <button style="width:35px;" alt="Adicionar Contatos" title="Adicionar Contatos" onclick="alert('Adicionar Contatos');"> 
     17                                <button style="width:35px;" alt="Adicionar Contatos" title="Adicionar Contatos" onclick="loadIM.addContacts();"> 
    1818                                        <img src="images/users.png"/> 
    1919                                </button> 
  • sandbox/jabberit_messenger/trophy/xsl/itensGroup.xsl

    r2340 r2345  
    1212        <xsl:template match="itens_group"> 
    1313 
    14                         <div id="{$id}" onclick="TrophyIM.rosterClick('{$jid}');" style="background: url('images/{$presence}.gif')no-repeat center left; padding-left: 18px; margin:2px 0px 5px 10px; cursor:pointer;"> 
     14                        <div id="{$id}" onmousedown="loadIM.actionButton(event,'{$jid}');" style="background: url('images/{$presence}.gif')no-repeat center left; padding-left: 18px; margin:2px 0px 5px 10px; cursor:pointer;"> 
    1515                                <xsl:value-of select="$nameContact"/> <br/> 
    1616                                <span style="font-size: 8pt; font-style:italic; display:{$statusDisplay};"><xsl:value-of select="$status"/></span> 
Note: See TracChangeset for help on using the changeset viewer.