vendor/assets/javascripts/noty/jquery.noty.js in noty-rails-2.2.2 vs vendor/assets/javascripts/noty/jquery.noty.js in noty-rails-2.2.9
- old
+ new
@@ -1,41 +1,40 @@
-/**
- * noty - jQuery Notification Plugin v2.2.2
- * Contributors: https://github.com/needim/noty/graphs/contributors
- *
- * Examples and Documentation - http://needim.github.com/noty/
- *
- * Licensed under the MIT licenses:
- * http://www.opensource.org/licenses/mit-license.php
- *
- **/
+/*!
+ @package noty - jQuery Notification Plugin
+ @version version: 2.2.9
+ @contributors https://github.com/needim/noty/graphs/contributors
-if (typeof Object.create !== 'function') {
- Object.create = function (o) {
+ @documentation Examples and Documentation - http://needim.github.com/noty/
+
+ @license Licensed under the MIT licenses: http://www.opensource.org/licenses/mit-license.php
+ */
+
+if(typeof Object.create !== 'function') {
+ Object.create = function(o) {
function F() {
}
F.prototype = o;
return new F();
};
}
-(function ($) {
+(function($) {
var NotyObject = {
- init:function (options) {
+ init: function(options) {
// Mix in the passed in options with the default options
this.options = $.extend({}, $.noty.defaults, options);
this.options.layout = (this.options.custom) ? $.noty.layouts['inline'] : $.noty.layouts[this.options.layout];
- if ($.noty.themes[this.options.theme])
- this.options.theme = $.noty.themes[this.options.theme];
- else
- options.themeClassName = this.options.theme;
+ if($.noty.themes[this.options.theme])
+ this.options.theme = $.noty.themes[this.options.theme];
+ else
+ options.themeClassName = this.options.theme;
delete options.layout;
delete options.theme;
this.options = $.extend({}, this.options, this.options.layout.options);
@@ -48,23 +47,23 @@
// return this so we can chain/use the bridge with less code.
return this;
}, // end init
- _build:function () {
+ _build: function() {
// Generating noty bar
var $bar = $('<div class="noty_bar noty_type_' + this.options.type + '"></div>').attr('id', this.options.id);
$bar.append(this.options.template).find('.noty_text').html(this.options.text);
this.$bar = (this.options.layout.parent.object !== null) ? $(this.options.layout.parent.object).css(this.options.layout.parent.css).append($bar) : $bar;
- if (this.options.themeClassName)
- this.$bar.addClass(this.options.themeClassName).addClass('noty_container_type_' + this.options.type);
+ if(this.options.themeClassName)
+ this.$bar.addClass(this.options.themeClassName).addClass('noty_container_type_' + this.options.type);
// Set buttons if available
- if (this.options.buttons) {
+ if(this.options.buttons) {
// If we have button disable closeWith & timeout options
this.options.closeWith = [];
this.options.timeout = false;
@@ -72,15 +71,15 @@
(this.options.layout.parent.object !== null) ? this.$bar.find('.noty_bar').append($buttons) : this.$bar.append($buttons);
var self = this;
- $.each(this.options.buttons, function (i, button) {
+ $.each(this.options.buttons, function(i, button) {
var $button = $('<button/>').addClass((button.addClass) ? button.addClass : 'gray').html(button.text).attr('id', button.id ? button.id : 'button-' + i)
.appendTo(self.$bar.find('.noty_buttons'))
- .bind('click', function () {
- if ($.isFunction(button.onClick)) {
+ .on('click', function() {
+ if($.isFunction(button.onClick)) {
button.onClick.call($button, self);
}
});
});
}
@@ -92,132 +91,134 @@
$.noty.store[this.options.id] = this; // store noty for api
}, // end _build
- show:function () {
+ show: function() {
var self = this;
- (self.options.custom) ? self.options.custom.find(self.options.layout.container.selector).append(self.$bar) : $(self.options.layout.container.selector).append(self.$bar);
+ (self.options.custom) ? self.options.custom.find(self.options.layout.container.selector).append(self.$bar) : $(self.options.layout.container.selector).append(self.$bar);
- if (self.options.theme && self.options.theme.style)
- self.options.theme.style.apply(self);
+ if(self.options.theme && self.options.theme.style)
+ self.options.theme.style.apply(self);
($.type(self.options.layout.css) === 'function') ? this.options.layout.css.apply(self.$bar) : self.$bar.css(this.options.layout.css || {});
self.$bar.addClass(self.options.layout.addClass);
self.options.layout.container.style.apply($(self.options.layout.container.selector));
self.showing = true;
- if (self.options.theme && self.options.theme.style)
- self.options.theme.callback.onShow.apply(this);
+ if(self.options.theme && self.options.theme.style)
+ self.options.theme.callback.onShow.apply(this);
- if ($.inArray('click', self.options.closeWith) > -1)
- self.$bar.css('cursor', 'pointer').one('click', function (evt) {
+ if($.inArray('click', self.options.closeWith) > -1)
+ self.$bar.css('cursor', 'pointer').one('click', function(evt) {
self.stopPropagation(evt);
- if (self.options.callback.onCloseClick) {
+ if(self.options.callback.onCloseClick) {
self.options.callback.onCloseClick.apply(self);
}
self.close();
});
- if ($.inArray('hover', self.options.closeWith) > -1)
- self.$bar.one('mouseenter', function () {
+ if($.inArray('hover', self.options.closeWith) > -1)
+ self.$bar.one('mouseenter', function() {
self.close();
});
- if ($.inArray('button', self.options.closeWith) > -1)
- self.$closeButton.one('click', function (evt) {
+ if($.inArray('button', self.options.closeWith) > -1)
+ self.$closeButton.one('click', function(evt) {
self.stopPropagation(evt);
self.close();
});
- if ($.inArray('button', self.options.closeWith) == -1)
+ if($.inArray('button', self.options.closeWith) == -1)
self.$closeButton.remove();
- if (self.options.callback.onShow)
+ if(self.options.callback.onShow)
self.options.callback.onShow.apply(self);
self.$bar.animate(
self.options.animation.open,
self.options.animation.speed,
self.options.animation.easing,
- function () {
- if (self.options.callback.afterShow) self.options.callback.afterShow.apply(self);
+ function() {
+ if(self.options.callback.afterShow) self.options.callback.afterShow.apply(self);
self.showing = false;
self.shown = true;
});
// If noty is have a timeout option
- if (self.options.timeout)
- self.$bar.delay(self.options.timeout).promise().done(function () {
+ if(self.options.timeout)
+ self.$bar.delay(self.options.timeout).promise().done(function() {
self.close();
});
return this;
}, // end show
- close:function () {
+ close: function() {
- if (this.closed) return;
- if (this.$bar && this.$bar.hasClass('i-am-closing-now')) return;
+ if(this.closed) return;
+ if(this.$bar && this.$bar.hasClass('i-am-closing-now')) return;
var self = this;
- if (this.showing) {
- self.$bar.queue(
- function () {
- self.close.apply(self);
- }
- )
- return;
+ if(this.showing) {
+ self.$bar.queue(
+ function() {
+ self.close.apply(self);
+ }
+ );
+ return;
}
- if (!this.shown && !this.showing) { // If we are still waiting in the queue just delete from queue
+ this.$bar.dequeue();
+
+ if(!this.shown && !this.showing) { // If we are still waiting in the queue just delete from queue
var queue = [];
- $.each($.noty.queue, function (i, n) {
- if (n.options.id != self.options.id) {
+ $.each($.noty.queue, function(i, n) {
+ if(n.options.id != self.options.id) {
queue.push(n);
}
});
$.noty.queue = queue;
return;
}
self.$bar.addClass('i-am-closing-now');
- if (self.options.callback.onClose) {
+ if(self.options.callback.onClose) {
self.options.callback.onClose.apply(self);
}
self.$bar.clearQueue().stop().animate(
self.options.animation.close,
self.options.animation.speed,
self.options.animation.easing,
- function () {
- if (self.options.callback.afterClose) self.options.callback.afterClose.apply(self);
+ function() {
+ if(self.options.callback.afterClose) self.options.callback.afterClose.apply(self);
})
- .promise().done(function () {
+ .promise().done(function() {
// Modal Cleaning
- if (self.options.modal) {
+ if(self.options.modal) {
$.notyRenderer.setModalCount(-1);
- if ($.notyRenderer.getModalCount() == 0) $('.noty_modal').fadeOut('fast', function () {
+ if($.notyRenderer.getModalCount() == 0) $('.noty_modal').fadeOut('fast', function() {
$(this).remove();
});
}
// Layout Cleaning
$.notyRenderer.setLayoutCountFor(self, -1);
- if ($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove();
+ if($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove();
// Make sure self.$bar has not been removed before attempting to remove it
- if (typeof self.$bar !== 'undefined' && self.$bar !== null ) {
+ if(typeof self.$bar !== 'undefined' && self.$bar !== null) {
self.$bar.remove();
self.$bar = null;
self.closed = true;
}
@@ -225,167 +226,180 @@
if(self.options.theme.callback && self.options.theme.callback.onClose) {
self.options.theme.callback.onClose.apply(self);
}
- if (!self.options.dismissQueue) {
+ if(!self.options.dismissQueue) {
// Queue render
$.noty.ontap = true;
$.notyRenderer.render();
}
- if (self.options.maxVisible > 0 && self.options.dismissQueue) {
- $.notyRenderer.render();
- }
+ if(self.options.maxVisible > 0 && self.options.dismissQueue) {
+ $.notyRenderer.render();
+ }
})
}, // end close
- setText:function (text) {
- if (!this.closed) {
+ setText: function(text) {
+ if(!this.closed) {
this.options.text = text;
this.$bar.find('.noty_text').html(text);
}
return this;
},
- setType:function (type) {
- if (!this.closed) {
+ setType: function(type) {
+ if(!this.closed) {
this.options.type = type;
this.options.theme.style.apply(this);
this.options.theme.callback.onShow.apply(this);
}
return this;
},
- setTimeout:function (time) {
- if (!this.closed) {
+ setTimeout: function(time) {
+ if(!this.closed) {
var self = this;
this.options.timeout = time;
- self.$bar.delay(self.options.timeout).promise().done(function () {
+ self.$bar.delay(self.options.timeout).promise().done(function() {
self.close();
});
}
return this;
},
- stopPropagation:function (evt) {
+ stopPropagation: function(evt) {
evt = evt || window.event;
- if (typeof evt.stopPropagation !== "undefined") {
+ if(typeof evt.stopPropagation !== "undefined") {
evt.stopPropagation();
- } else {
+ }
+ else {
evt.cancelBubble = true;
}
},
- closed:false,
- showing:false,
- shown:false
+ closed : false,
+ showing: false,
+ shown : false
}; // end NotyObject
$.notyRenderer = {};
- $.notyRenderer.init = function (options) {
+ $.notyRenderer.init = function(options) {
// Renderer creates a new noty
var notification = Object.create(NotyObject).init(options);
- if (notification.options.killer)
- $.noty.closeAll();
+ if(notification.options.killer)
+ $.noty.closeAll();
(notification.options.force) ? $.noty.queue.unshift(notification) : $.noty.queue.push(notification);
$.notyRenderer.render();
return ($.noty.returns == 'object') ? notification : notification.options.id;
};
- $.notyRenderer.render = function () {
+ $.notyRenderer.render = function() {
var instance = $.noty.queue[0];
- if ($.type(instance) === 'object') {
- if (instance.options.dismissQueue) {
- if (instance.options.maxVisible > 0) {
- if ($(instance.options.layout.container.selector + ' li').length < instance.options.maxVisible) {
- $.notyRenderer.show($.noty.queue.shift());
- } else {
+ if($.type(instance) === 'object') {
+ if(instance.options.dismissQueue) {
+ if(instance.options.maxVisible > 0) {
+ if($(instance.options.layout.container.selector + ' li').length < instance.options.maxVisible) {
+ $.notyRenderer.show($.noty.queue.shift());
+ }
+ else {
- }
- } else {
- $.notyRenderer.show($.noty.queue.shift());
- }
- } else {
- if ($.noty.ontap) {
+ }
+ }
+ else {
$.notyRenderer.show($.noty.queue.shift());
+ }
+ }
+ else {
+ if($.noty.ontap) {
+ $.notyRenderer.show($.noty.queue.shift());
$.noty.ontap = false;
}
}
- } else {
+ }
+ else {
$.noty.ontap = true; // Queue is over
}
};
- $.notyRenderer.show = function (notification) {
+ $.notyRenderer.show = function(notification) {
- if (notification.options.modal) {
+ if(notification.options.modal) {
$.notyRenderer.createModalFor(notification);
$.notyRenderer.setModalCount(+1);
}
// Where is the container?
- if (notification.options.custom) {
- if (notification.options.custom.find(notification.options.layout.container.selector).length == 0) {
- notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new'));
- } else {
- notification.options.custom.find(notification.options.layout.container.selector).removeClass('i-am-new');
- }
- } else {
- if ($(notification.options.layout.container.selector).length == 0) {
- $('body').append($(notification.options.layout.container.object).addClass('i-am-new'));
- } else {
- $(notification.options.layout.container.selector).removeClass('i-am-new');
- }
- }
+ if(notification.options.custom) {
+ if(notification.options.custom.find(notification.options.layout.container.selector).length == 0) {
+ notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new'));
+ }
+ else {
+ notification.options.custom.find(notification.options.layout.container.selector).removeClass('i-am-new');
+ }
+ }
+ else {
+ if($(notification.options.layout.container.selector).length == 0) {
+ $('body').append($(notification.options.layout.container.object).addClass('i-am-new'));
+ }
+ else {
+ $(notification.options.layout.container.selector).removeClass('i-am-new');
+ }
+ }
$.notyRenderer.setLayoutCountFor(notification, +1);
notification.show();
};
- $.notyRenderer.createModalFor = function (notification) {
- if ($('.noty_modal').length == 0) {
- var modal = $('<div/>').addClass('noty_modal').addClass(notification.options.theme).data('noty_modal_count', 0);
+ $.notyRenderer.createModalFor = function(notification) {
+ if($('.noty_modal').length == 0) {
+ var modal = $('<div/>').addClass('noty_modal').addClass(notification.options.theme).data('noty_modal_count', 0);
- if (notification.options.theme.modal && notification.options.theme.modal.css)
- modal.css(notification.options.theme.modal.css);
+ if(notification.options.theme.modal && notification.options.theme.modal.css)
+ modal.css(notification.options.theme.modal.css);
- modal.prependTo($('body')).fadeIn('fast');
- }
+ modal.prependTo($('body')).fadeIn('fast');
+
+ if($.inArray('backdrop', notification.options.closeWith) > -1)
+ modal.on('click', function(e) {
+ $.noty.closeAll();
+ });
+ }
};
- $.notyRenderer.getLayoutCountFor = function (notification) {
+ $.notyRenderer.getLayoutCountFor = function(notification) {
return $(notification.options.layout.container.selector).data('noty_layout_count') || 0;
};
- $.notyRenderer.setLayoutCountFor = function (notification, arg) {
+ $.notyRenderer.setLayoutCountFor = function(notification, arg) {
return $(notification.options.layout.container.selector).data('noty_layout_count', $.notyRenderer.getLayoutCountFor(notification) + arg);
};
- $.notyRenderer.getModalCount = function () {
+ $.notyRenderer.getModalCount = function() {
return $('.noty_modal').data('noty_modal_count') || 0;
};
- $.notyRenderer.setModalCount = function (arg) {
+ $.notyRenderer.setModalCount = function(arg) {
return $('.noty_modal').data('noty_modal_count', $.notyRenderer.getModalCount() + arg);
};
// This is for custom container
- $.fn.noty = function (options) {
+ $.fn.noty = function(options) {
options.custom = $(this);
return $.notyRenderer.init(options);
};
$.noty = {};
@@ -394,89 +408,89 @@
$.noty.layouts = {};
$.noty.themes = {};
$.noty.returns = 'object';
$.noty.store = {};
- $.noty.get = function (id) {
+ $.noty.get = function(id) {
return $.noty.store.hasOwnProperty(id) ? $.noty.store[id] : false;
};
- $.noty.close = function (id) {
+ $.noty.close = function(id) {
return $.noty.get(id) ? $.noty.get(id).close() : false;
};
- $.noty.setText = function (id, text) {
+ $.noty.setText = function(id, text) {
return $.noty.get(id) ? $.noty.get(id).setText(text) : false;
};
- $.noty.setType = function (id, type) {
+ $.noty.setType = function(id, type) {
return $.noty.get(id) ? $.noty.get(id).setType(type) : false;
};
- $.noty.clearQueue = function () {
+ $.noty.clearQueue = function() {
$.noty.queue = [];
};
- $.noty.closeAll = function () {
+ $.noty.closeAll = function() {
$.noty.clearQueue();
- $.each($.noty.store, function (id, noty) {
+ $.each($.noty.store, function(id, noty) {
noty.close();
});
};
var windowAlert = window.alert;
- $.noty.consumeAlert = function (options) {
- window.alert = function (text) {
- if (options)
+ $.noty.consumeAlert = function(options) {
+ window.alert = function(text) {
+ if(options)
options.text = text;
else
- options = {text:text};
+ options = {text: text};
$.notyRenderer.init(options);
};
};
- $.noty.stopConsumeAlert = function () {
+ $.noty.stopConsumeAlert = function() {
window.alert = windowAlert;
};
$.noty.defaults = {
- layout:'top',
- theme:'defaultTheme',
- type:'alert',
- text:'',
- dismissQueue:true,
- template:'<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
- animation:{
- open:{height:'toggle'},
- close:{height:'toggle'},
- easing:'swing',
- speed:500
+ layout : 'top',
+ theme : 'defaultTheme',
+ type : 'alert',
+ text : '',
+ dismissQueue: true,
+ template : '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
+ animation : {
+ open : {height: 'toggle'},
+ close : {height: 'toggle'},
+ easing: 'swing',
+ speed : 500
},
- timeout:false,
- force:false,
- modal:false,
- maxVisible:5,
- killer: false,
- closeWith:['click'],
- callback:{
- onShow:function () {
+ timeout : false,
+ force : false,
+ modal : false,
+ maxVisible : 5,
+ killer : false,
+ closeWith : ['click'],
+ callback : {
+ onShow : function() {
},
- afterShow:function () {
+ afterShow : function() {
},
- onClose:function () {
+ onClose : function() {
},
- afterClose:function () {
+ afterClose : function() {
},
- onCloseClick:function () {
+ onCloseClick: function() {
}
},
- buttons:false
+ buttons : false
};
- $(window).resize(function () {
- $.each($.noty.layouts, function (index, layout) {
+ $(window).on('resize', function() {
+ $.each($.noty.layouts, function(index, layout) {
layout.container.style.apply($(layout.container.selector));
});
});
})(jQuery);