Dialog: Removed deprecated position handling. Fixes #8825 - Dialog: Remove array and string notations for position option.

This commit is contained in:
Scott González 2013-03-15 06:40:51 -04:00
parent 4484c52a4d
commit 0cc40d799f
6 changed files with 1 additions and 183 deletions

View File

@ -318,7 +318,7 @@ grunt.initConfig({
files: expandFiles( "tests/unit/**/*.html" ).filter(function( file ) { files: expandFiles( "tests/unit/**/*.html" ).filter(function( file ) {
// disabling everything that doesn't (quite) work with PhantomJS for now // disabling everything that doesn't (quite) work with PhantomJS for now
// TODO except for all|index|test, try to include more as we go // TODO except for all|index|test, try to include more as we go
return !( /(all|index|test|dialog|dialog_deprecated|tabs|tooltip)\.html$/ ).test( file ); return !( /(all|index|test|dialog|tabs|tooltip)\.html$/ ).test( file );
}) })
}, },
jshint: { jshint: {

View File

@ -16,7 +16,6 @@ var versions = {
"Core": "core/core.html", "Core": "core/core.html",
"Datepicker": "datepicker/datepicker.html", "Datepicker": "datepicker/datepicker.html",
"Dialog": "dialog/dialog.html", "Dialog": "dialog/dialog.html",
"Dialog_deprecated": "dialog/dialog_deprecated.html",
"Draggable": "draggable/draggable.html", "Draggable": "draggable/draggable.html",
"Droppable": "droppable/droppable.html", "Droppable": "droppable/droppable.html",
"Effects": "effects/effects.html", "Effects": "effects/effects.html",

View File

@ -22,7 +22,6 @@
"core/core.html", "core/core.html",
"datepicker/datepicker.html", "datepicker/datepicker.html",
"dialog/dialog.html", "dialog/dialog.html",
"dialog/dialog_deprecated.html",
"draggable/draggable.html", "draggable/draggable.html",
"droppable/droppable.html", "droppable/droppable.html",
"effects/effects.html", "effects/effects.html",

View File

@ -1,67 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Dialog Test Suite</title>
<script src="../../jquery.js"></script>
<link rel="stylesheet" href="../../../external/qunit.css">
<script src="../../../external/qunit.js"></script>
<script src="../../jquery.simulate.js"></script>
<script src="../testsuite.js"></script>
<script>
TestHelpers.loadResources({
css: [ "ui.core", "ui.dialog" ],
js: [
"ui/jquery.ui.core.js",
"ui/jquery.ui.widget.js",
"ui/jquery.ui.position.js",
"ui/jquery.ui.mouse.js",
"ui/jquery.ui.draggable.js",
"ui/jquery.ui.resizable.js",
"ui/jquery.ui.button.js",
"ui/jquery.ui.effect.js",
"ui/jquery.ui.effect-blind.js",
"ui/jquery.ui.effect-clip.js",
"ui/jquery.ui.effect-explode.js",
"ui/jquery.ui.dialog.js"
]
});
</script>
<script src="dialog_common.js"></script>
<script src="dialog_core.js"></script>
<script src="dialog_events.js"></script>
<script src="dialog_methods.js"></script>
<script src="dialog_options.js"></script>
<script src="dialog_test_helpers.js"></script>
<script src="dialog_deprecated.js"></script>
<script src="../swarminject.js"></script>
</head>
<body>
<h1 id="qunit-header">jQuery UI Dialog Test Suite</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
<div id="dialog1"></div>
<div id="dialog2"></div>
<div id="form-dialog" title="Profile Information">
<fieldset>
<legend>Please share some personal information</legend>
<label for="favorite-animal">Your favorite animal</label><input id="favorite-animal">
<label for="favorite-color">Your favorite color</label><input id="favorite-color">
</fieldset>
<div role="group" aria-describedby="section2">
<p id="section2">Some more (optional) information</p>
<label for="favorite-food">Favorite food</label><input id="favorite-food">
</div>
</div>
<div class="wrap" id="wrap1"></div>
<div class="wrap" id="wrap2"></div>
</div>
</body>
</html>

View File

@ -1,63 +0,0 @@
module("dialog (deprecated): position option with string and array");
test( "position, right bottom on window w/array", function() {
expect( 2 );
// dialogs alter the window width and height in FF and IE7
// so we collect that information before creating the dialog
// Support: FF, IE7
var winWidth = $( window ).width(),
winHeight = $( window ).height(),
element = $("<div></div>").dialog({ position: [ "right", "bottom" ] }),
dialog = element.dialog("widget"),
offset = dialog.offset();
closeEnough( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "offset left of right bottom on window w/array" );
closeEnough( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "offset top of right bottom on window w/array" );
element.remove();
});
test( "position, right bottom on window", function() {
expect( 2 );
// dialogs alter the window width and height in FF and IE7
// so we collect that information before creating the dialog
// Support: FF, IE7
var winWidth = $( window ).width(),
winHeight = $( window ).height(),
element = $("<div></div>").dialog({ position: "right bottom" }),
dialog = element.dialog("widget"),
offset = dialog.offset();
closeEnough( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "offset left of right bottom on window" );
closeEnough( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "offset top of right bottom on window" );
element.remove();
});
test("position, offset from top left w/array", function() {
expect( 2 );
var element = $("<div></div>").dialog({ position: [10, 10] }),
dialog = element.dialog("widget"),
offset = dialog.offset();
closeEnough(offset.left, 10 + $(window).scrollLeft(), 1);
closeEnough(offset.top, 10 + $(window).scrollTop(), 1);
element.remove();
});
test("position, top on window", function() {
expect( 2 );
var element = $("<div></div>").dialog({ position: "top" }),
dialog = element.dialog("widget"),
offset = dialog.offset();
closeEnough(offset.left, Math.round($(window).width() / 2 - dialog.outerWidth() / 2) + $(window).scrollLeft(), 1);
closeEnough(offset.top, $(window).scrollTop(), 1);
element.remove();
});
test("position, left on window", function() {
expect( 2 );
var element = $("<div></div>").dialog({ position: "left" }),
dialog = element.dialog("widget"),
offset = dialog.offset();
closeEnough(offset.left, 0, 1);
closeEnough(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop(), 1);
element.remove();
});

View File

@ -755,54 +755,4 @@ $.widget( "ui.dialog", {
$.ui.dialog.overlayInstances = 0; $.ui.dialog.overlayInstances = 0;
// DEPRECATED
if ( $.uiBackCompat !== false ) {
// position option with array notation
// just override with old implementation
$.widget( "ui.dialog", $.ui.dialog, {
_position: function() {
var position = this.options.position,
myAt = [],
offset = [ 0, 0 ],
isVisible;
if ( position ) {
if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) {
myAt = position.split ? position.split(" ") : [ position[0], position[1] ];
if ( myAt.length === 1 ) {
myAt[1] = myAt[0];
}
$.each( [ "left", "top" ], function( i, offsetPosition ) {
if ( +myAt[ i ] === myAt[ i ] ) {
offset[ i ] = myAt[ i ];
myAt[ i ] = offsetPosition;
}
});
position = {
my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
at: myAt.join(" ")
};
}
position = $.extend( {}, $.ui.dialog.prototype.options.position, position );
} else {
position = $.ui.dialog.prototype.options.position;
}
// need to show the dialog to get the actual offset in the position plugin
isVisible = this.uiDialog.is(":visible");
if ( !isVisible ) {
this.uiDialog.show();
}
this.uiDialog.position( position );
if ( !isVisible ) {
this.uiDialog.hide();
}
}
});
}
}( jQuery ) ); }( jQuery ) );