Blame view

framework/admin/thirdparty/jquery-notice/jquery.notice.js 2.9 KB
0084d336   Administrator   Importers CRUD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  /**
  *	jQuery.noticeAdd() and jQuery.noticeRemove()
  *	These functions create and remove growl-like notices
  *		
  *   Copyright (c) 2009 Tim Benniks
  *
  *	Permission is hereby granted, free of charge, to any person obtaining a copy
  *	of this software and associated documentation files (the "Software"), to deal
  *	in the Software without restriction, including without limitation the rights
  *	to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  *	copies of the Software, and to permit persons to whom the Software is
  *	furnished to do so, subject to the following conditions:
  *
  *	The above copyright notice and this permission notice shall be included in
  *	all copies or substantial portions of the Software.
  *
  *	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  *	IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  *	FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  *	AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  *	LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  *	OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  *	THE SOFTWARE.
  *	
  *	@author 	Tim Benniks <tim@timbenniks.com>
  * 	@copyright  2009 timbenniks.com
  *	@version    $Id: jquery.notice.js 1 2009-01-24 12:24:18Z timbenniks $
  **/
  (function(jQuery)
  {
  	jQuery.extend({			
  		noticeAdd: function(options)
  		{	
  			var defaults = {
  				inEffect: 			{opacity: 'show'},	// in effect
  				inEffectDuration: 	600,				// in effect duration in miliseconds
  				stayTime: 			3000,				// time in miliseconds before the item has to disappear
  				text: 				'',					// content of the item
  				stay: 				false,				// should the notice item stay or not?
  				type: 				'notice' 			// could also be error, succes
  			}
  			
  			// declare varaibles
  			var options, noticeWrapAll, noticeItemOuter, noticeItemInner, noticeItemClose;
  								
  			options 		= jQuery.extend({}, defaults, options);
  			noticeWrapAll	= (!jQuery('.notice-wrap').length) ? jQuery('<div></div>').addClass('notice-wrap').appendTo('body') : jQuery('.notice-wrap');
  			noticeItemOuter	= jQuery('<div></div>').addClass('notice-item-wrapper');
  			noticeItemInner	= jQuery('<div></div>').hide().addClass('notice-item ' + options.type).appendTo(noticeWrapAll).html('<p>'+options.text+'</p>').animate(options.inEffect, options.inEffectDuration).wrap(noticeItemOuter);
  			noticeItemClose	= jQuery('<div></div>').addClass('notice-item-close').prependTo(noticeItemInner).html('x').click(function() { jQuery.noticeRemove(noticeItemInner) });
  			
  			if(!options.stay)
  			{
  				setTimeout(function()
  				{
  					jQuery.noticeRemove(noticeItemInner);
  				},
  				options.stayTime);
  			}
  		},
  		
  		noticeRemove: function(obj)
  		{
  			obj.animate({opacity: '0'}, 600, function()
  			{
  				obj.parent().animate({height: '0px'}, 300, function()
  				{
  					obj.parent().remove();
  				});
  			});
  		}
  	});
  })(jQuery);