h2ocube_rails_assets 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/h2ocube_rails_assets.gemspec +1 -1
- data/vendor/assets/javascripts/jquery.fileupload.js +1 -1
- data/vendor/assets/javascripts/jquery.ui.js +2 -14914
- data/vendor/assets/javascripts/jquery.ui/jquery-ui.custom.js +14879 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.accordion.js +731 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.autocomplete.js +602 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.button.js +418 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.core.js +356 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.datepicker.js +1846 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.dialog.js +858 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.draggable.js +836 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.droppable.js +294 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-blind.js +82 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-bounce.js +113 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-clip.js +67 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-drop.js +65 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-explode.js +97 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-fade.js +30 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-fold.js +76 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-highlight.js +50 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-pulsate.js +63 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-scale.js +318 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-shake.js +74 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-slide.js +64 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-transfer.js +47 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect.js +1276 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.menu.js +610 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.mouse.js +169 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.position.js +517 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.progressbar.js +105 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.resizable.js +801 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.selectable.js +261 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.slider.js +644 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.sortable.js +1096 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.spinner.js +478 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.tabs.js +1366 -0
- data/vendor/assets/javascripts/jquery.ui/jquery.ui.tooltip.js +398 -0
- data/vendor/assets/javascripts/{jquery.ui.widget.js → jquery.ui/jquery.ui.widget.js} +39 -34
- metadata +37 -9
@@ -0,0 +1,858 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery UI Dialog 1.9.2
|
3
|
+
* http://jqueryui.com
|
4
|
+
*
|
5
|
+
* Copyright 2012 jQuery Foundation and other contributors
|
6
|
+
* Released under the MIT license.
|
7
|
+
* http://jquery.org/license
|
8
|
+
*
|
9
|
+
* http://api.jqueryui.com/dialog/
|
10
|
+
*
|
11
|
+
* Depends:
|
12
|
+
* jquery.ui.core.js
|
13
|
+
* jquery.ui.widget.js
|
14
|
+
* jquery.ui.button.js
|
15
|
+
* jquery.ui.draggable.js
|
16
|
+
* jquery.ui.mouse.js
|
17
|
+
* jquery.ui.position.js
|
18
|
+
* jquery.ui.resizable.js
|
19
|
+
*/
|
20
|
+
(function( $, undefined ) {
|
21
|
+
|
22
|
+
var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ",
|
23
|
+
sizeRelatedOptions = {
|
24
|
+
buttons: true,
|
25
|
+
height: true,
|
26
|
+
maxHeight: true,
|
27
|
+
maxWidth: true,
|
28
|
+
minHeight: true,
|
29
|
+
minWidth: true,
|
30
|
+
width: true
|
31
|
+
},
|
32
|
+
resizableRelatedOptions = {
|
33
|
+
maxHeight: true,
|
34
|
+
maxWidth: true,
|
35
|
+
minHeight: true,
|
36
|
+
minWidth: true
|
37
|
+
};
|
38
|
+
|
39
|
+
$.widget("ui.dialog", {
|
40
|
+
version: "1.9.2",
|
41
|
+
options: {
|
42
|
+
autoOpen: true,
|
43
|
+
buttons: {},
|
44
|
+
closeOnEscape: true,
|
45
|
+
closeText: "close",
|
46
|
+
dialogClass: "",
|
47
|
+
draggable: true,
|
48
|
+
hide: null,
|
49
|
+
height: "auto",
|
50
|
+
maxHeight: false,
|
51
|
+
maxWidth: false,
|
52
|
+
minHeight: 150,
|
53
|
+
minWidth: 150,
|
54
|
+
modal: false,
|
55
|
+
position: {
|
56
|
+
my: "center",
|
57
|
+
at: "center",
|
58
|
+
of: window,
|
59
|
+
collision: "fit",
|
60
|
+
// ensure that the titlebar is never outside the document
|
61
|
+
using: function( pos ) {
|
62
|
+
var topOffset = $( this ).css( pos ).offset().top;
|
63
|
+
if ( topOffset < 0 ) {
|
64
|
+
$( this ).css( "top", pos.top - topOffset );
|
65
|
+
}
|
66
|
+
}
|
67
|
+
},
|
68
|
+
resizable: true,
|
69
|
+
show: null,
|
70
|
+
stack: true,
|
71
|
+
title: "",
|
72
|
+
width: 300,
|
73
|
+
zIndex: 1000
|
74
|
+
},
|
75
|
+
|
76
|
+
_create: function() {
|
77
|
+
this.originalTitle = this.element.attr( "title" );
|
78
|
+
// #5742 - .attr() might return a DOMElement
|
79
|
+
if ( typeof this.originalTitle !== "string" ) {
|
80
|
+
this.originalTitle = "";
|
81
|
+
}
|
82
|
+
this.oldPosition = {
|
83
|
+
parent: this.element.parent(),
|
84
|
+
index: this.element.parent().children().index( this.element )
|
85
|
+
};
|
86
|
+
this.options.title = this.options.title || this.originalTitle;
|
87
|
+
var that = this,
|
88
|
+
options = this.options,
|
89
|
+
|
90
|
+
title = options.title || " ",
|
91
|
+
uiDialog,
|
92
|
+
uiDialogTitlebar,
|
93
|
+
uiDialogTitlebarClose,
|
94
|
+
uiDialogTitle,
|
95
|
+
uiDialogButtonPane;
|
96
|
+
|
97
|
+
uiDialog = ( this.uiDialog = $( "<div>" ) )
|
98
|
+
.addClass( uiDialogClasses + options.dialogClass )
|
99
|
+
.css({
|
100
|
+
display: "none",
|
101
|
+
outline: 0, // TODO: move to stylesheet
|
102
|
+
zIndex: options.zIndex
|
103
|
+
})
|
104
|
+
// setting tabIndex makes the div focusable
|
105
|
+
.attr( "tabIndex", -1)
|
106
|
+
.keydown(function( event ) {
|
107
|
+
if ( options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
|
108
|
+
event.keyCode === $.ui.keyCode.ESCAPE ) {
|
109
|
+
that.close( event );
|
110
|
+
event.preventDefault();
|
111
|
+
}
|
112
|
+
})
|
113
|
+
.mousedown(function( event ) {
|
114
|
+
that.moveToTop( false, event );
|
115
|
+
})
|
116
|
+
.appendTo( "body" );
|
117
|
+
|
118
|
+
this.element
|
119
|
+
.show()
|
120
|
+
.removeAttr( "title" )
|
121
|
+
.addClass( "ui-dialog-content ui-widget-content" )
|
122
|
+
.appendTo( uiDialog );
|
123
|
+
|
124
|
+
uiDialogTitlebar = ( this.uiDialogTitlebar = $( "<div>" ) )
|
125
|
+
.addClass( "ui-dialog-titlebar ui-widget-header " +
|
126
|
+
"ui-corner-all ui-helper-clearfix" )
|
127
|
+
.bind( "mousedown", function() {
|
128
|
+
// Dialog isn't getting focus when dragging (#8063)
|
129
|
+
uiDialog.focus();
|
130
|
+
})
|
131
|
+
.prependTo( uiDialog );
|
132
|
+
|
133
|
+
uiDialogTitlebarClose = $( "<a href='#'></a>" )
|
134
|
+
.addClass( "ui-dialog-titlebar-close ui-corner-all" )
|
135
|
+
.attr( "role", "button" )
|
136
|
+
.click(function( event ) {
|
137
|
+
event.preventDefault();
|
138
|
+
that.close( event );
|
139
|
+
})
|
140
|
+
.appendTo( uiDialogTitlebar );
|
141
|
+
|
142
|
+
( this.uiDialogTitlebarCloseText = $( "<span>" ) )
|
143
|
+
.addClass( "ui-icon ui-icon-closethick" )
|
144
|
+
.text( options.closeText )
|
145
|
+
.appendTo( uiDialogTitlebarClose );
|
146
|
+
|
147
|
+
uiDialogTitle = $( "<span>" )
|
148
|
+
.uniqueId()
|
149
|
+
.addClass( "ui-dialog-title" )
|
150
|
+
.html( title )
|
151
|
+
.prependTo( uiDialogTitlebar );
|
152
|
+
|
153
|
+
uiDialogButtonPane = ( this.uiDialogButtonPane = $( "<div>" ) )
|
154
|
+
.addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
|
155
|
+
|
156
|
+
( this.uiButtonSet = $( "<div>" ) )
|
157
|
+
.addClass( "ui-dialog-buttonset" )
|
158
|
+
.appendTo( uiDialogButtonPane );
|
159
|
+
|
160
|
+
uiDialog.attr({
|
161
|
+
role: "dialog",
|
162
|
+
"aria-labelledby": uiDialogTitle.attr( "id" )
|
163
|
+
});
|
164
|
+
|
165
|
+
uiDialogTitlebar.find( "*" ).add( uiDialogTitlebar ).disableSelection();
|
166
|
+
this._hoverable( uiDialogTitlebarClose );
|
167
|
+
this._focusable( uiDialogTitlebarClose );
|
168
|
+
|
169
|
+
if ( options.draggable && $.fn.draggable ) {
|
170
|
+
this._makeDraggable();
|
171
|
+
}
|
172
|
+
if ( options.resizable && $.fn.resizable ) {
|
173
|
+
this._makeResizable();
|
174
|
+
}
|
175
|
+
|
176
|
+
this._createButtons( options.buttons );
|
177
|
+
this._isOpen = false;
|
178
|
+
|
179
|
+
if ( $.fn.bgiframe ) {
|
180
|
+
uiDialog.bgiframe();
|
181
|
+
}
|
182
|
+
|
183
|
+
// prevent tabbing out of modal dialogs
|
184
|
+
this._on( uiDialog, { keydown: function( event ) {
|
185
|
+
if ( !options.modal || event.keyCode !== $.ui.keyCode.TAB ) {
|
186
|
+
return;
|
187
|
+
}
|
188
|
+
|
189
|
+
var tabbables = $( ":tabbable", uiDialog ),
|
190
|
+
first = tabbables.filter( ":first" ),
|
191
|
+
last = tabbables.filter( ":last" );
|
192
|
+
|
193
|
+
if ( event.target === last[0] && !event.shiftKey ) {
|
194
|
+
first.focus( 1 );
|
195
|
+
return false;
|
196
|
+
} else if ( event.target === first[0] && event.shiftKey ) {
|
197
|
+
last.focus( 1 );
|
198
|
+
return false;
|
199
|
+
}
|
200
|
+
}});
|
201
|
+
},
|
202
|
+
|
203
|
+
_init: function() {
|
204
|
+
if ( this.options.autoOpen ) {
|
205
|
+
this.open();
|
206
|
+
}
|
207
|
+
},
|
208
|
+
|
209
|
+
_destroy: function() {
|
210
|
+
var next,
|
211
|
+
oldPosition = this.oldPosition;
|
212
|
+
|
213
|
+
if ( this.overlay ) {
|
214
|
+
this.overlay.destroy();
|
215
|
+
}
|
216
|
+
this.uiDialog.hide();
|
217
|
+
this.element
|
218
|
+
.removeClass( "ui-dialog-content ui-widget-content" )
|
219
|
+
.hide()
|
220
|
+
.appendTo( "body" );
|
221
|
+
this.uiDialog.remove();
|
222
|
+
|
223
|
+
if ( this.originalTitle ) {
|
224
|
+
this.element.attr( "title", this.originalTitle );
|
225
|
+
}
|
226
|
+
|
227
|
+
next = oldPosition.parent.children().eq( oldPosition.index );
|
228
|
+
// Don't try to place the dialog next to itself (#8613)
|
229
|
+
if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
|
230
|
+
next.before( this.element );
|
231
|
+
} else {
|
232
|
+
oldPosition.parent.append( this.element );
|
233
|
+
}
|
234
|
+
},
|
235
|
+
|
236
|
+
widget: function() {
|
237
|
+
return this.uiDialog;
|
238
|
+
},
|
239
|
+
|
240
|
+
close: function( event ) {
|
241
|
+
var that = this,
|
242
|
+
maxZ, thisZ;
|
243
|
+
|
244
|
+
if ( !this._isOpen ) {
|
245
|
+
return;
|
246
|
+
}
|
247
|
+
|
248
|
+
if ( false === this._trigger( "beforeClose", event ) ) {
|
249
|
+
return;
|
250
|
+
}
|
251
|
+
|
252
|
+
this._isOpen = false;
|
253
|
+
|
254
|
+
if ( this.overlay ) {
|
255
|
+
this.overlay.destroy();
|
256
|
+
}
|
257
|
+
|
258
|
+
if ( this.options.hide ) {
|
259
|
+
this._hide( this.uiDialog, this.options.hide, function() {
|
260
|
+
that._trigger( "close", event );
|
261
|
+
});
|
262
|
+
} else {
|
263
|
+
this.uiDialog.hide();
|
264
|
+
this._trigger( "close", event );
|
265
|
+
}
|
266
|
+
|
267
|
+
$.ui.dialog.overlay.resize();
|
268
|
+
|
269
|
+
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
|
270
|
+
if ( this.options.modal ) {
|
271
|
+
maxZ = 0;
|
272
|
+
$( ".ui-dialog" ).each(function() {
|
273
|
+
if ( this !== that.uiDialog[0] ) {
|
274
|
+
thisZ = $( this ).css( "z-index" );
|
275
|
+
if ( !isNaN( thisZ ) ) {
|
276
|
+
maxZ = Math.max( maxZ, thisZ );
|
277
|
+
}
|
278
|
+
}
|
279
|
+
});
|
280
|
+
$.ui.dialog.maxZ = maxZ;
|
281
|
+
}
|
282
|
+
|
283
|
+
return this;
|
284
|
+
},
|
285
|
+
|
286
|
+
isOpen: function() {
|
287
|
+
return this._isOpen;
|
288
|
+
},
|
289
|
+
|
290
|
+
// the force parameter allows us to move modal dialogs to their correct
|
291
|
+
// position on open
|
292
|
+
moveToTop: function( force, event ) {
|
293
|
+
var options = this.options,
|
294
|
+
saveScroll;
|
295
|
+
|
296
|
+
if ( ( options.modal && !force ) ||
|
297
|
+
( !options.stack && !options.modal ) ) {
|
298
|
+
return this._trigger( "focus", event );
|
299
|
+
}
|
300
|
+
|
301
|
+
if ( options.zIndex > $.ui.dialog.maxZ ) {
|
302
|
+
$.ui.dialog.maxZ = options.zIndex;
|
303
|
+
}
|
304
|
+
if ( this.overlay ) {
|
305
|
+
$.ui.dialog.maxZ += 1;
|
306
|
+
$.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ;
|
307
|
+
this.overlay.$el.css( "z-index", $.ui.dialog.overlay.maxZ );
|
308
|
+
}
|
309
|
+
|
310
|
+
// Save and then restore scroll
|
311
|
+
// Opera 9.5+ resets when parent z-index is changed.
|
312
|
+
// http://bugs.jqueryui.com/ticket/3193
|
313
|
+
saveScroll = {
|
314
|
+
scrollTop: this.element.scrollTop(),
|
315
|
+
scrollLeft: this.element.scrollLeft()
|
316
|
+
};
|
317
|
+
$.ui.dialog.maxZ += 1;
|
318
|
+
this.uiDialog.css( "z-index", $.ui.dialog.maxZ );
|
319
|
+
this.element.attr( saveScroll );
|
320
|
+
this._trigger( "focus", event );
|
321
|
+
|
322
|
+
return this;
|
323
|
+
},
|
324
|
+
|
325
|
+
open: function() {
|
326
|
+
if ( this._isOpen ) {
|
327
|
+
return;
|
328
|
+
}
|
329
|
+
|
330
|
+
var hasFocus,
|
331
|
+
options = this.options,
|
332
|
+
uiDialog = this.uiDialog;
|
333
|
+
|
334
|
+
this._size();
|
335
|
+
this._position( options.position );
|
336
|
+
uiDialog.show( options.show );
|
337
|
+
this.overlay = options.modal ? new $.ui.dialog.overlay( this ) : null;
|
338
|
+
this.moveToTop( true );
|
339
|
+
|
340
|
+
// set focus to the first tabbable element in the content area or the first button
|
341
|
+
// if there are no tabbable elements, set focus on the dialog itself
|
342
|
+
hasFocus = this.element.find( ":tabbable" );
|
343
|
+
if ( !hasFocus.length ) {
|
344
|
+
hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
|
345
|
+
if ( !hasFocus.length ) {
|
346
|
+
hasFocus = uiDialog;
|
347
|
+
}
|
348
|
+
}
|
349
|
+
hasFocus.eq( 0 ).focus();
|
350
|
+
|
351
|
+
this._isOpen = true;
|
352
|
+
this._trigger( "open" );
|
353
|
+
|
354
|
+
return this;
|
355
|
+
},
|
356
|
+
|
357
|
+
_createButtons: function( buttons ) {
|
358
|
+
var that = this,
|
359
|
+
hasButtons = false;
|
360
|
+
|
361
|
+
// if we already have a button pane, remove it
|
362
|
+
this.uiDialogButtonPane.remove();
|
363
|
+
this.uiButtonSet.empty();
|
364
|
+
|
365
|
+
if ( typeof buttons === "object" && buttons !== null ) {
|
366
|
+
$.each( buttons, function() {
|
367
|
+
return !(hasButtons = true);
|
368
|
+
});
|
369
|
+
}
|
370
|
+
if ( hasButtons ) {
|
371
|
+
$.each( buttons, function( name, props ) {
|
372
|
+
var button, click;
|
373
|
+
props = $.isFunction( props ) ?
|
374
|
+
{ click: props, text: name } :
|
375
|
+
props;
|
376
|
+
// Default to a non-submitting button
|
377
|
+
props = $.extend( { type: "button" }, props );
|
378
|
+
// Change the context for the click callback to be the main element
|
379
|
+
click = props.click;
|
380
|
+
props.click = function() {
|
381
|
+
click.apply( that.element[0], arguments );
|
382
|
+
};
|
383
|
+
button = $( "<button></button>", props )
|
384
|
+
.appendTo( that.uiButtonSet );
|
385
|
+
if ( $.fn.button ) {
|
386
|
+
button.button();
|
387
|
+
}
|
388
|
+
});
|
389
|
+
this.uiDialog.addClass( "ui-dialog-buttons" );
|
390
|
+
this.uiDialogButtonPane.appendTo( this.uiDialog );
|
391
|
+
} else {
|
392
|
+
this.uiDialog.removeClass( "ui-dialog-buttons" );
|
393
|
+
}
|
394
|
+
},
|
395
|
+
|
396
|
+
_makeDraggable: function() {
|
397
|
+
var that = this,
|
398
|
+
options = this.options;
|
399
|
+
|
400
|
+
function filteredUi( ui ) {
|
401
|
+
return {
|
402
|
+
position: ui.position,
|
403
|
+
offset: ui.offset
|
404
|
+
};
|
405
|
+
}
|
406
|
+
|
407
|
+
this.uiDialog.draggable({
|
408
|
+
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
|
409
|
+
handle: ".ui-dialog-titlebar",
|
410
|
+
containment: "document",
|
411
|
+
start: function( event, ui ) {
|
412
|
+
$( this )
|
413
|
+
.addClass( "ui-dialog-dragging" );
|
414
|
+
that._trigger( "dragStart", event, filteredUi( ui ) );
|
415
|
+
},
|
416
|
+
drag: function( event, ui ) {
|
417
|
+
that._trigger( "drag", event, filteredUi( ui ) );
|
418
|
+
},
|
419
|
+
stop: function( event, ui ) {
|
420
|
+
options.position = [
|
421
|
+
ui.position.left - that.document.scrollLeft(),
|
422
|
+
ui.position.top - that.document.scrollTop()
|
423
|
+
];
|
424
|
+
$( this )
|
425
|
+
.removeClass( "ui-dialog-dragging" );
|
426
|
+
that._trigger( "dragStop", event, filteredUi( ui ) );
|
427
|
+
$.ui.dialog.overlay.resize();
|
428
|
+
}
|
429
|
+
});
|
430
|
+
},
|
431
|
+
|
432
|
+
_makeResizable: function( handles ) {
|
433
|
+
handles = (handles === undefined ? this.options.resizable : handles);
|
434
|
+
var that = this,
|
435
|
+
options = this.options,
|
436
|
+
// .ui-resizable has position: relative defined in the stylesheet
|
437
|
+
// but dialogs have to use absolute or fixed positioning
|
438
|
+
position = this.uiDialog.css( "position" ),
|
439
|
+
resizeHandles = typeof handles === 'string' ?
|
440
|
+
handles :
|
441
|
+
"n,e,s,w,se,sw,ne,nw";
|
442
|
+
|
443
|
+
function filteredUi( ui ) {
|
444
|
+
return {
|
445
|
+
originalPosition: ui.originalPosition,
|
446
|
+
originalSize: ui.originalSize,
|
447
|
+
position: ui.position,
|
448
|
+
size: ui.size
|
449
|
+
};
|
450
|
+
}
|
451
|
+
|
452
|
+
this.uiDialog.resizable({
|
453
|
+
cancel: ".ui-dialog-content",
|
454
|
+
containment: "document",
|
455
|
+
alsoResize: this.element,
|
456
|
+
maxWidth: options.maxWidth,
|
457
|
+
maxHeight: options.maxHeight,
|
458
|
+
minWidth: options.minWidth,
|
459
|
+
minHeight: this._minHeight(),
|
460
|
+
handles: resizeHandles,
|
461
|
+
start: function( event, ui ) {
|
462
|
+
$( this ).addClass( "ui-dialog-resizing" );
|
463
|
+
that._trigger( "resizeStart", event, filteredUi( ui ) );
|
464
|
+
},
|
465
|
+
resize: function( event, ui ) {
|
466
|
+
that._trigger( "resize", event, filteredUi( ui ) );
|
467
|
+
},
|
468
|
+
stop: function( event, ui ) {
|
469
|
+
$( this ).removeClass( "ui-dialog-resizing" );
|
470
|
+
options.height = $( this ).height();
|
471
|
+
options.width = $( this ).width();
|
472
|
+
that._trigger( "resizeStop", event, filteredUi( ui ) );
|
473
|
+
$.ui.dialog.overlay.resize();
|
474
|
+
}
|
475
|
+
})
|
476
|
+
.css( "position", position )
|
477
|
+
.find( ".ui-resizable-se" )
|
478
|
+
.addClass( "ui-icon ui-icon-grip-diagonal-se" );
|
479
|
+
},
|
480
|
+
|
481
|
+
_minHeight: function() {
|
482
|
+
var options = this.options;
|
483
|
+
|
484
|
+
if ( options.height === "auto" ) {
|
485
|
+
return options.minHeight;
|
486
|
+
} else {
|
487
|
+
return Math.min( options.minHeight, options.height );
|
488
|
+
}
|
489
|
+
},
|
490
|
+
|
491
|
+
_position: function( position ) {
|
492
|
+
var myAt = [],
|
493
|
+
offset = [ 0, 0 ],
|
494
|
+
isVisible;
|
495
|
+
|
496
|
+
if ( position ) {
|
497
|
+
// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
|
498
|
+
// if (typeof position == 'string' || $.isArray(position)) {
|
499
|
+
// myAt = $.isArray(position) ? position : position.split(' ');
|
500
|
+
|
501
|
+
if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) {
|
502
|
+
myAt = position.split ? position.split( " " ) : [ position[ 0 ], position[ 1 ] ];
|
503
|
+
if ( myAt.length === 1 ) {
|
504
|
+
myAt[ 1 ] = myAt[ 0 ];
|
505
|
+
}
|
506
|
+
|
507
|
+
$.each( [ "left", "top" ], function( i, offsetPosition ) {
|
508
|
+
if ( +myAt[ i ] === myAt[ i ] ) {
|
509
|
+
offset[ i ] = myAt[ i ];
|
510
|
+
myAt[ i ] = offsetPosition;
|
511
|
+
}
|
512
|
+
});
|
513
|
+
|
514
|
+
position = {
|
515
|
+
my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
|
516
|
+
myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
|
517
|
+
at: myAt.join( " " )
|
518
|
+
};
|
519
|
+
}
|
520
|
+
|
521
|
+
position = $.extend( {}, $.ui.dialog.prototype.options.position, position );
|
522
|
+
} else {
|
523
|
+
position = $.ui.dialog.prototype.options.position;
|
524
|
+
}
|
525
|
+
|
526
|
+
// need to show the dialog to get the actual offset in the position plugin
|
527
|
+
isVisible = this.uiDialog.is( ":visible" );
|
528
|
+
if ( !isVisible ) {
|
529
|
+
this.uiDialog.show();
|
530
|
+
}
|
531
|
+
this.uiDialog.position( position );
|
532
|
+
if ( !isVisible ) {
|
533
|
+
this.uiDialog.hide();
|
534
|
+
}
|
535
|
+
},
|
536
|
+
|
537
|
+
_setOptions: function( options ) {
|
538
|
+
var that = this,
|
539
|
+
resizableOptions = {},
|
540
|
+
resize = false;
|
541
|
+
|
542
|
+
$.each( options, function( key, value ) {
|
543
|
+
that._setOption( key, value );
|
544
|
+
|
545
|
+
if ( key in sizeRelatedOptions ) {
|
546
|
+
resize = true;
|
547
|
+
}
|
548
|
+
if ( key in resizableRelatedOptions ) {
|
549
|
+
resizableOptions[ key ] = value;
|
550
|
+
}
|
551
|
+
});
|
552
|
+
|
553
|
+
if ( resize ) {
|
554
|
+
this._size();
|
555
|
+
}
|
556
|
+
if ( this.uiDialog.is( ":data(resizable)" ) ) {
|
557
|
+
this.uiDialog.resizable( "option", resizableOptions );
|
558
|
+
}
|
559
|
+
},
|
560
|
+
|
561
|
+
_setOption: function( key, value ) {
|
562
|
+
var isDraggable, isResizable,
|
563
|
+
uiDialog = this.uiDialog;
|
564
|
+
|
565
|
+
switch ( key ) {
|
566
|
+
case "buttons":
|
567
|
+
this._createButtons( value );
|
568
|
+
break;
|
569
|
+
case "closeText":
|
570
|
+
// ensure that we always pass a string
|
571
|
+
this.uiDialogTitlebarCloseText.text( "" + value );
|
572
|
+
break;
|
573
|
+
case "dialogClass":
|
574
|
+
uiDialog
|
575
|
+
.removeClass( this.options.dialogClass )
|
576
|
+
.addClass( uiDialogClasses + value );
|
577
|
+
break;
|
578
|
+
case "disabled":
|
579
|
+
if ( value ) {
|
580
|
+
uiDialog.addClass( "ui-dialog-disabled" );
|
581
|
+
} else {
|
582
|
+
uiDialog.removeClass( "ui-dialog-disabled" );
|
583
|
+
}
|
584
|
+
break;
|
585
|
+
case "draggable":
|
586
|
+
isDraggable = uiDialog.is( ":data(draggable)" );
|
587
|
+
if ( isDraggable && !value ) {
|
588
|
+
uiDialog.draggable( "destroy" );
|
589
|
+
}
|
590
|
+
|
591
|
+
if ( !isDraggable && value ) {
|
592
|
+
this._makeDraggable();
|
593
|
+
}
|
594
|
+
break;
|
595
|
+
case "position":
|
596
|
+
this._position( value );
|
597
|
+
break;
|
598
|
+
case "resizable":
|
599
|
+
// currently resizable, becoming non-resizable
|
600
|
+
isResizable = uiDialog.is( ":data(resizable)" );
|
601
|
+
if ( isResizable && !value ) {
|
602
|
+
uiDialog.resizable( "destroy" );
|
603
|
+
}
|
604
|
+
|
605
|
+
// currently resizable, changing handles
|
606
|
+
if ( isResizable && typeof value === "string" ) {
|
607
|
+
uiDialog.resizable( "option", "handles", value );
|
608
|
+
}
|
609
|
+
|
610
|
+
// currently non-resizable, becoming resizable
|
611
|
+
if ( !isResizable && value !== false ) {
|
612
|
+
this._makeResizable( value );
|
613
|
+
}
|
614
|
+
break;
|
615
|
+
case "title":
|
616
|
+
// convert whatever was passed in o a string, for html() to not throw up
|
617
|
+
$( ".ui-dialog-title", this.uiDialogTitlebar )
|
618
|
+
.html( "" + ( value || " " ) );
|
619
|
+
break;
|
620
|
+
}
|
621
|
+
|
622
|
+
this._super( key, value );
|
623
|
+
},
|
624
|
+
|
625
|
+
_size: function() {
|
626
|
+
/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
|
627
|
+
* divs will both have width and height set, so we need to reset them
|
628
|
+
*/
|
629
|
+
var nonContentHeight, minContentHeight, autoHeight,
|
630
|
+
options = this.options,
|
631
|
+
isVisible = this.uiDialog.is( ":visible" );
|
632
|
+
|
633
|
+
// reset content sizing
|
634
|
+
this.element.show().css({
|
635
|
+
width: "auto",
|
636
|
+
minHeight: 0,
|
637
|
+
height: 0
|
638
|
+
});
|
639
|
+
|
640
|
+
if ( options.minWidth > options.width ) {
|
641
|
+
options.width = options.minWidth;
|
642
|
+
}
|
643
|
+
|
644
|
+
// reset wrapper sizing
|
645
|
+
// determine the height of all the non-content elements
|
646
|
+
nonContentHeight = this.uiDialog.css({
|
647
|
+
height: "auto",
|
648
|
+
width: options.width
|
649
|
+
})
|
650
|
+
.outerHeight();
|
651
|
+
minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
|
652
|
+
|
653
|
+
if ( options.height === "auto" ) {
|
654
|
+
// only needed for IE6 support
|
655
|
+
if ( $.support.minHeight ) {
|
656
|
+
this.element.css({
|
657
|
+
minHeight: minContentHeight,
|
658
|
+
height: "auto"
|
659
|
+
});
|
660
|
+
} else {
|
661
|
+
this.uiDialog.show();
|
662
|
+
autoHeight = this.element.css( "height", "auto" ).height();
|
663
|
+
if ( !isVisible ) {
|
664
|
+
this.uiDialog.hide();
|
665
|
+
}
|
666
|
+
this.element.height( Math.max( autoHeight, minContentHeight ) );
|
667
|
+
}
|
668
|
+
} else {
|
669
|
+
this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
|
670
|
+
}
|
671
|
+
|
672
|
+
if (this.uiDialog.is( ":data(resizable)" ) ) {
|
673
|
+
this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
|
674
|
+
}
|
675
|
+
}
|
676
|
+
});
|
677
|
+
|
678
|
+
$.extend($.ui.dialog, {
|
679
|
+
uuid: 0,
|
680
|
+
maxZ: 0,
|
681
|
+
|
682
|
+
getTitleId: function($el) {
|
683
|
+
var id = $el.attr( "id" );
|
684
|
+
if ( !id ) {
|
685
|
+
this.uuid += 1;
|
686
|
+
id = this.uuid;
|
687
|
+
}
|
688
|
+
return "ui-dialog-title-" + id;
|
689
|
+
},
|
690
|
+
|
691
|
+
overlay: function( dialog ) {
|
692
|
+
this.$el = $.ui.dialog.overlay.create( dialog );
|
693
|
+
}
|
694
|
+
});
|
695
|
+
|
696
|
+
$.extend( $.ui.dialog.overlay, {
|
697
|
+
instances: [],
|
698
|
+
// reuse old instances due to IE memory leak with alpha transparency (see #5185)
|
699
|
+
oldInstances: [],
|
700
|
+
maxZ: 0,
|
701
|
+
events: $.map(
|
702
|
+
"focus,mousedown,mouseup,keydown,keypress,click".split( "," ),
|
703
|
+
function( event ) {
|
704
|
+
return event + ".dialog-overlay";
|
705
|
+
}
|
706
|
+
).join( " " ),
|
707
|
+
create: function( dialog ) {
|
708
|
+
if ( this.instances.length === 0 ) {
|
709
|
+
// prevent use of anchors and inputs
|
710
|
+
// we use a setTimeout in case the overlay is created from an
|
711
|
+
// event that we're going to be cancelling (see #2804)
|
712
|
+
setTimeout(function() {
|
713
|
+
// handle $(el).dialog().dialog('close') (see #4065)
|
714
|
+
if ( $.ui.dialog.overlay.instances.length ) {
|
715
|
+
$( document ).bind( $.ui.dialog.overlay.events, function( event ) {
|
716
|
+
// stop events if the z-index of the target is < the z-index of the overlay
|
717
|
+
// we cannot return true when we don't want to cancel the event (#3523)
|
718
|
+
if ( $( event.target ).zIndex() < $.ui.dialog.overlay.maxZ ) {
|
719
|
+
return false;
|
720
|
+
}
|
721
|
+
});
|
722
|
+
}
|
723
|
+
}, 1 );
|
724
|
+
|
725
|
+
// handle window resize
|
726
|
+
$( window ).bind( "resize.dialog-overlay", $.ui.dialog.overlay.resize );
|
727
|
+
}
|
728
|
+
|
729
|
+
var $el = ( this.oldInstances.pop() || $( "<div>" ).addClass( "ui-widget-overlay" ) );
|
730
|
+
|
731
|
+
// allow closing by pressing the escape key
|
732
|
+
$( document ).bind( "keydown.dialog-overlay", function( event ) {
|
733
|
+
var instances = $.ui.dialog.overlay.instances;
|
734
|
+
// only react to the event if we're the top overlay
|
735
|
+
if ( instances.length !== 0 && instances[ instances.length - 1 ] === $el &&
|
736
|
+
dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
|
737
|
+
event.keyCode === $.ui.keyCode.ESCAPE ) {
|
738
|
+
|
739
|
+
dialog.close( event );
|
740
|
+
event.preventDefault();
|
741
|
+
}
|
742
|
+
});
|
743
|
+
|
744
|
+
$el.appendTo( document.body ).css({
|
745
|
+
width: this.width(),
|
746
|
+
height: this.height()
|
747
|
+
});
|
748
|
+
|
749
|
+
if ( $.fn.bgiframe ) {
|
750
|
+
$el.bgiframe();
|
751
|
+
}
|
752
|
+
|
753
|
+
this.instances.push( $el );
|
754
|
+
return $el;
|
755
|
+
},
|
756
|
+
|
757
|
+
destroy: function( $el ) {
|
758
|
+
var indexOf = $.inArray( $el, this.instances ),
|
759
|
+
maxZ = 0;
|
760
|
+
|
761
|
+
if ( indexOf !== -1 ) {
|
762
|
+
this.oldInstances.push( this.instances.splice( indexOf, 1 )[ 0 ] );
|
763
|
+
}
|
764
|
+
|
765
|
+
if ( this.instances.length === 0 ) {
|
766
|
+
$( [ document, window ] ).unbind( ".dialog-overlay" );
|
767
|
+
}
|
768
|
+
|
769
|
+
$el.height( 0 ).width( 0 ).remove();
|
770
|
+
|
771
|
+
// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
|
772
|
+
$.each( this.instances, function() {
|
773
|
+
maxZ = Math.max( maxZ, this.css( "z-index" ) );
|
774
|
+
});
|
775
|
+
this.maxZ = maxZ;
|
776
|
+
},
|
777
|
+
|
778
|
+
height: function() {
|
779
|
+
var scrollHeight,
|
780
|
+
offsetHeight;
|
781
|
+
// handle IE
|
782
|
+
if ( $.ui.ie ) {
|
783
|
+
scrollHeight = Math.max(
|
784
|
+
document.documentElement.scrollHeight,
|
785
|
+
document.body.scrollHeight
|
786
|
+
);
|
787
|
+
offsetHeight = Math.max(
|
788
|
+
document.documentElement.offsetHeight,
|
789
|
+
document.body.offsetHeight
|
790
|
+
);
|
791
|
+
|
792
|
+
if ( scrollHeight < offsetHeight ) {
|
793
|
+
return $( window ).height() + "px";
|
794
|
+
} else {
|
795
|
+
return scrollHeight + "px";
|
796
|
+
}
|
797
|
+
// handle "good" browsers
|
798
|
+
} else {
|
799
|
+
return $( document ).height() + "px";
|
800
|
+
}
|
801
|
+
},
|
802
|
+
|
803
|
+
width: function() {
|
804
|
+
var scrollWidth,
|
805
|
+
offsetWidth;
|
806
|
+
// handle IE
|
807
|
+
if ( $.ui.ie ) {
|
808
|
+
scrollWidth = Math.max(
|
809
|
+
document.documentElement.scrollWidth,
|
810
|
+
document.body.scrollWidth
|
811
|
+
);
|
812
|
+
offsetWidth = Math.max(
|
813
|
+
document.documentElement.offsetWidth,
|
814
|
+
document.body.offsetWidth
|
815
|
+
);
|
816
|
+
|
817
|
+
if ( scrollWidth < offsetWidth ) {
|
818
|
+
return $( window ).width() + "px";
|
819
|
+
} else {
|
820
|
+
return scrollWidth + "px";
|
821
|
+
}
|
822
|
+
// handle "good" browsers
|
823
|
+
} else {
|
824
|
+
return $( document ).width() + "px";
|
825
|
+
}
|
826
|
+
},
|
827
|
+
|
828
|
+
resize: function() {
|
829
|
+
/* If the dialog is draggable and the user drags it past the
|
830
|
+
* right edge of the window, the document becomes wider so we
|
831
|
+
* need to stretch the overlay. If the user then drags the
|
832
|
+
* dialog back to the left, the document will become narrower,
|
833
|
+
* so we need to shrink the overlay to the appropriate size.
|
834
|
+
* This is handled by shrinking the overlay before setting it
|
835
|
+
* to the full document size.
|
836
|
+
*/
|
837
|
+
var $overlays = $( [] );
|
838
|
+
$.each( $.ui.dialog.overlay.instances, function() {
|
839
|
+
$overlays = $overlays.add( this );
|
840
|
+
});
|
841
|
+
|
842
|
+
$overlays.css({
|
843
|
+
width: 0,
|
844
|
+
height: 0
|
845
|
+
}).css({
|
846
|
+
width: $.ui.dialog.overlay.width(),
|
847
|
+
height: $.ui.dialog.overlay.height()
|
848
|
+
});
|
849
|
+
}
|
850
|
+
});
|
851
|
+
|
852
|
+
$.extend( $.ui.dialog.overlay.prototype, {
|
853
|
+
destroy: function() {
|
854
|
+
$.ui.dialog.overlay.destroy( this.$el );
|
855
|
+
}
|
856
|
+
});
|
857
|
+
|
858
|
+
}( jQuery ) );
|