Fix invalid references line position on Database schema

This commit is contained in:
Jakub Vrana 2012-03-06 00:48:28 -08:00
parent b959ba41c6
commit 405ad5f07e
2 changed files with 9 additions and 11 deletions

View file

@ -417,10 +417,9 @@ function schemaMousemove(ev) {
var lineSet = { }; var lineSet = { };
for (var i=0; i < divs.length; i++) { for (var i=0; i < divs.length; i++) {
if (divs[i].className == 'references') { if (divs[i].className == 'references') {
var div2 = document.getElementById((divs[i].id.substr(0, 4) == 'refs' ? 'refd' : 'refs') + divs[i].id.substr(4)); var div2 = document.getElementById((/^refs/.test(divs[i].id) ? 'refd' : 'refs') + divs[i].id.substr(4));
var ref = (tablePos[divs[i].title] ? tablePos[divs[i].title] : [ div2.parentNode.offsetTop / em, 0 ]); var ref = (tablePos[divs[i].title] ? tablePos[divs[i].title] : [ div2.parentNode.offsetTop / em, 0 ]);
var left1 = -1; var left1 = -1;
var isTop = true;
var id = divs[i].id.replace(/^ref.(.+)-.+/, '$1'); var id = divs[i].id.replace(/^ref.(.+)-.+/, '$1');
if (divs[i].parentNode != div2.parentNode) { if (divs[i].parentNode != div2.parentNode) {
left1 = Math.min(0, ref[1] - left) - 1; left1 = Math.min(0, ref[1] - left) - 1;
@ -429,19 +428,17 @@ function schemaMousemove(ev) {
var left2 = Math.min(0, left - ref[1]) - 1; var left2 = Math.min(0, left - ref[1]) - 1;
div2.style.left = left2 + 'em'; div2.style.left = left2 + 'em';
div2.getElementsByTagName('div')[0].style.width = -left2 + 'em'; div2.getElementsByTagName('div')[0].style.width = -left2 + 'em';
isTop = (div2.offsetTop + ref[0] * em > divs[i].offsetTop + top * em);
} }
if (!lineSet[id]) { if (!lineSet[id]) {
var line = document.getElementById(divs[i].id.replace(/^....(.+)-\d+$/, 'refl$1')); var line = document.getElementById(divs[i].id.replace(/^....(.+)-.+$/, 'refl$1'));
var shift = ev.clientY - y - that.offsetTop; var top1 = top + divs[i].offsetTop / em;
line.style.left = (left + left1) + 'em'; var top2 = top + div2.offsetTop / em;
if (isTop) {
line.style.top = (line.offsetTop + shift) / em + 'em';
}
if (divs[i].parentNode != div2.parentNode) { if (divs[i].parentNode != div2.parentNode) {
line = line.getElementsByTagName('div')[0]; top2 += ref[0] - top;
line.style.height = (line.offsetHeight + (isTop ? -1 : 1) * shift) / em + 'em'; line.getElementsByTagName('div')[0].style.height = Math.abs(top1 - top2) + 'em';
} }
line.style.left = (left + left1) + 'em';
line.style.top = Math.min(top1, top2) + 'em';
lineSet[id] = true; lineSet[id] = true;
} }
} }

View file

@ -9,6 +9,7 @@ Esc to cancel AJAX request
Move AJAX loading indicator to the right Move AJAX loading indicator to the right
Don't quote bit type in export Don't quote bit type in export
Don't check row while selecting text Don't check row while selecting text
Fix invalid references line position on Database schema
Disable selecting text on Database schema Disable selecting text on Database schema
Ability to disable export (customization) Ability to disable export (customization)
Extensible list of databases (customization) Extensible list of databases (customization)