vendor/assets/javascripts/noty/jquery.noty.js in noty-rails-2.0.3.1 vs vendor/assets/javascripts/noty/jquery.noty.js in noty-rails-2.1.0

- old
+ new

@@ -1,471 +1,547 @@ /** -* noty - jQuery Notification Plugin v2.0.3 -* 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 -* -**/ + * noty - jQuery Notification Plugin v2.1.0 + * 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 + * + **/ if (typeof Object.create !== 'function') { - Object.create = function (o) { - function F() {}; - F.prototype = o; - return new F(); - }; -}; + Object.create = function (o) { + function F() { + } -;(function($) { + F.prototype = o; + return new F(); + }; +} - var NotyObject = { +(function ($) { - init: function(options) { + var NotyObject = { - // Mix in the passed in options with the default options - this.options = $.extend({}, $.noty.defaults, options); + init:function (options) { - this.options.layout = (this.options.custom) ? $.noty.layouts['inline'] : $.noty.layouts[this.options.layout]; - this.options.theme = $.noty.themes[this.options.theme]; + // Mix in the passed in options with the default options + this.options = $.extend({}, $.noty.defaults, options); - delete options.layout, delete options.theme; + this.options.layout = (this.options.custom) ? $.noty.layouts['inline'] : $.noty.layouts[this.options.layout]; + this.options.theme = $.noty.themes[this.options.theme]; - this.options = $.extend({}, this.options, this.options.layout.options); - this.options.id = 'noty_' + (new Date().getTime() * Math.floor(Math.random()* 1000000)); + delete options.layout; + delete options.theme; - this.options = $.extend({}, this.options, options); + this.options = $.extend({}, this.options, this.options.layout.options); + this.options.id = 'noty_' + (new Date().getTime() * Math.floor(Math.random() * 1000000)); - // Build the noty dom initial structure - this._build(); + this.options = $.extend({}, this.options, options); - // return this so we can chain/use the bridge with less code. - return this; - }, // end init + // Build the noty dom initial structure + this._build(); - _build: function() { + // return this so we can chain/use the bridge with less code. + return this; + }, // end init - // Generating noty bar - var $bar = $('<div class="noty_bar"/>').attr('id', this.options.id); - $bar.append(this.options.template).find('.noty_text').html(this.options.text); + _build:function () { - this.$bar = (this.options.layout.parent.object !== null) ? $(this.options.layout.parent.object).css(this.options.layout.parent.css).append($bar) : $bar; + // Generating noty bar + var $bar = $('<div class="noty_bar"></div>').attr('id', this.options.id); + $bar.append(this.options.template).find('.noty_text').html(this.options.text); - // Set buttons if available - if (this.options.buttons) { + this.$bar = (this.options.layout.parent.object !== null) ? $(this.options.layout.parent.object).css(this.options.layout.parent.css).append($bar) : $bar; - // If we have button disable closeWith & timeout options - this.options.closeWith = [], this.options.timeout = false; + // Set buttons if available + if (this.options.buttons) { - var $buttons = $('<div/>').addClass('noty_buttons'); + // If we have button disable closeWith & timeout options + this.options.closeWith = []; + this.options.timeout = false; - (this.options.layout.parent.object !== null) ? this.$bar.find('.noty_bar').append($buttons) : this.$bar.append($buttons); + var $buttons = $('<div/>').addClass('noty_buttons'); - var self = this; + (this.options.layout.parent.object !== null) ? this.$bar.find('.noty_bar').append($buttons) : this.$bar.append($buttons); - $.each(this.options.buttons, function(i, button) { - var $button = $('<button/>').addClass((button.addClass) ? button.addClass : 'gray').html(button.text) - .appendTo(self.$bar.find('.noty_buttons')) - .bind('click', function(e) { if ($.isFunction(button.onClick)) { button.onClick.call($button, self); } }); - }); - } + var self = this; - // For easy access - this.$message = this.$bar.find('.noty_message'); - this.$closeButton = this.$bar.find('.noty_close'); - this.$buttons = this.$bar.find('.noty_buttons'); + $.each(this.options.buttons, function (i, button) { + var $button = $('<button/>').addClass((button.addClass) ? button.addClass : 'gray').html(button.text) + .appendTo(self.$bar.find('.noty_buttons')) + .bind('click', function () { + if ($.isFunction(button.onClick)) { + button.onClick.call($button, self); + } + }); + }); + } - $.noty.store[this.options.id] = this; // store noty for api + // For easy access + this.$message = this.$bar.find('.noty_message'); + this.$closeButton = this.$bar.find('.noty_close'); + this.$buttons = this.$bar.find('.noty_buttons'); - }, // end _build + $.noty.store[this.options.id] = this; // store noty for api - show: function() { + }, // end _build - var self = this; + show:function () { - $(self.options.layout.container.selector).append(self.$bar); + var self = this; - self.options.theme.style.apply(self); + $(self.options.layout.container.selector).append(self.$bar); - ($.type(self.options.layout.css) === 'function') ? this.options.layout.css.apply(self.$bar) : self.$bar.css(this.options.layout.css || {}); + self.options.theme.style.apply(self); - self.$bar.addClass(self.options.layout.addClass); + ($.type(self.options.layout.css) === 'function') ? this.options.layout.css.apply(self.$bar) : self.$bar.css(this.options.layout.css || {}); - self.options.layout.container.style.apply($(self.options.layout.container.selector)); + self.$bar.addClass(self.options.layout.addClass); - self.options.theme.callback.onShow.apply(this); + self.options.layout.container.style.apply($(self.options.layout.container.selector)); - if ($.inArray('click', self.options.closeWith) > -1) - self.$bar.css('cursor', 'pointer').one('click', function() { self.close(); }); + self.options.theme.callback.onShow.apply(this); - if ($.inArray('hover', self.options.closeWith) > -1) - self.$bar.one('mouseenter', function() { self.close(); }); + if ($.inArray('click', self.options.closeWith) > -1) + self.$bar.css('cursor', 'pointer').one('click', function (evt) { + self.stopPropagation(evt); + if (self.options.callback.onCloseClick) { + self.options.callback.onCloseClick.apply(self); + } + self.close(); + }); - if ($.inArray('button', self.options.closeWith) > -1) - self.$closeButton.one('click', function() { self.close(); }); + if ($.inArray('hover', self.options.closeWith) > -1) + self.$bar.one('mouseenter', function () { + self.close(); + }); - if ($.inArray('button', self.options.closeWith) == -1) - self.$closeButton.remove(); + if ($.inArray('button', self.options.closeWith) > -1) + self.$closeButton.one('click', function (evt) { + self.stopPropagation(evt); + self.close(); + }); - if (self.options.callback.onShow) - self.options.callback.onShow.apply(self); + if ($.inArray('button', self.options.closeWith) == -1) + self.$closeButton.remove(); - 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); - self.shown = true; - }); + if (self.options.callback.onShow) + self.options.callback.onShow.apply(self); - // If noty is have a timeout option - if (self.options.timeout) - self.$bar.delay(self.options.timeout).promise().done(function() { self.close(); }); + 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); + self.shown = true; + }); - return this; + // If noty is have a timeout option + if (self.options.timeout) + self.$bar.delay(self.options.timeout).promise().done(function () { + self.close(); + }); - }, // end show + return this; - close: function() { + }, // end show - if (this.closed) return; + close:function () { - var self = this; + if (this.closed) return; + if (this.$bar && this.$bar.hasClass('i-am-closing-now')) return; - if (!this.shown) { // If we are still waiting in the queue just delete from queue - $.each($.noty.queue, function(i, n) { - if (n.options.id == self.options.id) { - $.noty.queue.splice(i, 1); - } - }); - return; - } + var self = this; - self.$bar.addClass('i-am-closing-now'); + if (!this.shown) { // 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) { + queue.push(n); + } + }); + $.noty.queue = queue; + return; + } - if (self.options.callback.onClose) { self.options.callback.onClose.apply(self); } + self.$bar.addClass('i-am-closing-now'); - 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); }) - .promise().done(function() { + if (self.options.callback.onClose) { + self.options.callback.onClose.apply(self); + } - // Modal Cleaning - if (self.options.modal) { - $.notyRenderer.setModalCount(-1); - if ($.notyRenderer.getModalCount() == 0) $('.noty_modal').fadeOut('fast', function() { $(this).remove(); }); - } + 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); + }) + .promise().done(function () { - // Layout Cleaning - $.notyRenderer.setLayoutCountFor(self, -1); - if ($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove(); + // Modal Cleaning + if (self.options.modal) { + $.notyRenderer.setModalCount(-1); + if ($.notyRenderer.getModalCount() == 0) $('.noty_modal').fadeOut('fast', function () { + $(this).remove(); + }); + } - self.$bar.remove(); - self.$bar = null; - self.closed = true; + // Layout Cleaning + $.notyRenderer.setLayoutCountFor(self, -1); + if ($.notyRenderer.getLayoutCountFor(self) == 0) $(self.options.layout.container.selector).remove(); - delete $.noty.store[self.options.id]; // deleting noty from store + // Make sure self.$bar has not been removed before attempting to remove it + if (typeof self.$bar !== 'undefined' && self.$bar !== null ) { + self.$bar.remove(); + self.$bar = null; + self.closed = true; + } - if (!self.options.dismissQueue) { - // Queue render - $.noty.ontap = true; + delete $.noty.store[self.options.id]; // deleting noty from store + self.options.theme.callback.onClose.apply(self); + + if (!self.options.dismissQueue) { + // Queue render + $.noty.ontap = true; + + $.notyRenderer.render(); + } + + if (self.options.maxVisible > 0 && self.options.dismissQueue) { $.notyRenderer.render(); } + }) - }); + }, // end close - }, // end close + setText:function (text) { + if (!this.closed) { + this.options.text = text; + this.$bar.find('.noty_text').html(text); + } + return this; + }, - 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) { + this.options.type = type; + this.options.theme.style.apply(this); + this.options.theme.callback.onShow.apply(this); + } + return this; + }, - 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) { + var self = this; + this.options.timeout = time; + self.$bar.delay(self.options.timeout).promise().done(function () { + self.close(); + }); + } + return this; + }, - closed: false, - shown: false + stopPropagation:function (evt) { + evt = evt || window.event; + if (typeof evt.stopPropagation !== "undefined") { + evt.stopPropagation(); + } else { + evt.cancelBubble = true; + } + }, - }; // end NotyObject + closed:false, + shown:false - $.notyRenderer = {}; + }; // end NotyObject - $.notyRenderer.init = function(options) { + $.notyRenderer = {}; - // Renderer creates a new noty - var notification = Object.create(NotyObject).init(options); + $.notyRenderer.init = function (options) { - (notification.options.force) ? $.noty.queue.unshift(notification) : $.noty.queue.push(notification); + // Renderer creates a new noty + var notification = Object.create(NotyObject).init(options); - $.notyRenderer.render(); + (notification.options.force) ? $.noty.queue.unshift(notification) : $.noty.queue.push(notification); - return ($.noty.returns == 'object') ? notification : notification.options.id; - }; + $.notyRenderer.render(); - $.notyRenderer.render = function() { + return ($.noty.returns == 'object') ? notification : notification.options.id; + }; - var instance = $.noty.queue[0]; + $.notyRenderer.render = function () { - if ($.type(instance) === 'object') { - if (instance.options.dismissQueue) { - $.notyRenderer.show($.noty.queue.shift()); - } else { - if ($.noty.ontap) { + 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 { + + } + } else { $.notyRenderer.show($.noty.queue.shift()); - $.noty.ontap = false; } - } - } else { - $.noty.ontap = true; // Queue is over - } + } else { + if ($.noty.ontap) { + $.notyRenderer.show($.noty.queue.shift()); + $.noty.ontap = false; + } + } + } else { + $.noty.ontap = true; // Queue is over + } - }; + }; - $.notyRenderer.show = function(notification) { + $.notyRenderer.show = function (notification) { - if (notification.options.modal) { - $.notyRenderer.createModalFor(notification); - $.notyRenderer.setModalCount(+1); - } + if (notification.options.modal) { + $.notyRenderer.createModalFor(notification); + $.notyRenderer.setModalCount(+1); + } - // Where is the container? - if ($(notification.options.layout.container.selector).length == 0) { - if (notification.options.custom) { - notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new')); - } else { - $('body').append($(notification.options.layout.container.object).addClass('i-am-new')); - } - } else { - $(notification.options.layout.container.selector).removeClass('i-am-new'); - } + // Where is the container? + if ($(notification.options.layout.container.selector).length == 0) { + if (notification.options.custom) { + notification.options.custom.append($(notification.options.layout.container.object).addClass('i-am-new')); + } else { + $('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); + $.notyRenderer.setLayoutCountFor(notification, +1); - notification.show(); - }; + notification.show(); + }; - $.notyRenderer.createModalFor = function(notification) { - if ($('.noty_modal').length == 0) - $('<div/>').addClass('noty_modal').data('noty_modal_count', 0).css(notification.options.theme.modal.css).prependTo($('body')).fadeIn('fast'); - }; + $.notyRenderer.createModalFor = function (notification) { + if ($('.noty_modal').length == 0) + $('<div/>').addClass('noty_modal').data('noty_modal_count', 0).css(notification.options.theme.modal.css).prependTo($('body')).fadeIn('fast'); + }; - $.notyRenderer.getLayoutCountFor = function(notification) { - return $(notification.options.layout.container.selector).data('noty_layout_count') || 0; - }; + $.notyRenderer.getLayoutCountFor = function (notification) { + return $(notification.options.layout.container.selector).data('noty_layout_count') || 0; + }; - $.notyRenderer.setLayoutCountFor = function(notification, arg) { - return $(notification.options.layout.container.selector).data('noty_layout_count', $.notyRenderer.getLayoutCountFor(notification) + arg); - }; + $.notyRenderer.setLayoutCountFor = function (notification, arg) { + return $(notification.options.layout.container.selector).data('noty_layout_count', $.notyRenderer.getLayoutCountFor(notification) + arg); + }; - $.notyRenderer.getModalCount = function() { - return $('.noty_modal').data('noty_modal_count') || 0; - }; + $.notyRenderer.getModalCount = function () { + return $('.noty_modal').data('noty_modal_count') || 0; + }; - $.notyRenderer.setModalCount = function(arg) { - return $('.noty_modal').data('noty_modal_count', $.notyRenderer.getModalCount() + arg); - }; + $.notyRenderer.setModalCount = function (arg) { + return $('.noty_modal').data('noty_modal_count', $.notyRenderer.getModalCount() + arg); + }; - // This is for custom container - $.fn.noty = function(options) { - options.custom = $(this); - return $.notyRenderer.init(options); - }; - - $.noty = {}; - $.noty.queue = []; - $.noty.ontap = true; - $.noty.layouts = {}; - $.noty.themes = {}; - $.noty.returns = 'object'; - $.noty.store = {}; + // This is for custom container + $.fn.noty = function (options) { + options.custom = $(this); + return $.notyRenderer.init(options); + }; - $.noty.get = function(id) { - return $.noty.store.hasOwnProperty(id) ? $.noty.store[id] : false; - }; + $.noty = {}; + $.noty.queue = []; + $.noty.ontap = true; + $.noty.layouts = {}; + $.noty.themes = {}; + $.noty.returns = 'object'; + $.noty.store = {}; - $.noty.close = function(id) { - return $.noty.get(id) ? $.noty.get(id).close() : false; - }; + $.noty.get = function (id) { + return $.noty.store.hasOwnProperty(id) ? $.noty.store[id] : false; + }; - $.noty.setText = function(id, text) { - return $.noty.get(id) ? $.noty.get(id).setText(text) : false; - }; + $.noty.close = function (id) { + return $.noty.get(id) ? $.noty.get(id).close() : false; + }; - $.noty.setType = function(id, type) { - return $.noty.get(id) ? $.noty.get(id).setType(type) : false; - }; + $.noty.setText = function (id, text) { + return $.noty.get(id) ? $.noty.get(id).setText(text) : false; + }; - $.noty.clearQueue = function() { - $.noty.queue = []; - }; + $.noty.setType = function (id, type) { + return $.noty.get(id) ? $.noty.get(id).setType(type) : false; + }; - $.noty.closeAll = function() { - $.noty.clearQueue(); - $.each($.noty.store, function(id, noty) { - noty.close(); - }); - }; + $.noty.clearQueue = function () { + $.noty.queue = []; + }; - var windowAlert = window.alert; + $.noty.closeAll = function () { + $.noty.clearQueue(); + $.each($.noty.store, function (id, noty) { + noty.close(); + }); + }; - $.noty.consumeAlert = function(options) { - window.alert = function(text) { - if (options) - options.text = text; - else - options = {text:text}; + var windowAlert = window.alert; - $.notyRenderer.init(options); - }; - }; + $.noty.consumeAlert = function (options) { + window.alert = function (text) { + if (options) + options.text = text; + else + options = {text:text}; - $.noty.stopConsumeAlert = function(){ - window.alert = windowAlert; - }; + $.notyRenderer.init(options); + }; + }; - $.noty.defaults = { - layout: 'top', - theme: 'default', - 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, - closeWith: ['click'], - callback: { - onShow: function() {}, - afterShow: function() {}, - onClose: function() {}, - afterClose: function() {} - }, - buttons: false - }; + $.noty.stopConsumeAlert = function () { + window.alert = windowAlert; + }; - $(window).resize(function() { - $.each($.noty.layouts, function(index, layout) { - layout.container.style.apply($(layout.container.selector)); - }); - }); + $.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 + }, + timeout:false, + force:false, + modal:false, + maxVisible:5, + closeWith:['click'], + callback:{ + onShow:function () { + }, + afterShow:function () { + }, + onClose:function () { + }, + afterClose:function () { + }, + onCloseClick:function () { + } + }, + buttons:false + }; + $(window).resize(function () { + $.each($.noty.layouts, function (index, layout) { + layout.container.style.apply($(layout.container.selector)); + }); + }); + })(jQuery); // Helpers -function noty(options) { +window.noty = function noty(options) { - // This is for BC - Will be deleted on v2.2.0 - var using_old = 0 - , old_to_new = { - 'animateOpen': 'animation.open', - 'animateClose': 'animation.close', - 'easing': 'animation.easing', - 'speed': 'animation.speed', - 'onShow': 'callback.onShow', - 'onShown': 'callback.afterShow', - 'onClose': 'callback.onClose', - 'onClosed': 'callback.afterClose' - } + // This is for BC - Will be deleted on v2.2.0 + var using_old = 0 + , old_to_new = { + 'animateOpen':'animation.open', + 'animateClose':'animation.close', + 'easing':'animation.easing', + 'speed':'animation.speed', + 'onShow':'callback.onShow', + 'onShown':'callback.afterShow', + 'onClose':'callback.onClose', + 'onCloseClick':'callback.onCloseClick', + 'onClosed':'callback.afterClose' + }; - jQuery.each(options, function(key, value) { - if (old_to_new[key]) { - using_old++; - var _new = old_to_new[key].split('.'); + jQuery.each(options, function (key, value) { + if (old_to_new[key]) { + using_old++; + var _new = old_to_new[key].split('.'); - if (!options[_new[0]]) options[_new[0]] = {}; + if (!options[_new[0]]) options[_new[0]] = {}; - options[_new[0]][_new[1]] = (value) ? value : function() {}; - delete options[key]; - } - }); + options[_new[0]][_new[1]] = (value) ? value : function () { + }; + delete options[key]; + } + }); - if (!options.closeWith) { - options.closeWith = jQuery.noty.defaults.closeWith; - } + if (!options.closeWith) { + options.closeWith = jQuery.noty.defaults.closeWith; + } - if (options.hasOwnProperty('closeButton')) { - using_old++; - if (options.closeButton) options.closeWith.push('button'); - delete options.closeButton; - } + if (options.hasOwnProperty('closeButton')) { + using_old++; + if (options.closeButton) options.closeWith.push('button'); + delete options.closeButton; + } - if (options.hasOwnProperty('closeOnSelfClick')) { - using_old++; - if (options.closeOnSelfClick) options.closeWith.push('click'); - delete options.closeOnSelfClick; - } + if (options.hasOwnProperty('closeOnSelfClick')) { + using_old++; + if (options.closeOnSelfClick) options.closeWith.push('click'); + delete options.closeOnSelfClick; + } - if (options.hasOwnProperty('closeOnSelfOver')) { - using_old++; - if (options.closeOnSelfOver) options.closeWith.push('hover'); - delete options.closeOnSelfOver; - } + if (options.hasOwnProperty('closeOnSelfOver')) { + using_old++; + if (options.closeOnSelfOver) options.closeWith.push('hover'); + delete options.closeOnSelfOver; + } - if (options.hasOwnProperty('custom')) { - using_old++; - if (options.custom.container != 'null') options.custom = options.custom.container; - } + if (options.hasOwnProperty('custom')) { + using_old++; + if (options.custom.container != 'null') options.custom = options.custom.container; + } - if (options.hasOwnProperty('cssPrefix')) { - using_old++; - delete options.cssPrefix; - } + if (options.hasOwnProperty('cssPrefix')) { + using_old++; + delete options.cssPrefix; + } - if (options.theme == 'noty_theme_default') { - using_old++; - options.theme = 'default'; - } + if (options.theme == 'noty_theme_default') { + using_old++; + options.theme = 'defaultTheme'; + } - if (!options.hasOwnProperty('dismissQueue')) { - if (options.layout == 'topLeft' - || options.layout == 'topRight' - || options.layout == 'bottomLeft' - || options.layout == 'bottomRight') { - options.dismissQueue = true; - } else { - options.dismissQueue = false; - } - } + if (!options.hasOwnProperty('dismissQueue')) { + options.dismissQueue = jQuery.noty.defaults.dismissQueue; + } - if (options.buttons) { - jQuery.each(options.buttons, function(i, button) { - if (button.click) { - using_old++; - button.onClick = button.click; - delete button.click; - } - if (button.type) { - using_old++; - button.addClass = button.type; - delete button.type; - } - }); - } + if (!options.hasOwnProperty('maxVisible')) { + options.maxVisible = jQuery.noty.defaults.maxVisible; + } - if (using_old) console.warn('You are using noty v2 with v1.x.x options. @deprecated until v2.2.0 - Please update your options.'); + if (options.buttons) { + jQuery.each(options.buttons, function (i, button) { + if (button.click) { + using_old++; + button.onClick = button.click; + delete button.click; + } + if (button.type) { + using_old++; + button.addClass = button.type; + delete button.type; + } + }); + } - // console.log(options); - // End of the BC + if (using_old) { + if (typeof console !== "undefined" && console.warn) { + console.warn('You are using noty v2 with v1.x.x options. @deprecated until v2.2.0 - Please update your options.'); + } + } - return jQuery.notyRenderer.init(options); -} \ No newline at end of file + // console.log(options); + // End of the BC + + return jQuery.notyRenderer.init(options); +}