Changeset 2724


Ignore:
Timestamp:
05/06/10 16:11:46 (9 years ago)
Author:
alexandrecorreia
Message:

Ticket #986 - [ Criado por Emmanuel Ferro - SERPRO ] - Implementacao da XEP-0085 - notificacao de status do chat

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/jabberit_messenger/trophy_expresso/js/trophyim.js

    r2716 r2724  
    644644        var stamp       = ( delay[0] != null ) ? messageDate(delay[0].getAttribute('stamp')) :  dtNow; 
    645645 
    646         if ( (type == 'chat' || type == 'normal') && elems.length > 0 ) 
    647         { 
    648             var barejid         = Strophe.getBareJidFromJid(from); 
    649             var jid_lower       = barejid.toLowerCase(); 
    650             var contact         = ""; 
    651             contact                     = barejid.toLowerCase(); 
    652                 contact                 = contact.substring(0, contact.indexOf('@')); 
     646                var barejid             = Strophe.getBareJidFromJid(from); 
     647                var jid_lower   = barejid.toLowerCase(); 
     648                var contact             = ""; 
     649                var state = ''; 
     650 
     651                var chatBox     = document.getElementById(jid_lower + "__chatState"); 
     652 
     653                contact                 = barejid.toLowerCase(); 
     654                contact                 = contact.substring(0, contact.indexOf('@')); 
    653655             
    654             if( TrophyIM.rosterObj.roster[barejid] ) 
    655             { 
    656                     if( TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'] ) 
    657                     { 
    658                         contact = TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']; 
    659                     } 
    660             } 
    661  
    662                 var _message = document.createElement("div"); 
    663                 _message.innerHTML = Strophe.getText(elems[0]); 
    664  
    665                 var scripts = _message.getElementsByTagName( 'script' ); 
    666  
    667                 for ( var i = 0; i < scripts.length; i++ ) 
    668                         _message.removeChild( scripts[ i-- ] ); 
    669                  
    670                 _message.innerHTML = _message.innerHTML.replace(/^\s+|\s+$|^\n|\n$/g,""); 
    671  
    672                 if ( _message.hasChildNodes( ) ) 
    673                 { 
    674                     var message =  
    675                     {  
    676                         contact : "[" + stamp + "] <font style='font-weight:bold; color:black;'>" + contact + "</font>", 
    677                         msg             : "<br/>" + _message.innerHTML 
    678                     }; 
    679          
    680                     TrophyIM.makeChat(from); //Make sure we have a chat window 
    681                     TrophyIM.addMessage(message, jid_lower); 
    682                 } 
    683         } 
    684          
    685         return true; 
    686     }, 
     656                if( TrophyIM.rosterObj.roster[barejid] ) 
     657                { 
     658                        if( TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'] ) 
     659                        { 
     660                                contact = TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name']; 
     661                        } 
     662                } 
     663 
     664                // Message with body are "content message", this mean state active 
     665                if (elems.length > 0) 
     666                { 
     667                        state = contact + ' está ativo.'; 
     668 
     669                        if (type == 'chat' || type == 'normal') { 
     670                         
     671                                var _message = document.createElement("div"); 
     672                                _message.innerHTML = Strophe.getText(elems[0]); 
     673                                 
     674                                var scripts = _message.getElementsByTagName('script'); 
     675                                 
     676                                for (var i = 0; i < scripts.length; i++)  
     677                                        _message.removeChild(scripts[i--]); 
     678                                 
     679                                _message.innerHTML = _message.innerHTML.replace(/^\s+|\s+$|^\n|\n$/g, ""); 
     680 
     681                                if (_message.hasChildNodes() ) 
     682                                { 
     683                                        var message =  
     684                                        { 
     685                                contact : "[" + stamp + "] <font style='font-weight:bold; color:black;'>" + contact + "</font>", 
     686                                msg             : "</br>" + _message.innerHTML 
     687                        }; 
     688                                         
     689                                        TrophyIM.makeChat(from); //Make sure we have a chat window 
     690                                        TrophyIM.addMessage(message, jid_lower); 
     691                                } 
     692                        } 
     693                } 
     694                // Message without body are "content message", this mean state is not active 
     695                else 
     696                { 
     697                        state = contact + TrophyIM.getChatState(msg);                    
     698                } 
     699                chatBox.innerHTML = "<font style='font-weight:bold; color:grey;'>" + state + "</font>";  
     700                return true; 
     701        }, 
     702 
     703        /** Function: getChatState 
     704         * 
     705         *  Parameters: 
     706         *    (string) msg - the message to get chat state 
     707         *    (string) jid - the jid of chat box to update the chat state to. 
     708         */ 
     709        getChatState : function(msg) 
     710        { 
     711                var     state =  msg.getElementsByTagName('inactive'); 
     712                 
     713                if ( state.length > 0 ) { 
     714                return' está inativo...'; 
     715                } else { 
     716                state = msg.getElementsByTagName('gone'); 
     717            if ( state.length > 0 ){ 
     718                return ' saiu da conversa.'; 
     719                        } else { 
     720                state = msg.getElementsByTagName('composing');  
     721                if ( state.length > 0 ){ 
     722                        return ' está compondo...'; 
     723                                } else { 
     724                        state =  msg.getElementsByTagName('paused'); 
     725                        if ( state.length > 0 ){ 
     726                                return ' está parado...'; 
     727                                        } 
     728                                } 
     729                        } 
     730                } 
     731                return ''; 
     732        }, 
     733 
    687734     
    688735    /** Function: makeChat 
     
    729776                         id_window              : "window_chat_area_" + barejid, 
    730777                         width                  : 387, 
    731                          height                 : 365, 
     778                         height                 : 375, 
    732779                         top                    : TrophyIM.posWindow.top, 
    733780                         left                   : TrophyIM.posWindow.left, 
Note: See TracChangeset for help on using the changeset viewer.