Ignore:
Timestamp:
05/19/10 14:38:58 (14 years ago)
Author:
emmanuel.ferro
Message:

Ticket #986 - [SERPRO] XEP-85 chat state messages - otimizacao

File:
1 edited

Legend:

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

    r2821 r2825  
    659659                var state               = ""; 
    660660 
    661                 var chatBox     = null; 
    662                  
    663                 if( document.getElementById(jid_lower + "__chatState") != null ) 
    664                 { 
    665                         chatBox = document.getElementById(jid_lower + "__chatState"); 
    666                 } 
    667                                  
     661                var chatBox     = document.getElementById(jid_lower + "__chatState"); 
     662                var chatStateOnOff = null; 
     663                var active      = msg.getElementsByTagName('active'); 
     664                 
    668665                contact = barejid.toLowerCase(); 
    669666                contact = contact.substring(0, contact.indexOf('@')); 
     
    681678                { 
    682679                        state = ""; 
     680                        // Set notify chat state capability on when sender notify it themself 
     681                        chatStateOnOff = document.getElementById(jid_lower + "__chatStateOnOff"); 
     682                        if (active.length > 0 & chatStateOnOff != null ) 
     683                        { 
     684                                chatStateOnOff.value = 'on'; 
     685                        } 
    683686 
    684687                        if (type == 'chat' || type == 'normal') 
     
    775778     * 
    776779     *  Make sure chat window to given fulljid exists, switching chat context to 
    777      *  given resource 
     780     *  given resource.  
    778781     */ 
    779782      
     
    782785        var barejid             = Strophe.getBareJidFromJid(fulljid); 
    783786        var titleWindow = ""; 
    784  
     787                 
    785788        var paramsChatBox = 
    786789        { 
     
    819822        var _textarea = _content.getElementsByTagName( 'textarea' ).item( 0 ); 
    820823        var _send = _content.getElementsByTagName( 'input' ).item( 0 ); 
     824                var _chatStateOnOff = _content.getElementsByTagName( 'input' ).item( 1 ); 
    821825 
    822826        function _send_message( ) 
     
    834838                _textarea.focus( ); 
    835839        } 
     840                 
     841                var composingTimer_ = 0; 
     842                var isComposing_ = 0; 
     843                var timeCounter; 
     844 
     845                function setComposing() 
     846                { 
     847                        var checkComposing = function() 
     848                        { 
     849                if (!isComposing_) { 
     850                        // User stopped composing 
     851                        composingTimer_ = 0; 
     852                        clearInterval(timeCounter); 
     853                        TrophyIM.sendContentMessage(barejid, 'paused'); 
     854                } else { 
     855                        TrophyIM.sendContentMessage(barejid, 'composing'); 
     856                } 
     857                isComposing_ = 0; // Reset composing 
     858                } 
     859 
     860                if (!composingTimer_) { 
     861                /* User (re)starts composing */ 
     862                composingTimer_ = 1; 
     863                timeCounter = setInterval(checkComposing,4000); 
     864                } 
     865                isComposing_ = 1; 
     866        } 
    836867 
    837868        loadscript.configEvents( _send, 'onclick', _send_message ); 
    838869                loadscript.configEvents( _textarea, 'onkeyup', function( e ) 
    839870                { 
    840                         setComposing(); 
    841                         if ( e.keyCode == 13 ) 
     871                        if ( e.keyCode == 13 ){ 
    842872                                _send_message( ); 
    843                 } ); 
    844          
     873                                // User stopped composing 
     874                composingTimer_ = 0; 
     875                clearInterval(timeCounter); 
     876                        }else{ 
     877                                if (_chatStateOnOff.value == 'on') 
     878                                        setComposing(); 
     879                        } 
     880                } );         
     881 
    845882        var winChatBox =  
    846883        { 
     
    868905                loadscript.getPhotoUser(barejid); 
    869906                 
    870                 var composingTimer_ = 0; 
    871                 var isComposing_ = 0; 
    872                 var timeCounter; 
    873  
    874                 function setComposing() 
    875                 { 
    876                         var checkComposing = function() 
    877                         { 
    878                 if (!isComposing_) { 
    879                         // User stopped composing 
    880                         composingTimer_ = 0; 
    881                         clearInterval(timeCounter); 
    882                         TrophyIM.sendContentMessage(barejid, 'paused'); 
    883                 } else { 
    884                         TrophyIM.sendContentMessage(barejid, 'composing'); 
    885                 } 
    886                 isComposing_ = 0; // Reset composing 
    887                 } 
    888  
    889                 if (!composingTimer_) { 
    890                 /* User (re)starts composing */ 
    891                 composingTimer_ = 1; 
    892                 timeCounter = setInterval(checkComposing,3000); 
    893                 } 
    894                 isComposing_ = 1; 
    895         } 
    896  
    897907                _textarea.focus( ); 
    898908                 
Note: See TracChangeset for help on using the changeset viewer.