Author: lgiessmann
Date: Mon Jul 18 07:08:08 2011
New Revision: 639
Log:
fixed ticket #114 => added a delete button and functionality for associations to the UI
Modified:
trunk/src/ajax/javascripts/constants.js
trunk/src/ajax/javascripts/datamodel.js
Modified: trunk/src/ajax/javascripts/constants.js
==============================================================================
--- trunk/src/ajax/javascripts/constants.js Mon Jul 18 05:08:51 2011 (r638)
+++ trunk/src/ajax/javascripts/constants.js Mon Jul 18 07:08:08 2011 (r639)
@@ -24,7 +24,7 @@
var SUMMARY_URL = HOST_PREF + "json/summary";
var MARK_AS_DELETED_URL = HOST_PREF + "mark-as-deleted";
var TM_OVERVIEW = HOST_PREF + "json/tmcl/overview/";
-var TIMEOUT = 30000; // const TIMEOUT = 10000 --> "const" doesn't work under IE
+var TIMEOUT = 60000; // const TIMEOUT = 10000 --> "const" doesn't work under IE
@@ -94,6 +94,7 @@
"topicPsis" : function(){ return "topicPsis"; },
"removeLink" : function(){ return "removeLink"; },
"removeNameRow" : function(){ return "removeOccurrenceRow"; },
+ "removeAssociationRow" : function(){ return "removeAssociationRow"; },
"removeOccurrenceRow" : function(){ return "removeNameRow"; },
"removeTopicRow" : function(){ return "removeTopicRow"; }
};
Modified: trunk/src/ajax/javascripts/datamodel.js
==============================================================================
--- trunk/src/ajax/javascripts/datamodel.js Mon Jul 18 05:08:51 2011 (r638)
+++ trunk/src/ajax/javascripts/datamodel.js Mon Jul 18 07:08:08 2011 (r639)
@@ -433,6 +433,18 @@
for(var i = 0; i !== values.length; ++i)values[i] = encodeURI(values[i]);
return values;
},
+ "reset" : function(){
+ if(!this.__container__.__frames__) return;
+
+ for(var i = 0; i != this.__container__.__frames__.length; ++i)
+ this.__container__.__frames__[i].remove();
+
+ while(this.__container__.__frames__.length != 0)this.__container__.__frames__.shift();
+
+ new TextrowC("", ".*", this.__container__, 1, -1, null);
+ this.__error__.insert({"before" : this.__container__.__frames__[0].getFrame()});
+
+ },
"toJSON" : function(unique, removeNull){
var content = this.getContent(unique, removeNull);
return content.length === 0 ? "null" : content.toJSON();
@@ -3678,6 +3690,13 @@
});
}
setDblClickHandler(this);
+
+ // --- mark-as-deleted
+ if(contents){
+ var myself = this;
+ this.__table__.insert({"bottom" : makeRemoveLink(function(event){
+ makeRemoveObject("Association", myself);
+ }, "delete Association")});}
}
catch(err){
alert("From AssociationC(): " + err);
@@ -4359,6 +4378,7 @@
case "delete Occurrence" : trClass = CLASSES.removeOccurrenceRow(); break;
case "delete Topic" : trClass = CLASSES.removeTopicRow(); break;
case "delete Name" : trClass = CLASSES.removeNameRow(); break;
+ case "delete Association" : trClass = CLASSES.removeAssociationRow(); break;
}
var tr = new Element("tr", {"class" : trClass}).insert(new Element("td", {"colspan" : 3}).insert(link));
@@ -4372,7 +4392,7 @@
if(type !== "Occurrence" && type !== "Name" && type !== "Variant"
&& type !== "Topic" && type !== "Association"){
throw "From makeRemoveObject(): type must be: \"Occurrence\" || \"Name\" " +
- "|| \"Topic\" but is " + type;
+ "|| \"Topic\" || \"Association\" but is " + type;
}
if (!objectToDelete){
throw "From makeRemoveObject(): objectToDelete must be set";
@@ -4418,15 +4438,18 @@
var delMessage = "null";
switch(type){
- case "Topic":
+ case "Topic":
delMessage = "{\"type\":\"Topic\",\"delete\":" + makeJsonTopicStub(objectToDelete.getFrame()) + "}";
break;
- case "Name":
- case "Occurrence":
+ case "Name":
+ case "Occurrence":
delMessage = "{\"type\":\"" + type + "\",\"parent\":" +
- makeJsonTopicStub(objectToDelete.getFrame().parentNode.parentNode.parentNode.parentNode) +
- ",\"delete\":" + objectToDelete.toJSON() + "}";
+ makeJsonTopicStub(objectToDelete.getFrame().parentNode.parentNode.parentNode.parentNode) +
+ ",\"delete\":" + objectToDelete.toJSON() + "}";
break;
+ case "Association":
+ delMessage = "{\"type\":\"Association\",\"delete\":" + objectToDelete.toJSON() + "}";
+ break;
}
commitDeletedObject(delMessage, function(xhr){
@@ -4434,8 +4457,14 @@
$(CLASSES.subPage()).update();
setNaviClasses($(PAGES.home));
makePage(PAGES.home, "");
- }
- else if (type === "Occurrence" || type === "Name"){
+ }else if(type === "Association"){
+ if(objectToDelete.__owner__.__frames__.length === 1){
+ objectToDelete.__itemIdentity__.reset();
+ objectToDelete.disable();
+ }else {
+ objectToDelete.remove();
+ }
+ }else if (type === "Occurrence" || type === "Name"){
if(objectToDelete.__owner__.__frames__.length >= 1 &&
objectToDelete.__owner__.__frames__.length > objectToDelete.__min__){
objectToDelete.remove();
@@ -4458,6 +4487,6 @@
ii.remove();
}
}
- alert("Objected deleted");
+ alert("Object deleted");
});
}
\ No newline at end of file