Changeset 311 for trunk/instant_messenger/js
- Timestamp:
- 06/10/08 16:41:40 (16 years ago)
- Location:
- trunk/instant_messenger/js
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/instant_messenger/js/client.js
r305 r311 29 29 var _window = new Windows(_xtools, _im_content); 30 30 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); 32 33 33 34 // XSL preload 34 var _xsl_preload = [' chat.xsl','layer.xsl','contacts'];35 var _xsl_preload = ['window.xsl','layer.xsl','contacts.xsl', 'chat.xsl']; 35 36 var _xsl_preload_legth = _xsl_preload.length; 36 37 for ( var i = 0; i < _xsl_preload_legth; i++ ) … … 40 41 if ( (local = top.document.getElementById('user_info')) ) 41 42 { 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'; 46 55 47 56 local.insertBefore(_status, local.firstChild); … … 50 59 51 60 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'; 54 68 local.insertBefore(_menu, local.firstChild); 55 69 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 ); 65 145 } 66 146 … … 114 194 } 115 195 196 var _count_reconnect = 0; 116 197 function _request() 117 198 { … … 122 203 'classCostructor=read' 123 204 ); 205 else 206 setTimeout(_reconnect, (++_count_reconnect * 2000)); 124 207 } 125 208 -
trunk/instant_messenger/js/connector.js
r305 r311 181 181 return {'error' : "#1\n\n" + usage()}; 182 182 183 if ( _THREADS[_ID] )184 return {'error' : '#2 - there is a equal request running'};183 //if ( _THREADS[_ID] ) 184 // return {'error' : '#2 - there is a equal request running'}; 185 185 186 186 _THREADS[_ID] = { -
trunk/instant_messenger/js/images.js
r305 r311 29 29 var im_group_open = new Image(); 30 30 im_group_open.src = path_im + 'templates/default/images/group_open.gif'; 31 32 var im_group_close = new Image(); 33 im_group_close.src = path_im + 'templates/default/images/group_close.gif'; 31 34 32 35 // Smiles -
trunk/instant_messenger/js/jabber.js
r305 r311 5 5 var _window; 6 6 var _ldap; 7 8 var _menu = new ShowHidden(1500); 7 var _menu; 9 8 10 9 var _vcards = []; … … 138 137 var _win = _window.get('chat' + id); 139 138 if ( !_win ) 140 _chat(id); 139 { 140 _win = _chat(id); 141 var _st = el.style.backgroundImage; 142 _win.icon(_st.substr(4, (_st.length - 5))); 143 } 141 144 else 142 145 { … … 155 158 _win_contact.bc.style.display = 'none'; 156 159 _win_contact.wm.style.display = 'none'; 160 _win_contact.icon(im_available.src); 157 161 158 162 var _params = { … … 172 176 if ( _contact_list ) 173 177 { 174 _conn.go('$this.Ujabber.setStatus'); 178 _setPresence('unavailable'); 179 _setPresence(); 175 180 _ldap.photo( 176 181 'im_avatar', … … 222 227 var _sub_menu = top.document.getElementById('sub_' + el.getAttribute('jid')); 223 228 _sub_menu.innerHTML = _xtools.parse(_xml, 'options.xsl'); 224 _menu.action('onmouseover', 'onmouseout', _sub_menu); 229 230 _menu.action('onmouseover', 'onmouseout', _sub_menu); 225 231 226 232 _sub_menu = _sub_menu.firstChild; … … 260 266 while ( _contact ) 261 267 { 268 _config(_contact, 'onmouseover', _hover); 269 _config(_contact, 'onmouseout', _hover); 262 270 if ( _contact.getAttribute('jid') ) 263 271 { 264 272 //_config(_contact, 'onmousedown', _click); 265 273 _config(_contact, 'onmouseup', _click); 266 _config(_contact, 'onmouseover', _hover); 267 _config(_contact, 'onmouseout', _hover); 274 } 275 else 276 { 277 _config(_contact, 'onclick', 278 function(e) 279 { 280 var el = ( e.target ) ? e.target : e.srcElement; 281 282 if ( el.style.backgroundImage.indexOf('group_open') < 0 ) 283 el.style.backgroundImage = 'url(' + im_group_open.src + ')'; 284 else 285 el.style.backgroundImage = 'url(' + im_group_close.src + ')'; 286 287 el = el.nextSibling; 288 while ( el.getAttribute('jid') ) 289 { 290 el.style.display = ( el.style.display != 'none' ) ? 291 'none' : 'block'; 292 el = el.nextSibling; 293 if ( el && el.nextSibling ) 294 el = el.nextSibling; 295 } 296 }); 268 297 } 269 298 _contact = _contact.nextSibling; … … 272 301 } 273 302 303 function _setPresence() 304 { 305 var _presence = false; 306 var _pPresence; 307 if ( arguments.length == 0 ) 308 _pPresence = 'available'; 309 else 310 _pPresence = arguments[0]; 311 switch ( _pPresence ) 312 { 313 case 'away': 314 case 'dnd': 315 case 'xa': 316 _presence = 'show=' + _pPresence; 317 break; 318 case 'available': 319 case 'unavailable': 320 _presence = 'type=' + _pPresence; 321 break; 322 } 323 324 if ( _presence ) 325 { 326 var _status = top.document.getElementById('im_status'); 327 if ( _status ) 328 _status.style.backgroundImage = 'url(' + eval('im_' + _pPresence + '.src') + ')'; 329 _conn.go('$this.Ujabber.setPresence', _presence); 330 } 331 } 332 274 333 function _vcard(_pJid) 275 334 { … … 285 344 286 345 _win_vcard = _window.load('vcard_' + _pJid); 287 _win_vcard.title('.:: Informa ções do Contato ::.');346 _win_vcard.title('.:: Informações do Contato ::.'); 288 347 _win_vcard.size(300); 289 348 _win_vcard.position(_win_pos, _win_pos); … … 347 406 _readVCard(pIq); 348 407 break; 408 case 'last_time_user' : 409 _readLastTimeUser(pIq); 410 break; 349 411 default : //alert('readIq : ' + pIq.getAttribute('id')); 350 412 } 413 } 414 415 function _readLastTimeUser(pIq) 416 { 417 if ( pIq.firstChild.getAttribute("seconds") != 0 ) 418 _setPresence(); 351 419 } 352 420 … … 366 434 { 367 435 if ( !_win ) 436 { 368 437 _win = _chat(_from); 438 var _st = top.document.getElementById('contact_' + _from); 439 if ( _st ) 440 { 441 _st = _st.style.backgroundImage; 442 _win.icon(_st.substr(4, (_st.length - 5))); 443 } 444 } 369 445 370 446 var _history = _win.wc.firstChild; … … 409 485 var _img_status_contact = top.document.getElementById('contact_' + _from); 410 486 var _mensagem_status_contact = top.document.getElementById('status_' + _from); 487 var _win_chat = _window.get('chat' + _from); 488 411 489 if ( _mensagem_status_contact ) 412 490 { … … 423 501 if ( _img_status_contact ) 424 502 _img_status_contact.style.backgroundImage = 'url(' + eval('im_' + _presence_type + '.src') + ')'; 503 if ( _win_chat ) 504 _win_chat.icon(eval('im_' + _presence_type + '.src')); 425 505 break; 426 506 case 'subscribe' : … … 538 618 if ( _img_status_contact ) 539 619 _img_status_contact.style.backgroundImage = 'url(' + eval('im_' + _node.firstChild.nodeValue + '.src') + ')'; 620 if ( _win_chat ) 621 _win_chat.icon(eval('im_' + _node.firstChild.nodeValue + '.src')); 540 622 break; 541 623 case "status" : … … 550 632 if ( _img_status_contact ) 551 633 _img_status_contact.style.backgroundImage = 'url(' + im_available.src + ')'; 634 if ( _win_chat ) 635 _win_chat.icon(im_available.src); 552 636 } 553 637 } … … 610 694 _window = arguments[2]; 611 695 _ldap = arguments[3]; 696 _menu = arguments[4]; 612 697 } 613 698 614 699 Jabber.prototype.action = _action; 700 Jabber.prototype.setPresence = _setPresence; 615 701 window.Jabber = Jabber; 616 702 } -
trunk/instant_messenger/js/ldap.js
r305 r311 51 51 if ( !_jid ) 52 52 { 53 _status.innerHTML = 'Selecione uma organiza ção no campo da esquerda e em<br/>'54 + ' seguida, no campo da direita, um membro da organiza ção<br/>'53 _status.innerHTML = 'Selecione uma organização no campo da esquerda e em<br/>' 54 + ' seguida, no campo da direita, um membro da organização<br/>' 55 55 + ' para adicionar como contato'; 56 56 } … … 62 62 if ( !(_name.value) || !(_group.value) ) 63 63 { 64 _status.innerHTML = '<br/>O campo destacado em vermelho é obrigatório!<br/>';64 _status.innerHTML = '<br/>O campo destacado em vermelho é obrigatório!<br/>'; 65 65 66 66 if ( !(_name.value) ) -
trunk/instant_messenger/js/windows.js
r305 r311 40 40 _window.childNodes[1].childNodes[1].setAttribute('dragdrop_child','true'); 41 41 42 _config(_window.childNodes[1].childNodes[ 1].childNodes[0], 'onclick', _button);43 _config(_window.childNodes[1].childNodes[ 1].childNodes[1], 'onclick', _button);44 _config(_window.childNodes[1].childNodes[ 1].childNodes[2], 'onclick', _button);42 _config(_window.childNodes[1].childNodes[2].childNodes[0], 'onclick', _button); 43 _config(_window.childNodes[1].childNodes[2].childNodes[1], 'onclick', _button); 44 _config(_window.childNodes[1].childNodes[2].childNodes[2], 'onclick', _button); 45 45 46 46 _all_windows[pId + '__window_master'] = { 47 47 'id' : pId, 48 48 'wm' : _window, // wm - window master 49 'wt' : _window.childNodes[1].firstChild, // wt - window title 50 'bc' : _window.childNodes[1].childNodes[1].childNodes[0], // bc - button close 51 'bx' : _window.childNodes[1].childNodes[1].childNodes[1], // bx - button maximize 52 'bz' : _window.childNodes[1].childNodes[1].childNodes[2], // bz - button minimize 49 'ic' : _window.childNodes[1].firstChild, // wt - window title 50 'wt' : _window.childNodes[1].childNodes[1], // wt - window title 51 'bc' : _window.childNodes[1].childNodes[2].childNodes[0], // bc - button close 52 'bx' : _window.childNodes[1].childNodes[2].childNodes[1], // bx - button maximize 53 'bz' : _window.childNodes[1].childNodes[2].childNodes[2], // bz - button minimize 53 54 'wc' : _window.childNodes[2].firstChild, // wc - window content 54 55 'wf' : _window.childNodes[3], // wf - window footer … … 56 57 'content' : _content, 57 58 'focus' : _focus, 59 'icon' : _icon, 58 60 'position' : _position, 59 61 'size' : _size, … … 240 242 } 241 243 244 function _icon(_pIcon) 245 { 246 if ( typeof _pIcon == 'string' ) 247 this.ic.style.backgroundImage = 'url(' + _pIcon + ')'; 248 } 249 242 250 function _position(pX, pY) 243 251 {
Note: See TracChangeset
for help on using the changeset viewer.