2013-09-16 11:16:47 -07:00
|
|
|
/*global $, app, me, client*/
|
2013-08-29 20:38:28 -07:00
|
|
|
"use strict";
|
|
|
|
|
2013-09-03 19:18:31 -07:00
|
|
|
var HumanView = require('human-view');
|
2013-08-29 20:38:28 -07:00
|
|
|
var templates = require('../templates');
|
|
|
|
var ContactListItem = require('../views/contactListItem');
|
2013-09-16 16:12:00 -07:00
|
|
|
var MUCListItem = require('../views/mucListItem');
|
2013-10-15 12:15:25 -07:00
|
|
|
var CallView = require('../views/call');
|
2013-08-29 20:38:28 -07:00
|
|
|
|
|
|
|
|
2013-09-03 19:18:31 -07:00
|
|
|
module.exports = HumanView.extend({
|
2013-08-29 20:38:28 -07:00
|
|
|
template: templates.body,
|
2013-09-27 09:47:54 -07:00
|
|
|
initialize: function () {
|
|
|
|
this.listenTo(app.state, 'change:title', this.handleTitle);
|
2013-10-14 14:02:05 -07:00
|
|
|
app.desktop.updateBadge('');
|
2013-09-27 09:47:54 -07:00
|
|
|
},
|
2013-09-03 15:25:14 -07:00
|
|
|
events: {
|
2013-09-16 11:16:47 -07:00
|
|
|
'click a[href]': 'handleLinkClick',
|
|
|
|
'click .reconnect': 'handleReconnect'
|
2013-09-03 15:25:14 -07:00
|
|
|
},
|
2013-09-11 20:59:50 -07:00
|
|
|
classBindings: {
|
2013-10-15 16:21:22 -07:00
|
|
|
connected: '#connectionOverlay',
|
|
|
|
hasActiveCall: '#wrapper'
|
2013-09-11 20:59:50 -07:00
|
|
|
},
|
2013-08-29 20:38:28 -07:00
|
|
|
render: function () {
|
|
|
|
$('head').append(templates.head());
|
2013-09-12 21:28:59 -07:00
|
|
|
$('body').removeClass('aux');
|
2013-08-29 20:38:28 -07:00
|
|
|
this.renderAndBind();
|
2013-09-16 02:19:07 -07:00
|
|
|
this.renderCollection(me.contacts, ContactListItem, this.$('#roster nav'));
|
2013-09-16 16:12:00 -07:00
|
|
|
this.renderCollection(me.mucs, MUCListItem, this.$('#bookmarks nav'));
|
2013-10-16 13:20:37 -07:00
|
|
|
//this.renderCollection(me.calls, CallView, this.$('#calls'));
|
2013-08-29 20:38:28 -07:00
|
|
|
return this;
|
2013-09-03 15:25:14 -07:00
|
|
|
},
|
2013-09-16 11:16:47 -07:00
|
|
|
handleReconnect: function (e) {
|
|
|
|
client.connect();
|
|
|
|
},
|
2013-09-03 15:25:14 -07:00
|
|
|
handleLinkClick: function (e) {
|
|
|
|
var t = $(e.target);
|
|
|
|
var aEl = t.is('a') ? t[0] : t.closest('a')[0];
|
|
|
|
var local = window.location.host === aEl.host;
|
|
|
|
var path = aEl.pathname.slice(1);
|
|
|
|
|
|
|
|
if (local) {
|
|
|
|
e.preventDefault();
|
|
|
|
app.navigate(path);
|
|
|
|
return false;
|
|
|
|
}
|
2013-09-27 09:47:54 -07:00
|
|
|
},
|
|
|
|
handleTitle: function (e) {
|
|
|
|
document.title = app.state.title;
|
2013-10-14 14:02:05 -07:00
|
|
|
app.desktop.updateBadge(app.state.badge);
|
2013-08-29 20:38:28 -07:00
|
|
|
}
|
|
|
|
});
|