From e07ff8d511f203a5491ad15aff18a711763528bf Mon Sep 17 00:00:00 2001 From: Marcelo JĂșnior Date: Thu, 20 Nov 2014 17:13:58 -0300 Subject: [PATCH] virtuoso: improve triples management feature --- plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb | 19 ++++++++++++------- plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb | 26 +++++++++++++++++++++++--- plugins/virtuoso/public/triples_management.js | 27 ++++++--------------------- 3 files changed, 41 insertions(+), 31 deletions(-) diff --git a/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb b/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb index b1e946a..ca5460b 100644 --- a/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb +++ b/plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb @@ -47,15 +47,16 @@ class VirtuosoPluginAdminController < AdminController to_triple.object = params[:to_triple][:object] triples_management = VirtuosoPlugin::TriplesManagement.new(environment) - triples_management.update_triple(from_triple, to_triple) - render json: { :ok => true, :message => _('Triple succesfully updated.') } + triple_updated = triples_management.update_triple(from_triple, to_triple) + message = triple_updated ? _('Triple succesfully updated.') : _('Triple not updated.') + + render json: { :ok => triple_updated, :message => message } end end def add_triple if request.post? - triple = VirtuosoPlugin::Triple.new triple.graph = params[:triple][:graph] triple.subject = params[:triple][:subject] @@ -63,9 +64,11 @@ class VirtuosoPluginAdminController < AdminController triple.object = params[:triple][:object] triples_management = VirtuosoPlugin::TriplesManagement.new(environment) - triples_management.add_triple(triple) - render json: { :ok => true, :message => _('Triple succesfully added.') } + triple_added = triples_management.add_triple(triple) + message = triple_added ? _('Triple succesfully added.') : _('Triple not added.') + + render json: { :ok => triple_added, :message => message } end end @@ -78,9 +81,11 @@ class VirtuosoPluginAdminController < AdminController triple.object = params[:triple][:object] triples_management = VirtuosoPlugin::TriplesManagement.new(environment) - triples_management.remove_triple(triple) - render json: { :ok => true, :message => _('Triple succesfully removed.') } + triple_deleted = triples_management.remove_triple(triple) + message = triple_deleted ? _('Triple succesfully removed.') : _('Triple not removed.') + + render json: { :ok => triple_deleted, :message => message } end end diff --git a/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb b/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb index a8375bb..7e2c13b 100644 --- a/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb +++ b/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb @@ -18,17 +18,37 @@ class VirtuosoPlugin::TriplesManagement def update_triple(from_triple, to_triple) query = "WITH <#{from_triple.graph}> DELETE { <#{from_triple.subject}> <#{from_triple.predicate}> #{from_triple.object} } INSERT { <#{to_triple.subject}> <#{to_triple.predicate}> #{to_triple.object} }" - plugin.virtuoso_client.query(query) + begin + query_result = plugin.virtuoso_client.query(query)[0][:"callret-0"].to_s + rescue RDF::Virtuoso::Repository::MalformedQuery => e + query_result = e.to_s + end + + return query_result =~ /^Modify.*done$/ ? true : false end def add_triple(triple) query = "WITH <#{triple.graph}> INSERT { <#{triple.subject}> <#{triple.predicate}> #{triple.object} }" - plugin.virtuoso_client.query(query) + + begin + query_result = plugin.virtuoso_client.query(query)[0][:"callret-0"].to_s + rescue RDF::Virtuoso::Repository::MalformedQuery => e + query_result = e.to_s + end + + return query_result =~ /^Insert.*done$/ ? true : false end def remove_triple(triple) query = "WITH <#{triple.graph}> DELETE { <#{triple.subject}> <#{triple.predicate}> #{triple.object} }" - plugin.virtuoso_client.query(query) + + begin + query_result = plugin.virtuoso_client.query(query)[0][:"callret-0"].to_s + rescue RDF::Virtuoso::Repository::MalformedQuery => e + query_result = e.to_s + end + + return query_result =~ /^Delete.*done$/ ? true : false end end diff --git a/plugins/virtuoso/public/triples_management.js b/plugins/virtuoso/public/triples_management.js index e3c7464..26f986d 100644 --- a/plugins/virtuoso/public/triples_management.js +++ b/plugins/virtuoso/public/triples_management.js @@ -20,17 +20,14 @@ function update_triple(triple_id) { url: '/admin/plugin/virtuoso/update_triple', data: formData, dataType: 'json', - success: function(data, status, ajax){ + success: function(data, status, ajax) { if ( !data.ok ) { - display_notice(data.error.message); + display_notice(data.message); } else { display_notice(data.message); jQuery("input#triples_triple" + triple_id + "_from_object").val(jQuery("input#triples_triple" + triple_id + "_to_object").val()); } - }, - error: function(ajax, status, errorThrown) { - alert('Send request - HTTP '+status+': '+errorThrown); } }); @@ -50,18 +47,9 @@ function add_triple() { url: '/admin/plugin/virtuoso/add_triple', data: formData, dataType: 'json', - success: function(data, status, ajax){ - if ( !data.ok ) { - display_notice(data.error.message); - jQuery.colorbox.close(); - } - else { - display_notice(data.message); - jQuery.colorbox.close(); - } - }, - error: function(ajax, status, errorThrown) { - alert('Send request - HTTP '+status+': '+errorThrown); + success: function(data, status, ajax) { + display_notice(data.message); + jQuery.colorbox.close(); } }); @@ -84,7 +72,7 @@ function remove_triple(triple_id) { dataType: 'json', success: function(data, status, ajax){ if ( !data.ok ) { - display_notice(data.error.message); + display_notice(data.message); } else { display_notice(data.message); @@ -97,9 +85,6 @@ function remove_triple(triple_id) { } }); } - }, - error: function(ajax, status, errorThrown) { - alert('Send request - HTTP '+status+': '+errorThrown); } }); -- libgit2 0.21.2