Skip to content
Permalink
Browse files

dialog: fixed _position regression; wrote a test for the default posi…

…ton, which still needs some tuning
  • Loading branch information
jzaefferer committed Sep 19, 2009
1 parent c59c042 commit 122a6cdd5fbc1b3e1769bb4669dc68e7d8279177
Showing with 38 additions and 28 deletions.
  1. +10 −1 tests/unit/dialog/dialog_options.js
  2. +28 −27 ui/jquery.ui.dialog.js
@@ -240,7 +240,16 @@ test("modal", function() {
ok(false, 'missing test - untested code is broken code');
});

test("position", function() {
test("position, default center on window", function() {
var el = $('<div></div>').dialog();
var offset = el.parent().offset();
// use .position() instead to avoid replicating center-logic?
same(offset.left, Math.floor($(window).width() / 2 - el.parent().width() / 2));
same(offset.top, Math.floor($(window).height() / 2 - el.parent().height() / 2));
el.remove();
});

test("position, others", function() {
ok(false, 'missing test - untested code is broken code');
});

@@ -382,35 +382,36 @@ $.widget("ui.dialog", {
// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
// if (typeof position == 'string' || $.isArray(position)) {
// myAt = $.isArray(position) ? position : position.split(' ');
if (!position || (typeof positon != "string" && typeof positon != "object"))
return
if (typeof position == 'string' || '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;
if (position && (typeof positon == "string" || typeof positon == "object")) {
if (typeof position == 'string' || '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;
}
});
} else {
if ('left' in position) {
myAt[0] = 'left';
offset[0] = position.left;
} else if ('right' in position) {
myAt[0] = 'right';
offset[0] = -position.right;
}

if ('top' in position) {
myAt[1] = 'top';
offset[1] = position.top;
} else if ('bottom' in position) {
myAt[1] = 'bottom';
offset[1] = -position.bottom;
}
});
} else {
if ('left' in position) {
myAt[0] = 'left';
offset[0] = position.left;
} else if ('right' in position) {
myAt[0] = 'right';
offset[0] = -position.right;
}

if ('top' in position) {
myAt[1] = 'top';
offset[1] = position.top;
} else if ('bottom' in position) {
myAt[1] = 'bottom';
offset[1] = -position.bottom;
}
}

0 comments on commit 122a6cd

Please sign in to comment.
You can’t perform that action at this time.