PageSourceSearch

https://ijmrp.com/Admin_Portal/js/jquery.noty.js

js ijmrp.com collected 2026-10-05 20:48:25 UTC 8,385 bytes, 265 lines download raw bytes

1/**
2* noty - jQuery Notification Plugin v1.2.1
3* Contributors: https://github.com/needim/noty/graphs/contributors
4*
5* Examples and Documentation - http://needim.github.com/noty/
6*
7* Licensed under the MIT licenses:
8* http://www.opensource.org/licenses/mit-license.php
9*
10**/
11(function($) {
12	$.noty = function(options, customContainer) {
13
14		var base = {};
15		var $noty = null;
16		var isCustom = false;
17
18		base.init = function(options) {
19			base.options = $.extend({}, $.noty.defaultOptions, options);
20			base.options.type = base.options.cssPrefix+base.options.type;
21			base.options.id = base.options.type+'_'+new Date().getTime();
22			base.options.layout = base.options.cssPrefix+'layout_'+base.options.layout;
23
24			if (base.options.custom.container) customContainer = base.options.custom.container;
25			isCustom = ($.type(customContainer) === 'object') ? true : false;
26
27			return base.addQueue();
28		};
29
30		// Push notification to queue
31		base.addQueue = function() {
32			var isGrowl = ($.inArray(base.options.layout, $.noty.growls) == -1) ? false : true;
33	  	if (!isGrowl) (base.options.force) ? $.noty.queue.unshift({options: base.options}) : $.noty.queue.push({options: base.options});
34	  	return base.render(isGrowl);
35		};
36
37		// Render the noty
38		base.render = function(isGrowl) {
39
40			// Layout spesific container settings
41			var container = (isCustom) ? customContainer.addClass(base.options.theme+' '+base.options.layout+' noty_custom_container') : $('body');
42	  	if (isGrowl) {
43	  		if ($('ul.noty_cont.' + base.options.layout).length == 0)
44	  			container.prepend($('<ul/>').addClass('noty_cont ' + base.options.layout));
45	  		container = $('ul.noty_cont.' + base.options.layout);
46	  	} else {
47	  		if ($.noty.available) {
48					var fromQueue = $.noty.queue.shift(); // Get noty from queue
49					if ($.type(fromQueue) === 'object') {
50						$.noty.available = false;
51						base.options = fromQueue.options;
52					} else {
53						$.noty.available = true; // Queue is over
54						return base.options.id;
55					}
56	  		} else {
57	  			return base.options.id;
58	  		}
59	  	}
60	  	base.container = container;
61
62	  	// Generating noty bar
63	  	base.bar = $('<div class="noty_bar"/>').attr('id', base.options.id).addClass(base.options.theme+' '+base.options.layout+' '+base.options.type);
64	  	$noty = base.bar;
65	  	$noty.append(base.options.template).find('.noty_text').html(base.options.text);
66	  	$noty.data('noty_options', base.options);
67
68	  	// Close button display
69	  	(base.options.closeButton) ? $noty.addClass('noty_closable').find('.noty_close').show() : $noty.find('.noty_close').remove();
70
71	  	// Bind close event to button
72	  	$noty.find('.noty_close').bind('click', function() { $noty.trigger('noty.close'); });
73
74	  	// If we have a button we must disable closeOnSelfClick and closeOnSelfOver option
75	  	if (base.options.buttons) base.options.closeOnSelfClick = base.options.closeOnSelfOver = false;
76	  	// Close on self click
77	  	if (base.options.closeOnSelfClick) $noty.bind('click', function() { $noty.trigger('noty.close'); }).css('cursor', 'pointer');
78	  	// Close on self mouseover
79	  	if (base.options.closeOnSelfOver) $noty.bind('mouseover', function() { $noty.trigger('noty.close'); }).css('cursor', 'pointer');
80
81	  	// Set buttons if available
82	  	if (base.options.buttons) {
83				$buttons = $('<div/>').addClass('noty_buttons');
84				$noty.find('.noty_message').append($buttons);
85				$.each(base.options.buttons, function(i, button) {
86					bclass = (button.type) ? button.type : 'gray';
87					$button = $('<button/>').addClass(bclass).html(button.text).appendTo($noty.find('.noty_buttons'))
88					.bind('click', function() {
89						if ($.isFunction(button.click)) {
90							button.click.call($button, $noty);
91						}
92					});
93				});
94			}
95
96	  	return base.show(isGrowl);
97		};
98
99		base.show = function(isGrowl) {
100
101			// is Modal?
102			if (base.options.modal) $('<div/>').addClass('noty_modal').addClass(base.options.theme).prependTo($('body')).fadeIn('fast');
103
104			$noty.close = function() { return this.trigger('noty.close'); };
105
106			// Prepend noty to container
107			(isGrowl) ? base.container.prepend($('<li/>').append($noty)) : base.container.prepend($noty);
108
109	  	// topCenter and center specific options
110	  	if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
111				$.noty.reCenter($noty);
112			}
113
114	  	$noty.bind('noty.setText', function(event, text) {
115	  		$noty.find('.noty_text').html(text); 
116	  		
117	  		if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
118	  			$.noty.reCenter($noty);
119	  		}
120	  	});
121
122	  	$noty.bind('noty.setType', function(event, type) {
123	  		$noty.removeClass($noty.data('noty_options').type); 
124
125			type = $noty.data('noty_options').cssPrefix+type;
126
127			$noty.data('noty_options').type = type;
128
129			$noty.addClass(type);
130	  		
131	  		if (base.options.layout == 'noty_layout_topCenter' || base.options.layout == 'noty_layout_center') {
132	  			$.noty.reCenter($noty);
133	  		}
134	  	});
135
136	  	$noty.bind('noty.getId', function(event) {
137	  		return $noty.data('noty_options').id;
138	  	});
139
140	  	// Bind close event
141	  	$noty.one('noty.close', function(event) {
142				var options = $noty.data('noty_options');
143        if(options.onClose){options.onClose();}
144
145				// Modal Cleaning
146				if (options.modal) $('.noty_modal').fadeOut('fast', function() { $(this).remove(); });
147
148				$noty.clearQueue().stop().animate(
149						$noty.data('noty_options').animateClose,
150						$noty.data('noty_options').speed,
151						$noty.data('noty_options').easing,
152						$noty.data('noty_options').onClosed)
153				.promise().done(function() {
154
155					// Layout spesific cleaning
156					if ($.inArray($noty.data('noty_options').layout, $.noty.growls) > -1) {
157						$noty.parent().remove();
158					} else {
159						$noty.remove();
160
161						// queue render
162						$.noty.available = true;
163						base.render(false);
164					}
165
166				});
167			});
168
169	  	// Start the show
170      if(base.options.onShow){base.options.onShow();}
171	  	$noty.animate(base.options.animateOpen, base.options.speed, base.options.easing, base.options.onShown);
172
173	  	// If noty is have a timeout option
174	  	if (base.options.timeout) $noty.delay(base.options.timeout).promise().done(function() { $noty.trigger('noty.close'); });
175			return base.options.id;
176		};
177
178		// Run initializer
179		return base.init(options);
180	};
181
182	// API
183	$.noty.get = function(id) { return $('#'+id); };
184	$.noty.close = function(id) {
185		//remove from queue if not already visible
186		for(var i=0;i<$.noty.queue.length;) {
187			if($.noty.queue[i].options.id==id)
188				$.noty.queue.splice(id,1);
189			else
190				i++;
191		}
192		//close if already visible
193		$.noty.get(id).trigger('noty.close');
194	};
195	$.noty.setText = function(id, text) {
196		$.noty.get(id).trigger('noty.setText', text);
197	};
198	$.noty.setType = function(id, type) {
199		$.noty.get(id).trigger('noty.setType', type);
200	};
201	$.noty.closeAll = function() {
202		$.noty.clearQueue();
203		$('.noty_bar').trigger('noty.close');
204	};
205	$.noty.reCenter = function(noty) {
206		noty.css({'left': ($(window).width() - noty.outerWidth()) / 2 + 'px'});
207	};
208	$.noty.clearQueue = function() {
209		$.noty.queue = [];
210	};
211  
212  var windowAlert = window.alert;
213  $.noty.consumeAlert = function(options){
214    window.alert = function(text){
215      if(options){options.text = text;}
216      else{options = {text:text};}
217      $.noty(options);
218    };
219  }
220  $.noty.stopConsumeAlert = function(){
221    window.alert = windowAlert;
222  }
223
224	$.noty.queue = [];
225	$.noty.growls = ['noty_layout_topLeft', 'noty_layout_topRight', 'noty_layout_bottomLeft', 'noty_layout_bottomRight'];
226	$.noty.available = true;
227	$.noty.defaultOptions = {
228		layout: 'top',
229		theme: 'noty_theme_default',
230		animateOpen: {height: 'toggle'},
231		animateClose: {height: 'toggle'},
232		easing: 'swing',
233		text: '',
234		type: 'alert',
235		speed: 500,
236		timeout: 5000,
237		closeButton: false,
238		closeOnSelfClick: true,
239		closeOnSelfOver: false,
240		force: false,
241		onShow: false,
242		onShown: false,
243		onClose: false,
244		onClosed: false,
245		buttons: false,
246		modal: false,
247		template: '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
248		cssPrefix: 'noty_',
249		custom: {
250			container: null
251		}
252	};
253
254	$.fn.noty = function(options) {
255		return this.each(function() {
256			 (new $.noty(options, $(this)));
257		});
258	};
259
260})(jQuery);
261
262//Helper
263function noty(options) {
264	return jQuery.noty(options); // returns an id
265}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.