Skip to content

Commit

Permalink
Basic add/delete property functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
escowles committed Nov 14, 2013
1 parent 3521f0c commit 7e50933
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 4 deletions.
18 changes: 17 additions & 1 deletion fcrepo-http-api/src/main/resources/views/common-node-actions.vsl
@@ -1,4 +1,20 @@

<form id="action_addprop" onsubmit="addProperty()">
<h3>Add Property</h3>
<div class="form-group">
<label for="add-pre">Property</label>
<select id="add-pre" class="form-control">
<option value="http://purl.org/dc/terms/creator">dc:creator</option>
<option value="http://purl.org/dc/terms/description">dc:description</option>
<option value="http://purl.org/dc/terms/title">dc:title</option>
</select>
</div>
<div class="form-group">
<label for="add-val">Value</label>
<input type="text" id="add-val" class="form-control"/>
</div>
<input type="submit" class="btn btn-primary" value="Add"/>
<hr/>
</form>
<form id="action_create" method="POST" enctype="multipart/form-data">
<h3>Create New Node</h3>
<div class="form-group">
Expand Down
41 changes: 40 additions & 1 deletion fcrepo-http-api/src/main/resources/views/common.js
Expand Up @@ -208,4 +208,43 @@ function ajaxErrorHandler(xhr, textStatus, errorThrown) {
$('#errorText').text(xhr.responseText);
$('#errorModal').modal('show');

}
}

function addProperty() {
var sub = $('#main').attr('resource');
var preSel = document.getElementById("add-pre");
var pre = preSel.options[preSel.selectedIndex].value;
var obj = document.getElementById("add-val").value;
var update = "insert data { <" + sub + "> <" + pre + "> " + obj + " }";
alert( "update: " + update );

$.ajax({url: sub, type: "PATCH", contentType: "application/sparql-update", data: update, success: function(data, textStatus, request) {
window.location.reload(true);
}, error: ajaxErrorHandler});
return false;
}
function deleteProperty( id ) {
var elem = document.getElementById(id);
var sub = $('#main').attr('resource');
var pre = elem.getAttribute('property');
var obj = elem.firstChild.data;
//var obj = elem.innerHTML();
var update = "delete data { <" + sub + "> <" + pre + "> ";
if ( obj.startsWith('"') )
{
if ( obj.indexOf("^^") > -1 ) { obj = obj.substring(0,obj.indexOf("^^") ); }
update += obj;
}
else
{
update += "<" + obj + ">";
}
update += " }";

alert( "update: " + update );

$.ajax({url: sub, type: "PATCH", contentType: "application/sparql-update", data: update, success: function(data, textStatus, request) {
window.location.reload(true);
}, error: ajaxErrorHandler});
return false;
}
5 changes: 3 additions & 2 deletions fcrepo-http-api/src/main/resources/views/common.vsl
Expand Up @@ -10,13 +10,14 @@
</dt>
<dd>
#if($quad.getObject().isURI() && $quad.getObject().getURI().startsWith("http"))
<a href="$quad.getObject().getURI()" property="$quad.getPredicate().toString()">$esc.html($quad.getObject())</a>
<a id="prop$quad.hashCode()" href="$quad.getObject().getURI()" property="$quad.getPredicate().toString()">$esc.html($quad.getObject())</a>
#else
<span property="$quad.getPredicate().toString()">$esc.html($quad.getObject())</span>
<span id="prop$quad.hashCode()" property="$quad.getPredicate().toString()">$esc.html($quad.getObject())</span>
#end
#if( $quad.getPredicate().toString().equals("http://fedora.info/definitions/v4/rest-api#digest") )
<a href="$topic/fcr:fixity">check fixity</a>
#end
<span><a href="#" onClick="deleteProperty('prop$quad.hashCode()');return false;" title="Delete Property">x</a></span>
</dd>
#end
</dl>
Expand Down

0 comments on commit 7e50933

Please sign in to comment.