SWADroid/doc/ER_db/schemaSpy.js

98 lines
2.5 KiB
JavaScript

// table-based pages are expected to set 'table' to their name
var table = null;
// sync target's visibility with the state of checkbox
function sync(cb, target) {
var checked = cb.attr('checked');
var displayed = target.css('display') != 'none';
if (checked != displayed) {
if (checked)
target.show();
else
target.hide();
}
}
// sync target's visibility with the inverse of the state of checkbox
function unsync(cb, target) {
var checked = cb.attr('checked');
var displayed = target.css('display') != 'none';
if (checked == displayed) {
if (checked)
target.hide();
else
target.show();
}
}
// associate the state of checkbox with the visibility of target
function associate(cb, target) {
sync(cb, target);
cb.click(function() {
sync(cb, target);
});
}
// select the appropriate image based on the options selected
function syncImage() {
var implied = $('#implied').attr('checked');
$('.diagram').hide();
if (table) {
if (implied && $('#impliedTwoDegreesImg').size() > 0) {
$('#impliedTwoDegreesImg').show();
} else {
var oneDegree = $('#oneDegree').attr('checked');
if (oneDegree || $('#twoDegreesImg').size() == 0) {
$('#oneDegreeImg').show();
} else {
$('#twoDegreesImg').show();
}
}
} else {
var showNonKeys = $('#showNonKeys').attr('checked');
if (implied) {
if (showNonKeys && $('#impliedLargeImg').size() > 0) {
$('#impliedLargeImg').show();
} else if ($('#impliedCompactImg').size() > 0) {
$('#impliedCompactImg').show();
} else {
$('#realCompactImg').show();
}
} else {
if (showNonKeys && $('#realLargeImg').size() > 0) {
$('#realLargeImg').show();
} else {
$('#realCompactImg').show();
}
}
}
}
// our 'ready' handler makes the page consistent
$(function(){
associate($('#implied'), $('.impliedRelationship'));
associate($('#showComments'), $('.comment'));
associate($('#showLegend'), $('.legend'));
associate($('#showRelatedCols'), $('.relatedKey'));
associate($('#showConstNames'), $('.constraint'));
syncImage();
$('#implied,#oneDegree,#twoDegrees,#showNonKeys').click(function() {
syncImage();
});
unsync($('#implied'), $('.degrees'));
$('#implied').click(function() {
unsync($('#implied'), $('.degrees'));
});
unsync($('#removeImpliedOrphans'), $('.impliedNotOrphan'));
$('#removeImpliedOrphans').click(function() {
unsync($('#removeImpliedOrphans'), $('.impliedNotOrphan'));
});
});