... | ... |
@@ -2,6 +2,11 @@ Xmpp.Views.Contacts ||= {} |
2 | 2 |
|
3 | 3 |
class Xmpp.Views.Contacts.ListView extends Backbone.View |
4 | 4 |
template: JST["backbone/templates/contacts/contact_list"] |
5 |
+ contactViews: [] |
|
6 |
+ |
|
7 |
+ titleClass = '' |
|
8 |
+ listClass = '' |
|
9 |
+ activeGroup = false |
|
5 | 10 |
|
6 | 11 |
initialize: () -> |
7 | 12 |
_.bindAll(this) |
... | ... |
@@ -9,10 +14,6 @@ class Xmpp.Views.Contacts.ListView extends Backbone.View |
9 | 9 |
@el = '#' + @attributes['id'] |
10 | 10 |
@title = I18n.t(@attributes['title']) |
11 | 11 |
|
12 |
- @titleClass = @listClass = '' |
|
13 |
- @activeGroup = false |
|
14 |
- @contactViews = [] |
|
15 |
- |
|
16 | 12 |
Backbone.Events.on('removeContact', @detachContact) |
17 | 13 |
|
18 | 14 |
createListContainer: -> |
... | ... |
@@ -52,7 +53,7 @@ class Xmpp.Views.Contacts.ListView extends Backbone.View |
52 | 52 |
if (contactHtml?) |
53 | 53 |
$(@el).find('ul').append(contactHtml) |
54 | 54 |
else |
55 |
- _.each(@contactViews, (i, contact) => |
|
55 |
+ _.each(@contactViews, (contact) => |
|
56 | 56 |
@render(contact.render().el) |
57 | 57 |
) |
58 | 58 |
|
... | ... |
@@ -66,4 +67,24 @@ class Xmpp.Views.Contacts.ListView extends Backbone.View |
66 | 66 |
found = (searchString.search(regex) != -1) |
67 | 67 |
|
68 | 68 |
if found then view.unhide() else view.hide() |
69 |
- ) |
|
70 | 69 |
\ No newline at end of file |
70 |
+ ) |
|
71 |
+ |
|
72 |
+ reOrder: -> |
|
73 |
+ groupedByStatus = _.groupBy(@contactViews, (view) -> |
|
74 |
+ view.model.get('status') |
|
75 |
+ ) |
|
76 |
+ |
|
77 |
+ sortedGroupNames = { |
|
78 |
+ online: groupedByStatus.online |
|
79 |
+ away: groupedByStatus.away |
|
80 |
+ offline: groupedByStatus.offline |
|
81 |
+ } |
|
82 |
+ |
|
83 |
+ sorted = _.map(sortedGroupNames, (group) -> |
|
84 |
+ _.sortBy(group, (view) -> |
|
85 |
+ view.model.get('name') || view.model.get('jid') |
|
86 |
+ ) |
|
87 |
+ ) |
|
88 |
+ |
|
89 |
+ @contactViews = _.flatten(sorted) |
|
90 |
+ @render() |
|
71 | 91 |
\ No newline at end of file |