Commit e779fb695a2193a4012bf077e6a337d84f269b06

Authored by Rodrigo Souto
1 parent ea821930

chat: conversation loading and word-wrap

public/javascripts/application.js
@@ -587,20 +587,6 @@ function display_notice(message) { @@ -587,20 +587,6 @@ function display_notice(message) {
587 setTimeout(function() { $noticeBox.fadeOut('fast'); }, 5000); 587 setTimeout(function() { $noticeBox.fadeOut('fast'); }, 5000);
588 } 588 }
589 589
590 -function open_chat_window(jid) {  
591 - jQuery('#chat').addClass('opened');  
592 - jQuery('#chat-label').addClass('opened');  
593 - jQuery("#chat" ).trigger('opengroup', jid);  
594 - return false;  
595 -}  
596 -  
597 -function toggle_chat_window() {  
598 - if(jQuery('#conversations .conversation').length == 0) jQuery('.buddies a').first().click();  
599 - jQuery('#chat').toggleClass('opened');  
600 - jQuery('#chat-label').toggleClass('opened');  
601 - return false;  
602 -}  
603 -  
604 jQuery(function($) { 590 jQuery(function($) {
605 /* Adds a class to "opera" to the body element if Opera browser detected. 591 /* Adds a class to "opera" to the body element if Opera browser detected.
606 */ 592 */
public/javascripts/chat.js
@@ -534,31 +534,6 @@ jQuery(function($) { @@ -534,31 +534,6 @@ jQuery(function($) {
534 Jabber.connect(); 534 Jabber.connect();
535 }); 535 });
536 536
537 - // detect when click in chat with a community or person in main window of Noosfero environment  
538 - $('#chat').bind('opengroup', function(ev, jid) {  
539 - var jid_id = Jabber.jid_to_id(jid);  
540 - var name = Jabber.name_of(jid_id);  
541 - if (jid) {  
542 - if (Strophe.getDomainFromJid(jid) == Jabber.muc_domain) {  
543 - if (Jabber.muc_supported) {  
544 - log('opening groupchat with ' + jid);  
545 - Jabber.jids[jid_id] = {jid: jid, name: name, type: 'groupchat'};  
546 - var conversation = create_conversation_tab(name, jid_id);  
547 - Jabber.enter_room(jid);  
548 - conversation.find('.conversation').show();  
549 - recent_messages(jid);  
550 - }  
551 - }  
552 - else {  
553 - log('opening chat with ' + jid);  
554 - var conversation = create_conversation_tab(name, jid_id);  
555 - conversation.find('.conversation').show();  
556 - recent_messages(jid);  
557 - }  
558 - conversation.find('.input').focus();  
559 - }  
560 - });  
561 -  
562 $('.conversation textarea').live('keydown', function(e) { 537 $('.conversation textarea').live('keydown', function(e) {
563 if (e.keyCode == 13) { 538 if (e.keyCode == 13) {
564 var jid = $(this).attr('data-to'); 539 var jid = $(this).attr('data-to');
@@ -605,6 +580,51 @@ jQuery(function($) { @@ -605,6 +580,51 @@ jQuery(function($) {
605 $('.conversation textarea:visible').focus(); 580 $('.conversation textarea:visible').focus();
606 }); 581 });
607 582
  583 + function toggle_chat_window() {
  584 + if(jQuery('#conversations .conversation').length == 0) jQuery('.buddies a').first().click();
  585 + jQuery('#chat').toggleClass('opened');
  586 + jQuery('#chat-label').toggleClass('opened');
  587 + }
  588 +
  589 + function load_conversation(jid) {
  590 + var jid_id = Jabber.jid_to_id(jid);
  591 + var name = Jabber.name_of(jid_id);
  592 + if (jid) {
  593 + if (Strophe.getDomainFromJid(jid) == Jabber.muc_domain) {
  594 + if (Jabber.muc_supported) {
  595 + log('opening groupchat with ' + jid);
  596 + Jabber.jids[jid_id] = {jid: jid, name: name, type: 'groupchat'};
  597 + var conversation = create_conversation_tab(name, jid_id);
  598 + Jabber.enter_room(jid);
  599 + recent_messages(jid);
  600 + return conversation;
  601 + }
  602 + }
  603 + else {
  604 + log('opening chat with ' + jid);
  605 + Jabber.jids[jid_id] = {jid: jid, name: name, type: 'friendchat'};
  606 + var conversation = create_conversation_tab(name, jid_id);
  607 + recent_messages(jid);
  608 + return conversation;
  609 + }
  610 + }
  611 + }
  612 +
  613 + function open_conversation(jid) {
  614 + var conversation = load_conversation(jid);
  615 + var jid_id = $(this).attr('id');
  616 +
  617 + $('.conversation').hide();
  618 + conversation.show();
  619 + count_unread_messages(jid_id, true);
  620 + if(conversation.find('.chat-offset-container-0').length == 0)
  621 + recent_messages(Jabber.jid_of(jid_id));
  622 + conversation.find('.input').focus();
  623 + $('#chat').addClass('opened');
  624 + $('#chat-label').addClass('opened');
  625 + $.post('/chat/tab', {tab_id: jid_id});
  626 + }
  627 +
608 function create_conversation_tab(title, jid_id) { 628 function create_conversation_tab(title, jid_id) {
609 var conversation_id = Jabber.conversation_prefix + jid_id; 629 var conversation_id = Jabber.conversation_prefix + jid_id;
610 var conversation = $('#' + conversation_id); 630 var conversation = $('#' + conversation_id);
@@ -789,7 +809,7 @@ jQuery(function($) { @@ -789,7 +809,7 @@ jQuery(function($) {
789 var options = {body: message.body, icon: avatar, tag: jid_id}; 809 var options = {body: message.body, icon: avatar, tag: jid_id};
790 console.log('Notify '+name); 810 console.log('Notify '+name);
791 $(notifyMe(name, options)).on('click', function(){ 811 $(notifyMe(name, options)).on('click', function(){
792 - open_chat_window(jid); 812 + open_conversation(jid);
793 }); 813 });
794 $.sound.play('/sounds/receive.wav'); 814 $.sound.play('/sounds/receive.wav');
795 } 815 }
public/stylesheets/chat.css
@@ -237,7 +237,7 @@ @@ -237,7 +237,7 @@
237 } 237 }
238 #chat-window .history .message p { 238 #chat-window .history .message p {
239 margin-left: 40px; 239 margin-left: 40px;
240 - word-break: break-all; 240 + word-wrap: break-word;
241 } 241 }
242 242
243 #chat-window .history .message.self p { 243 #chat-window .history .message.self p {