diff --git a/app/views/shared/logged_in/xmpp_chat.html.erb b/app/views/shared/logged_in/xmpp_chat.html.erb index 2f9fe5c..abd915f 100644 --- a/app/views/shared/logged_in/xmpp_chat.html.erb +++ b/app/views/shared/logged_in/xmpp_chat.html.erb @@ -77,7 +77,8 @@
-
+
+  
    @@ -85,7 +86,8 @@
  • - %{name} + %{avatar} + %{name}
  • diff --git a/public/javascripts/chat.js b/public/javascripts/chat.js index c28f5b7..efd1f58 100644 --- a/public/javascripts/chat.js +++ b/public/javascripts/chat.js @@ -89,7 +89,7 @@ jQuery(function($) { insert_or_update_occupant: function (jid, name, presence, room_jid) { log('adding or updating occupant ' + jid + ' as ' + presence); var jid_id = Jabber.jid_to_id(jid); - var list = $('#' + Jabber.conversation_prefix + Jabber.jid_to_id(room_jid) + ' .occupant-list ul'); + var list = $('#' + Jabber.conversation_prefix + Jabber.jid_to_id(room_jid) + ' .occupants ul'); var item = $(list).find('a[data-id='+ jid_id +']'); Jabber.insert_or_update_user(list, item, jid, name, presence, Jabber.template('.occupant-item'), 'chat'); if (Jabber.rooms[Jabber.jid_to_id(room_jid)] === undefined) { @@ -199,7 +199,7 @@ jQuery(function($) { break; case Strophe.Status.DISCONNECTED: log('disconnected'); - $('#buddy-list ul.buddy-list, .occupant-list ul.occupant-list').html(''); + $('#buddy-list ul.buddy-list, .occupants ul.occupant-list').html(''); Jabber.update_chat_title(); $('#buddy-list .toolbar').removeClass('small-loading-dark'); $('textarea').prop('disabled', 'disabled'); @@ -528,12 +528,11 @@ jQuery(function($) { }); // put name into text area when click in one occupant - // FIXME - $('.occupant-list .occupant-list li a').live('click', function() { + $('.occupants .occupant-list li a').live('click', function() { var jid_id = $(this).attr('data-id'); var name = Jabber.name_of(jid_id); var val = $('.conversation textarea:visible').val(); - $('.conversation textarea:visible').val(val + name + ', ').focus(); + $('.conversation textarea:visible').focus().val(val + name + ', '); }); $('#chat .conversation .history').live('click', function() { @@ -569,8 +568,9 @@ jQuery(function($) { textarea.attr('name', panel.id); if (Jabber.is_a_room(jid_id)) { - panel.append(Jabber.template('.occupant-list-template')); + panel.find('.conversation').append(Jabber.template('.occupant-list-template')); panel.find('.history').addClass('room'); + $('#chat .occupants .occupant-list').perfectScrollbar(); } textarea.attr('data-to', jid); @@ -672,6 +672,10 @@ jQuery(function($) { $('.title-bar a').click(function() { $(this).parents('.status-group').find('.buddy-list').toggle('fast'); }); + $('#chat').on('click', '.occupants a', function() { + $(this).siblings('.occupant-list').toggle('fast'); + $(this).toggleClass('up'); + }); //restore connection if user was connected if($presence=='' || $presence == 'chat') { diff --git a/public/stylesheets/chat.css b/public/stylesheets/chat.css index ce0c466..910c4b7 100644 --- a/public/stylesheets/chat.css +++ b/public/stylesheets/chat.css @@ -174,18 +174,33 @@ text-align: center; display: block; } -.conversation .occupant-list { +div.occupants { position: absolute; - top: 0; - right: 0; - width: 200px; - bottom: 125px; + width: 100%; + bottom: 98px; + background-color: rgba(0, 0, 0, 0.7); } -.conversation .occupant-list ul { +div.occupants ul.occupant-list { padding: 0; - list-style: none; - font-size: 12px; + margin: 0; + max-height: 162px; + overflow: hidden; + position: relative; + display: none; + border-top: 1px solid rgb(37, 37, 37); } +div.occupants > a { + color: rgb(168, 168, 168); + text-align: center; + width: 100%; + display: inline-block; + text-decoration: none; + background: url(/images/down-arrow.png) center center no-repeat; +} +div.occupants > a.up { + background: url(/images/top-arrow.png) center center no-repeat; +} + #chat-window .comment-balloon-content { min-height: 50px; padding: 5px 0 5px 25px; -- libgit2 0.21.2