Commit 3bfdeee34c45d2772f0d57146b50b1991019b027
1 parent
ca5297ac
Exists in
master
and in
29 other branches
refactoring chat interface
Showing
3 changed files
with
52 additions
and
34 deletions
Show diff stats
app/views/shared/logged_in/xmpp_chat.html.erb
... | ... | @@ -13,33 +13,23 @@ |
13 | 13 | </script> |
14 | 14 | |
15 | 15 | <div id='chat'> |
16 | + <div class='header'> | |
17 | + <%= _("Chat %s") % environment.name %> | |
18 | + </div> | |
16 | 19 | <div id='buddy-list'> |
17 | 20 | <div class='toolbar'> |
18 | 21 | <div id='user-status'> |
19 | 22 | <%= profile_image(user, :portrait, :class => 'avatar') %> |
20 | 23 | <%= user_status_menu('icon-menu-offline', _('Offline')) %> |
21 | 24 | </div> |
22 | - <a href="#" class="back"><%= _('Close') %></a> | |
23 | 25 | <div class='dialog-error' style='display: none'></div> |
24 | 26 | </div> |
25 | 27 | |
26 | - <div id="friends"> | |
27 | - <div class="status-group"> | |
28 | - <div class='title-bar'><a href="#"><h1 class='title'><%= _("Online") %> (<span id='friends-online'>0</span>)</h1></a></div> | |
29 | - <ul class='buddy-list online'></ul> | |
30 | - </div> | |
31 | - | |
32 | - <div class="status-group"> | |
33 | - <div class='title-bar'><a href="#"><h1 class='title'><%= _("Offline") %> (<span id='friends-offline'>0</span>)</h1></a></div> | |
34 | - <ul class='buddy-list offline'></ul> | |
35 | - </div> | |
36 | - </div> | |
28 | + <div class='body'> | |
29 | + <%= text_field_tag(:query, '', :placeholder => _('Search...'), :class => 'search') %> | |
37 | 30 | |
38 | - <div id="rooms"> | |
39 | - <div class="status-group"> | |
40 | - <div class='title-bar'><a href="#"><h1 class='title'><%= _("Groups") %> (<span id='groups-online'>0</span>)</h1></a></div> | |
41 | - <ul class="buddy-list room-list"></ul> | |
42 | - </div> | |
31 | + <ul class='buddies .online'></ul> | |
32 | + <ul class='buddies .offline'></ul> | |
43 | 33 | </div> |
44 | 34 | </div> |
45 | 35 | ... | ... |
public/javascripts/chat.js
... | ... | @@ -65,7 +65,7 @@ jQuery(function($) { |
65 | 65 | }, |
66 | 66 | insert_or_update_group: function (jid, presence) { |
67 | 67 | var jid_id = Jabber.jid_to_id(jid); |
68 | - var list = $('#buddy-list #rooms .room-list'); | |
68 | + var list = $('#buddy-list .buddies.online'); | |
69 | 69 | var item = $('#' + jid_id); |
70 | 70 | presence = presence || ($(item).length > 0 ? $(item).parent('li').attr('class') : 'offline'); |
71 | 71 | log('adding or updating contact ' + jid + ' as ' + presence); |
... | ... | @@ -78,7 +78,7 @@ jQuery(function($) { |
78 | 78 | var jid_id = Jabber.jid_to_id(jid); |
79 | 79 | var item = $('#' + jid_id); |
80 | 80 | presence = presence || ($(item).length > 0 ? $(item).parent('li').attr('class') : 'offline'); |
81 | - var list = $('#buddy-list #friends .buddy-list' + (presence=='offline' ? '.offline' : '.online')); | |
81 | + var list = $('#buddy-list .buddies' + (presence=='offline' ? '.offline' : '.online')); | |
82 | 82 | |
83 | 83 | log('adding or updating contact ' + jid + ' as ' + presence); |
84 | 84 | Jabber.insert_or_update_user(list, item, jid, name, presence, Jabber.template('.buddy-item'), 'chat'); | ... | ... |
public/stylesheets/chat.css
1 | 1 | #chat { |
2 | - width: 250px; | |
2 | + width: 350px; | |
3 | 3 | height: 100%; |
4 | 4 | display: none; |
5 | 5 | position: fixed; |
6 | 6 | right: 0; |
7 | 7 | top: 0; |
8 | 8 | z-index: 900; |
9 | + background-color: #FFF; | |
10 | + box-shadow: -3px 0px 5px #888; | |
9 | 11 | } |
10 | 12 | |
11 | 13 | #chat #buddy-list { |
12 | - background-color: #303030; | |
13 | - width: 250px; | |
14 | - height: 100%; | |
14 | + background-color: #f9f9f9; | |
15 | + width: 175px; | |
16 | + height: 75%; | |
15 | 17 | overflow: hidden; |
16 | 18 | position: absolute; |
19 | + right: 0; | |
20 | + border-left: 1px solid #DCE4E7; | |
21 | + border-bottom: 1px solid #DCE4E7; | |
17 | 22 | } |
18 | -#buddy-list .buddy-list { | |
23 | +#buddy-list .buddies { | |
19 | 24 | list-style-type: none; |
20 | 25 | padding: 0; |
21 | 26 | margin: 0; |
22 | 27 | } |
23 | -#buddy-list .buddy-list li { | |
28 | +#buddy-list .buddies li { | |
24 | 29 | border-bottom: 1px solid #383838; |
25 | 30 | } |
26 | -#buddy-list .buddy-list li a:hover, .occupant-list li a:hover { | |
31 | +#buddy-list .buddies a:hover, .occupant-list li a:hover { | |
27 | 32 | background: #257CAD; |
28 | 33 | } |
29 | -#buddy-list .buddy-list li a, .occupant-list li a { | |
34 | +#buddy-list .buddies li a, .occupant-list li a { | |
30 | 35 | background: none; |
31 | 36 | display: block; |
32 | 37 | padding-left: 20px; |
... | ... | @@ -36,7 +41,7 @@ |
36 | 41 | height: 44px; |
37 | 42 | overflow: hidden; |
38 | 43 | } |
39 | -#buddy-list .buddy-list li a .name, .occupant-list li a .name { | |
44 | +#buddy-list .buddies li a .name, .occupant-list li a .name { | |
40 | 45 | vertical-align: top; |
41 | 46 | margin-left: 5px; |
42 | 47 | padding: 0 0 5px 20px; |
... | ... | @@ -47,12 +52,12 @@ |
47 | 52 | overflow: hidden; |
48 | 53 | height: 30px; |
49 | 54 | } |
50 | -#buddy-list .buddy-list li a img, .occupant-list li a img, #chat .avatar { | |
55 | +#buddy-list .buddies li a img, .occupant-list li a img, #chat .avatar { | |
51 | 56 | border-radius: 5px; |
52 | 57 | width: 32px; |
53 | 58 | max-height: 40px; |
54 | 59 | } |
55 | -#buddy-list .buddy-list.offline, .occupant-list.offline { | |
60 | +#buddy-list .buddies.offline, .occupant-list.offline { | |
56 | 61 | display: none; |
57 | 62 | } |
58 | 63 | #chat #buddy-list .toolbar { |
... | ... | @@ -75,9 +80,21 @@ |
75 | 80 | #buddy-list .toolbar .dialog-error p { |
76 | 81 | margin: 0 0 5px 0; |
77 | 82 | } |
78 | -#chat-window { | |
79 | - background: white; | |
83 | + | |
84 | + | |
85 | +#buddy-list .body{ | |
86 | + position: relative; | |
87 | + padding: 5px; | |
80 | 88 | } |
89 | + | |
90 | +#buddy-list .search{ | |
91 | + width: 150px; | |
92 | + padding: 7px; | |
93 | + color: #FFF; | |
94 | + background-color: #BABDB6; | |
95 | + border: 0; | |
96 | +} | |
97 | + | |
81 | 98 | .conversation { |
82 | 99 | background-color: #303030; |
83 | 100 | height: 100%; |
... | ... | @@ -310,10 +327,10 @@ div.occupants > a.up { |
310 | 327 | top: -3px; |
311 | 328 | } |
312 | 329 | |
313 | -.buddy-list .dnd span.name { | |
330 | +.buddies .dnd span.name { | |
314 | 331 | background: url(/designs/icons/pidgin/pidgin/status/16/busy.png) 0px 20px no-repeat; |
315 | 332 | } |
316 | -.buddy-list .chat span.name { | |
333 | +.buddies .chat span.name { | |
317 | 334 | background: url(/designs/icons/pidgin/pidgin/status/16/available.png) 0px 20px no-repeat; |
318 | 335 | } |
319 | 336 | |
... | ... | @@ -330,3 +347,14 @@ div.occupants > a.up { |
330 | 347 | font-weight: bold; |
331 | 348 | font-size: 14px; |
332 | 349 | } |
350 | + | |
351 | +#chat .header { | |
352 | + border: 0; | |
353 | + height: 50px; | |
354 | + line-height: 50px; | |
355 | + text-align: center; | |
356 | + color: #FFF; | |
357 | + font-size: 19px; | |
358 | + background-image: linear-gradient(to left, #E3E3E3 25%, #BABDB6 100%, #FFFFFF 100%); | |
359 | + xbackground-color: #BABDB6; | |
360 | +} | ... | ... |