diff --git a/Gruntfile.js b/Gruntfile.js
index 724c7f9b9..5c1cfd0a0 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -5,48 +5,50 @@ module.exports = function (grunt) {
pkg: grunt.file.readJSON('package.json'),
curl: {
- 'UI/JsLibraries/backbone.js' : 'http://documentcloud.github.io/backbone/backbone.js',
- 'UI/JsLibraries/backbone.marionette.js' : 'http://marionettejs.com/downloads/backbone.marionette.js',
- 'UI/JsLibraries/backbone.modelbinder.js' : 'http://raw.github.com/theironcook/Backbone.ModelBinder/master/Backbone.ModelBinder.js',
- 'UI/JsLibraries/backbone.mutators.js' : 'http://raw.github.com/asciidisco/Backbone.Mutators/master/backbone.mutators.js',
- 'UI/JsLibraries/backbone.shortcuts.js' : 'http://raw.github.com/bry4n/backbone-shortcuts/master/backbone.shortcuts.js',
- //'UI/JsLibraries/bootstrap.js':
- //'UI/JsLibraries/bootstrap.slider.js':
- 'UI/JsLibraries/handlebars.runtime.js' : 'http://raw.github.com/wycats/handlebars.js/master/dist/handlebars.runtime.js',
- 'UI/JsLibraries/jquery.cookie.js' : 'http://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js',
- 'UI/JsLibraries/jquery.js' : 'http://code.jquery.com/jquery.js',
- 'UI/JsLibraries/jquery.backstretch.js' : 'http://raw.github.com/srobbin/jquery-backstretch/master/jquery.backstretch.js',
+ 'UI/JsLibraries/backbone.js' : 'http://documentcloud.github.io/backbone/backbone.js',
+ 'UI/JsLibraries/backbone.marionette.js' : 'http://marionettejs.com/downloads/backbone.marionette.js',
+ 'UI/JsLibraries/backbone.modelbinder.js' : 'http://raw.github.com/theironcook/Backbone.ModelBinder/master/Backbone.ModelBinder.js',
+ 'UI/JsLibraries/backbone.mutators.js' : 'http://raw.github.com/asciidisco/Backbone.Mutators/master/backbone.mutators.js',
+ 'UI/JsLibraries/backbone.shortcuts.js' : 'http://raw.github.com/bry4n/backbone-shortcuts/master/backbone.shortcuts.js',
+ 'UI/JsLibraries/backbone.pageable.js' : 'http://raw.github.com/wyuenho/backbone-pageable/master/lib/backbone-pageable.js',
+ 'UI/JsLibraries/backbone.backgrid.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/backgrid.js',
+ 'UI/JsLibraries/backbone.backgrid.paginator.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/paginator/backgrid-paginator.js',
+ 'UI/JsLibraries/backbone.backgrid.filter.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/filter/backgrid-filter.js',
- 'UI/JsLibraries/jquery.signalR.js' : 'https://raw.github.com/SignalR/SignalR/master/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js',
+ 'UI/JsLibraries/handlebars.runtime.js' : 'http://raw.github.com/wycats/handlebars.js/master/dist/handlebars.runtime.js',
- 'UI/JsLibraries/require.js' : 'http://raw.github.com/jrburke/requirejs/master/require.js',
- 'UI/JsLibraries/sugar.js' : 'http://raw.github.com/andrewplummer/Sugar/master/release/sugar-full.development.js',
- 'UI/JsLibraries/underscore.js' : 'http://underscorejs.org/underscore.js',
- 'UI/JsLibraries/backbone.pageable.js' : 'http://raw.github.com/wyuenho/backbone-pageable/master/lib/backbone-pageable.js',
- 'UI/JsLibraries/backbone.backgrid.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/backgrid.js',
- 'UI/JsLibraries/backbone.backgrid.paginator.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/paginator/backgrid-paginator.js',
- 'UI/JsLibraries/backbone.backgrid.filter.js' : 'http://raw.github.com/wyuenho/backgrid/master/lib/extensions/filter/backgrid-filter.js',
- 'UI/JsLibraries/messenger.js' : 'http://raw.github.com/HubSpot/messenger/master/build/js/messenger.js',
- 'UI/JsLibraries/lunr.js' : 'http://raw.github.com/olivernn/lunr.js/master/lunr.js',
- 'UI/Content/messenger.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger.css',
- 'UI/Content/bootstrap.toggle-switch.css' : 'http://raw.github.com/ghinda/css-toggle-switch/gh-pages/toggle-switch.css',
- 'UI/Content/messenger.future.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger-theme-future.css',
+ 'UI/JsLibraries/jquery.js' : 'http://code.jquery.com/jquery.js',
+ 'UI/JsLibraries/jquery.backstretch.js' : 'http://raw.github.com/srobbin/jquery-backstretch/master/jquery.backstretch.js',
+ 'UI/JsLibraries/jquery.cookie.js' : 'http://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js',
+ 'UI/JsLibraries/jquery.signalR.js' : 'https://raw.github.com/SignalR/SignalR/master/samples/Microsoft.AspNet.SignalR.Hosting.AspNet.Samples/Scripts/jquery.signalR.js',
+
+
+ 'UI/JsLibraries/require.js' : 'http://raw.github.com/jrburke/requirejs/master/require.js',
+ 'UI/JsLibraries/sugar.js' : 'http://raw.github.com/andrewplummer/Sugar/master/release/sugar-full.development.js',
+ 'UI/JsLibraries/underscore.js' : 'http://underscorejs.org/underscore.js',
+ 'UI/JsLibraries/lunr.js' : 'http://raw.github.com/olivernn/lunr.js/master/lunr.js',
+
+ 'UI/JsLibraries/messenger.js' : 'http://raw.github.com/HubSpot/messenger/master/build/js/messenger.js',
+ 'UI/Content/Messenger/messenger.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger.css',
+ 'UI/Content/Messenger/messenger.future.css' : 'http://raw.github.com/HubSpot/messenger/master/build/css/messenger-theme-future.css',
+
+ 'UI/Content/bootstrap.toggle-switch.css' : 'http://raw.github.com/ghinda/css-toggle-switch/gh-pages/toggle-switch.css',
'UI/Content/FontAwesome/fontawesome.otf' : 'http://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/FontAwesome.otf?raw=true',
- 'UI/Content/FontAwesome/fontawesome-webfont.eot' : 'https://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.eot?raw=true',
- 'UI/Content/FontAwesome/fontawesome-webfont.svg' : 'https://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.svg?raw=true',
- 'UI/Content/FontAwesome/fontawesome-webfont.ttf' : 'https://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.ttf?raw=true',
- 'UI/Content/FontAwesome/fontawesome-webfont.woff': 'https://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.woff?raw=true',
+ 'UI/Content/FontAwesome/fontawesome-webfont.eot' : 'http://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.eot?raw=true',
+ 'UI/Content/FontAwesome/fontawesome-webfont.svg' : 'http://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.svg?raw=true',
+ 'UI/Content/FontAwesome/fontawesome-webfont.ttf' : 'http://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.ttf?raw=true',
+ 'UI/Content/FontAwesome/fontawesome-webfont.woff': 'http://github.com/FortAwesome/Font-Awesome/blob/master/build/assets/font-awesome/font/fontawesome-webfont.woff?raw=true',
- 'UI/Content/FontAwesome/bootstrap.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/bootstrap.less',
- 'UI/Content/FontAwesome/core.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/core.less',
- 'UI/Content/FontAwesome/extras.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/extras.less',
- 'UI/Content/FontAwesome/font-awesome-ie7.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/font-awesome-ie7.less',
- 'UI/Content/FontAwesome/font-awesome.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/font-awesome.less',
- 'UI/Content/FontAwesome/icons.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/icons.less',
- 'UI/Content/FontAwesome/mixins.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/mixins.less',
- 'UI/Content/FontAwesome/path.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/path.less',
- 'UI/Content/FontAwesome/variables.less' : 'https://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/variables.less'
+ 'UI/Content/FontAwesome/bootstrap.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/bootstrap.less',
+ 'UI/Content/FontAwesome/core.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/core.less',
+ 'UI/Content/FontAwesome/extras.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/extras.less',
+ 'UI/Content/FontAwesome/font-awesome-ie7.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/font-awesome-ie7.less',
+ 'UI/Content/FontAwesome/font-awesome.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/font-awesome.less',
+ 'UI/Content/FontAwesome/icons.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/icons.less',
+ 'UI/Content/FontAwesome/mixins.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/mixins.less',
+ 'UI/Content/FontAwesome/path.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/path.less',
+ 'UI/Content/FontAwesome/variables.less' : 'http://raw.github.com/FortAwesome/Font-Awesome/master/build/assets/font-awesome/less/variables.less'
},
clean: {
diff --git a/UI/JsLibraries/jquery.signalR.js b/UI/JsLibraries/jquery.signalR.js
index 646c97482..23e8a7aa4 100644
--- a/UI/JsLibraries/jquery.signalR.js
+++ b/UI/JsLibraries/jquery.signalR.js
@@ -1,7 +1,7 @@
/* jquery.signalR.core.js */
/*global window:false */
/*!
- * ASP.NET SignalR JavaScript Library v1.1.0-beta1
+ * ASP.NET SignalR JavaScript Library v1.1.0
* http://signalr.net/
*
* Copyright Microsoft Open Technologies, Inc. All rights reserved.
@@ -805,7 +805,7 @@
throw new Error("Connections query string property must be either a string or object.");
},
- getUrl: function (connection, transport, reconnecting, appendReconnectUrl) {
+ getUrl: function (connection, transport, reconnecting, poll) {
/// Gets the url for making a GET based connect request
var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,
url = baseUrl + connection.appRelativeUrl,
@@ -822,11 +822,11 @@
if (!reconnecting) {
url += "/connect";
} else {
- if (appendReconnectUrl) {
- url += "/reconnect";
- } else {
- // A silent reconnect should only ever occur with the longPolling transport
+ if (poll) {
+ // longPolling transport specific
url += "/poll";
+ } else {
+ url += "/reconnect";
}
if (connection.messageId) {
@@ -1621,7 +1621,23 @@
initialConnectedFired = true;
onSuccess();
connection.log("Longpolling connected");
- };
+ },
+ reconnectErrors = 0,
+ reconnectTimeoutId = null,
+ fireReconnected = function (instance) {
+ window.clearTimeout(reconnectTimeoutId);
+ reconnectTimeoutId = null;
+
+ if (changeState(connection,
+ signalR.connectionState.reconnecting,
+ signalR.connectionState.connected) === true) {
+ // Successfully reconnected!
+ connection.log("Raising the reconnect event");
+ $(instance).triggerHandler(events.onReconnect);
+ }
+ },
+ // 1 hour
+ maxFireReconnectedTimeout = 3600000;
if (connection.pollXhr) {
connection.log("Polling xhr requests already exists, aborting.");
@@ -1638,7 +1654,8 @@
var messageId = instance.messageId,
connect = (messageId === null),
reconnecting = !connect,
- url = transportLogic.getUrl(instance, that.name, reconnecting, raiseReconnect);
+ polling = !raiseReconnect,
+ url = transportLogic.getUrl(instance, that.name, reconnecting, polling);
// If we've disconnected during the time we've tried to re-instantiate the poll then stop.
if (isDisconnecting(instance) === true) {
@@ -1657,6 +1674,15 @@
var delay = 0,
data;
+ // Reset our reconnect errors so if we transition into a reconnecting state again we trigger
+ // reconnected quickly
+ reconnectErrors = 0;
+
+ // If there's currently a timeout to trigger reconnect, fire it now before processing messages
+ if (reconnectTimeoutId !== null) {
+ fireReconnected();
+ }
+
fireConnect();
if (minData) {
@@ -1689,11 +1715,21 @@
},
error: function (data, textStatus) {
+ // Stop trying to trigger reconnect, connection is in an error state
+ // If we're not in the reconnect state this will noop
+ window.clearTimeout(reconnectTimeoutId);
+ reconnectTimeoutId = null;
+
if (textStatus === "abort") {
connection.log("Aborted xhr requst.");
return;
}
+ // Increment our reconnect errors, we assume all errors to be reconnect errors
+ // In the case that it's our first error this will cause Reconnect to be fired
+ // after 1 second due to reconnectErrors being = 1.
+ reconnectErrors++;
+
if (connection.state !== signalR.connectionState.reconnecting) {
connection.log("An error occurred using longPolling. Status = " + textStatus + ". " + data.responseText);
$(instance).triggerHandler(events.onError, [data.responseText]);
@@ -1711,15 +1747,15 @@
}
});
+
// This will only ever pass after an error has occured via the poll ajax procedure.
if (reconnecting && raiseReconnect === true) {
- if (changeState(connection,
- signalR.connectionState.reconnecting,
- signalR.connectionState.connected) === true) {
- // Successfully reconnected!
- connection.log("Raising the reconnect event");
- $(instance).triggerHandler(events.onReconnect);
- }
+ // We wait to reconnect depending on how many times we've failed to reconnect.
+ // This is essentially a heuristic that will exponentially increase in wait time before
+ // triggering reconnected. This depends on the "error" handler of Poll to cancel this
+ // timeout if it triggers before the Reconnected event fires.
+ // The Math.min at the end is to ensure that the reconnect timeout does not overflow.
+ reconnectTimeoutId = window.setTimeout(function () { fireReconnected(instance); }, Math.min(1000 * (Math.pow(2, reconnectErrors) - 1), maxFireReconnectedTimeout));
}
}(connection));
@@ -2083,5 +2119,5 @@
/*global window:false */
///
(function ($) {
- $.signalR.version = "1.1.0-beta1";
+ $.signalR.version = "1.1.0";
}(window.jQuery));
diff --git a/UI/JsLibraries/messenger.js b/UI/JsLibraries/messenger.js
index 371ee5098..4acfe7b47 100644
--- a/UI/JsLibraries/messenger.js
+++ b/UI/JsLibraries/messenger.js
@@ -1,4 +1,4 @@
-/*! messenger 1.3.0 2013-03-21 */
+/*! messenger 1.3.1 2013-05-14 */
/*
* This file begins the output concatenated into messenger.js
*
@@ -299,7 +299,7 @@ window.Messenger.Events = (function() {
})();
(function() {
- var $, ActionMessenger, BaseView, Events, RetryingMessage, _, _Message, _Messenger, _ref, _ref1,
+ var $, ActionMessenger, BaseView, Events, RetryingMessage, _, _Message, _Messenger, _ref, _ref1, _ref2,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
__slice = [].slice,
@@ -307,9 +307,9 @@ window.Messenger.Events = (function() {
$ = jQuery;
- _ = _ != null ? _ : window.Messenger._;
+ _ = (_ref = window._) != null ? _ref : window.Messenger._;
- Events = (_ref = typeof Backbone !== "undefined" && Backbone !== null ? Backbone.Events : void 0) != null ? _ref : window.Messenger.Events;
+ Events = (_ref1 = typeof Backbone !== "undefined" && Backbone !== null ? Backbone.Events : void 0) != null ? _ref1 : window.Messenger.Events;
BaseView = (function() {
@@ -426,7 +426,7 @@ window.Messenger.Events = (function() {
};
_Message.prototype.update = function(opts) {
- var _ref1,
+ var _ref2,
_this = this;
if (_.isString(opts)) {
opts = {
@@ -436,7 +436,7 @@ window.Messenger.Events = (function() {
$.extend(this.options, opts);
this.lastUpdate = new Date();
this.rendered = false;
- this.events = (_ref1 = this.options.events) != null ? _ref1 : {};
+ this.events = (_ref2 = this.options.events) != null ? _ref2 : {};
this.render();
this.actionsToEvents();
this.delegateEvents();
@@ -487,12 +487,12 @@ window.Messenger.Events = (function() {
};
_Message.prototype.actionsToEvents = function() {
- var act, name, _ref1, _results,
+ var act, name, _ref2, _results,
_this = this;
- _ref1 = this.options.actions;
+ _ref2 = this.options.actions;
_results = [];
- for (name in _ref1) {
- act = _ref1[name];
+ for (name in _ref2) {
+ act = _ref2[name];
_results.push(this.events["click [data-action=\"" + name + "\"] a"] = (function(act) {
return function(e) {
e.preventDefault();
@@ -506,11 +506,11 @@ window.Messenger.Events = (function() {
};
_Message.prototype.checkClickable = function() {
- var evt, name, _ref1, _results;
- _ref1 = this.events;
+ var evt, name, _ref2, _results;
+ _ref2 = this.events;
_results = [];
- for (name in _ref1) {
- evt = _ref1[name];
+ for (name in _ref2) {
+ evt = _ref2[name];
if (name === 'click') {
_results.push(this.$message.addClass('messenger-clickable'));
} else {
@@ -521,20 +521,20 @@ window.Messenger.Events = (function() {
};
_Message.prototype.undelegateEvents = function() {
- var _ref1;
+ var _ref2;
_Message.__super__.undelegateEvents.apply(this, arguments);
- return (_ref1 = this.$message) != null ? _ref1.removeClass('messenger-clickable') : void 0;
+ return (_ref2 = this.$message) != null ? _ref2.removeClass('messenger-clickable') : void 0;
};
_Message.prototype.parseActions = function() {
- var act, actions, n_act, name, _ref1, _ref2;
+ var act, actions, n_act, name, _ref2, _ref3;
actions = [];
- _ref1 = this.options.actions;
- for (name in _ref1) {
- act = _ref1[name];
+ _ref2 = this.options.actions;
+ for (name in _ref2) {
+ act = _ref2[name];
n_act = $.extend({}, act);
n_act.name = name;
- if ((_ref2 = n_act.label) == null) {
+ if ((_ref3 = n_act.label) == null) {
n_act.label = name;
}
actions.push(n_act);
@@ -543,7 +543,7 @@ window.Messenger.Events = (function() {
};
_Message.prototype.template = function(opts) {
- var $action, $actions, $cancel, $link, $message, $text, action, _i, _len, _ref1,
+ var $action, $actions, $cancel, $link, $message, $text, action, _i, _len, _ref2,
_this = this;
$message = $("
");
if (opts.showCloseButton) {
@@ -559,9 +559,9 @@ window.Messenger.Events = (function() {
if (opts.actions.length) {
$actions = $('
');
}
- _ref1 = opts.actions;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- action = _ref1[_i];
+ _ref2 = opts.actions;
+ for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+ action = _ref2[_i];
$action = $('
');
$action.attr('data-action', "" + action.name);
$link = $('');
@@ -619,24 +619,24 @@ window.Messenger.Events = (function() {
};
RetryingMessage.prototype.clearTimers = function() {
- var name, timer, _ref1, _ref2;
- _ref1 = this._timers;
- for (name in _ref1) {
- timer = _ref1[name];
+ var name, timer, _ref2, _ref3;
+ _ref2 = this._timers;
+ for (name in _ref2) {
+ timer = _ref2[name];
clearTimeout(timer);
}
this._timers = {};
- return (_ref2 = this.$message) != null ? _ref2.removeClass('messenger-retry-soon messenger-retry-later') : void 0;
+ return (_ref3 = this.$message) != null ? _ref3.removeClass('messenger-retry-soon messenger-retry-later') : void 0;
};
RetryingMessage.prototype.render = function() {
- var action, name, _ref1, _results;
+ var action, name, _ref2, _results;
RetryingMessage.__super__.render.apply(this, arguments);
this.clearTimers();
- _ref1 = this.options.actions;
+ _ref2 = this.options.actions;
_results = [];
- for (name in _ref1) {
- action = _ref1[name];
+ for (name in _ref2) {
+ action = _ref2[name];
if (action.auto) {
_results.push(this.startCountdown(name, action));
} else {
@@ -676,13 +676,13 @@ window.Messenger.Events = (function() {
};
RetryingMessage.prototype.startCountdown = function(name, action) {
- var $phrase, remaining, tick, _ref1,
+ var $phrase, remaining, tick, _ref2,
_this = this;
if (this._timers[name] != null) {
return;
}
$phrase = this.$message.find("[data-action='" + name + "'] .messenger-phrase");
- remaining = (_ref1 = action.delay) != null ? _ref1 : 3;
+ remaining = (_ref2 = action.delay) != null ? _ref2 : 3;
if (remaining <= 10) {
this.$message.removeClass('messenger-retry-later');
this.$message.addClass('messenger-retry-soon');
@@ -765,13 +765,13 @@ window.Messenger.Events = (function() {
};
_Messenger.prototype._enforceIdConstraint = function(msg) {
- var entry, _i, _len, _msg, _ref1;
+ var entry, _i, _len, _msg, _ref2;
if (msg.options.id == null) {
return;
}
- _ref1 = this.history;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- entry = _ref1[_i];
+ _ref2 = this.history;
+ for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+ entry = _ref2[_i];
_msg = entry.msg;
if ((_msg.options.id != null) && _msg.options.id === msg.options.id && msg !== _msg) {
if (msg.options.singleton) {
@@ -785,13 +785,13 @@ window.Messenger.Events = (function() {
};
_Messenger.prototype.newMessage = function(opts) {
- var msg, _ref1, _ref2, _ref3,
+ var msg, _ref2, _ref3, _ref4,
_this = this;
if (opts == null) {
opts = {};
}
opts.messenger = this;
- _Message = (_ref1 = (_ref2 = Messenger.themes[(_ref3 = opts.theme) != null ? _ref3 : this.options.theme]) != null ? _ref2.Message : void 0) != null ? _ref1 : RetryingMessage;
+ _Message = (_ref2 = (_ref3 = Messenger.themes[(_ref4 = opts.theme) != null ? _ref4 : this.options.theme]) != null ? _ref3.Message : void 0) != null ? _ref2 : RetryingMessage;
msg = new _Message(opts);
msg.on('show', function() {
if (opts.scrollTo && _this.$el.css('position') !== 'fixed') {
@@ -803,13 +803,13 @@ window.Messenger.Events = (function() {
};
_Messenger.prototype.updateMessageSlotClasses = function() {
- var anyShown, last, rec, willBeFirst, _i, _len, _ref1;
+ var anyShown, last, rec, willBeFirst, _i, _len, _ref2;
willBeFirst = true;
last = null;
anyShown = false;
- _ref1 = this.history;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- rec = _ref1[_i];
+ _ref2 = this.history;
+ for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+ rec = _ref2[_i];
rec.$slot.removeClass('first last shown');
if (rec.msg.shown && rec.msg.rendered) {
rec.$slot.addClass('shown');
@@ -828,11 +828,11 @@ window.Messenger.Events = (function() {
};
_Messenger.prototype.hideAll = function() {
- var rec, _i, _len, _ref1, _results;
- _ref1 = this.history;
+ var rec, _i, _len, _ref2, _results;
+ _ref2 = this.history;
_results = [];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- rec = _ref1[_i];
+ for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
+ rec = _ref2[_i];
_results.push(rec.msg.hide());
}
return _results;
@@ -927,7 +927,7 @@ window.Messenger.Events = (function() {
};
ActionMessenger.prototype._parseEvents = function(events) {
- var desc, firstSpace, func, label, out, type, _ref1;
+ var desc, firstSpace, func, label, out, type, _ref2;
if (events == null) {
events = {};
}
@@ -937,7 +937,7 @@ window.Messenger.Events = (function() {
firstSpace = label.indexOf(' ');
type = label.substring(0, firstSpace);
desc = label.substring(firstSpace + 1);
- if ((_ref1 = out[type]) == null) {
+ if ((_ref2 = out[type]) == null) {
out[type] = {};
}
out[type][desc] = func;
@@ -965,7 +965,7 @@ window.Messenger.Events = (function() {
};
ActionMessenger.prototype.run = function() {
- var args, attr, events, m_opts, msg, opts, promiseAttrs, _i, _len, _ref1, _ref2,
+ var args, attr, events, m_opts, msg, opts, promiseAttrs, _i, _len, _ref2, _ref3,
_this = this;
m_opts = arguments[0], opts = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : [];
if (opts == null) {
@@ -973,7 +973,7 @@ window.Messenger.Events = (function() {
}
m_opts = $.extend(true, {}, this.messageDefaults, this.doDefaults, m_opts != null ? m_opts : {});
events = this._parseEvents(m_opts.events);
- msg = (_ref1 = m_opts.messageInstance) != null ? _ref1 : this.newMessage(m_opts);
+ msg = (_ref2 = m_opts.messageInstance) != null ? _ref2 : this.newMessage(m_opts);
if (m_opts.id != null) {
msg.options.id = m_opts.id;
}
@@ -984,20 +984,20 @@ window.Messenger.Events = (function() {
}));
}
_.each(['error', 'success'], function(type) {
- var old, _ref2, _ref3;
- if ((_ref2 = opts[type]) != null ? _ref2._originalHandler : void 0) {
+ var old, _ref3, _ref4;
+ if ((_ref3 = opts[type]) != null ? _ref3._originalHandler : void 0) {
opts[type] = opts[type]._originalHandler;
}
- old = (_ref3 = opts[type]) != null ? _ref3 : function() {};
+ old = (_ref4 = opts[type]) != null ? _ref4 : function() {};
opts[type] = function() {
- var data, msgOpts, msgText, r, reason, resp, xhr, _ref10, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
+ var data, msgOpts, msgText, r, reason, resp, xhr, _ref10, _ref11, _ref5, _ref6, _ref7, _ref8, _ref9;
resp = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
- _ref4 = _this._normalizeResponse.apply(_this, resp), reason = _ref4[0], data = _ref4[1], xhr = _ref4[2];
+ _ref5 = _this._normalizeResponse.apply(_this, resp), reason = _ref5[0], data = _ref5[1], xhr = _ref5[2];
if (type === 'success' && !(msg.errorCount != null) && m_opts.showSuccessWithoutError === false) {
m_opts['successMessage'] = null;
}
if (type === 'error') {
- if ((_ref5 = m_opts.errorCount) == null) {
+ if ((_ref6 = m_opts.errorCount) == null) {
m_opts.errorCount = 0;
}
m_opts.errorCount += 1;
@@ -1007,20 +1007,20 @@ window.Messenger.Events = (function() {
msg.hide();
return;
}
- if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (_ref6 = xhr != null ? xhr.status : void 0, __indexOf.call(m_opts.ignoredErrorCodes, _ref6) >= 0))) {
+ if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (_ref7 = xhr != null ? xhr.status : void 0, __indexOf.call(m_opts.ignoredErrorCodes, _ref7) >= 0))) {
msg.hide();
return;
}
msgOpts = $.extend({}, m_opts, {
message: msgText,
type: type,
- events: (_ref7 = events[type]) != null ? _ref7 : {},
+ events: (_ref8 = events[type]) != null ? _ref8 : {},
hideOnNavigate: type === 'success'
});
- if (typeof ((_ref8 = msgOpts.retry) != null ? _ref8.allow : void 0) === 'number') {
+ if (typeof ((_ref9 = msgOpts.retry) != null ? _ref9.allow : void 0) === 'number') {
msgOpts.retry.allow--;
}
- if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((_ref9 = msgOpts.retry) != null ? _ref9.allow : void 0)) {
+ if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((_ref10 = msgOpts.retry) != null ? _ref10.allow : void 0)) {
if (msgOpts.retry.delay == null) {
if (msgOpts.errorCount < 4) {
msgOpts.retry.delay = 10;
@@ -1029,7 +1029,7 @@ window.Messenger.Events = (function() {
}
}
if (msgOpts.hideAfter) {
- if ((_ref10 = msgOpts._hideAfter) == null) {
+ if ((_ref11 = msgOpts._hideAfter) == null) {
msgOpts._hideAfter = msgOpts.hideAfter;
}
msgOpts.hideAfter = msgOpts._hideAfter + msgOpts.retry.delay;
@@ -1076,7 +1076,7 @@ window.Messenger.Events = (function() {
if (msg[attr] != null) {
delete msg[attr];
}
- msg[attr] = (_ref2 = msg._actionInstance) != null ? _ref2[attr] : void 0;
+ msg[attr] = (_ref3 = msg._actionInstance) != null ? _ref3[attr] : void 0;
}
return msg;
};
@@ -1095,7 +1095,7 @@ window.Messenger.Events = (function() {
})(_Messenger);
$.fn.messenger = function() {
- var $el, args, func, instance, opts, _ref1, _ref2, _ref3;
+ var $el, args, func, instance, opts, _ref2, _ref3, _ref4;
func = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
if (func == null) {
func = {};
@@ -1104,7 +1104,7 @@ window.Messenger.Events = (function() {
if (!(func != null) || !_.isString(func)) {
opts = func;
if (!($el.data('messenger') != null)) {
- _Messenger = (_ref1 = (_ref2 = Messenger.themes[opts.theme]) != null ? _ref2.Messenger : void 0) != null ? _ref1 : ActionMessenger;
+ _Messenger = (_ref2 = (_ref3 = Messenger.themes[opts.theme]) != null ? _ref3.Messenger : void 0) != null ? _ref2 : ActionMessenger;
$el.data('messenger', instance = new _Messenger($.extend({
el: $el
}, opts)));
@@ -1112,7 +1112,7 @@ window.Messenger.Events = (function() {
}
return $el.data('messenger');
} else {
- return (_ref3 = $el.data('messenger'))[func].apply(_ref3, args);
+ return (_ref4 = $el.data('messenger'))[func].apply(_ref4, args);
}
};
@@ -1163,7 +1163,7 @@ window.Messenger.Events = (function() {
$.extend(Messenger, {
Message: RetryingMessage,
Messenger: ActionMessenger,
- themes: (_ref1 = Messenger.themes) != null ? _ref1 : {}
+ themes: (_ref2 = Messenger.themes) != null ? _ref2 : {}
});
$.globalMessenger = window.Messenger = Messenger;