You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2014/06/04 23:54:26 UTC
[2/7] CLEREZZA-829: USing rdfstore-js to store the parsed RDFa data,
working around changes in literal roundtripping using the content
property (even though according to the spec this is ignored for XMLLiterals)
http://git-wip-us.apache.org/repos/asf/clerezza/blob/8d34e62b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
----------------------------------------------------------------------
diff --git a/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
index 302834d..36c5d15 100644
--- a/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
+++ b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/DiscobitsContentEtch.scala
@@ -23,103 +23,139 @@ abstract class DiscobitsContentEtch extends SRenderlet {
new XmlResult(arguments) {
override def content = {
val initScript = """
- var discoBitsCollection = new Backbone.Collection();
+ var discoBitsCollection = new Backbone.Collection();
$(function() {
-
- var gp = new GraphRDFaProcessor();
- gp.target.graph = new RDFaGraph();
- gp.process(document);
- var origTurtle = gp.target.graph.toString();
- //alert(origTurtle);
- function saveAllModified() {
- /*var modifiedModels = discoBitsCollection.filter(function(model) {return model.hasChanged()})
- var modified = new Backbone.Collection(modifiedModels);
- alert("could save: " +modifiedModels+" models "+ JSON.stringify(modified.toJSON()))
- var gp = new GraphRDFaProcessor();*/
- gp.target.graph = new RDFaGraph();
- gp.process(document);
- var newTurtle = gp.target.graph.toString()
- $.post( "/tools/editor/post", { assert: newTurtle, revoke: origTurtle, rdfFormat: 'text/turtle' }, function( data ) {
- alert("saved");
- origTurtle = newTurtle;
- }) .fail(function( data) {
- errdata = data
- alert( "error: " + data.statusText);
- });
- }
- var InfoBit = Backbone.Model.extend({
- defaults: {
- "@type": 'disco:XHTMLInfoDiscoBit',
- "disco:infoBit": 'Some content'
- },
- initialize: function() {
- console.log('This model has been initialized.');
- var m = this;
- this.on('change', function(msg) {
- console.log('A value for this model has changed: ');
- console.log(m.changed);
- console.log(m.get("@id"));
- console.log('A value for this model has changed: '+m.hasChanged(null));
- m.foo = "bar"
+ GreenRdfStore.getGraph(document, function(origGraph) {
+ //now that we have the orig graph we no longer need the content atr
+ $("span[property='disco:infoBit']").removeAttr("content");
+ var InfoBit = Backbone.Model.extend({
+ defaults: {
+ "@type": 'disco:XHTMLInfoDiscoBit',
+ "disco:infoBit": 'Some content'
+ },
+ initialize: function() {
+ console.log('This model has been initialized.');
+ var m = this;
+ this.on('change', function(msg) {
+ console.log('A value for this model has changed: ');
+ console.log(m.changed);
+ console.log(m.get("@id"));
+ console.log('A value for this model has changed: '+m.hasChanged(null));
+ m.foo = "bar"
+ });
+ }
+ });
+ function saveAllModified() {
+ GreenRdfStore.getGraph(document, function(newGraph) {
+ //alert("orig: "+origGraph.toNT());
+ //alert("new: "+ newGraph.toNT());
+ $.post( "/tools/editor/post", { assert: newGraph.toNT(), revoke: origGraph.toNT(), rdfFormat: 'text/turtle' }, function( data ) {
+ alert("saved");
+ origTurtle = newTurtle;
+ }) .fail(function( data) {
+ errdata = data
+ alert( "error: " + data.statusText);
+ });
});
- }
- });
- var InfoBitView = Backbone.View.extend({
- initialize: function() {
- _.bindAll(this, 'save')
- this.model.bind('save', this.save);
- var infoBit = $(this.el).find('[property="disco:infoBit"]').html()
- console.log(this.model.hasChanged(null))
- //this.model.set("disco:infoBit", infoBit)
- console.log(this.model.hasChanged(null))
- this.stickit();
- },
- events: {
- 'mousedown .editable': 'editableClick'
- },
- bindings: {
- '[property="disco:infoBit"]': 'disco:infoBit'
- },
- editableClick: etch.editableInit,
- save: function() {
-
- // normally you would call model.save() here but this is a demo
- // $(this.el).find('.editable').effect('highlight', {color: 'yellow'});
- // $('.save-event').fadeIn('fast', function() {
- // setTimeout($(this).fadeOut('slow'), 10000);
- // });
- console.log("this modified: ");
- console.log(this.model.get("@id"));
- console.log(this.model.changed);
- console.log("this is modified: "+this.model.hasChanged(null));
- saveAllModified();
}
+ var InfoBitView = Backbone.View.extend({
+ initialize: function() {
+ _.bindAll(this, 'save')
+ this.model.bind('save', this.save);
+ var infoBit = $(this.el).find('[property="disco:infoBit"]').html()
+ console.log(this.model.hasChanged(null))
+ //this.model.set("disco:infoBit", infoBit)
+ console.log(this.model.hasChanged(null))
+ this.stickit();
+ },
+ events: {
+ 'mousedown .editable': 'editableClick'
+ },
+ bindings: {
+ '[property="disco:infoBit"]': 'disco:infoBit'
+ },
+ editableClick: etch.editableInit,
+ save: function() {
- });
+ // normally you would call model.save() here but this is a demo
+ // $(this.el).find('.editable').effect('highlight', {color: 'yellow'});
+ // $('.save-event').fadeIn('fast', function() {
+ // setTimeout($(this).fadeOut('slow'), 10000);
+ // });
+ console.log("this modified: ");
+ console.log(this.model.get("@id"));
+ console.log(this.model.changed);
+ console.log("this is modified: "+this.model.hasChanged(null));
+ saveAllModified();
+ }
- //$article = $('[property="disco:infoBit"]');
- $('[property="disco:infoBit"]').addClass("editable")
- $('[property="disco:infoBit"]').attr("data-button-class", "all")
- //this ensure two way binding with stickit
- $('[property="disco:infoBit"]').attr("contenteditable", "true")
- $article = $('[typeof="disco:XHTMLInfoDiscoBit"]');
- _.forEach($article, function(art) {
- console.log(art);
- var infoBit = $(art).find('[property="disco:infoBit"]').html()
- var about = $(art).attr('about')
- var model = new InfoBit({
- "@id": about,
- "disco:infoBit": infoBit
});
- new InfoBitView({model: model, el: art, tagName: art.tagName});
- discoBitsCollection.add(model)
+ //$article = $('[property="disco:infoBit"]');
+ $('[property="disco:infoBit"]').addClass("editable")
+ $('[property="disco:infoBit"]').attr("data-button-class", "all")
+ //this ensure two way binding with stickit
+ $('[property="disco:infoBit"]').attr("contenteditable", "true")
+ $article = $('[typeof="disco:XHTMLInfoDiscoBit"]');
+ _.forEach($article, function(art) {
+ console.log(art);
+ var infoBit = $(art).find('[property="disco:infoBit"]').html()
+ var about = $(art).attr('about')
+ var model = new InfoBit({
+ "@id": about,
+ "disco:infoBit": infoBit
+ });
+ new InfoBitView({model: model, el: art, tagName: art.tagName});
+ discoBitsCollection.add(model)
+ });
+
+
+
});
+ /*var store = rdfstore.create();
+
+ CallbackProcessor.prototype = new RDFaProcessor();
+ CallbackProcessor.prototype.constructor=RDFaProcessor;
+ function CallbackProcessor() {
+ RDFaProcessor.call(this);
+ }
+
+ CallbackProcessor.prototype.addTriple = function(origin,subject,predicate,object) {
+ alert("New triple: "+subject+", predicate "+predicate+", object "+object.value+", "+object.language+", "+object.type);
+ //RDFaProcessor.prototype.addTriple.call(this, origin, subject, predicate, object);
+ //graph.add(env.createTriple())
+ }*/
+ //var gp = new GraphRDFaProcessor();
+ /*function WrappedGraphProcessor() {
+ GraphRDFaProcessor.call(this)
+ }
+ WrappedGraphProcessor.prototype = new GraphRDFaProcessor();
+ WrappedGraphProcessor.prototype.addTriple= function(origin,subject,predicate,object) {
+ alert("uff "+origin+","+subject+","+predicate+","+object);
+ if (origin.getAttribute("content")) {
+ object.value = origin.getAttribute("content");
+ }
+ GraphRDFaProcessor.prototype.addTriple.call(this, origin, subject, predicate, object);
+ }
+ var gp = new WrappedGraphProcessor();
+ //var gp = new CallbackProcessor();
+ gp.target.graph = new RDFaGraph();
+ gp.process(document);
+ var origTurtle = gp.target.graph.toString();
+ alert(origTurtle);*/
+
+
+ //});
+
+
+
+
+
//var view = new articleView({model: model, el: $article[0], tagName: $article[0].tagName});
});
-
+
Backbone.on('all', function(s) {
console.log('Handling all: ' + s);
});
@@ -161,7 +197,7 @@ abstract class DiscobitsContentEtch extends SRenderlet {
false
);*/
"""
- val html = <html xmlns:disco="http://discobits.org/ontology#">
+ val html = <html xmlns:disco="http://discobits.org/ontology#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<head>
<link type="text/css" href="/style/style.css" rel="stylesheet" />
@@ -178,6 +214,8 @@ abstract class DiscobitsContentEtch extends SRenderlet {
<script src="/tools/editor/scripts/backbone-min.js"></script>
<script src="/tools/editor/scripts/etch.js"></script>
<script src="/tools/editor/scripts/backbone.stickit.js"></script>
+ <script src="/tools/editor/scripts/rdfstore.js" type="text/javascript"></script>
+ <script src="/tools/editor/scripts/greenrdfstore.js"></script>
<script>
{Unparsed(initScript)}
</script>
http://git-wip-us.apache.org/repos/asf/clerezza/blob/8d34e62b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
----------------------------------------------------------------------
diff --git a/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
index 8a297d8..5e64b41 100644
--- a/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
+++ b/platform.editor/src/main/scala/org/apache/clerezza/platform/editor/renderlets/HtmlInfoDicobitRDFaNaked.scala
@@ -25,7 +25,7 @@ class HtmlInfoDicobitRDFaNaked extends SRenderlet {
new XmlResult(arguments) {
override def content = {
<div typeof="disco:XHTMLInfoDiscoBit" about={res*}>
- <span property="disco:infoBit" datatype="rdf:XMLLiteral">{Unparsed(res/DISCOBITS.infoBit*)}</span>
+ <span property="disco:infoBit" content={(res/DISCOBITS.infoBit*).replace("\n","\\n")} datatype="rdf:XMLLiteral">{Unparsed(res/DISCOBITS.infoBit*)}</span>
</div>
}
}