Commit 041d5aca authored by JC Brand's avatar JC Brand

Fix issues with rendering login form after session crash.

parent 785919a0
...@@ -430,7 +430,7 @@ ...@@ -430,7 +430,7 @@
}); });
} }
if (errback) { if (errback) {
errback(iq); errback(jid, iq);
} }
} }
); );
...@@ -453,10 +453,11 @@ ...@@ -453,10 +453,11 @@
} }
}; };
this.showLoginForm = function () { this.renderLoginPanel = function () {
converse._tearDown(); converse._tearDown();
var view = converse.chatboxviews.get('controlbox'); var view = converse.chatboxviews.get('controlbox');
view.model.set({connected:false}); view.model.set({connected:false});
view.renderLoginPanel();
}; };
this.onConnect = function (status, condition, reconnect) { this.onConnect = function (status, condition, reconnect) {
...@@ -475,22 +476,25 @@ ...@@ -475,22 +476,25 @@
if (converse.auto_reconnect) { if (converse.auto_reconnect) {
converse.reconnect(); converse.reconnect();
} else { } else {
converse.showLoginForm(); converse.renderLoginPanel();
} }
} else if (status === Strophe.Status.Error) { } else if (status === Strophe.Status.Error) {
converse.showLoginForm(); converse.renderLoginPanel();
converse.giveFeedback(__('Error'), 'error'); converse.giveFeedback(__('Error'), 'error');
} else if (status === Strophe.Status.CONNECTING) { } else if (status === Strophe.Status.CONNECTING) {
converse.giveFeedback(__('Connecting')); converse.giveFeedback(__('Connecting'));
} else if (status === Strophe.Status.CONNFAIL) { } else if (status === Strophe.Status.CONNFAIL) {
converse.showLoginForm(); converse.renderLoginPanel();
converse.giveFeedback(__('Connection Failed'), 'error'); converse.giveFeedback(__('Connection Failed'), 'error');
} else if (status === Strophe.Status.AUTHENTICATING) { } else if (status === Strophe.Status.AUTHENTICATING) {
converse.giveFeedback(__('Authenticating')); converse.giveFeedback(__('Authenticating'));
} else if (status === Strophe.Status.AUTHFAIL) { } else if (status === Strophe.Status.AUTHFAIL) {
converse.showLoginForm(); converse.renderLoginPanel();
converse.giveFeedback(__('Authentication Failed'), 'error'); converse.giveFeedback(__('Authentication Failed'), 'error');
} else if (status === Strophe.Status.DISCONNECTING) { } else if (status === Strophe.Status.DISCONNECTING) {
if (!converse.connection.connected) {
converse.renderLoginPanel();
}
converse.giveFeedback(__('Disconnecting'), 'error'); converse.giveFeedback(__('Disconnecting'), 'error');
} }
}; };
...@@ -1913,8 +1917,8 @@ ...@@ -1913,8 +1917,8 @@
initialize: function () { initialize: function () {
this.$el.insertAfter(converse.controlboxtoggle.$el); this.$el.insertAfter(converse.controlboxtoggle.$el);
this.model.on('change:connected', $.proxy(function (item) { this.model.on('change:connected', $.proxy(function (item) {
this.render();
if (this.model.get('connected')) { if (this.model.get('connected')) {
this.render();
this.initRoster(); this.initRoster();
converse.features.off('add', this.featureAdded, this); converse.features.off('add', this.featureAdded, this);
converse.features.on('add', this.featureAdded, this); converse.features.on('add', this.featureAdded, this);
...@@ -1959,7 +1963,12 @@ ...@@ -1959,7 +1963,12 @@
renderLoginPanel: function () { renderLoginPanel: function () {
this.$el.html(converse.templates.controlbox(this.model.toJSON())); this.$el.html(converse.templates.controlbox(this.model.toJSON()));
this.loginpanel = new converse.LoginPanel({'$parent': this.$el.find('.controlbox-panes'), 'model': this}); var cfg = {'$parent': this.$el.find('.controlbox-panes'), 'model': this};
if (!this.loginpanel) {
this.loginpanel = new converse.LoginPanel(cfg);
} else {
this.loginpanel.delegateEvents().initialize(cfg);
}
this.loginpanel.render(); this.loginpanel.render();
this.initDragResize(); this.initDragResize();
}, },
...@@ -3534,15 +3543,15 @@ ...@@ -3534,15 +3543,15 @@
vcard_updated: moment().format() vcard_updated: moment().format()
}); });
}, this), }, this),
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, iq) {
converse.log("Error while retrieving vcard"); converse.log("Error while retrieving vcard");
// XXX: Should vcard_updated be set here as well?
this.add({ this.add({
jid: bare_jid, jid: bare_jid,
subscription: 'none', subscription: 'none',
ask: null, ask: null,
requesting: true, requesting: true,
fullname: jid fullname: bare_jid,
vcard_updated: moment().format()
}); });
}, this) }, this)
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment