Commit a8cf1e1abb57d6c76f17008687af77246a1a921d
Committed by
Rodrigo Souto
1 parent
00b73c49
Exists in
master
and in
29 other branches
Fix layout for occupants for group chat
Showing
3 changed files
with
37 additions
and
16 deletions
Show diff stats
app/views/shared/logged_in/xmpp_chat.html.erb
... | ... | @@ -77,7 +77,8 @@ |
77 | 77 | </div> |
78 | 78 | |
79 | 79 | <div class="occupant-list-template"> |
80 | - <div class="occupant-list"> | |
80 | + <div class="occupants"> | |
81 | + <a href="#" class="up"> </a> | |
81 | 82 | <ul class='occupant-list'></ul> |
82 | 83 | </div> |
83 | 84 | </div> |
... | ... | @@ -85,7 +86,8 @@ |
85 | 86 | <div class="occupant-item"> |
86 | 87 | <li class='%{presence_status}'> |
87 | 88 | <a data-id='%{jid_id}' class='icon-menu-%{presence_status}-11' href='#'> |
88 | - %{name} | |
89 | + %{avatar} | |
90 | + <span class="name">%{name}<span> | |
89 | 91 | </a> |
90 | 92 | </li> |
91 | 93 | </div> | ... | ... |
public/javascripts/chat.js
... | ... | @@ -89,7 +89,7 @@ jQuery(function($) { |
89 | 89 | insert_or_update_occupant: function (jid, name, presence, room_jid) { |
90 | 90 | log('adding or updating occupant ' + jid + ' as ' + presence); |
91 | 91 | var jid_id = Jabber.jid_to_id(jid); |
92 | - var list = $('#' + Jabber.conversation_prefix + Jabber.jid_to_id(room_jid) + ' .occupant-list ul'); | |
92 | + var list = $('#' + Jabber.conversation_prefix + Jabber.jid_to_id(room_jid) + ' .occupants ul'); | |
93 | 93 | var item = $(list).find('a[data-id='+ jid_id +']'); |
94 | 94 | Jabber.insert_or_update_user(list, item, jid, name, presence, Jabber.template('.occupant-item'), 'chat'); |
95 | 95 | if (Jabber.rooms[Jabber.jid_to_id(room_jid)] === undefined) { |
... | ... | @@ -199,7 +199,7 @@ jQuery(function($) { |
199 | 199 | break; |
200 | 200 | case Strophe.Status.DISCONNECTED: |
201 | 201 | log('disconnected'); |
202 | - $('#buddy-list ul.buddy-list, .occupant-list ul.occupant-list').html(''); | |
202 | + $('#buddy-list ul.buddy-list, .occupants ul.occupant-list').html(''); | |
203 | 203 | Jabber.update_chat_title(); |
204 | 204 | $('#buddy-list .toolbar').removeClass('small-loading-dark'); |
205 | 205 | $('textarea').prop('disabled', 'disabled'); |
... | ... | @@ -528,12 +528,11 @@ jQuery(function($) { |
528 | 528 | }); |
529 | 529 | |
530 | 530 | // put name into text area when click in one occupant |
531 | - // FIXME | |
532 | - $('.occupant-list .occupant-list li a').live('click', function() { | |
531 | + $('.occupants .occupant-list li a').live('click', function() { | |
533 | 532 | var jid_id = $(this).attr('data-id'); |
534 | 533 | var name = Jabber.name_of(jid_id); |
535 | 534 | var val = $('.conversation textarea:visible').val(); |
536 | - $('.conversation textarea:visible').val(val + name + ', ').focus(); | |
535 | + $('.conversation textarea:visible').focus().val(val + name + ', '); | |
537 | 536 | }); |
538 | 537 | |
539 | 538 | $('#chat .conversation .history').live('click', function() { |
... | ... | @@ -569,8 +568,9 @@ jQuery(function($) { |
569 | 568 | textarea.attr('name', panel.id); |
570 | 569 | |
571 | 570 | if (Jabber.is_a_room(jid_id)) { |
572 | - panel.append(Jabber.template('.occupant-list-template')); | |
571 | + panel.find('.conversation').append(Jabber.template('.occupant-list-template')); | |
573 | 572 | panel.find('.history').addClass('room'); |
573 | + $('#chat .occupants .occupant-list').perfectScrollbar(); | |
574 | 574 | } |
575 | 575 | textarea.attr('data-to', jid); |
576 | 576 | |
... | ... | @@ -672,6 +672,10 @@ jQuery(function($) { |
672 | 672 | $('.title-bar a').click(function() { |
673 | 673 | $(this).parents('.status-group').find('.buddy-list').toggle('fast'); |
674 | 674 | }); |
675 | + $('#chat').on('click', '.occupants a', function() { | |
676 | + $(this).siblings('.occupant-list').toggle('fast'); | |
677 | + $(this).toggleClass('up'); | |
678 | + }); | |
675 | 679 | |
676 | 680 | //restore connection if user was connected |
677 | 681 | if($presence=='' || $presence == 'chat') { | ... | ... |
public/stylesheets/chat.css
... | ... | @@ -174,18 +174,33 @@ |
174 | 174 | text-align: center; |
175 | 175 | display: block; |
176 | 176 | } |
177 | -.conversation .occupant-list { | |
177 | +div.occupants { | |
178 | 178 | position: absolute; |
179 | - top: 0; | |
180 | - right: 0; | |
181 | - width: 200px; | |
182 | - bottom: 125px; | |
179 | + width: 100%; | |
180 | + bottom: 98px; | |
181 | + background-color: rgba(0, 0, 0, 0.7); | |
183 | 182 | } |
184 | -.conversation .occupant-list ul { | |
183 | +div.occupants ul.occupant-list { | |
185 | 184 | padding: 0; |
186 | - list-style: none; | |
187 | - font-size: 12px; | |
185 | + margin: 0; | |
186 | + max-height: 162px; | |
187 | + overflow: hidden; | |
188 | + position: relative; | |
189 | + display: none; | |
190 | + border-top: 1px solid rgb(37, 37, 37); | |
188 | 191 | } |
192 | +div.occupants > a { | |
193 | + color: rgb(168, 168, 168); | |
194 | + text-align: center; | |
195 | + width: 100%; | |
196 | + display: inline-block; | |
197 | + text-decoration: none; | |
198 | + background: url(/images/down-arrow.png) center center no-repeat; | |
199 | +} | |
200 | +div.occupants > a.up { | |
201 | + background: url(/images/top-arrow.png) center center no-repeat; | |
202 | +} | |
203 | + | |
189 | 204 | #chat-window .comment-balloon-content { |
190 | 205 | min-height: 50px; |
191 | 206 | padding: 5px 0 5px 25px; | ... | ... |