Add contact list view

Used by member list view. Refactored some templates for shared markup.
Fixes strange behavior where members in the list were hoverable and
selectable.

// FREEBIE
This commit is contained in:
lilia 2015-09-03 13:33:17 -07:00
parent 5d9965a60e
commit 7d9490e503
8 changed files with 72 additions and 32 deletions

View file

@ -0,0 +1,35 @@
/* vim: ts=4:sw=4:expandtab
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
(function () {
'use strict';
window.Whisper = window.Whisper || {};
Whisper.ContactListView = Whisper.ListView.extend({
tagName: 'div',
itemView: Whisper.View.extend({
tagName: 'div',
className: 'contact',
template: Whisper.View.Templates.contact,
render_attributes: function() {
return {
title: this.model.getTitle(),
number: this.model.getNumber(),
avatar: this.model.getAvatar()
};
}
})
});
})();

View file

@ -20,8 +20,8 @@
// list of conversations, showing user/group and last message sent
Whisper.ConversationListItemView = Whisper.View.extend({
tagName: 'div',
className: 'contact',
template: $('#contact').html(),
className: 'conversation-list-item contact',
template: Whisper.View.Templates.conversation_preview,
events: {
'click': 'select'
},
@ -41,7 +41,7 @@
render: function() {
this.$el.html(
Mustache.render(this.template, {
contact_name: this.model.getTitle(),
title: this.model.getTitle(),
last_message: this.model.get('lastMessage'),
last_message_timestamp: moment(this.model.get('timestamp')).format('MMM D'),
number: this.model.getNumber(),

View file

@ -22,7 +22,7 @@
template: $('#group-member-list').html(),
initialize: function() {
this.render();
this.member_list_view = new Whisper.ConversationListView({
this.member_list_view = new Whisper.ContactListView({
collection: this.model.contactCollection,
className: 'members'
});

View file

@ -40,7 +40,7 @@
this.$('.avatar').addClass('default');
this.member_list_view = new Whisper.ConversationListView({
this.member_list_view = new Whisper.ContactListView({
collection: this.model.contactCollection,
className: 'members'
});