Changeset 164


Ignore:
Timestamp:
02/01/08 10:48:43 (16 years ago)
Author:
niltonneto
Message:
 
Location:
trunk/instant_messenger
Files:
27 edited

Legend:

Unmodified
Added
Removed
  • trunk/instant_messenger/inc/Jabber.abstract.php

    r151 r164  
    3232        const NOTICE  = 'NOTICE'; 
    3333 
    34         private final function _connect( $pUser = false, $pPassword = false ) 
     34        private final function _connect( $pUser = false, $pPassword = false, $pConnectionType = false ) 
    3535        { 
    3636                try 
     
    5353 
    5454                        $return = fread($socket, 4096); 
    55                         #echo __FUNCTION__ . "<br>\n"; 
    56                         #var_dump($return); 
    57                         #exit; 
     55                        fwrite($socket, $pConnectionType); 
     56 
     57                        $return = fread($socket, 4096); 
    5858 
    5959                        if ( $return == "new" ) 
     
    7272                        $this->_resource = $RESOURCE; 
    7373 
    74                         #var_dump($return); 
    75                         #exit; 
    7674                        return $return; 
    7775                } 
     
    8381        } 
    8482 
    85         protected function connect( $pUser = false, $pPassword = false ) 
    86         { 
    87                 try 
    88                 { 
    89                         $_connect = $this->_connect($pUser, $pPassword); 
    90                          
     83        protected function connect($pUser = false, $pPassword = false, $pConnectionType = false) 
     84        { 
     85                try 
     86                { 
     87                        $_connect = $this->_connect($pUser, $pPassword, $pConnectionType); 
     88 
    9189                        if ( !$_connect ) 
    9290                                throw new Exception('[connect] #0. File: ' . __FILE__ . '  ::  ' . __LINE__); 
     
    275273                                $xml .= ($pStatus || $pShow || $pPriority) ? "</presence>" : ''; 
    276274                        } 
    277                          
     275 
    278276                        if ( $this->write($xml) === false ) 
    279277                                throw new Exception('[presence] #1 it isn\'t possible send presence for ' . $this->_server . '. File: ' . __FILE__ . '  ::  ' . __LINE__); 
  • trunk/instant_messenger/inc/Jabberd2.abstract.php

    r151 r164  
    77class Jabberd2 extends Jabber 
    88{ 
    9         final function connect($pUser = false, $pPassword = false) 
     9        final function connect($pUser = false, $pPassword = false, $pConnectionType = false) 
    1010        { 
    1111                try 
    1212                { 
    13                         if ( $_connect = parent::connect($pUser, $pPassword) ) 
    14                                 return $_connect; 
     13                        if ( $pUser && $pPassword && $pConnectionType ) 
     14                                if ( $_connect = parent::connect($pUser, $pPassword, $pConnectionType) ) 
     15                                        return $_connect; 
    1516 
    1617                        return false; 
     
    6869                else 
    6970                { 
    70                         if($this->writeSocket($this->iq('set', $addid, NULL, NULL, "jabber:iq:roster", $newcontact))) 
    71                         { 
     71                        if ( $this->writeSocket($this->iq('set', $addid, NULL, NULL, "jabber:iq:roster", $newcontact)) ) 
    7272                                $this->getContacts(); 
    73                                 if($this->subscription($pContact['jid'],"subscribe")) 
    74                                         echo "OK"; 
    75                         } 
    7673                } 
    7774        } 
     
    8481        final function getVcard($pJid) 
    8582        { 
    86                 if(is_array($pJid)) 
     83                if ( is_array($pJid) ) 
    8784                { 
    88                         $jid = (trim($pJid['jid']) == "this") ? $this->_user . '@' . $this->_server : $pJid['jid']; 
     85                        $jid = ( trim($pJid['jid']) == "this" ) ? $this->_user . '@' . $this->_server : $pJid['jid']; 
    8986 
    9087                        if ( !$this->connected ) 
    9188                                echo "disconnected"; 
    9289                        else 
    93                         { 
    9490                                $this->writeSocket($this->iq('get', 'vCard', $jid, NULL, "vcard-temp", "<vCard xmlns='vcard-temp'/>")); 
    95                                 echo "OK"; 
    96                         } 
    9791                } 
    9892                else 
     
    109103                        echo "disconnected"; 
    110104                else 
    111                 {                
    112105                        $this->writeSocket($this->iq('set', $id, NULL, NULL, "vcard-temp", "<vCard xmlns='vcard-temp'>".$NewVcard['vcard']."</vCard>")); 
    113                         echo "OK"; 
    114                 }                        
    115106        } 
    116          
     107 
    117108        final function removeContact($pContact) 
    118109        { 
    119110                $delid  = 'deluser_' . time(); 
    120                 if( !$this->connected ) 
     111                if ( !$this->connected ) 
    121112                        echo "disconnected"; 
    122113                else 
    123114                { 
    124                         if($this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>"))) 
    125                         { 
    126                                 $this->getContacts(); 
    127                                 if($this->subscription($pContact['jid'],"unsubscribed")) 
    128                                         echo "OK";                       
    129                         } 
     115                        if ( $this->writeSocket($this->iq('set',$delid,NULL,NULL,"jabber:iq:roster","<item jid='".$pContact['jid']."' subscription='remove'/>")) ) 
     116                                if ( $this->subscription($pContact['jid'],"unsubscribed") ) 
     117                                        echo "OK"; 
    130118                } 
    131119        } 
     
    141129                { 
    142130                        $this->writeSocket("<presence xmlns='jabber:client' from='".$this->_user."@".$this->_server."' type='".$type."' to='".$jid."'/>"); 
    143                         return true;                     
     131                        return true; 
    144132                } 
    145133        } 
     
    147135        final function setPresence($pPresence = false) 
    148136        { 
    149                  
    150137                if ( !$pPresence ) 
    151138                        $this->presence(); 
     
    158145 
    159146                $this->presence($type, $to, $show, $status, $priority); 
    160  
    161147        } 
    162148 
  • trunk/instant_messenger/inc/class.Ujabber.inc.php

    r151 r164  
    88        { 
    99                session_start(); 
    10                  
    11                 $_user     = $_SESSION['phpgw_info']['instant_messenger']['user']; 
    12                 $_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd']; 
    13                 $_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber']; 
    14                 $_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber']; 
    15                 $_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber']; 
    16                  
     10 
     11                $this->_user     = $_SESSION['phpgw_info']['instant_messenger']['user']; 
     12                $this->_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd']; 
     13                $this->_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber']; 
     14                $this->_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber']; 
     15                $this->_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber']; 
     16 
    1717                session_write_close(); 
    1818 
    19                 if ( $this->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass) ) 
     19                if ( $this->connect($this->_user . '@' . $this->_server . '/' . $this->_resource . ':' . $this->_port, $this->_pass, 'read/write') ) 
    2020                        $this->connected = true; 
    2121                else 
    2222                        $this->connected = false; 
    23                  
    24                  
    2523        } 
    2624 
     
    2927                $this->closeSocket(); 
    3028        } 
    31  
     29         
    3230        public final function listen() 
    3331        { 
     
    4947                        $init = time(); 
    5048 
    51                         while ( !connection_aborted() && time() - $init < 10 ) 
     49                        while ( !connection_aborted() && time() - $init < 30 ) 
    5250                        { 
    5351                                # read from server and write in the client 
    5452                                $xml = $this->readSocket(); 
    5553                                $xml = ( strlen($xml) ) ? $xml : ' '; 
    56                                 printf("%s", $xml ); 
    57  
     54                                printf("%s", $xml); 
    5855                                ob_flush(); 
    5956                                flush(); 
    6057                                usleep(6000); 
    6158                        } 
    62  
    6359                        ob_end_flush(); 
    6460                } 
  • trunk/instant_messenger/inc/class.db_im.inc.php

    r151 r164  
    1919        function db_im() 
    2020        { 
     21                 
    2122                session_start();                 
    2223                $this->db_name = $_SESSION['phpgw_info']['instant_messenger']['server']['db_name']; 
     
    2728                $this->db_type = $_SESSION['phpgw_info']['instant_messenger']['server']['db_type']; 
    2829                $this->user_id = $_SESSION['phpgw_info']['instant_messenger']['user_id']; 
    29                  
     30                session_write_close(); 
     31 
    3032                $this->db = new db(); 
    31                 $this->db->connect($this->db_name,$this->db_host,$this->db_port,$this->db_user,$this->db_pass,$this->db_type); 
    32                 session_write_close();           
     33                $this->db->connect($this->db_name,$this->db_host,$this->db_port,$this->db_user,$this->db_pass,$this->db_type);           
    3334        } 
    3435 
  • trunk/instant_messenger/inc/im_acl.inc.php

    r151 r164  
    11<?php 
    2    for ( $i = 0; $i < sizeof($GLOBALS['phpgw_info']['user']['acl']); $i++ ) 
    3    { 
    4       if ( $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger') 
    5       { 
    6                    session_start(); 
    7          $webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url']; 
    8          $webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/'; 
    9          if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) ) 
    10                                 $webserver_url .= '/'; 
     2$size_of_ACL = sizeof($GLOBALS['phpgw_info']['user']['acl']); 
    113 
    12          $webserver_url = $webserver_url . 'instant_messenger/'; 
     4for ( $i = 0; $i < $size_of_ACL && $GLOBALS['phpgw_info']['user']['acl'][$i]['appname'] == 'instant_messenger'; $i++ ); 
    135 
    14                         require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php'; 
    15                         require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php'; 
    16                          
    17                         $DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/'; 
    18           
    19          $js = array( 
    20                                                         'js/connector.js', 
    21                                                         'js/xtools.js', 
    22                                                         'js/jabber.js', 
    23                                                         'js/client.js', 
    24                                                         'js/images.js', 
    25                                                         'js/dragdrop.js', 
    26                                                         'js/build_win.js', 
    27                                                         'js/templates.js', 
    28                                                         'js/fcommon.js', 
    29                                                         'js/menu_action.js', 
    30                                                         'js/functions.js', 
    31                                                         'js/images.js', 
    32                                                         'js/cookies_im.js', 
    33                                                         'js/load.js',                                                    
    34                     ); 
     6$webserver_url = $GLOBALS['phpgw_info']['server']['webserver_url']; 
     7$webserver_url = ( !empty($webserver_url) ) ? $webserver_url : '/'; 
    358 
    36                         print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>'; 
    37                         foreach ( $js as $key => $val ) 
    38                                 print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>'; 
    39                          
    40                         print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">'; 
    41                         print   '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">'; 
    42                         print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">'; 
    43                         print '<script type="text/javascript">setTimeout("client()",1000);</script>';  
     9if ( strrpos($webserver_url, '/') === false || strrpos($webserver_url, '/') != (strlen($webserver_url)-1) ) 
     10        $webserver_url .= '/'; 
    4411 
    45                         session_write_close(); 
    46       } 
    47    } 
     12$webserver_url = $webserver_url . 'instant_messenger/'; 
     13 
     14session_start(); 
     15require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/im_sessions.inc.php'; 
     16require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/load_lang.php'; 
     17$_user     = $_SESSION['phpgw_info']['instant_messenger']['user']; 
     18$_pass     = $_SESSION['phpgw_info']['instant_messenger']['passwd']; 
     19$_server   = $_SESSION['phpgw_info']['instant_messenger']['name_jabber']; 
     20$_port     = $_SESSION['phpgw_info']['instant_messenger']['port_jabber']; 
     21$_resource = $_SESSION['phpgw_info']['instant_messenger']['resource_jabber']; 
     22session_write_close(); 
     23 
     24require_once PHPGW_SERVER_ROOT . '/instant_messenger/inc/class.Ujabber.inc.php'; 
     25 
     26$DOCUMENT_ROOT = PHPGW_SERVER_ROOT .'/instant_messenger/'; 
     27 
     28$js = array( 
     29        'js/connector.js', 
     30        'js/xtools.js', 
     31        'js/jabber.js', 
     32        'js/client.js', 
     33        'js/images.js', 
     34        'js/dragdrop.js', 
     35        'js/build_win.js', 
     36        'js/templates.js', 
     37        'js/fcommon.js', 
     38        'js/menu_action.js', 
     39        'js/functions.js', 
     40        'js/images.js', 
     41        'js/cookies_im.js', 
     42        'js/load.js', 
     43); 
     44 
     45print '<script type="text/javascript">var path_im = "'.$webserver_url.'";</script>'; 
     46 
     47foreach ( $js as $key => $val ) 
     48        print '<script src="' . $webserver_url . $val . '?' . filemtime($DOCUMENT_ROOT . $val) . '"></script>'; 
     49 
     50print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/window.css">'; 
     51print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/chat.css">'; 
     52print '<link rel="stylesheet" type="text/css" href="' . $webserver_url . 'templates/default/css/common.css">'; 
     53 
     54$jabber = new Ujabber; 
     55$jabber->connect($_user . '@' . $_server . '/' . $_resource . ':' . $_port, $_pass, 'read/write'); 
     56print '<script type="text/javascript">setTimeout("client()",2000);</script>'; 
    4857?> 
  • trunk/instant_messenger/inc/im_sessions.inc.php

    r151 r164  
    22 
    33                $_SESSION['phpgw_info']['instant_messenger']['user']             = $GLOBALS['phpgw_info']['user']['account_lid']; 
    4                 $_SESSION['phpgw_info']['instant_messenger']['user_id']                   = $GLOBALS['phpgw_info']['user']['account_id'];                
     4                $_SESSION['phpgw_info']['instant_messenger']['user_id']                  = $GLOBALS['phpgw_info']['user']['account_id'];                 
    55                $_SESSION['phpgw_info']['instant_messenger']['passwd']           = $GLOBALS['phpgw_info']['user']['passwd']; 
    66                $_SESSION['phpgw_info']['instant_messenger']['name_jabber']      = $GLOBALS['phpgw_info']['server']['name_jabber']; 
  • trunk/instant_messenger/index.php

    r151 r164  
    3030        // Footer 
    3131        $GLOBALS['phpgw']->common->phpgw_footer(); 
     32         
     33        if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ) 
     34                exit;    
    3235 
    3336?> 
     
    3841                <title>IM</title> 
    3942                <!-- JavaScript --> 
     43                 
    4044                <script type="text/javascript" src="js/connector.js"></script> 
    4145                <script type="text/javascript" src="js/xtools.js"></script> 
  • trunk/instant_messenger/js/client.js

    r151 r164  
    11var con = new Connector; 
     2var disconnected = false; 
     3 
    24function client() 
    35{ 
     
    57        var buffer = ''; 
    68        var xtools = new XTools; 
    7         var disconnected = false; 
     9 
    810        function request(data) 
    911        { 
     
    2729                        im_window.elementC('_contacts_im_').innerHTML  = xtools.parse(XmlDoc,'disconnected.xsl'); 
    2830                        func.byId('img_status_im').src = im_unavailable.src; 
     31                        im.status = 'type=unavailable'; 
     32                        im.statusFlag = 'unavailable';                                   
     33 
     34                        //im_window.visible('_contacts_im_','block'); 
    2935                } 
    3036                else if ( data.lastIndexOf('>') == data.length - 1) 
     
    5359 
    5460                        var node = xmlDoc.documentElement.firstChild; 
     61 
    5562                        while ( node ) 
     63                        { 
    5664                                with ( node ) 
    5765                                { 
    5866                                        jabber.doIt(nodeName, node); 
    59                                         node = nextSibling; 
     67                                        //node = nextSibling; 
    6068                                } 
     69                                node = node.nextSibling; 
     70                        } 
    6171                } 
    6272                else 
  • trunk/instant_messenger/js/images.js

    r151 r164  
    2424        im_photo.src = path_im + 'templates/default/images/photo.png'; 
    2525         
     26        var im_photo_1 = new Image(); 
     27        im_photo_1.src = path_im + 'templates/default/images/photo_1.png'; 
     28 
    2629        var im_group_open = new Image(); 
    2730        im_group_open.src = path_im + 'templates/default/images/group_open.gif'; 
  • trunk/instant_messenger/js/jabber.js

    r157 r164  
    4444                { 
    4545                        var XmlDoc = "<layer>" + 
    46                                                         "<lang1>" + im.get_lang("Nickname") +"</lang1>" + 
     46                                                        "<lang1>" + im.get_lang("Nickname") + "</lang1>" + 
    4747                                                        "<lang2>" + im.get_lang("Add Contact") + "</lang2>" + 
    4848                                                        "<lang3>" + im.get_lang("Preferences") + "</lang3>" + 
    49                                                         "<nickname>" + im.get_lang("Username") +"</nickname>" + 
    50                                                         "<path>"+path_im+"</path>" + 
     49                                                        "<nickname>" + im.get_lang("Username") + "</nickname>" + 
     50                                                        "<path>" + path_im + "</path>" + 
    5151                                                 "</layer>"; 
     52 
    5253                        im_window.load('_contacts_im_','instant_messenger_content','<title>.::Expresso Messenger::.</title>','window.xsl','',true,true,false); 
    5354                        im_window.elementC('_contacts_im_').innerHTML  = _this.xtools.parse(XmlDoc,'layer.xsl'); 
    5455                        im_window.elementC('_contacts_im_').innerHTML += _this.xtools.parse(pContacts, 'contacts.xsl'); 
    55                          
     56                                                 
    5657                        var element = func.byId('im_contact_list').firstChild; 
    5758 
     
    6768                        } 
    6869                         
    69                         if(im.nickname == null) 
    70                         { 
    71                                 im.request_vcard('this','layer'); 
     70                        if(func.byId('im_avatar').src === im_photo.src) 
     71                        {                        
     72                                im.request_vcard('this',false); 
    7273                                im.ldap_photo('im_avatar'); 
    7374                        } 
    74                         else 
    75                                 func.byId('im_layer_nickname').innerHTML = im.nickname; 
    7675                } 
    7776 
     
    8180                        { 
    8281                                case 'contacts' : readContacts(pIq); break; 
    83                                 case 'vCard' : readVcard(pIq); break; 
     82                                case 'vCard' :  
     83                                case 'vCard_user' :  
     84                                        readVcard(pIq);  
     85                                        break; 
    8486                        } 
    8587                } 
     
    9395                                from = from.substr(0,from.indexOf('/')); 
    9496 
     97                                if(func.byId('iframe_' + from) != null) 
     98                                        func.byId('iframe_' + from).parentNode.removeChild(func.byId('iframe_' + from)); 
     99 
    95100                                var win; 
    96                                 if ( !(win = im_window.elementC(from)) ) 
    97                                 { 
    98                                         im_window.load(from, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl', '310', true, true, true); 
    99                                         func.byId(from + '_avatar').src = path_im + "/templates/default/images/photo.png"; 
    100  
     101 
     102                                function include_iframe() 
     103                                { 
    101104                                        win = im_window.elementC(from); 
    102  
     105                                         
    103106                                        var iframe = document.createElement('iframe'); 
    104107                                        iframe.id = 'iframe_' + from; 
     
    108111                                        iframe.style.margin = '0'; 
    109112                                        iframe.style.padding = '0' 
    110  
     113                                         
    111114                                        var _messages_ = win.firstChild.firstChild.nextSibling.nextSibling; 
    112115                                        _messages_.appendChild(iframe); 
    113  
     116                                         
    114117                                        iframe.contentWindow.document.write('<html><body id="' + from + '" style="margin:0px;padding:0px"></body></html>'); 
    115118                                        iframe.contentWindow.document.close(); 
    116119                                        iframe.contentWindow.document.designMode = "On"; 
    117120                                        iframe.contentWindow.focus(); 
    118  
     121                                 
    119122                                        function keypress_handler(e) 
    120123                                        { 
     
    163166                                                obj.attachEvent('onkeyup', keyup_handler); 
    164167                                        } 
    165                                 }else 
     168                                }                                
     169 
     170                                if ( !(win = im_window.elementC(from)) ) 
     171                                { 
     172                                        im_window.load(from, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl', '310', true, true, true); 
     173                                        //im_window.visible(from,'block'); 
     174                                        func.byId(from + '_avatar').src = path_im + "/templates/default/images/photo.png"; 
     175                                        include_iframe(); 
     176                                } 
     177                                else 
     178                                { 
    166179                                        im_window.load(from, '', '', '', '', true, true, true); 
     180                                        //im_window.visible(from,'block'); 
     181                                        include_iframe(); 
     182                                } 
    167183 
    168184                                if ( win ) 
    169185                                { 
    170186                                        if(!(im.nickname_contacts[from])) 
    171                                                 im.request_vcard(from,'nickname'); 
     187                                                im.request_vcard(from, false); 
    172188 
    173189                                        win = win.firstChild.firstChild; 
     
    183199                function readPresence(pPresence) 
    184200                { 
    185                         var jidFrom = pPresence.getAttribute('from'); 
    186                         jidFrom = jidFrom.substr(0,jidFrom.indexOf('/')); 
    187  
    188                         if(pPresence.getAttribute('type')) 
    189                         { 
    190                                 switch(pPresence.getAttribute('type')) 
    191                                 { 
    192                                         case 'subscribe' : 
    193                                                         if(!func.byId(pPresence.getAttribute('from'))) 
     201                        //@TODO: presenca antes da lista ocasiona erros 
     202                        //verificar e retirar o controle de erros abaixo 
     203                        try 
     204                        { 
     205                                var jidFrom = pPresence.getAttribute('from'); 
     206                                jidFrom = jidFrom.substr(0,jidFrom.indexOf('/')); 
     207         
     208                                if(pPresence.getAttribute('type')) 
     209                                { 
     210                                        switch(pPresence.getAttribute('type')) 
     211                                        { 
     212                                                case 'subscribe' : 
     213                                                                if(func.byId(pPresence.getAttribute('from'))) 
     214                                                                { 
     215                                                                        if(confirm('Autorizar o usuário ' + pPresence.getAttribute('from') + '?')) 
     216                                                                                im.subscription(pPresence.getAttribute('from'),'subscribed'); 
     217                                                                        else 
     218                                                                                im.subscription(pPresence.getAttribute('from'),'unsubscribe'); 
     219                                                                } 
     220                                                                else 
     221                                                                { 
     222                                                                        if(!func.byId(pPresence.getAttribute('from'))) 
     223                                                                        { 
     224                                                                                if(confirm('O usuário ' + pPresence.getAttribute('from') + ' quer adicioná-lo ?')) 
     225                                                                                { 
     226                                                                                        im.addrequest(pPresence.getAttribute('from')); 
     227                                                                                        im.subscription(pPresence.getAttribute('from'),'subscribed'); 
     228                                                                                } 
     229                                                                                else 
     230                                                                                        im.subscription(pPresence.getAttribute('from'),'unsubscribe'); 
     231                                                                        }else 
     232                                                                                im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type')); 
     233                                                                } 
     234                                                                break; 
     235                                                case 'subscribed' : 
     236                                                                im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type')); 
     237                                                                break; 
     238                                                case 'unsubscribed' :                                            
     239                                                                //alert('O usuário ' + pPresence.getAttribute('from') + ' não quer mais papo !'); 
     240                                                                break; 
     241                                                case 'unsubscribe' :                             
     242                                                                alert('O usuário ' + pPresence.getAttribute('from') + ' negou seu pedido !'); 
     243                                                                break; 
     244                                                case 'unavailable' : 
     245                                                                func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src'); 
     246                                                                func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:none;");                                                         
     247                                                                break; 
     248                                                case 'available' : 
     249                                                                func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src'); 
     250                                                                func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");                                                                                                                
     251                                                                break; 
     252                                        } 
     253                                } 
     254                                else 
     255                                { 
     256                                        var node = pPresence.firstChild; 
     257                                        while( node ) 
     258                                        { 
     259                                                if(node.hasChildNodes()) 
     260                                                {                                                
     261                                                        switch(node.nodeName) 
    194262                                                        { 
    195                                                                 if(confirm('O usuario ' + pPresence.getAttribute('from') + ' quer adicioná-lo ?')) 
    196                                                                         im.addrequest(pPresence.getAttribute('from')); 
    197                                                                 else 
    198                                                                         im.subscription(pPresence.getAttribute('from'),'unsubscribe'); 
    199                                                         }else 
    200                                                                 im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type')); 
    201                                                         break; 
    202                                         case 'subscribed' : 
    203                                                         im.subscription(pPresence.getAttribute('from'),pPresence.getAttribute('type')); 
    204                                                         break; 
    205                                         case 'unsubscribed' :                                            
    206                                                         //alert('O usuário ' + pPresence.getAttribute('from') + ' não quer mais papo !'); 
    207                                                         break; 
    208                                         case 'unsubscribe' :                             
    209                                                         alert('O usuário ' + pPresence.getAttribute('from') + ' negou seu pedido !'); 
    210                                                         break; 
    211                                         case 'unavailable' : 
    212                                                         func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src'); 
    213                                                         func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:none;");                                                         
    214                                                         break; 
    215                                         case 'available' : 
    216                                                         func.byId('img_' + jidFrom).src = eval('im_' + pPresence.getAttribute('type') + '.src'); 
    217                                                         break; 
    218                                 } 
    219                         } 
    220                         else 
    221                         { 
    222                                 var node = pPresence.firstChild; 
    223                                 while( node ) 
    224                                 { 
    225                                         if(node.hasChildNodes()) 
    226                                         {                                                
    227                                                 switch(node.nodeName) 
    228                                                 { 
    229                                                         case "show" :                                    
    230                                                                         func.byId('img_' + jidFrom).src = eval('im_' + node.firstChild.nodeValue + '.src'); 
    231                                                                         func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");                                                        
    232                                                                         func.byId('status_' + jidFrom).innerHTML = " "; 
    233                                                                         func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;"); 
    234                                                                         break; 
    235                                                         case "status" :  
    236                                                                         func.byId('status_' + jidFrom).innerHTML = ( node.firstChild.nodeValue ) ? node.firstChild.nodeValue : "" ; 
    237                                                                         func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:block;"); 
    238                                                                         break; 
    239                                                         default : 
    240                                                                         func.byId('img_' + jidFrom).src = im_available.src;                                                                      
    241                                                                         func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");                                                        
    242                                                                         func.byId('status_' + jidFrom).innerHTML = " "; 
    243                                                                         func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;"); 
    244                                                                         break; 
     263                                                                case "show" :                                    
     264                                                                                func.byId('img_' + jidFrom).src = eval('im_' + node.firstChild.nodeValue + '.src'); 
     265                                                                                func.confEl(func.byId(jidFrom),"style","margin-left:15px;cursor:pointer;display:block;");                                                        
     266                                                                                func.byId('status_' + jidFrom).innerHTML = " "; 
     267                                                                                func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;"); 
     268                                                                                break; 
     269                                                                case "status" :  
     270                                                                                func.byId('status_' + jidFrom).innerHTML = ( node.firstChild.nodeValue ) ? node.firstChild.nodeValue : "" ; 
     271                                                                                func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:block;"); 
     272                                                                                break; 
     273                                                                default : 
     274                                                                                func.byId('img_' + jidFrom).src = im_available.src;                                                                      
     275                                                                                func.byId('status_' + jidFrom).innerHTML = " "; 
     276                                                                                func.confEl(func.byId('status_' + jidFrom), "style", "font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;"); 
     277                                                                                break; 
     278                                                        } 
    245279                                                } 
    246                                         } 
    247                                         node = node.nextSibling;                                         
    248                                 } 
    249  
    250                                 /*if(!im.contacts_off_line) 
    251                                         setTimeout("im.off_line('none')",2000);*/ 
     280                                                node = node.nextSibling;                                         
     281                                        } 
     282         
     283                                        if(!im.contacts_off_line) 
     284                                                setTimeout("im.off_line()",3000); 
     285                                } 
     286                        } 
     287                        catch(e) 
     288                        { 
    252289                        } 
    253290                } 
     
    255292                function readVcard(pVcard) 
    256293                { 
    257                         switch(im.vcard) 
    258                         { 
    259                                 case "layer" : 
     294                        switch(pVcard.getAttribute('id')) 
     295                        { 
     296                                case "vCard_user" : 
     297 
    260298                                        var vcard = pVcard.firstChild; 
    261299                                        var cc = vcard.firstChild; 
    262                                          
    263300                                        while( cc ) 
    264301                                        { 
    265302                                                if(cc.nodeName == "NICKNAME" || cc.nodeName == "nickname") 
    266303                                                { 
    267                                                         func.byId('im_layer_nickname').innerHTML = cc.firstChild.nodeValue; 
    268                                                         im.nickname = " "; 
    269304                                                        if(cc.firstChild.nodeValue) 
    270                                                                 im.nickname = cc.firstChild.nodeValue; 
     305                                                                func.byId('im_layer_nickname').innerHTML = cc.firstChild.nodeValue;                                                              
    271306                                                } 
    272  
    273307                                                cc = cc.nextSibling; 
    274308                                        } 
    275  
     309                                        if( im.vcard ) 
     310                                                templates.vcard_user(pVcard); 
    276311                                        break; 
    277312 
    278                                 case "user"     : 
    279                                         templates.vcard_user(pVcard); 
    280                                         im.vcard = "layer";                                      
    281                                         break; 
    282  
    283                                 case "contact" : 
    284                                         templates.vcard_contact(pVcard); 
    285                                         im.vcard = "layer";                                      
    286                                         break; 
    287                                          
    288                                 case "nickname" : 
     313                                case "vCard" : 
     314 
    289315                                        var vcard = _this.xtools.parse(pVcard,'nickname.xsl');  
    290                                         im.vcard = "layer";      
    291                                         im.nickname_contacts[vcard.substr(0,vcard.indexOf(','))] = vcard.substr(vcard.indexOf(',')+1); 
     316                                        im.nickname_contacts[vcard.substr(0,vcard.indexOf(','))] = ( vcard.substr(vcard.indexOf(',')+1) ) ? vcard.substr(vcard.indexOf(',')+1) : vcard.substr(0,vcard.indexOf(',')) ; 
     317                                        if( im.vcard ) 
     318                                                templates.vcard_contact(pVcard); 
    292319                                        break; 
    293320                        } 
  • trunk/instant_messenger/js/load.js

    r151 r164  
    1717        }; 
    1818     
     19        function load_im_contacts() 
     20        { 
     21                im_window.load('_contacts_im_','instant_messenger_content', '<title>Expresso Messenger</title>', 'window.xsl','',true,true,true); 
     22                //im_window.visible('_contacts_im_','block'); 
     23        } 
     24         
    1925        function shortcut_im() 
    2026        { 
     
    2228                if((local = func.byId('user_info')) && !(func.byId('instant_messenger_content'))) 
    2329                { 
    24                         local.innerHTML = '<img src="' + im_fast_menu.src + '" onclick="javascript:templates.fast_menu();"/>' + 
    25                                                           '<img id="im_status_src" src="' + im_available.src + '" onclick="javascript:im_window.load(\'_contacts_im_\', \'instant_messenger_content\', \'<title>Expresso Messenger</title>\', \'window.xsl\',\'\',true,true,true);"/>' +  
    26                                                           local.innerHTML + '<div id="instant_messenger_content"><span id="fast_menu_im"/></div>'; 
     30                        var local_old = local.innerHTML ; 
     31                        local.innerHTML  = '<img src="' + im_fast_menu.src + '" onclick="javascript:templates.fast_menu();">'; 
     32                        local.innerHTML += '<img id="im_status_src" src="' + im_available.src + '" onclick="javascript:load_im_contacts();"/>'; 
     33                        local.innerHTML += local_old; 
     34                        local.innerHTML += '<div id="instant_messenger_content"></div><span id="fast_menu_im"/>'; 
    2735                } 
     36 
    2837                // Carregando Preferências do usuário 
    2938                im.get_preferences(); 
  • trunk/instant_messenger/js/templates.js

    r151 r164  
    2626                im_window.elementC('add_user_im').innerHTML  = this.xtools.parse(XmlDoc,'add_user.xsl'); 
    2727                im.ldap(); 
     28                //im_window.visible('add_user_im','block'); 
    2829        }, 
    2930 
     
    9091                im_window.elementC('my_settings_im').innerHTML = this.xtools.parse(XmlDoc,'mysettings.xsl'); 
    9192                im.get_preferences(); 
     93                //im_window.visible('my_settings_im','block'); 
    9294        }, 
    9395         
     
    121123 
    122124                if(!(im.nickname_contacts[pJid])) 
    123                         im.request_vcard(pJid,'nickname'); 
     125                        im.request_vcard(pJid, false); 
    124126 
    125127                if(func.byId('img_' + pJid).src != im_unavailable.src ) 
    126128                { 
    127129                        im_window.load(pJid, 'instant_messenger_content', '<title>.:: Expresso Messenger ::.</title>', 'chat.xsl','310',true,true,true); 
     130                        //im_window.visible(pJid,'block');                       
    128131                        func.byId(pJid + '_avatar').src = path_im + "/templates/default/images/photo.png"; 
     132 
     133                        if(func.byId('iframe_' + pJid) != null) 
     134                                func.byId('iframe_' + pJid).parentNode.removeChild(func.byId('iframe_' + pJid)); 
    129135 
    130136                        var win = im_window.elementC(pJid); 
     
    204210                                                "<lang2>" + im.get_lang("Group") + "</lang2>" + 
    205211                                                "<lang3>" + im.get_lang("Remove") + "</lang3>" + 
    206                                                 "<lang4>(Re)-requisitar Autorização</lang4>" + 
     212                                                "<lang4>" + im.get_lang("It requisition permission")+ "</lang4>" + 
    207213                                                "<lang5>" + im.get_lang("See Info") + "</lang5>" + 
    208214                                                "<jid>" + pJid + "</jid>" + 
    209215                                                "<path>" + path_im + "</path>" +                 
    210216                                         "</options>"; 
    211                 menu_action.menu('sub_' + pJid, this.xtools.parse(XmlDoc,'options.xsl')); 
    212             func.byId('sub_' + pJid).style.zIndex = '99999'; 
    213                 func.byId('sub_' + pJid).style.left = parseInt(func.byId('sub_' + pJid).style.left) - 5;             
    214             func.byId('sub_' + pJid).style.position = 'absolute'; 
    215                  
     217 
     218                var posX = parseInt(func.byId('sub_' + pJid).offsetLeft) - parseInt(func.byId('sub_' + pJid).parentNode.scrollLeft); 
     219                var posY = parseInt(func.byId('sub_' + pJid).offsetTop) - parseInt(func.byId('sub_' + pJid).parentNode.scrollTop); 
     220 
     221                menu_action.menu('im_sub_menu', this.xtools.parse(XmlDoc,'options.xsl')); 
     222            func.byId('im_sub_menu').style.zIndex = '99999'; 
     223                func.byId('im_sub_menu').style.top = posY; 
     224                func.byId('im_sub_menu').style.left = posX + 20;             
     225            func.byId('im_sub_menu').style.position = 'absolute'; 
    216226        }, 
    217227 
     
    224234                                                "<function2>templates.remove_user();</function2>" + 
    225235                                                "<lang3>" + im.get_lang("Vcard") +"</lang3>" + 
    226                                                 "<function3>im.request_vcard('this','user')</function3>" + 
     236                                                "<function3>im.request_vcard('this',true)</function3>" + 
    227237                                                "<lang4>" + im.get_lang("Preferences") + "</lang4>" + 
    228238                                                "<function4>templates.mysettings()</function4>" + 
     
    246256                im_window.elementC('remove_user_im').innerHTML = this.xtools.parse(XmlDoc,'remove_user.xsl'); 
    247257                im.get_contacts(); 
     258                //im_window.visible('remove_user_im','block');           
    248259        }, 
    249260 
     
    264275        "vcard_contact" : function(pXml)         
    265276        { 
     277                im.vcard = false; 
    266278                var title = "Informações do Contato - Expresso"; 
    267279                var XmlDoc = "<vcard_contact>" +  
     
    279291                im_window.load('vcard_contact_im','instant_messenger_content','<title>.:: ' + title +' ::.</title>','window.xsl','390',true,true,true); 
    280292                im_window.elementC('vcard_contact_im').innerHTML = this.xtools.parse(XmlDoc,'vcard_contacts.xsl'); 
     293                //im_window.visible('vcard_contact_im','block');                 
    281294        }, 
    282295 
    283296        "vcard_user" : function(pXml) 
    284297        { 
     298                im.vcard = false; 
    285299                var title = "Informações Pessoais - Expresso"; 
    286300                var XmlDoc = "<vcard_user>" +    
     
    298312                im_window.load('vcard_user_im','instant_messenger_content','<title>.:: ' + title +' ::.</title>','window.xsl','470',true,true,true); 
    299313                im_window.elementC('vcard_user_im').innerHTML = this.xtools.parse(XmlDoc,'vcard_user.xsl'); 
     314                //im_window.visible('vcard_user_im','block');            
    300315        } 
    301316} 
  • trunk/instant_messenger/templates/default/config.tpl

    r151 r164  
    1313 
    1414   <tr bgcolor="{row_off}"> 
    15     <td colspan="2">&nbsp;<b>Configuração do Servidor Jabber</b></td> 
     15    <td colspan="2">&nbsp;<b>Configuraçãoo do Servidor Jabber</b></td> 
    1616   </tr> 
    1717 
    1818   <tr bgcolor="{row_on}"> 
    19     <td>Digite o nome da máquina Servidor Jabber:</td> 
     19    <td>Digite o nome da máquina Servidor Jabber:</td> 
    2020    <td><input id="IM_name_jabber" name="newsettings[name_jabber]" value="{value_name_jabber}"></td> 
    2121   </tr> 
    2222 
    2323   <tr bgcolor="{row_off}"> 
    24     <td>Digite Nome da Conexão:</td> 
     24    <td>Digite Nome da Conexão:</td> 
    2525    <td><input id="IM_resource_jabber" name="newsettings[resource_jabber]" value="{value_resource_jabber}"></td> 
    2626   </tr> 
     
    4242 
    4343   <tr bgcolor="{row_off}"> 
    44     <td>Usuário Ldap:</td> 
     44    <td>Usuário Ldap:</td> 
    4545    <td><input id="IM_user_ldap_jabber" name="newsettings[user_ldap_jabber]" value="{value_user_ldap_jabber}" size="30"></td> 
    4646   </tr> 
  • trunk/instant_messenger/templates/default/index.tpl

    r151 r164  
    2828        <br> 
    2929        ( figura 1 ) 
    30     <img src="templates/default/images/lista_contatos.png" width="205" height="233" alt="Im Screenshot" align="left" style="padding-right:4px;">  
     30    <img src="templates/default/images/lista_contatos.png" width="200" height="319" alt="Im Screenshot" align="left" style="padding-right:4px;">  
    3131         
    3232    <br clear="all"> 
     
    3434        <h2><a name="acesso_primeiro">2. Acessando o Expresso Messenger pela Primeira Vez</a></h2> 
    3535         
    36         Para o acessar o Expresso Messenger, basta clicar em cima da figura <img src="templates/default/images/available.gif">("bolinha verde"), abrirá uma uma janela igual a figura 2. A lista de contatos aparecerá com a seguinte frase : "Nenhum Contato", até que sejam cadastrados novos contatos.  
     36        Para o acessar o Expresso Messenger, basta clicar em cima da figura <img src="templates/default/images/available.gif">("bolinha verde"), abrirá uma uma janela igual a figura 2. A lista de contatos aparecerá com a seguinte frase : "Nenhum Contato", atá que sejam cadastrados novos contatos.  
    3737 
    3838        <br clear="all"> 
    3939        <br> 
    4040        ( figura 2 ) 
    41     <img src="templates/default/images/lista_contatos_primeira.png" width="206" height="233" alt="Im Screenshot" align="left" style="padding-right:4px;">  
     41    <img src="templates/default/images/lista_contatos_primeira.png" width="201" height="318" alt="Im Screenshot" align="left" style="padding-right:4px;">  
    4242     
    4343    <br clear="all"> 
     
    4848      <b>Windows XP/2000/ME/98/95:</b> 
    4949          <ul> 
    50             <li>MS Internet Explorer desde a versão 6.0</li> 
     50            <!--li>MS Internet Explorer desde a versão 6.0</li--> 
    5151            <li>Mozilla Firefox desde a versão 1.5</li> 
    5252          </ul> 
     
    6161    <h2><a name="prefe">4. Menu Opções</a></h2> 
    6262        ( figura 3 ) 
    63     <img src="templates/default/images/menu_preferencias.png" width="207" height="234" alt="Menu Preferências" align="left"> 
     63    <img src="templates/default/images/menu_preferencias.png" width="201" height="320" alt="Menu Preferências" align="left"> 
    6464    <br clear="all"> 
    6565    <br> 
     
    8989    <br> 
    9090 
    91         Para adicionar um novo contato ( conforme figura 4.1 ), selecione uma organização e automaticamente carregará os usuários que tem permissão para usar o Mensageiro Instantâneo Expresso. Para escolher 
    92         seu novo contato basta apenas dar um clique em cima do nome desejado. Logo abaixo, três campos são necessários para adicionar o novo contato, sendo que o campo "Email Expresso" e 
     91        Para adicinar um novo contato, clique na imagem <img src="templates/default/images/addBuddy1.gif"/>  e abrirá uma janela ( conforme figura 4.1 ) selecione uma organização e automaticamente carregará os usuários que tem permissão para usar o Mensageiro Instantâneo Expresso.  
     92        Para escolher seu novo contato basta apenas dar um clique em cima do nome desejado. Logo abaixo, três campos são necessários para adicionar o novo contato, sendo que o campo "Email Expresso" e 
    9393        "Nickname" são preenchidos no momento da escolha do novo contato e o campo grupo terá que ser definido. Tendo os três campos preenchidos basta clicar no Botão Adicionar ( <input type="button" value="Adicionar"> ) . 
    9494 
     
    100100    <br> 
    101101 
    102         Para remover um contato da sua lista ( conforme figura 4.2 ), selecione na lista e clique no botao Botão Remover ( <input type="button" value="Remover"> ) . 
     102        Para remover um contato da sua lista ( conforme figura 4.2 ), selecione na lista e clique no botao Botï¿œo Remover ( <input type="button" value="Remover"> ) . 
    103103     
    104104    <h2><a name="menu_right">6. Preferências Avançadas</a></h2> 
    105105        ( figura 4.3 ) 
    106106        <br/> 
    107     <img src="templates/default/images/menu_right.png" width="212" height="126" alt="Preferências Avançadas" align="left"> 
     107    <img src="templates/default/images/menu_right.png" width="212" height="126" alt="Preferï¿œncias Avanï¿œadas" align="left"> 
    108108    <br clear="all"/> 
    109109    <br/> 
     
    138138    <h2><a name="troca_mens">9. Troca de Mensagens</a></h2> 
    139139        ( figura 7 ) 
    140     <img src="templates/default/images/troca_mensagem.png" width="319" height="314" alt="Troca de Mensagens" align="left"> 
     140    <img src="templates/default/images/troca_mensagem.png" width="311" height="308" alt="Troca de Mensagens" align="left"> 
    141141    <br clear="all"/> 
    142142    <br/> 
    143143 
    144144        Clicando com o mouse em cima do nome do contato escolhido, abrirá uma janela ( conforme figura 7 ), para a troca de mensagens. Nessa mesma janela existe um menu, o qual é possível 
    145         configurar o formato da Fonte como : <b>Negrito</b>, <i>Itálico</i> e a cor. Você também pode enviar os Smiles, clicando nessa figura <img src="templates/default/images/emoticonlabel.gif">. 
     145        configurar o formato da Fonte como : <b>Negrito</b>, <i>Itálico</i> e a cor. Você também pode enviar os Smiles, clicando em <img src="templates/default/images/emoticonlabel.gif"> 
     146        e acessar as informações do contato clicando em <img src="templates/default/images/profileBuddy.gif">. 
    146147 
    147148    <h2><a name="troca_status">10. Troca de Status</a></h2> 
  • trunk/instant_messenger/xsl/chat.xsl

    r161 r164  
    2626                                <div style="margin:3px 3px;"> 
    2727                                        <div class="history"> 
    28                                                 <div class="avatar" style="margin: 2px;"> 
    29                                                         <img id="{name}_avatar" /> 
    30                                                 </div> 
     28                                        <div class="avatar" style="margin: 2px; position: absolute; right: 30px; top: 30px;"> 
     29                                                <img id="{name}_avatar"/> 
     30                                        </div> 
    3131                                        </div> 
    3232                                        <div class="toolbar_buttons"> 
     
    3636                                                <div id="{name}_button_color" class="button_color" onclick="javascript:im.conf_font('{name}','button_color');"></div> 
    3737                                                <div id="{name}_button_emoticons" class="button_emoticons" onclick="javascript:im.conf_font('{name}','button_emoticons');"></div> 
     38                                                <div id="{name}_button_profile" class="button_profile" onclick="im.request_vcard('{name}','contact');"></div> 
    3839                                                <div id="{name}_button_dest"></div>                                              
    3940                                        </div> 
  • trunk/instant_messenger/xsl/contacts.xsl

    r151 r164  
    1313                        <xsl:choose> 
    1414                                <xsl:when test="not(group = preceding-sibling::item/group)"> 
    15                                         <img id="group_{group[current()]}" src="/instant_messenger/templates/default/images/group_open.gif" onclick="javascript:im.group_close('{group[current()]}');"/> 
     15                                        <img id="group_{group[current()]}" src="instant_messenger/templates/default/images/group_open.gif" onclick="javascript:im.group_close('{group[current()]}');"/> 
    1616                                        <b><xsl:value-of select="group[current()]" /><br/></b> 
    1717                                        <xsl:apply-templates select="." mode="contacts"/> 
     
    3030                <xsl:when test="@name"> 
    3131                        <div style="margin-left:15px;cursor:pointer;display:block;" id="{@jid}" idgroup="{group}" idname="{@name}" onmousedown="templates.options(event, '{@jid}');"> 
    32                                 <img id="img_{@jid}" src="/instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" /> 
     32                                <img id="img_{@jid}" src="instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" /> 
    3333                                <xsl:value-of select="@name"/> 
    3434                                <br/> 
    3535                                <span id="status_{@jid}" style="font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none" /> 
    3636                        </div> 
    37                         <div id="sub_{@jid}"></div>                                                      
     37                        <span id="sub_{@jid}"></span>                                                    
    3838                </xsl:when> 
    3939                <xsl:otherwise> 
    4040                        <div style="margin-left:15px;cursor:pointer;display:block;" id="{@jid}" idgroup="{group}" idname="" onmousedown="templates.options(event, '{@jid}');"> 
    41                                 <img id="img_{@jid}" src="/instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" /> 
     41                                <img id="img_{@jid}" src="instant_messenger/templates/default/images/unavailable.gif" style="margin:0px 2px" /> 
    4242                                <xsl:value-of select="@jid"/> 
    4343                                <br/> 
    4444                                <span id="status_{@jid}" style="font-size:8pt; font-family:Verdana, Arial, Helvetica, sans-serif; font-style:italic; display:none;" /> 
    4545                        </div> 
    46                         <div id="sub_{@jid}"></div>                      
     46                        <span id="sub_{@jid}"></span>                    
    4747                </xsl:otherwise> 
    4848        </xsl:choose> 
  • trunk/instant_messenger/xsl/disconnected.xsl

    r151 r164  
    1313                <br/> 
    1414                <div style="margin:5px">  
    15                         Sua conexão com o 
     15                        Sua conexão com o  
    1616                        <br/> 
    1717                        Servidor parou. 
     
    2626                <br/> 
    2727                <img src="{path}templates/default/images/available.gif" /> 
    28                 <a href="javascript:client();"><font style="font-size:7pt;margin:2px">Reconectar ...</font></a> 
     28                <a href="javascript:disconnected = false; client();"><font style="font-size:7pt;margin:2px">Reconectar ...</font></a> 
    2929        </div> 
    3030</xsl:template> 
  • trunk/instant_messenger/xsl/layer.xsl

    r151 r164  
    1111                                </td> 
    1212                                <td style="valign:top"> 
    13                                         <xsl:value-of select="lang1" /> :  
     13                                        <span style="font-weight:bold;"><xsl:value-of select="lang1" /> : </span>  
    1414                                        <br></br> 
    15                                         <span id="im_layer_nickname"><xsl:value-of select="nickname" /></span>  
     15                                        <span id="im_layer_nickname"><xsl:value-of select="nickname" /></span> 
    1616                                        <br></br> 
    1717                                        <br></br> 
    18                                         <span onclick="javascript:templates.add_user();" style="cursor:pointer;"><u><xsl:value-of select="lang2"/></u></span> 
    19                                         <br></br> 
    20                                         <br></br>                                        
    21                                         <span onclick="javascript:templates.preferences('span_teste');" style="cursor:pointer;"><u><xsl:value-of select="lang3"/></u></span> 
    22                                         <span id="span_teste"></span> 
     18                                        <img src="{path}templates/default/images/addBuddy1.gif" style="cursor:pointer;" onclick="javascript:templates.add_user();" title="{lang2}" alt="{lang2}"/> 
     19                                        <img src="{path}templates/default/images/console_prefs1.png" style="cursor:pointer;" onclick="javascript:templates.preferences('span_preferences');" title="{lang3}" alt="{lang3}"/>                                     
     20                                        <span id="span_preferences"></span> 
    2321                                        <br></br> 
    2422                                </td>    
  • trunk/instant_messenger/xsl/window.xsl

    r151 r164  
    2828                </div> 
    2929                <div id="{name}_window_bottom" class="rodape" dragdrop="false"></div> 
     30                <div id="im_sub_menu"></div> 
    3031        </div> 
    3132</xsl:template> 
Note: See TracChangeset for help on using the changeset viewer.