Ignore:
Timestamp:
06/10/08 16:41:40 (16 years ago)
Author:
niltonneto
Message:

Correções críticas para funcionalidades já existentes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/instant_messenger/js/client.js

    r305 r311  
    2929        var _window = new Windows(_xtools, _im_content); 
    3030        var _ldap = new InstantMessengerLDAP(_conn, _xtools, _window); 
    31         var _jabber = new Jabber(_conn, _xtools, _window, _ldap); 
     31        var _showhidden = new ShowHidden(1500); 
     32        var _jabber = new Jabber(_conn, _xtools, _window, _ldap, _showhidden); 
    3233 
    3334        // XSL preload 
    34         var _xsl_preload = ['chat.xsl','layer.xsl','contacts']; 
     35        var _xsl_preload = ['window.xsl','layer.xsl','contacts.xsl', 'chat.xsl']; 
    3536        var _xsl_preload_legth = _xsl_preload.length; 
    3637        for ( var i = 0; i < _xsl_preload_legth; i++ ) 
     
    4041        if ( (local = top.document.getElementById('user_info')) ) 
    4142        { 
    42                 local.innerHTML = ' ' + local.innerHTML; 
    43                 var _status = top.document.createElement('img'); 
    44                         _status.setAttribute('id','im_status_src'); 
    45                         _status.src = im_available.src; 
     43                local.firstChild.style.marginLeft = '30px'; 
     44 
     45                var _status = top.document.createElement('div'); 
     46                        _status.setAttribute('id', 'im_status'); 
     47                        _status.style.height = '15px'; 
     48                        _status.style.margin = '0 0 0 10px'; 
     49                        _status.style.padding = '0px'; 
     50                        _status.style.width = '15px'; 
     51                        _status.style.background = 'no-repeat'; 
     52                        _status.style.backgroundImage = 'url(' + im_unavailable.src + ')'; 
     53                        _status.style.float = 'left'; 
     54                        _status.style.position = 'absolute'; 
    4655 
    4756                local.insertBefore(_status, local.firstChild); 
     
    5059 
    5160                var _menu; 
    52                 _menu = top.document.createElement('span'); 
    53                 _menu.setAttribute('id','fast_menu_im'); 
     61                        _menu = top.document.createElement('span'); 
     62                        _menu.setAttribute('id','fast_menu_im'); 
     63                        _menu.style.backgroundColor = 'b4cfe5'; 
     64                        _menu.style.display = 'none'; 
     65                        _menu.style.margin = '15px 0 0 -15px'; 
     66                        _menu.style.position = 'absolute'; 
     67                        _menu.style.zIndex = '99999'; 
    5468                local.insertBefore(_menu, local.firstChild); 
    5569 
    56                 _menu = top.document.createElement('img'); 
    57                 _menu.src = im_fast_menu.src; 
    58                 local.insertBefore(_menu, local.firstChild); 
    59  
    60                 //var local_old = local.innerHTML ; 
    61                 //local.innerHTML  = '<img src="' + im_fast_menu.src + '" onclick="javascript:templates.fast_menu();">'; 
    62                 //local.innerHTML += '<img id="im_status_src" src="' + im_available.src + '" onclick="javascript:load_im_contacts();"/>'; 
    63                 //local.innerHTML += local_old; 
    64                 //local.innerHTML += '<div id="instant_messenger_content"></div><span id="fast_menu_im"/>'; 
     70                var _menu_img = top.document.createElement('div'); 
     71                        _menu_img.style.background = 'no-repeat'; 
     72                        _menu_img.style.backgroundImage = 'url(' + im_fast_menu.src + ')'; 
     73                        _menu_img.style.height = '10px'; 
     74                        _menu_img.style.margin = '0px'; 
     75                        _menu_img.style.padding = '0px'; 
     76                        _menu_img.style.position = 'absolute'; 
     77                        _menu_img.style.width = '10px'; 
     78                        _menu_img.style.float = 'left'; 
     79                local.insertBefore(_menu_img, local.firstChild); 
     80 
     81                _config( 
     82                        _menu_img, 
     83                        'onclick', 
     84                        function() 
     85                        { 
     86                                var _options = [ 
     87                                        'available', 
     88                                        'away', 
     89                                        'dnd', 
     90                                        'unavailable' 
     91                                ]; 
     92 
     93                                var _style_text = 'cursor: pointer; padding:2px 4px 2px 20px; background: no-repeat '; 
     94 
     95                                var _xml = _xtools.xml('menu'); 
     96                                var _option; 
     97                                var _item; 
     98                                var _action; 
     99                                var _style; 
     100 
     101                                for ( var i in _options ) 
     102                                { 
     103                                        _option = _xml.createElement('option'); 
     104 
     105                                        _item = _xml.createElement('item'); 
     106                                        _item.appendChild(_xml.createTextNode(imGetLang(_options[i]))); 
     107 
     108                                        _style = _xml.createElement('style'); 
     109                                        _style.appendChild(_xml.createTextNode(_style_text + 'url(' + eval('im_' + _options[i] + '.src') + ')')); 
     110 
     111                                        _option.appendChild(_item); 
     112                                        _option.appendChild(_style); 
     113 
     114                                        _xml.documentElement.appendChild(_option); 
     115                                } 
     116 
     117                                _menu.innerHTML = _xtools.parse(_xml, 'options.xsl'); 
     118                                _showhidden.action('onmouseover', 'onmouseout', _menu); 
     119 
     120                                _item = _menu.firstChild; 
     121 
     122                                for ( var i in _options ) 
     123                                { 
     124                                        _item.childNodes[i].setAttribute('presence', _options[i]); 
     125                                        _config( 
     126                                                _item.childNodes[i], 
     127                                                'onclick', 
     128                                                function(e) 
     129                                                { 
     130                                                        var el = ( e.target ) ? e.target : e.srcElement; 
     131 
     132                                                        _status.style.backgroundImage = el.style.backgroundImage; 
     133 
     134                                                        var _presence = el.getAttribute('presence'); 
     135                                                                _jabber.setPresence(_presence); 
     136 
     137                                                        var _win_contacts = _window.get('contact_list'); 
     138                                                        if ( _win_contacts ) 
     139                                                                _win_contacts.icon(eval('im_' + _presence + '.src')); 
     140                                                } 
     141                                        ); 
     142                                } 
     143                        } 
     144                ); 
    65145        } 
    66146 
     
    114194        } 
    115195 
     196        var _count_reconnect = 0; 
    116197        function _request() 
    117198        { 
     
    122203                                'classCostructor=read' 
    123204                        ); 
     205                else 
     206                        setTimeout(_reconnect, (++_count_reconnect * 2000)); 
    124207        } 
    125208 
Note: See TracChangeset for help on using the changeset viewer.