[isidorus-cvs] r44 - in trunk/src: ajax/javascripts json
Lukas Giessmann
lgiessmann at common-lisp.net
Tue Jun 16 12:17:10 UTC 2009
Author: lgiessmann
Date: Tue Jun 16 08:17:10 2009
New Revision: 44
Log:
ajax-client: a fragment commit without validation is implemented; json-importer: to import a topic or a topicStub it is necessary to define a psi for this element - this is difference between the xtm-importer \(there must be one of the elements psi, itemidentity, subjectlocator defined\), because all topics are referenced via psis and not topicid\'s
Modified:
trunk/src/ajax/javascripts/create.js
trunk/src/ajax/javascripts/datamodel.js
trunk/src/ajax/javascripts/requests.js
trunk/src/json/json_importer.lisp
Modified: trunk/src/ajax/javascripts/create.js
==============================================================================
--- trunk/src/ajax/javascripts/create.js (original)
+++ trunk/src/ajax/javascripts/create.js Tue Jun 16 08:17:10 2009
@@ -36,6 +36,11 @@
items[i].remove();
}
+ items = $$("li." + CLASSES.tmIdFrame());
+ for(var i = 0; i !== items.length; ++i){
+ items[i].remove();
+ }
+
items = $$("li." + CLASSES.commitButton());
for(var i = 0; i !== items.length; ++i){
items[i].remove();
@@ -49,10 +54,17 @@
var liT = new Element("li", {"class" : CLASSES.topicFrame()}).update(topic.getFrame());
context.insert({"after" : liT});
- addTopicAsPlayer((constraints ? constraints.associationsConstraints : null), topic.getContent().instanceOfs);
- var associations = new AssociationContainerC(null, (constraints ? constraints.associationsConstraints : null));
- var liA = new Element("li", {"class" : CLASSES.associationContainer()}).update(associations.getFrame());
- liT.insert({"after" : liA});
+ var liA = null;
+ var associations = null;
+ if(constraints && constraints.associationsConstraints && constraints.associationsConstraints.length !== 0){
+ addTopicAsPlayer((constraints ? constraints.associationsConstraints : null), topic.getContent().instanceOfs);
+ associations = new AssociationContainerC(null, (constraints ? constraints.associationsConstraints : null));
+ liA = new Element("li", {"class" : CLASSES.associationContainer()}).update(associations.getFrame());
+ liT.insert({"after" : liA});
+ }
+ else {
+ liA = liT;
+ }
var tmId = new tmIdC(null);
var liTm = new Element("li", {"class" : CLASSES.tmIdFrame()}).update(tmId.getFrame());
@@ -60,10 +72,12 @@
var commitButton = new Element("input", {"type" : "button", "value" : "commit fragment", "style" : "float: right; margin-top: -10px;"})
commitButton.observe("click", function(event){
- try{
var tPsis = topic.getContent().subjectIdentifiers;
- var referencedTopics = topic.getReferencedTopics().concat(associations.getReferencedTopics()).without(CURRENT_TOPIC).uniq();
-
+ var referencedTopics = topic.getReferencedTopics();
+ if(associations){
+ referencedTopics = referencedTopics.concat(associations.getReferencedTopics()).without(CURRENT_TOPIC).uniq();
+ }
+
function onSuccessHandler(topicStubs){
var tsStr = "null";
if(topicStubs && topicStubs.length !== 0){
@@ -76,19 +90,18 @@
}
var jTopic = "\"topic\":" + topic.toJSON();
var jTopicStubs = "\"topicStubs\":" + tsStr;
- var jAssociations = "\"associations\":" + associations.toJSON().gsub(CURRENT_TOPIC_ESCAPED, tPsis)
+ var jAssociations = "\"associations\":" + (associations ? associations.toJSON().gsub(CURRENT_TOPIC_ESCAPED, tPsis) : "null");
var jTmId = "\"tmIds\":" + tmId.toJSON();
var json = "{" + jTopic + "," + jTopicStubs + "," + jAssociations + "," + jTmId + "}";
- alert(json);
+ commitFragment(json, function(xhr){ alert("The fragment was committed succesfully!"); }, null);
}
-
+
function onErrorHandler(){
- // --- currently there is not neede a special handling for errors
+ // --- currently there is not needed a special handling for errors
// --- occurred during this operation
}
-
+
getTopicStubs(referencedTopics, onSuccessHandler, onErrorHandler);
- }catch(err){ alert("test: " + err); }
});
var liCB = new Element("li", {"class" : CLASSES.commitButton()});
liCB.update(commitButton);
Modified: trunk/src/ajax/javascripts/datamodel.js
==============================================================================
--- trunk/src/ajax/javascripts/datamodel.js (original)
+++ trunk/src/ajax/javascripts/datamodel.js Tue Jun 16 08:17:10 2009
@@ -650,6 +650,9 @@
catch(err){
return new Array();
}
+
+ for(var i = 0; i !== values.length; ++i)
+ values[i] = new Array(values[i]);
return values;
},
"disable" : function(){
@@ -1486,7 +1489,7 @@
var scopes = names[i].scopes;
if(scopes){
for(var j = 0; j !== scopes.length; ++j){
- if(referencedTopics.indexOf(scopes[j]) === -1) referencedTopics.push(scopes[j]);
+ if(referencedTopics.indexOf(scopes[j][0]) === -1) referencedTopics.push(scopes[j][0]);
}
}
}
@@ -1502,7 +1505,7 @@
var scopes = occurrences[i].scopes;
if(scopes){
for(var j = 0; j !== scopes.length; ++j){
- if(referencedTopics.indexOf(scopes[j]) === -1) referencedTopics.push(scopes[j]);
+ if(referencedTopics.indexOf(scopes[j][0]) === -1) referencedTopics.push(scopes[j][0]);
}
}
}
@@ -2461,7 +2464,7 @@
var scopes = associations[i].scopes;
if(scopes){
for(var j = 0; j !== scopes.length; ++j){
- if(referencedTopics.indexOf(scopes[j]) === -1) referencedTopics.push(scopes[j]);
+ if(referencedTopics.indexOf(scopes[j][0]) === -1) referencedTopics.push(scopes[j][0]);
}
}
var roles = associations[i].roles;
Modified: trunk/src/ajax/javascripts/requests.js
==============================================================================
--- trunk/src/ajax/javascripts/requests.js (original)
+++ trunk/src/ajax/javascripts/requests.js Tue Jun 16 08:17:10 2009
@@ -89,7 +89,7 @@
function checkRequests(){
var delta = 100;
neededTime += delta;
- if(delta > maxTimeout){
+ if(delta > maxTimeout && psis && psis.length !== 0){
alert("From getTopicStubs(): Please check your network-connection - the request timed out!!!");
onFailureHandler();
return;
@@ -105,4 +105,22 @@
catch(err){
alert("From getTopicStubs(): Could not request topicStubs information for: " + psis + "\n\n" + err);
}
+}
+
+
+function commitFragment(json, onSuccessHandler, onFailureHandler)
+{
+ if(!json || !onSuccessHandler) throw "From commitFragment(): json and onSuccessHandler must be set!";
+ try{
+ var onFailure = onFailureHandler ? onFailureHandler : defaultFailureHandler;
+
+ new Ajax.Request(COMMIT_URL, {
+ "method" : "post",
+ "postBody" : json,
+ "onSuccess" : onSuccessHandler,
+ "onFailure" : onFailure});
+ }
+ catch(err){
+ alert("From commitFragment(): " + err);
+ }
}
\ No newline at end of file
Modified: trunk/src/json/json_importer.lisp
==============================================================================
--- trunk/src/json/json_importer.lisp (original)
+++ trunk/src/json/json_importer.lisp Tue Jun 16 08:17:10 2009
@@ -391,9 +391,8 @@
(t
(error "json-importer:get-topicStub-values-from-json-string:
bad item-specifier found in json-list"))))
- (unless (or itemIdentities subjectLocators subjectIdentifiers)
- (error "json-importer:get-topicStub-values-from-json-string: one of the elements
- itemIdentity, sbjectLocator or subjectIdentifier must be set"))
+ (unless subjectIdentifiers
+ (error "json-importer:get-topicStub-values-from-json-string: the element subjectIdentifiers mus be set!"))
(unless id
(error "json-importer:get-topic-valuesStub-from-json-string: the element id must be set"))
(list :id id
@@ -433,9 +432,8 @@
(t
(error "json-importer:get-topic-values-from-json-string:
bad item-specifier found in json-list ~a" (car j-elem)))))
- (unless (or itemIdentities subjectLocators subjectIdentifiers)
- (error "json-importer:get-topic-values-from-json-string: one of the elements
- itemIdentity, sbjectLocator or subjectIdentifier must be set"))
+ (unless subjectIdentifiers
+ (error "json-importer:get-topic-values-from-json-string: the element subjectIdentifiers must be set!"))
(unless id
(error "json-importer:get-topic-values-from-json-string: the element id must be set"))
(let ((names-list (map 'list #'get-name-values-from-json-list names))
More information about the Isidorus-cvs
mailing list