summaryrefslogtreecommitdiffstats
path: root/js/wwwsqldesigner.js
diff options
context:
space:
mode:
authorondrej.zara <none@none>2009-11-04 09:00:31 +0000
committerondrej.zara <none@none>2009-11-04 09:00:31 +0000
commit8bdd03178ece260a776f3416440742208eea3bb8 (patch)
treeccc1f793b2656e30fff06f6be0604a080eaee662 /js/wwwsqldesigner.js
parent49dd797e7d54895c89b96efc94bda7a5a8ffd91a (diff)
downloadwwwsqldesigner-8bdd03178ece260a776f3416440742208eea3bb8.zip
wwwsqldesigner-8bdd03178ece260a776f3416440742208eea3bb8.tar.gz
wwwsqldesigner-8bdd03178ece260a776f3416440742208eea3bb8.tar.bz2
remove foreign key; issue #7
--HG-- extra : convert_revision : svn%3Ab267cdba-c1da-11dd-874b-8bacd04a0a74/trunk%4054
Diffstat (limited to 'js/wwwsqldesigner.js')
-rw-r--r--js/wwwsqldesigner.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/js/wwwsqldesigner.js b/js/wwwsqldesigner.js
index 06b9c00..491aa56 100644
--- a/js/wwwsqldesigner.js
+++ b/js/wwwsqldesigner.js
@@ -1463,7 +1463,7 @@ SQL.RowManager.prototype.init = function(owner) {
this.creating = false;
this.connecting = false;
- var ids = ["editrow","removerow","uprow","downrow","foreigncreate","foreignconnect"];
+ var ids = ["editrow","removerow","uprow","downrow","foreigncreate","foreignconnect","foreigndisconnect"];
for (var i=0;i<ids.length;i++) {
var id = ids[i];
var elm = OZ.$(id);
@@ -1479,6 +1479,7 @@ SQL.RowManager.prototype.init = function(owner) {
OZ.Event.add(this.dom.removerow, "click", this.bind(this.remove));
OZ.Event.add(this.dom.foreigncreate, "click", this.bind(this.foreigncreate));
OZ.Event.add(this.dom.foreignconnect, "click", this.bind(this.foreignconnect));
+ OZ.Event.add(this.dom.foreigndisconnect, "click", this.bind(this.foreigndisconnect));
OZ.Event.add(false, "tableclick", this.bind(this.tableClick));
OZ.Event.add(false, "rowclick", this.bind(this.rowClick));
OZ.Event.add(document, "keydown", this.bind(this.press));
@@ -1540,6 +1541,15 @@ SQL.RowManager.prototype.foreignconnect = function(e) { /* start drawing fk */
}
}
+SQL.RowManager.prototype.foreigndisconnect = function(e) { /* remove connector */
+ var rels = this.selected.relations;
+ for (var i=rels.length-1;i>=0;i--) {
+ var r = rels[i];
+ if (r.row2 == this.selected) { this.owner.removeRelation(r); }
+ }
+ this.redraw();
+}
+
SQL.RowManager.prototype.endCreate = function() {
this.creating = false;
this.dom.foreigncreate.value = _("foreigncreate");
@@ -1583,6 +1593,14 @@ SQL.RowManager.prototype.redraw = function() {
this.dom.editrow.disabled = false;
this.dom.foreigncreate.disabled = !(this.selected.isUnique());
this.dom.foreignconnect.disabled = !(this.selected.isUnique());
+
+ this.dom.foreigndisconnect.disabled = true;
+ var rels = this.selected.relations;
+ for (var i=0;i<rels.length;i++) {
+ var r = rels[i];
+ if (r.row2 == this.selected) { this.dom.foreigndisconnect.disabled = false; }
+ }
+
} else {
this.dom.uprow.disabled = true;
this.dom.downrow.disabled = true;
@@ -1590,6 +1608,7 @@ SQL.RowManager.prototype.redraw = function() {
this.dom.editrow.disabled = true;
this.dom.foreigncreate.disabled = true;
this.dom.foreignconnect.disabled = true;
+ this.dom.foreigndisconnect.disabled = true;
}
}