root / snf-astakos-app / astakos / im / static / im / js / jquery.alerts.js @ d2a553dc
History | View | Annotate | Download (7.5 kB)
1 | 50dce93a | Olga Brani | // jQuery Alert Dialogs Plugin
|
---|---|---|---|
2 | 50dce93a | Olga Brani | //
|
3 | 50dce93a | Olga Brani | // Version 1.1
|
4 | 50dce93a | Olga Brani | //
|
5 | 50dce93a | Olga Brani | // Cory S.N. LaViska
|
6 | 50dce93a | Olga Brani | // A Beautiful Site (http://abeautifulsite.net/)
|
7 | 50dce93a | Olga Brani | // 14 May 2009
|
8 | 50dce93a | Olga Brani | //
|
9 | 50dce93a | Olga Brani | // Visit http://abeautifulsite.net/notebook/87 for more information
|
10 | 50dce93a | Olga Brani | //
|
11 | 50dce93a | Olga Brani | // Usage:
|
12 | 50dce93a | Olga Brani | // jAlert( message, [title, callback] )
|
13 | 50dce93a | Olga Brani | // jConfirm( message, [title, callback] )
|
14 | 50dce93a | Olga Brani | // jPrompt( message, [value, title, callback] )
|
15 | 50dce93a | Olga Brani | //
|
16 | 50dce93a | Olga Brani | // History:
|
17 | 50dce93a | Olga Brani | //
|
18 | 50dce93a | Olga Brani | // 1.00 - Released (29 December 2008)
|
19 | 50dce93a | Olga Brani | //
|
20 | 50dce93a | Olga Brani | // 1.01 - Fixed bug where unbinding would destroy all resize events
|
21 | 50dce93a | Olga Brani | //
|
22 | 50dce93a | Olga Brani | // License:
|
23 | 50dce93a | Olga Brani | //
|
24 | 50dce93a | Olga Brani | // This plugin is dual-licensed under the GNU General Public License and the MIT License and
|
25 | 50dce93a | Olga Brani | // is copyright 2008 A Beautiful Site, LLC.
|
26 | 50dce93a | Olga Brani | //
|
27 | 50dce93a | Olga Brani | (function($) { |
28 | 50dce93a | Olga Brani | |
29 | 50dce93a | Olga Brani | $.alerts = {
|
30 | 50dce93a | Olga Brani | |
31 | 50dce93a | Olga Brani | // These properties can be read/written by accessing $.alerts.propertyName from your scripts at any time
|
32 | 50dce93a | Olga Brani | |
33 | 50dce93a | Olga Brani | verticalOffset: -75, // vertical offset of the dialog from center screen, in pixels |
34 | 50dce93a | Olga Brani | horizontalOffset: 0, // horizontal offset of the dialog from center screen, in pixels/ |
35 | 50dce93a | Olga Brani | repositionOnResize: true, // re-centers the dialog on window resize |
36 | 50dce93a | Olga Brani | overlayOpacity: .01, // transparency level of overlay |
37 | 50dce93a | Olga Brani | overlayColor: '#FFF', // base color of overlay |
38 | 50dce93a | Olga Brani | draggable: true, // make the dialogs draggable (requires UI Draggables plugin) |
39 | 50dce93a | Olga Brani | okButton: ' OK ', // text for the OK button |
40 | 50dce93a | Olga Brani | cancelButton: ' Cancel ', // text for the Cancel button |
41 | 50dce93a | Olga Brani | dialogClass: null, // if specified, this class will be applied to all dialogs |
42 | 50dce93a | Olga Brani | |
43 | 50dce93a | Olga Brani | // Public methods
|
44 | 50dce93a | Olga Brani | |
45 | 50dce93a | Olga Brani | alert: function(message, title, callback) { |
46 | 50dce93a | Olga Brani | if( title == null ) title = 'Alert'; |
47 | 50dce93a | Olga Brani | $.alerts._show(title, message, null, 'alert', function(result) { |
48 | 50dce93a | Olga Brani | if( callback ) callback(result);
|
49 | 50dce93a | Olga Brani | }); |
50 | 50dce93a | Olga Brani | }, |
51 | 50dce93a | Olga Brani | |
52 | 50dce93a | Olga Brani | confirm: function(message, title, callback) { |
53 | 50dce93a | Olga Brani | if( title == null ) title = 'Confirm'; |
54 | 50dce93a | Olga Brani | $.alerts._show(title, message, null, 'confirm', function(result) { |
55 | 50dce93a | Olga Brani | if( callback ) callback(result);
|
56 | 50dce93a | Olga Brani | }); |
57 | 50dce93a | Olga Brani | }, |
58 | 50dce93a | Olga Brani | |
59 | 50dce93a | Olga Brani | prompt: function(message, value, title, callback) { |
60 | 50dce93a | Olga Brani | if( title == null ) title = 'Prompt'; |
61 | 50dce93a | Olga Brani | $.alerts._show(title, message, value, 'prompt', function(result) { |
62 | 50dce93a | Olga Brani | if( callback ) callback(result);
|
63 | 50dce93a | Olga Brani | }); |
64 | 50dce93a | Olga Brani | }, |
65 | 50dce93a | Olga Brani | |
66 | 50dce93a | Olga Brani | // Private methods
|
67 | 50dce93a | Olga Brani | |
68 | 50dce93a | Olga Brani | _show: function(title, msg, value, type, callback) { |
69 | 50dce93a | Olga Brani | |
70 | 50dce93a | Olga Brani | $.alerts._hide();
|
71 | 50dce93a | Olga Brani | $.alerts._overlay('show'); |
72 | 50dce93a | Olga Brani | |
73 | 50dce93a | Olga Brani | $("BODY").append( |
74 | 50dce93a | Olga Brani | '<div id="popup_container">' +
|
75 | 50dce93a | Olga Brani | '<h1 id="popup_title"></h1>' +
|
76 | 50dce93a | Olga Brani | '<div id="popup_content">' +
|
77 | 50dce93a | Olga Brani | '<div id="popup_message"></div>' +
|
78 | 50dce93a | Olga Brani | '</div>' +
|
79 | 50dce93a | Olga Brani | '</div>');
|
80 | 50dce93a | Olga Brani | |
81 | 50dce93a | Olga Brani | if( $.alerts.dialogClass ) $("#popup_container").addClass($.alerts.dialogClass); |
82 | 50dce93a | Olga Brani | |
83 | 50dce93a | Olga Brani | // IE6 Fix
|
84 | 50dce93a | Olga Brani | var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed'; |
85 | 50dce93a | Olga Brani | |
86 | 50dce93a | Olga Brani | $("#popup_container").css({ |
87 | 50dce93a | Olga Brani | position: pos,
|
88 | 50dce93a | Olga Brani | zIndex: 99999, |
89 | 50dce93a | Olga Brani | padding: 0, |
90 | 50dce93a | Olga Brani | margin: 0 |
91 | 50dce93a | Olga Brani | }); |
92 | 50dce93a | Olga Brani | |
93 | 50dce93a | Olga Brani | $("#popup_title").text(title); |
94 | 50dce93a | Olga Brani | $("#popup_content").addClass(type); |
95 | 50dce93a | Olga Brani | $("#popup_message").text(msg); |
96 | 50dce93a | Olga Brani | $("#popup_message").html( $("#popup_message").text().replace(/\n/g, '<br />') ); |
97 | 50dce93a | Olga Brani | |
98 | 50dce93a | Olga Brani | $("#popup_container").css({ |
99 | 50dce93a | Olga Brani | minWidth: $("#popup_container").outerWidth(), |
100 | 50dce93a | Olga Brani | maxWidth: $("#popup_container").outerWidth() |
101 | 50dce93a | Olga Brani | }); |
102 | 50dce93a | Olga Brani | |
103 | 50dce93a | Olga Brani | $.alerts._reposition();
|
104 | 50dce93a | Olga Brani | $.alerts._maintainPosition(true); |
105 | 50dce93a | Olga Brani | |
106 | 50dce93a | Olga Brani | switch( type ) {
|
107 | 50dce93a | Olga Brani | case 'alert': |
108 | 50dce93a | Olga Brani | $("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /></div>'); |
109 | 50dce93a | Olga Brani | $("#popup_ok").click( function() { |
110 | 50dce93a | Olga Brani | $.alerts._hide();
|
111 | 50dce93a | Olga Brani | callback(true);
|
112 | 50dce93a | Olga Brani | }); |
113 | 50dce93a | Olga Brani | $("#popup_ok").focus().keypress( function(e) { |
114 | 50dce93a | Olga Brani | if( e.keyCode == 13 || e.keyCode == 27 ) $("#popup_ok").trigger('click'); |
115 | 50dce93a | Olga Brani | }); |
116 | 50dce93a | Olga Brani | break;
|
117 | 50dce93a | Olga Brani | case 'confirm': |
118 | 50dce93a | Olga Brani | $("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>'); |
119 | 50dce93a | Olga Brani | $("#popup_ok").click( function() { |
120 | 50dce93a | Olga Brani | $.alerts._hide();
|
121 | 50dce93a | Olga Brani | if( callback ) callback(true); |
122 | 50dce93a | Olga Brani | }); |
123 | 50dce93a | Olga Brani | $("#popup_cancel").click( function() { |
124 | 50dce93a | Olga Brani | $.alerts._hide();
|
125 | 50dce93a | Olga Brani | if( callback ) callback(false); |
126 | 50dce93a | Olga Brani | }); |
127 | 50dce93a | Olga Brani | $("#popup_ok").focus(); |
128 | 50dce93a | Olga Brani | $("#popup_ok, #popup_cancel").keypress( function(e) { |
129 | 50dce93a | Olga Brani | if( e.keyCode == 13 ) $("#popup_ok").trigger('click'); |
130 | 50dce93a | Olga Brani | if( e.keyCode == 27 ) $("#popup_cancel").trigger('click'); |
131 | 50dce93a | Olga Brani | }); |
132 | 50dce93a | Olga Brani | break;
|
133 | 50dce93a | Olga Brani | case 'prompt': |
134 | 50dce93a | Olga Brani | $("#popup_message").append('<br /><input type="text" size="30" id="popup_prompt" />').after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>'); |
135 | 50dce93a | Olga Brani | $("#popup_prompt").width( $("#popup_message").width() ); |
136 | 50dce93a | Olga Brani | $("#popup_ok").click( function() { |
137 | 50dce93a | Olga Brani | var val = $("#popup_prompt").val(); |
138 | 50dce93a | Olga Brani | $.alerts._hide();
|
139 | 50dce93a | Olga Brani | if( callback ) callback( val );
|
140 | 50dce93a | Olga Brani | }); |
141 | 50dce93a | Olga Brani | $("#popup_cancel").click( function() { |
142 | 50dce93a | Olga Brani | $.alerts._hide();
|
143 | 50dce93a | Olga Brani | if( callback ) callback( null ); |
144 | 50dce93a | Olga Brani | }); |
145 | 50dce93a | Olga Brani | $("#popup_prompt, #popup_ok, #popup_cancel").keypress( function(e) { |
146 | 50dce93a | Olga Brani | if( e.keyCode == 13 ) $("#popup_ok").trigger('click'); |
147 | 50dce93a | Olga Brani | if( e.keyCode == 27 ) $("#popup_cancel").trigger('click'); |
148 | 50dce93a | Olga Brani | }); |
149 | 50dce93a | Olga Brani | if( value ) $("#popup_prompt").val(value); |
150 | 50dce93a | Olga Brani | $("#popup_prompt").focus().select(); |
151 | 50dce93a | Olga Brani | break;
|
152 | 50dce93a | Olga Brani | } |
153 | 50dce93a | Olga Brani | |
154 | 50dce93a | Olga Brani | // Make draggable
|
155 | 50dce93a | Olga Brani | if( $.alerts.draggable ) { |
156 | 50dce93a | Olga Brani | try {
|
157 | 50dce93a | Olga Brani | $("#popup_container").draggable({ handle: $("#popup_title") }); |
158 | 50dce93a | Olga Brani | $("#popup_title").css({ cursor: 'move' }); |
159 | 50dce93a | Olga Brani | } catch(e) { /* requires jQuery UI draggables */ } |
160 | 50dce93a | Olga Brani | } |
161 | 50dce93a | Olga Brani | }, |
162 | 50dce93a | Olga Brani | |
163 | 50dce93a | Olga Brani | _hide: function() { |
164 | 50dce93a | Olga Brani | $("#popup_container").remove(); |
165 | 50dce93a | Olga Brani | $.alerts._overlay('hide'); |
166 | 50dce93a | Olga Brani | $.alerts._maintainPosition(false); |
167 | 50dce93a | Olga Brani | }, |
168 | 50dce93a | Olga Brani | |
169 | 50dce93a | Olga Brani | _overlay: function(status) { |
170 | 50dce93a | Olga Brani | switch( status ) {
|
171 | 50dce93a | Olga Brani | case 'show': |
172 | 50dce93a | Olga Brani | $.alerts._overlay('hide'); |
173 | 50dce93a | Olga Brani | $("BODY").append('<div id="popup_overlay"></div>'); |
174 | 50dce93a | Olga Brani | $("#popup_overlay").css({ |
175 | 50dce93a | Olga Brani | position: 'absolute', |
176 | 50dce93a | Olga Brani | zIndex: 99998, |
177 | 50dce93a | Olga Brani | top: '0px', |
178 | 50dce93a | Olga Brani | left: '0px', |
179 | 50dce93a | Olga Brani | width: '100%', |
180 | 50dce93a | Olga Brani | height: $(document).height(), |
181 | 50dce93a | Olga Brani | background: $.alerts.overlayColor, |
182 | 50dce93a | Olga Brani | opacity: $.alerts.overlayOpacity |
183 | 50dce93a | Olga Brani | }); |
184 | 50dce93a | Olga Brani | break;
|
185 | 50dce93a | Olga Brani | case 'hide': |
186 | 50dce93a | Olga Brani | $("#popup_overlay").remove(); |
187 | 50dce93a | Olga Brani | break;
|
188 | 50dce93a | Olga Brani | } |
189 | 50dce93a | Olga Brani | }, |
190 | 50dce93a | Olga Brani | |
191 | 50dce93a | Olga Brani | _reposition: function() { |
192 | 50dce93a | Olga Brani | var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset; |
193 | 50dce93a | Olga Brani | var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset; |
194 | 50dce93a | Olga Brani | if( top < 0 ) top = 0; |
195 | 50dce93a | Olga Brani | if( left < 0 ) left = 0; |
196 | 50dce93a | Olga Brani | |
197 | 50dce93a | Olga Brani | // IE6 fix
|
198 | 50dce93a | Olga Brani | if( $.browser.msie && parseInt($.browser.version) <= 6 ) top = top + $(window).scrollTop(); |
199 | 50dce93a | Olga Brani | |
200 | 50dce93a | Olga Brani | $("#popup_container").css({ |
201 | 50dce93a | Olga Brani | top: top + 'px', |
202 | 50dce93a | Olga Brani | left: left + 'px' |
203 | 50dce93a | Olga Brani | }); |
204 | 50dce93a | Olga Brani | $("#popup_overlay").height( $(document).height() ); |
205 | 50dce93a | Olga Brani | }, |
206 | 50dce93a | Olga Brani | |
207 | 50dce93a | Olga Brani | _maintainPosition: function(status) { |
208 | 50dce93a | Olga Brani | if( $.alerts.repositionOnResize ) { |
209 | 50dce93a | Olga Brani | switch(status) {
|
210 | 50dce93a | Olga Brani | case true: |
211 | 50dce93a | Olga Brani | $(window).bind('resize', $.alerts._reposition); |
212 | 50dce93a | Olga Brani | break;
|
213 | 50dce93a | Olga Brani | case false: |
214 | 50dce93a | Olga Brani | $(window).unbind('resize', $.alerts._reposition); |
215 | 50dce93a | Olga Brani | break;
|
216 | 50dce93a | Olga Brani | } |
217 | 50dce93a | Olga Brani | } |
218 | 50dce93a | Olga Brani | } |
219 | 50dce93a | Olga Brani | |
220 | 50dce93a | Olga Brani | } |
221 | 50dce93a | Olga Brani | |
222 | 50dce93a | Olga Brani | // Shortuct functions
|
223 | 50dce93a | Olga Brani | jAlert = function(message, title, callback) { |
224 | 50dce93a | Olga Brani | $.alerts.alert(message, title, callback);
|
225 | 50dce93a | Olga Brani | } |
226 | 50dce93a | Olga Brani | |
227 | 50dce93a | Olga Brani | jConfirm = function(message, title, callback) { |
228 | 50dce93a | Olga Brani | $.alerts.confirm(message, title, callback);
|
229 | 50dce93a | Olga Brani | }; |
230 | 50dce93a | Olga Brani | |
231 | 50dce93a | Olga Brani | jPrompt = function(message, value, title, callback) { |
232 | 50dce93a | Olga Brani | $.alerts.prompt(message, value, title, callback);
|
233 | 50dce93a | Olga Brani | }; |
234 | 50dce93a | Olga Brani | |
235 | 50dce93a | Olga Brani | })(jQuery); |