aboutsummaryrefslogtreecommitdiffstats
path: root/ui/dialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/dialog.js')
-rw-r--r--ui/dialog.js85
1 files changed, 55 insertions, 30 deletions
diff --git a/ui/dialog.js b/ui/dialog.js
index 166f68b0f..8f2fc583c 100644
--- a/ui/dialog.js
+++ b/ui/dialog.js
@@ -37,15 +37,18 @@
}
}(function( $ ) {
-return $.widget( "ui.dialog", {
+$.widget( "ui.dialog", {
version: "@VERSION",
options: {
appendTo: "body",
autoOpen: true,
buttons: [],
+ classes: {
+ "ui-dialog": "ui-corner-all",
+ "ui-dialog-titlebar": "ui-corner-all"
+ },
closeOnEscape: true,
closeText: "Close",
- dialogClass: "",
draggable: true,
hide: null,
height: "auto",
@@ -122,9 +125,10 @@ return $.widget( "ui.dialog", {
this.element
.show()
.removeAttr( "title" )
- .addClass( "ui-dialog-content ui-widget-content" )
.appendTo( this.uiDialog );
+ this._addClass( "ui-dialog-content", "ui-widget-content" );
+
this._createTitlebar();
this._createButtonPane();
@@ -163,7 +167,6 @@ return $.widget( "ui.dialog", {
this.element
.removeUniqueId()
- .removeClass( "ui-dialog-content ui-widget-content" )
.css( this.originalCss )
// Without detaching first, the following becomes really slow
.detach();
@@ -336,8 +339,6 @@ return $.widget( "ui.dialog", {
_createWrapper: function() {
this.uiDialog = $("<div>")
- .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
- this.options.dialogClass )
.hide()
.attr({
// Setting tabIndex makes the div focusable
@@ -346,6 +347,7 @@ return $.widget( "ui.dialog", {
})
.appendTo( this._appendTo() );
+ this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
this._on( this.uiDialog, {
keydown: function( event ) {
if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
@@ -395,9 +397,9 @@ return $.widget( "ui.dialog", {
_createTitlebar: function() {
var uiDialogTitle;
- this.uiDialogTitlebar = $( "<div>" )
- .addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" )
- .prependTo( this.uiDialog );
+ this.uiDialogTitlebar = $( "<div>" );
+ this._addClass( this.uiDialogTitlebar,
+ "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
this._on( this.uiDialogTitlebar, {
mousedown: function( event ) {
// Don't prevent click on close button (#8838)
@@ -421,8 +423,9 @@ return $.widget( "ui.dialog", {
},
text: false
})
- .addClass( "ui-dialog-titlebar-close" )
.appendTo( this.uiDialogTitlebar );
+
+ this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
this._on( this.uiDialogTitlebarClose, {
click: function( event ) {
event.preventDefault();
@@ -430,12 +433,12 @@ return $.widget( "ui.dialog", {
}
});
- uiDialogTitle = $( "<span>" )
- .uniqueId()
- .addClass( "ui-dialog-title" )
- .prependTo( this.uiDialogTitlebar );
+ uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
+ this._addClass( uiDialogTitle, "ui-dialog-title" );
this._title( uiDialogTitle );
+ this.uiDialogTitlebar.prependTo( this.uiDialog );
+
this.uiDialog.attr({
"aria-labelledby": uiDialogTitle.attr( "id" )
});
@@ -449,12 +452,13 @@ return $.widget( "ui.dialog", {
},
_createButtonPane: function() {
- this.uiDialogButtonPane = $( "<div>" )
- .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
+ this.uiDialogButtonPane = $( "<div>" );
+ this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
+ "ui-widget-content ui-helper-clearfix" );
this.uiButtonSet = $( "<div>" )
- .addClass( "ui-dialog-buttonset" )
.appendTo( this.uiDialogButtonPane );
+ this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
this._createButtons();
},
@@ -468,7 +472,7 @@ return $.widget( "ui.dialog", {
this.uiButtonSet.empty();
if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
- this.uiDialog.removeClass( "ui-dialog-buttons" );
+ this._removeClass( this.uiDialog, "ui-dialog-buttons" );
return;
}
@@ -494,7 +498,7 @@ return $.widget( "ui.dialog", {
.button( buttonOptions )
.appendTo( that.uiButtonSet );
});
- this.uiDialog.addClass( "ui-dialog-buttons" );
+ this._addClass( this.uiDialog, "ui-dialog-buttons" );
this.uiDialogButtonPane.appendTo( this.uiDialog );
},
@@ -514,7 +518,7 @@ return $.widget( "ui.dialog", {
handle: ".ui-dialog-titlebar",
containment: "document",
start: function( event, ui ) {
- $( this ).addClass( "ui-dialog-dragging" );
+ that._addClass( $( this ), "ui-dialog-dragging" );
that._blockFrames();
that._trigger( "dragStart", event, filteredUi( ui ) );
},
@@ -531,7 +535,7 @@ return $.widget( "ui.dialog", {
"top" + (top >= 0 ? "+" : "") + top,
of: that.window
};
- $( this ).removeClass( "ui-dialog-dragging" );
+ that._removeClass( $( this ), "ui-dialog-dragging" );
that._unblockFrames();
that._trigger( "dragStop", event, filteredUi( ui ) );
}
@@ -568,7 +572,7 @@ return $.widget( "ui.dialog", {
minHeight: this._minHeight(),
handles: resizeHandles,
start: function( event, ui ) {
- $( this ).addClass( "ui-dialog-resizing" );
+ that._addClass( $( this ), "ui-dialog-resizing" );
that._blockFrames();
that._trigger( "resizeStart", event, filteredUi( ui ) );
},
@@ -588,7 +592,7 @@ return $.widget( "ui.dialog", {
"top" + (top >= 0 ? "+" : "") + top,
of: that.window
};
- $( this ).removeClass( "ui-dialog-resizing" );
+ that._removeClass( $( this ), "ui-dialog-resizing" );
that._unblockFrames();
that._trigger( "resizeStop", event, filteredUi( ui ) );
}
@@ -676,12 +680,6 @@ return $.widget( "ui.dialog", {
var isDraggable, isResizable,
uiDialog = this.uiDialog;
- if ( key === "dialogClass" ) {
- uiDialog
- .removeClass( this.options.dialogClass )
- .addClass( value );
- }
-
if ( key === "disabled" ) {
return;
}
@@ -850,8 +848,9 @@ return $.widget( "ui.dialog", {
}
this.overlay = $( "<div>" )
- .addClass( "ui-widget-overlay ui-front" )
.appendTo( this._appendTo() );
+
+ this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
this._on( this.overlay, {
mousedown: "_keepFocus"
});
@@ -881,4 +880,30 @@ return $.widget( "ui.dialog", {
}
});
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+ // Backcompat for dialogClass option
+ $.widget( "ui.dialog", $.ui.dialog, {
+ options: {
+ dialogClass: ""
+ },
+ _createWrapper: function() {
+ this._super();
+ this.uiDialog.addClass( this.options.dialogClass );
+ },
+ _setOption: function( key, value ) {
+ if ( key === "dialogClass" ) {
+ this.uiDialog
+ .removeClass( this.options.dialogClass )
+ .addClass( value );
+ }
+ this._superApply( arguments );
+ }
+ });
+}
+
+return $.ui.dialog;
+
}));