]> source.dussan.org Git - jquery-ui.git/commitdiff
Dialog: Follow-up to 9fe3a62d8 - also deprecate string notation for position option.
authorJörn Zaefferer <joern.zaefferer@gmail.com>
Wed, 21 Nov 2012 15:33:46 +0000 (16:33 +0100)
committerJörn Zaefferer <joern.zaefferer@gmail.com>
Mon, 26 Nov 2012 09:28:25 +0000 (10:28 +0100)
tests/unit/dialog/dialog_deprecated.js
tests/unit/dialog/dialog_options.js
ui/jquery.ui.dialog.js

index 06052b6bf74180d1a0766e0e110a86003463c703..fcbd22faa677d63cf71384d89f4f774eafea90a3 100644 (file)
@@ -1,4 +1,4 @@
-module("dialog (deprecated): position opton with array");
+module("dialog (deprecated): position option with string and array");
 
 if ( !$.ui.ie ) {
        test("position, right bottom on window w/array", function() {
@@ -10,6 +10,16 @@ if ( !$.ui.ie ) {
                closeEnough(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop(), 1);
                el.remove();
        });
+
+       test("position, right bottom on window", function() {
+               expect( 2 );
+               var el = $('<div></div>').dialog({ position: "right bottom" }),
+                       dialog = el.dialog('widget'),
+                       offset = dialog.offset();
+               closeEnough(offset.left, $(window).width() - dialog.outerWidth() + $(window).scrollLeft(), 1);
+               closeEnough(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop(), 1);
+               el.remove();
+       });
 }
 
 test("position, offset from top left w/array", function() {
@@ -21,3 +31,23 @@ test("position, offset from top left w/array", function() {
        closeEnough(offset.top, 10 + $(window).scrollTop(), 1);
        el.remove();
 });
+
+test("position, top on window", function() {
+       expect( 2 );
+       var el = $('<div></div>').dialog({ position: "top" }),
+               dialog = el.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);
+       el.remove();
+});
+
+test("position, left on window", function() {
+       expect( 2 );
+       var el = $('<div></div>').dialog({ position: "left" }),
+               dialog = el.dialog('widget'),
+               offset = dialog.offset();
+       closeEnough(offset.left, 0, 1);
+       closeEnough(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop(), 1);
+       el.remove();
+});
index 4e11ecf62661ffd11292187215da4bacedb97be0..f01a1a2a89601d3173b3b986b1bc010a91f16e7c 100644 (file)
@@ -298,39 +298,8 @@ test("position, default center on window", function() {
        el.remove();
 });
 
-test("position, top on window", function() {
-       expect( 2 );
-       var el = $('<div></div>').dialog({ position: "top" }),
-               dialog = el.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);
-       el.remove();
-});
-
-test("position, left on window", function() {
-       expect( 2 );
-       var el = $('<div></div>').dialog({ position: "left" }),
-               dialog = el.dialog('widget'),
-               offset = dialog.offset();
-       closeEnough(offset.left, 0, 1);
-       closeEnough(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop(), 1);
-       el.remove();
-});
-
 // todo: figure out these fails in IE7
 if ( !$.ui.ie ) {
-
-       test("position, right bottom on window", function() {
-               expect( 2 );
-               var el = $('<div></div>').dialog({ position: "right bottom" }),
-                       dialog = el.dialog('widget'),
-                       offset = dialog.offset();
-               closeEnough(offset.left, $(window).width() - dialog.outerWidth() + $(window).scrollLeft(), 1);
-               closeEnough(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop(), 1);
-               el.remove();
-       });
-
        test("position, right bottom at right bottom via ui.position args", function() {
                expect( 2 );
                var el = $('<div></div>').dialog({
@@ -346,7 +315,6 @@ if ( !$.ui.ie ) {
                closeEnough(offset.top, $(window).height() - dialog.outerHeight() + $(window).scrollTop(), 1);
                el.remove();
        });
-
 }
 
 test("position, at another element", function() {
index b998c2558e19e504b75a6dc602c232e3cb17a887..b9f73e954cd8a7b1b2b034be9e2117cc205e2fab 100644 (file)
@@ -495,33 +495,12 @@ $.widget("ui.dialog", {
        },
 
        _position: function() {
-               var position = this.options.position,
-                       myAt = [],
-                       isVisible;
-
-               if ( position ) {
-                       if ( typeof position === "string" ) {
-                               myAt = position.split( " " );
-                               if ( myAt.length === 1 ) {
-                                       myAt[ 1 ] = myAt[ 0 ];
-                               }
-                               position = {
-                                       my: myAt[0] + " " + myAt[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" );
+               var isVisible = this.uiDialog.is( ":visible" );
                if ( !isVisible ) {
                        this.uiDialog.show();
                }
-               this.uiDialog.position( position );
+               this.uiDialog.position( this.options.position );
                if ( !isVisible ) {
                        this.uiDialog.hide();
                }
@@ -719,48 +698,50 @@ $.ui.dialog.overlay = {
 if ( $.uiBackCompat !== false ) {
        // position option with array notation
        // just override with old implementation
-       $.ui.dialog.prototype._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;
+       $.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 ];
                                        }
-                               });
 
-                               position = {
-                                       my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
-                                               myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
-                                       at: myAt.join( " " )
-                               };
-                       }
+                                       $.each( [ "left", "top" ], function( i, offsetPosition ) {
+                                               if ( +myAt[ i ] === myAt[ i ] ) {
+                                                       offset[ i ] = myAt[ i ];
+                                                       myAt[ i ] = offsetPosition;
+                                               }
+                                       });
 
-                       position = $.extend( {}, $.ui.dialog.prototype.options.position, position );
-               } else {
-                       position = $.ui.dialog.prototype.options.position;
-               }
+                                       position = {
+                                               my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " +
+                                                       myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]),
+                                               at: myAt.join( " " )
+                                       };
+                               }
 
-               // 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();
+                               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 ) );