messengerjs-rails 1.3.3 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/messengerjs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/messenger.js +12 -14
- data/vendor/assets/javascripts/messenger.min.js +2 -0
- metadata +2 -2
- data/lib/messengerjs-rails/middleware.rb +0 -79
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04bd12c757670e4ecee78dcecb32750b8274152a
|
4
|
+
data.tar.gz: 4eec33693c6cdb281bb6f12d396c55c9095f531c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b530aaef624f6f144529bd7cb087f4731818f824e8bee18d1c7b279a86f86a4acc0f50482e0362b447285669dddbb939ee6514fea0443cb37a5e9fe99815f78
|
7
|
+
data.tar.gz: d1ccc82b59d5200a5d8fb213e40c7865273254aaf4556c5ef075c8adfd18d75d03dbb207d16859b97c29430ed315f0f8409fe7c31d1e3d79ccb1b35f3d86bd99
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ messengerjs-rails is a Rails (3.1 and above) wrapper for [Messenger](http://gith
|
|
26
26
|
|
27
27
|
Add the following to your gemfile:
|
28
28
|
|
29
|
-
gem "messengerjs-rails", "~> 1.3.
|
29
|
+
gem "messengerjs-rails", "~> 1.3.5"
|
30
30
|
|
31
31
|
Add the following directive to your application.coffee / application.js:
|
32
32
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! messenger 1.3.
|
1
|
+
/*! messenger 1.3.5 */
|
2
2
|
/*
|
3
3
|
* This file begins the output concatenated into messenger.js
|
4
4
|
*
|
@@ -993,23 +993,22 @@ window.Messenger.Events = (function() {
|
|
993
993
|
}
|
994
994
|
handlers = {};
|
995
995
|
_.each(['error', 'success'], function(type) {
|
996
|
+
var originalHandler;
|
997
|
+
originalHandler = opts[type];
|
996
998
|
return handlers[type] = function() {
|
997
|
-
var data, defaultOpts, handlerResp, msgOpts, reason, resp, responseOpts, xhr,
|
999
|
+
var data, defaultOpts, handlerResp, msgOpts, reason, resp, responseOpts, xhr, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
|
998
1000
|
resp = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
999
|
-
|
1000
|
-
opts[type] = opts[type]._originalHandler;
|
1001
|
-
}
|
1002
|
-
_ref4 = _this._normalizeResponse.apply(_this, resp), reason = _ref4[0], data = _ref4[1], xhr = _ref4[2];
|
1001
|
+
_ref3 = _this._normalizeResponse.apply(_this, resp), reason = _ref3[0], data = _ref3[1], xhr = _ref3[2];
|
1003
1002
|
if (type === 'success' && !(msg.errorCount != null) && m_opts.showSuccessWithoutError === false) {
|
1004
1003
|
m_opts['successMessage'] = null;
|
1005
1004
|
}
|
1006
1005
|
if (type === 'error') {
|
1007
|
-
if ((
|
1006
|
+
if ((_ref4 = m_opts.errorCount) == null) {
|
1008
1007
|
m_opts.errorCount = 0;
|
1009
1008
|
}
|
1010
1009
|
m_opts.errorCount += 1;
|
1011
1010
|
}
|
1012
|
-
handlerResp = m_opts.returnsPromise ? resp[0] : typeof
|
1011
|
+
handlerResp = m_opts.returnsPromise ? resp[0] : typeof originalHandler === "function" ? originalHandler.apply(null, resp) : void 0;
|
1013
1012
|
responseOpts = _this._getHandlerResponse(handlerResp);
|
1014
1013
|
if (_.isString(responseOpts)) {
|
1015
1014
|
responseOpts = {
|
@@ -1020,21 +1019,21 @@ window.Messenger.Events = (function() {
|
|
1020
1019
|
msg.hide();
|
1021
1020
|
return;
|
1022
1021
|
}
|
1023
|
-
if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (
|
1022
|
+
if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (_ref5 = xhr != null ? xhr.status : void 0, __indexOf.call(m_opts.ignoredErrorCodes, _ref5) >= 0))) {
|
1024
1023
|
msg.hide();
|
1025
1024
|
return;
|
1026
1025
|
}
|
1027
1026
|
defaultOpts = {
|
1028
1027
|
message: getMessageText(type, xhr),
|
1029
1028
|
type: type,
|
1030
|
-
events: (
|
1029
|
+
events: (_ref6 = events[type]) != null ? _ref6 : {},
|
1031
1030
|
hideOnNavigate: type === 'success'
|
1032
1031
|
};
|
1033
1032
|
msgOpts = $.extend({}, m_opts, defaultOpts, responseOpts);
|
1034
|
-
if (typeof ((
|
1033
|
+
if (typeof ((_ref7 = msgOpts.retry) != null ? _ref7.allow : void 0) === 'number') {
|
1035
1034
|
msgOpts.retry.allow--;
|
1036
1035
|
}
|
1037
|
-
if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((
|
1036
|
+
if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((_ref8 = msgOpts.retry) != null ? _ref8.allow : void 0)) {
|
1038
1037
|
if (msgOpts.retry.delay == null) {
|
1039
1038
|
if (msgOpts.errorCount < 4) {
|
1040
1039
|
msgOpts.retry.delay = 10;
|
@@ -1043,7 +1042,7 @@ window.Messenger.Events = (function() {
|
|
1043
1042
|
}
|
1044
1043
|
}
|
1045
1044
|
if (msgOpts.hideAfter) {
|
1046
|
-
if ((
|
1045
|
+
if ((_ref9 = msgOpts._hideAfter) == null) {
|
1047
1046
|
msgOpts._hideAfter = msgOpts.hideAfter;
|
1048
1047
|
}
|
1049
1048
|
msgOpts.hideAfter = msgOpts._hideAfter + msgOpts.retry.delay;
|
@@ -1087,7 +1086,6 @@ window.Messenger.Events = (function() {
|
|
1087
1086
|
handler = handlers[type];
|
1088
1087
|
old = opts[type];
|
1089
1088
|
opts[type] = handler;
|
1090
|
-
opts[type]._originalHandler = old;
|
1091
1089
|
}
|
1092
1090
|
}
|
1093
1091
|
msg._actionInstance = m_opts.action.apply(m_opts, [opts].concat(__slice.call(args)));
|
@@ -0,0 +1,2 @@
|
|
1
|
+
/*! messenger 1.3.5 */
|
2
|
+
(function(){var e,t=window.Messenger;e=window.Messenger=function(){return e._call.apply(this,arguments)},window.Messenger.noConflict=function(){return window.Messenger=t,e}})(),window.Messenger._=function(){if(window._)return window._;var e=Array.prototype,t=Object.prototype,n=Function.prototype,s=(e.push,e.slice),r=(e.concat,t.toString);t.hasOwnProperty;var i=e.forEach,o=(e.map,e.reduce,e.reduceRight,e.filter),a=(e.every,e.some,e.indexOf,e.lastIndexOf,Array.isArray,Object.keys),l=n.bind,u={},c={},h=u.each=u.forEach=function(e,t,n){if(null!=e)if(i&&e.forEach===i)e.forEach(t,n);else if(e.length===+e.length){for(var s=0,r=e.length;r>s;s++)if(t.call(n,e[s],s,e)===c)return}else for(var o in e)if(u.has(e,o)&&t.call(n,e[o],o,e)===c)return};u.result=function(e,t){if(null==e)return null;var n=e[t];return u.isFunction(n)?n.call(e):n},u.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}};var p=0;return u.uniqueId=function(e){var t=++p+"";return e?e+t:t},u.filter=u.select=function(e,t,n){var s=[];return null==e?s:o&&e.filter===o?e.filter(t,n):(h(e,function(e,r,i){t.call(n,e,r,i)&&(s[s.length]=e)}),s)},h(["Arguments","Function","String","Number","Date","RegExp"],function(e){u["is"+e]=function(t){return r.call(t)=="[object "+e+"]"}}),u.defaults=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&&(e[n]=t[n])}),e},u.extend=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},u.keys=a||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)u.has(e,n)&&(t[t.length]=n);return t},u.bind=function(e,t){if(e.bind===l&&l)return l.apply(e,s.call(arguments,1));var n=s.call(arguments,2);return function(){return e.apply(t,n.concat(s.call(arguments)))}},u.isObject=function(e){return e===Object(e)},u}(),window.Messenger.Events=function(){if(window.Backbone&&Backbone.Events)return Backbone.Events;var e=function(){var e=/\s+/,t=function(t,n,s,r){if(!s)return!0;if("object"==typeof s)for(var i in s)t[n].apply(t,[i,s[i]].concat(r));else{if(!e.test(s))return!0;for(var o=s.split(e),a=0,l=o.length;l>a;a++)t[n].apply(t,[o[a]].concat(r))}},n=function(e,t){var n,s=-1,r=e.length;switch(t.length){case 0:for(;r>++s;)(n=e[s]).callback.call(n.ctx);return;case 1:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0]);return;case 2:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1]);return;case 3:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1],t[2]);return;default:for(;r>++s;)(n=e[s]).callback.apply(n.ctx,t)}},s={on:function(e,n,s){if(!t(this,"on",e,[n,s])||!n)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:n,context:s,ctx:s||this}),this},once:function(e,n,s){if(!t(this,"once",e,[n,s])||!n)return this;var r=this,i=_.once(function(){r.off(e,i),n.apply(this,arguments)});return i._callback=n,this.on(e,i,s),this},off:function(e,n,s){var r,i,o,a,l,u,c,h;if(!this._events||!t(this,"off",e,[n,s]))return this;if(!e&&!n&&!s)return this._events={},this;for(a=e?[e]:_.keys(this._events),l=0,u=a.length;u>l;l++)if(e=a[l],r=this._events[e]){if(o=[],n||s)for(c=0,h=r.length;h>c;c++)i=r[c],(n&&n!==i.callback&&n!==i.callback._callback||s&&s!==i.context)&&o.push(i);this._events[e]=o}return this},trigger:function(e){if(!this._events)return this;var s=Array.prototype.slice.call(arguments,1);if(!t(this,"trigger",e,s))return this;var r=this._events[e],i=this._events.all;return r&&n(r,s),i&&n(i,arguments),this},listenTo:function(e,t,n){var s=this._listeners||(this._listeners={}),r=e._listenerId||(e._listenerId=_.uniqueId("l"));return s[r]=e,e.on(t,"object"==typeof t?this:n,this),this},stopListening:function(e,t,n){var s=this._listeners;if(s){if(e)e.off(t,"object"==typeof t?this:n,this),t||n||delete s[e._listenerId];else{"object"==typeof t&&(n=this);for(var r in s)s[r].off(t,n,this);this._listeners={}}return this}}};return s.bind=s.on,s.unbind=s.off,s};return e()}(),function(){var e,t,n,s,r,i,o,a,l,u,c,h={}.hasOwnProperty,p=function(e,t){function n(){this.constructor=e}for(var s in t)h.call(t,s)&&(e[s]=t[s]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},d=[].slice,f=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e=jQuery,i=null!=(l=window._)?l:window.Messenger._,s=null!=(u="undefined"!=typeof Backbone&&null!==Backbone?Backbone.Events:void 0)?u:window.Messenger.Events,n=function(){function t(t){e.extend(this,s),i.isObject(t)&&(t.el&&this.setElement(t.el),this.model=t.model),this.initialize.apply(this,arguments)}return t.prototype.setElement=function(t){return this.$el=e(t),this.el=this.$el[0]},t.prototype.delegateEvents=function(e){var t,n,s,r,o,a,l;if(e||(e=i.result(this,"events"))){t=/^(\S+)\s*(.*)$/,this.undelegateEvents(),l=[];for(s in e){if(o=e[s],i.isFunction(o)||(o=this[e[s]]),!o)throw Error("Method "+e[s]+" does not exist");r=s.match(t),n=r[1],a=r[2],o=i.bind(o,this),n+=".delegateEvents"+this.cid,""===a?l.push(this.$el.on(n,o)):l.push(this.$el.on(n,a,o))}return l}},t.prototype.undelegateEvents=function(){return this.$el.off(".delegateEvents"+this.cid)},t.prototype.remove=function(){return this.undelegateEvents(),this.$el.remove()},t}(),o=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.defaults={hideAfter:10,scroll:!0},n.prototype.initialize=function(t){return null==t&&(t={}),this.shown=!1,this.rendered=!1,this.messenger=t.messenger,this.options=e.extend({},this.options,t,this.defaults)},n.prototype.show=function(){var e;return this.rendered||this.render(),this.$message.removeClass("messenger-hidden"),e=this.shown,this.shown=!0,e?void 0:this.trigger("show")},n.prototype.hide=function(){var e;if(this.rendered)return this.$message.addClass("messenger-hidden"),e=this.shown,this.shown=!1,e?this.trigger("hide"):void 0},n.prototype.cancel=function(){return this.hide()},n.prototype.update=function(t){var n,s=this;return i.isString(t)&&(t={message:t}),e.extend(this.options,t),this.lastUpdate=new Date,this.rendered=!1,this.events=null!=(n=this.options.events)?n:{},this.render(),this.actionsToEvents(),this.delegateEvents(),this.checkClickable(),this.options.hideAfter?(this.$message.addClass("messenger-will-hide-after"),null!=this._hideTimeout&&clearTimeout(this._hideTimeout),this._hideTimeout=setTimeout(function(){return s.hide()},1e3*this.options.hideAfter)):this.$message.removeClass("messenger-will-hide-after"),this.options.hideOnNavigate?(this.$message.addClass("messenger-will-hide-on-navigate"),null!=("undefined"!=typeof Backbone&&null!==Backbone?Backbone.history:void 0)&&Backbone.history.on("route",function(){return s.hide()})):this.$message.removeClass("messenger-will-hide-on-navigate"),this.trigger("update",this)},n.prototype.scrollTo=function(){return this.options.scroll?e.scrollTo(this.$el,{duration:400,offset:{left:0,top:-20}}):void 0},n.prototype.timeSinceUpdate=function(){return this.lastUpdate?new Date-this.lastUpdate:null},n.prototype.actionsToEvents=function(){var e,t,n,s,r=this;n=this.options.actions,s=[];for(t in n)e=n[t],s.push(this.events['click [data-action="'+t+'"] a']=function(e){return function(n){return n.preventDefault(),n.stopPropagation(),r.trigger("action:"+t,e,n),e.action.call(r,n,r)}}(e));return s},n.prototype.checkClickable=function(){var e,t,n,s;n=this.events,s=[];for(t in n)e=n[t],"click"===t?s.push(this.$message.addClass("messenger-clickable")):s.push(void 0);return s},n.prototype.undelegateEvents=function(){var e;return n.__super__.undelegateEvents.apply(this,arguments),null!=(e=this.$message)?e.removeClass("messenger-clickable"):void 0},n.prototype.parseActions=function(){var t,n,s,r,i,o;n=[],i=this.options.actions;for(r in i)t=i[r],s=e.extend({},t),s.name=r,null==(o=s.label)&&(s.label=r),n.push(s);return n},n.prototype.template=function(t){var n,s,r,i,o,a,l,u,c,h,p=this;for(o=e("<div class='messenger-message message alert "+t.type+" message-"+t.type+" alert-"+t.type+"'>"),t.showCloseButton&&(r=e('<button type="button" class="close" data-dismiss="alert">×</button>'),r.click(function(){return p.cancel(),!0}),o.append(r)),a=e('<div class="messenger-message-inner">'+t.message+"</div>"),o.append(a),t.actions.length&&(s=e('<div class="messenger-actions">')),h=t.actions,u=0,c=h.length;c>u;u++)l=h[u],n=e("<span>"),n.attr("data-action",""+l.name),i=e("<a>"),i.html(l.label),n.append(e('<span class="messenger-phrase">')),n.append(i),s.append(n);return o.append(s),o},n.prototype.render=function(){var t;if(!this.rendered)return this._hasSlot||(this.setElement(this.messenger._reserveMessageSlot(this)),this._hasSlot=!0),t=e.extend({},this.options,{actions:this.parseActions()}),this.$message=e(this.template(t)),this.$el.html(this.$message),this.shown=!0,this.rendered=!0,this.trigger("render")},n}(n),r=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return p(t,e),t.prototype.initialize=function(){return t.__super__.initialize.apply(this,arguments),this._timers={}},t.prototype.cancel=function(){return this.clearTimers(),this.hide(),null!=this._actionInstance&&null!=this._actionInstance.abort?this._actionInstance.abort():void 0},t.prototype.clearTimers=function(){var e,t,n,s;n=this._timers;for(e in n)t=n[e],clearTimeout(t);return this._timers={},null!=(s=this.$message)?s.removeClass("messenger-retry-soon messenger-retry-later"):void 0},t.prototype.render=function(){var e,n,s,r;t.__super__.render.apply(this,arguments),this.clearTimers(),s=this.options.actions,r=[];for(n in s)e=s[n],e.auto?r.push(this.startCountdown(n,e)):r.push(void 0);return r},t.prototype.renderPhrase=function(e,t){var n;return n=e.phrase.replace("TIME",this.formatTime(t))},t.prototype.formatTime=function(e){var t;return t=function(e,t){return e=Math.floor(e),1!==e&&(t+="s"),"in "+e+" "+t},0===Math.floor(e)?"now...":60>e?t(e,"second"):(e/=60,60>e?t(e,"minute"):(e/=60,t(e,"hour")))},t.prototype.startCountdown=function(e,t){var n,s,r,i,o=this;if(null==this._timers[e])return n=this.$message.find("[data-action='"+e+"'] .messenger-phrase"),s=null!=(i=t.delay)?i:3,10>=s?(this.$message.removeClass("messenger-retry-later"),this.$message.addClass("messenger-retry-soon")):(this.$message.removeClass("messenger-retry-soon"),this.$message.addClass("messenger-retry-later")),r=function(){var i;return n.text(o.renderPhrase(t,s)),s>0?(i=Math.min(s,1),s-=i,o._timers[e]=setTimeout(r,1e3*i)):(o.$message.removeClass("messenger-retry-soon messenger-retry-later"),delete o._timers[e],t.action())},r()},t}(o),a=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.tagName="ul",n.prototype.className="messenger",n.prototype.messageDefaults={type:"info"},n.prototype.initialize=function(t){return this.options=null!=t?t:{},this.history=[],this.messageDefaults=e.extend({},this.messageDefaults,this.options.messageDefaults)},n.prototype.render=function(){return this.updateMessageSlotClasses()},n.prototype.findById=function(e){return i.filter(this.history,function(t){return t.msg.options.id===e})},n.prototype._reserveMessageSlot=function(t){var n,s,r=this;for(n=e("<li>"),n.addClass("messenger-message-slot"),this.$el.prepend(n),this.history.push({msg:t,$slot:n}),this._enforceIdConstraint(t),t.on("update",function(){return r._enforceIdConstraint(t)});this.options.maxMessages&&this.history.length>this.options.maxMessages;)s=this.history.shift(),s.msg.remove(),s.$slot.remove();return n},n.prototype._enforceIdConstraint=function(e){var t,n,s,r,i;if(null!=e.options.id)for(i=this.history,n=0,s=i.length;s>n;n++)if(t=i[n],r=t.msg,null!=r.options.id&&r.options.id===e.options.id&&e!==r){if(e.options.singleton)return e.hide(),void 0;r.hide()}},n.prototype.newMessage=function(e){var t,n,s,i,a=this;return null==e&&(e={}),e.messenger=this,o=null!=(n=null!=(s=Messenger.themes[null!=(i=e.theme)?i:this.options.theme])?s.Message:void 0)?n:r,t=new o(e),t.on("show",function(){return e.scrollTo&&"fixed"!==a.$el.css("position")?t.scrollTo():void 0}),t.on("hide show render",this.updateMessageSlotClasses,this),t},n.prototype.updateMessageSlotClasses=function(){var e,t,n,s,r,i,o;for(s=!0,t=null,e=!1,o=this.history,r=0,i=o.length;i>r;r++)n=o[r],n.$slot.removeClass("messenger-first messenger-last messenger-shown"),n.msg.shown&&n.msg.rendered&&(n.$slot.addClass("messenger-shown"),e=!0,t=n,s&&(s=!1,n.$slot.addClass("messenger-first")));return null!=t&&t.$slot.addClass("messenger-last"),this.$el[""+(e?"remove":"add")+"Class"]("messenger-empty")},n.prototype.hideAll=function(){var e,t,n,s,r;for(s=this.history,r=[],t=0,n=s.length;n>t;t++)e=s[t],r.push(e.msg.hide());return r},n.prototype.post=function(t){var n;return i.isString(t)&&(t={message:t}),t=e.extend(!0,{},this.messageDefaults,t),n=this.newMessage(t),n.update(t),n},n}(n),t=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.doDefaults={progressMessage:null,successMessage:null,errorMessage:"Error connecting to the server.",showSuccessWithoutError:!0,retry:{auto:!0,allow:!0},action:e.ajax},n.prototype.hookBackboneAjax=function(t){var n,s=this;if(null==t&&(t={}),null==window.Backbone)throw"Expected Backbone to be defined";return t=i.defaults(t,{id:"BACKBONE_ACTION",errorMessage:!1,successMessage:"Request completed successfully.",showSuccessWithoutError:!1}),n=function(e){var n;return n=i.extend({},t,e.messenger),s["do"](n,e)},null!=Backbone.ajax?(Backbone.ajax._withoutMessenger&&(Backbone.ajax=Backbone.ajax._withoutMessenger),(null==t.action||t.action===this.doDefaults.action)&&(t.action=Backbone.ajax),n._withoutMessenger=Backbone.ajax,Backbone.ajax=n):Backbone.sync=i.wrap(Backbone.sync,function(){var t,s,r;return r=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],s=e.ajax,e.ajax=n,r.call.apply(r,[this].concat(d.call(t))),e.ajax=s})},n.prototype._getHandlerResponse=function(e){return e===!1?!1:e===!0||null==e?!0:e},n.prototype._parseEvents=function(e){var t,n,s,r,i,o,a;null==e&&(e={}),i={};for(r in e)s=e[r],n=r.indexOf(" "),o=r.substring(0,n),t=r.substring(n+1),null==(a=i[o])&&(i[o]={}),i[o][t]=s;return i},n.prototype._normalizeResponse=function(){var e,t,n,s,r,o,a;for(n=arguments.length>=1?d.call(arguments,0):[],s=null,r=null,e=null,o=0,a=n.length;a>o;o++)t=n[o],"success"===t||"timeout"===t||"abort"===t?s=t:null!=(null!=t?t.readyState:void 0)&&null!=(null!=t?t.responseText:void 0)?r=t:i.isObject(t)&&(e=t);return[s,e,r]},n.prototype.run=function(){var t,n,s,r,o,a,l,u,c,h,p,g,m,v,y,_,w=this;if(l=arguments[0],h=arguments[1],t=arguments.length>=3?d.call(arguments,2):[],null==h&&(h={}),l=e.extend(!0,{},this.messageDefaults,this.doDefaults,null!=l?l:{}),s=this._parseEvents(l.events),r=function(e,t){var n;return n=l[e+"Message"],i.isFunction(n)?n.call(w,e,t):n},u=null!=(y=l.messageInstance)?y:this.newMessage(l),null!=l.id&&(u.options.id=l.id),null!=l.progressMessage&&u.update(e.extend({},l,{message:r("progress",null),type:"info"})),a={},i.each(["error","success"],function(n){var o;return o=h[n],a[n]=function(){var a,c,p,g,m,v,y,_,b,x,M,C,k,$,E;return v=arguments.length>=1?d.call(arguments,0):[],b=w._normalizeResponse.apply(w,v),m=b[0],a=b[1],_=b[2],"success"===n&&null==u.errorCount&&l.showSuccessWithoutError===!1&&(l.successMessage=null),"error"===n&&(null==(x=l.errorCount)&&(l.errorCount=0),l.errorCount+=1),p=l.returnsPromise?v[0]:"function"==typeof o?o.apply(null,v):void 0,y=w._getHandlerResponse(p),i.isString(y)&&(y={message:y}),"error"!==n||0!==(null!=_?_.status:void 0)&&"abort"!==m?"error"===n&&null!=l.ignoredErrorCodes&&(M=null!=_?_.status:void 0,f.call(l.ignoredErrorCodes,M)>=0)?(u.hide(),void 0):(c={message:r(n,_),type:n,events:null!=(C=s[n])?C:{},hideOnNavigate:"success"===n},g=e.extend({},l,c,y),"number"==typeof(null!=(k=g.retry)?k.allow:void 0)&&g.retry.allow--,"error"===n&&(null!=_?_.status:void 0)>=500&&(null!=($=g.retry)?$.allow:void 0)?(null==g.retry.delay&&(g.retry.delay=4>g.errorCount?10:300),g.hideAfter&&(null==(E=g._hideAfter)&&(g._hideAfter=g.hideAfter),g.hideAfter=g._hideAfter+g.retry.delay),g._retryActions=!0,g.actions={retry:{label:"retry now",phrase:"Retrying TIME",auto:g.retry.auto,delay:g.retry.delay,action:function(){return g.messageInstance=u,setTimeout(function(){return w["do"].apply(w,[g,h].concat(d.call(t)))},0)}},cancel:{action:function(){return u.cancel()}}}):g._retryActions&&(delete g.actions.retry,delete g.actions.cancel,delete l._retryActions),u.update(g),y&&g.message?(Messenger(),u.show()):u.hide()):(u.hide(),void 0)}}),!l.returnsPromise)for(g in a)o=a[g],c=h[g],h[g]=o;for(u._actionInstance=l.action.apply(l,[h].concat(d.call(t))),l.returnsPromise&&u._actionInstance.then(a.success,a.error),p=["done","progress","fail","state","then"],m=0,v=p.length;v>m;m++)n=p[m],null!=u[n]&&delete u[n],u[n]=null!=(_=u._actionInstance)?_[n]:void 0;return u},n.prototype["do"]=n.prototype.run,n.prototype.ajax=function(){var t,n;return n=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],n.action=e.ajax,this.run.apply(this,[n].concat(d.call(t)))},n.prototype.expectPromise=function(e,t){return t=i.extend({},t,{action:e,returnsPromise:!0}),this.run(t)},n}(a),e.fn.messenger=function(){var n,s,r,o,l,u,c,h;return r=arguments[0],s=arguments.length>=2?d.call(arguments,1):[],null==r&&(r={}),n=this,null!=r&&i.isString(r)?(h=n.data("messenger"))[r].apply(h,s):(l=r,null==n.data("messenger")&&(a=null!=(u=null!=(c=Messenger.themes[l.theme])?c.Messenger:void 0)?u:t,n.data("messenger",o=new a(e.extend({el:n},l))),o.render()),n.data("messenger"))},window.Messenger._call=function(t){var n,s,r,i,o,a,l,u,c,h,p;if(a={extraClasses:"messenger-fixed messenger-on-bottom messenger-on-right",theme:"future",maxMessages:9,parentLocations:["body"]},t=e.extend(a,e._messengerDefaults,Messenger.options,t),null!=t.theme&&(t.extraClasses+=" messenger-theme-"+t.theme),l=t.instance||Messenger.instance,null==t.instance){for(c=t.parentLocations,s=null,r=null,h=0,p=c.length;p>h;h++)if(u=c[h],s=e(u),s.length){i=u;break}l?e(l._location)!==e(i)&&(l.$el.detach(),s.prepend(l.$el)):(n=e("<ul>"),s.prepend(n),l=n.messenger(t),l._location=i,Messenger.instance=l)}return null!=l._addedClasses&&l.$el.removeClass(l._addedClasses),l.$el.addClass(o=""+l.className+" "+t.extraClasses),l._addedClasses=o,l},e.extend(Messenger,{Message:r,Messenger:t,themes:null!=(c=Messenger.themes)?c:{}}),e.globalMessenger=window.Messenger=Messenger}.call(this);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: messengerjs-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Song
|
@@ -16,11 +16,11 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
-
- lib/messengerjs-rails/middleware.rb
|
20
19
|
- lib/messengerjs-rails/version.rb
|
21
20
|
- lib/messengerjs-rails.rb
|
22
21
|
- vendor/assets/javascripts/messenger-theme-future.js
|
23
22
|
- vendor/assets/javascripts/messenger.js
|
23
|
+
- vendor/assets/javascripts/messenger.min.js
|
24
24
|
- vendor/assets/stylesheets/messenger-spinner.css
|
25
25
|
- vendor/assets/stylesheets/messenger-theme-air.css
|
26
26
|
- vendor/assets/stylesheets/messenger-theme-block.css
|
@@ -1,79 +0,0 @@
|
|
1
|
-
require 'rack'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
module MessengerJS
|
5
|
-
|
6
|
-
class Middleware
|
7
|
-
|
8
|
-
KEY = 'action_dispatch.request.flash_hash'.freeze
|
9
|
-
|
10
|
-
def initialize(app, options = {})
|
11
|
-
@app = app
|
12
|
-
@options = {
|
13
|
-
|
14
|
-
}.merge(options)
|
15
|
-
end
|
16
|
-
|
17
|
-
def call(env)
|
18
|
-
@env = env
|
19
|
-
@status, @headers, @response = @app.call(env)
|
20
|
-
|
21
|
-
session = Request::Session.find(env) || {}
|
22
|
-
flash_hash = env[KEY]
|
23
|
-
|
24
|
-
insert_messenger_to_response
|
25
|
-
|
26
|
-
[@status, @headers, @response]
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def insert_messenger_to_response
|
34
|
-
@response.each do |response_part|
|
35
|
-
if is_regular_requests? && is_html_response?
|
36
|
-
|
37
|
-
elsif is_turbolink_request? && is_html_response?
|
38
|
-
|
39
|
-
elsif is_ajax_request? && is_html_response?
|
40
|
-
|
41
|
-
elsif is_ajax_request? && is_javascript_response?
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def is_regular_request?
|
49
|
-
!(is_ajax_request? || is_turbolink_request?)
|
50
|
-
end
|
51
|
-
|
52
|
-
def is_turbolink_request?
|
53
|
-
@env.has_key?("HTTP_X_XHR_REFERER")
|
54
|
-
end
|
55
|
-
|
56
|
-
def is_ajax_request?
|
57
|
-
@env.has_key?("HTTP_X_REQUESTED_WITH") && @env["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest"
|
58
|
-
end
|
59
|
-
|
60
|
-
def is_html_response?
|
61
|
-
@headers["Content-Type"].include?("text/html") if @headers.has_key?("Content-Type")
|
62
|
-
end
|
63
|
-
|
64
|
-
def is_javascript_response?
|
65
|
-
@headers["Content-Type"].include?("text/javascript") if @headers.has_key?("Content-Type")
|
66
|
-
end
|
67
|
-
|
68
|
-
def render_messenger_scripts
|
69
|
-
<<-EOT
|
70
|
-
<!-- start Messenger -->
|
71
|
-
<script type="text/javascript">
|
72
|
-
|
73
|
-
</script>
|
74
|
-
<!-- end Messenger -->
|
75
|
-
EOT
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
79
|
-
end
|