aboutsummaryrefslogtreecommitdiffstats
path: root/doc/schemaspy_hubzilla/schemaSpy.js
diff options
context:
space:
mode:
Diffstat (limited to 'doc/schemaspy_hubzilla/schemaSpy.js')
-rw-r--r--doc/schemaspy_hubzilla/schemaSpy.js97
1 files changed, 97 insertions, 0 deletions
diff --git a/doc/schemaspy_hubzilla/schemaSpy.js b/doc/schemaspy_hubzilla/schemaSpy.js
new file mode 100644
index 000000000..d1a739d4e
--- /dev/null
+++ b/doc/schemaspy_hubzilla/schemaSpy.js
@@ -0,0 +1,97 @@
+// 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'));
+ });
+});