Commit e517e511a96006da3e0ffdb57d16d5b778bcf80d
1 parent
e7db5197
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
virtuoso: improve triples management feature
Showing
4 changed files
with
67 additions
and
37 deletions
Show diff stats
plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb
@@ -34,18 +34,25 @@ class VirtuosoPluginAdminController < AdminController | @@ -34,18 +34,25 @@ class VirtuosoPluginAdminController < AdminController | ||
34 | render :action => 'triple_management' | 34 | render :action => 'triple_management' |
35 | end | 35 | end |
36 | 36 | ||
37 | - def triple_update | ||
38 | - graph_uri = params[:graph_uri] | ||
39 | - triples = params[:triples] | 37 | + def update_triple |
38 | + if request.post? | ||
39 | + from_triple = VirtuosoPlugin::Triple.new | ||
40 | + from_triple.graph = params[:from_triple][:graph] | ||
41 | + from_triple.subject = params[:from_triple][:subject] | ||
42 | + from_triple.predicate = params[:from_triple][:predicate] | ||
43 | + from_triple.object = params[:from_triple][:object] | ||
40 | 44 | ||
41 | - triples_management = VirtuosoPlugin::TriplesManagement.new(environment) | 45 | + to_triple = VirtuosoPlugin::Triple.new |
46 | + to_triple.graph = params[:to_triple][:graph] | ||
47 | + to_triple.subject = params[:to_triple][:subject] | ||
48 | + to_triple.predicate = params[:to_triple][:predicate] | ||
49 | + to_triple.object = params[:to_triple][:object] | ||
42 | 50 | ||
43 | - triples.each { |triple_key, triple_content| | ||
44 | - triples_management.update_triple(graph_uri, triple_content[:from], triple_content[:to]) | ||
45 | - } | 51 | + triples_management = VirtuosoPlugin::TriplesManagement.new(environment) |
52 | + triples_management.update_triple(from_triple, to_triple) | ||
46 | 53 | ||
47 | - session[:notice] = _('Triple(s) succesfully updated.') | ||
48 | - redirect_to :action => :triple_management | 54 | + render json: { :ok => true, :message => _('Triple succesfully updated.') } |
55 | + end | ||
49 | end | 56 | end |
50 | 57 | ||
51 | def add_triple | 58 | def add_triple |
@@ -65,16 +72,18 @@ class VirtuosoPluginAdminController < AdminController | @@ -65,16 +72,18 @@ class VirtuosoPluginAdminController < AdminController | ||
65 | end | 72 | end |
66 | 73 | ||
67 | def remove_triple | 74 | def remove_triple |
68 | - triple = VirtuosoPlugin::Triple.new | ||
69 | - triple.graph = params[:triple][:graph] | ||
70 | - triple.subject = params[:triple][:subject] | ||
71 | - triple.predicate = params[:triple][:predicate] | ||
72 | - triple.object = params[:triple][:object] | 75 | + if request.post? |
76 | + triple = VirtuosoPlugin::Triple.new | ||
77 | + triple.graph = params[:triple][:graph] | ||
78 | + triple.subject = params[:triple][:subject] | ||
79 | + triple.predicate = params[:triple][:predicate] | ||
80 | + triple.object = params[:triple][:object] | ||
73 | 81 | ||
74 | - triples_management = VirtuosoPlugin::TriplesManagement.new(environment) | ||
75 | - triples_management.remove_triple(triple) | 82 | + triples_management = VirtuosoPlugin::TriplesManagement.new(environment) |
83 | + triples_management.remove_triple(triple) | ||
76 | 84 | ||
77 | - render json: { :ok => true, :message => _('Triple succesfully removed.') } | 85 | + render json: { :ok => true, :message => _('Triple succesfully removed.') } |
86 | + end | ||
78 | end | 87 | end |
79 | 88 | ||
80 | end | 89 | end |
plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb
@@ -15,16 +15,8 @@ class VirtuosoPlugin::TriplesManagement | @@ -15,16 +15,8 @@ class VirtuosoPlugin::TriplesManagement | ||
15 | plugin.virtuoso_client.query(query) | 15 | plugin.virtuoso_client.query(query) |
16 | end | 16 | end |
17 | 17 | ||
18 | - def update_triple(graph_uri, from_triple, to_triple) | ||
19 | - from_subject = from_triple[:subject] | ||
20 | - from_predicate = from_triple[:predicate] | ||
21 | - from_object = format_triple_term(from_triple[:object]) | ||
22 | - | ||
23 | - to_subject = to_triple[:subject] | ||
24 | - to_predicate = to_triple[:predicate] | ||
25 | - to_object = format_triple_term(to_triple[:object]) | ||
26 | - | ||
27 | - query = "WITH <#{graph_uri}> DELETE { <#{from_subject}> <#{from_predicate}> #{from_object} } INSERT { <#{to_subject}> <#{to_predicate}> #{to_object} }" | 18 | + def update_triple(from_triple, to_triple) |
19 | + 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} }" | ||
28 | 20 | ||
29 | plugin.virtuoso_client.query(query) | 21 | plugin.virtuoso_client.query(query) |
30 | end | 22 | end |
@@ -39,10 +31,4 @@ class VirtuosoPlugin::TriplesManagement | @@ -39,10 +31,4 @@ class VirtuosoPlugin::TriplesManagement | ||
39 | plugin.virtuoso_client.query(query) | 31 | plugin.virtuoso_client.query(query) |
40 | end | 32 | end |
41 | 33 | ||
42 | - protected | ||
43 | - | ||
44 | - def format_triple_term(term) | ||
45 | - term =~ /^(http|https):\/\// ? "<#{term}>" : "'#{term}'" | ||
46 | - end | ||
47 | - | ||
48 | end | 34 | end |
plugins/virtuoso/public/triples_management.js
1 | +function update_triple(triple_id) { | ||
2 | + graph = jQuery("input#graph_uri").val(); | ||
3 | + | ||
4 | + from_subject = jQuery("input#triples_triple" + triple_id + "_from_subject").val(); | ||
5 | + from_predicate = jQuery("input#triples_triple" + triple_id + "_from_predicate").val(); | ||
6 | + from_object = jQuery("input#triples_triple" + triple_id + "_from_object").val(); | ||
7 | + | ||
8 | + to_subject = jQuery("input#triples_triple" + triple_id + "_to_subject").val(); | ||
9 | + to_predicate = jQuery("input#triples_triple" + triple_id + "_to_predicate").val(); | ||
10 | + to_object = jQuery("input#triples_triple" + triple_id + "_to_object").val(); | ||
11 | + | ||
12 | + var formData = { | ||
13 | + from_triple: { graph: graph, subject: from_subject, predicate: from_predicate, object: from_object }, | ||
14 | + to_triple: { graph: graph, subject: to_subject, predicate: to_predicate, object: to_object } | ||
15 | + } | ||
16 | + | ||
17 | + jQuery.ajax({ | ||
18 | + cache: false, | ||
19 | + type: 'POST', | ||
20 | + url: '/admin/plugin/virtuoso/update_triple', | ||
21 | + data: formData, | ||
22 | + dataType: 'json', | ||
23 | + success: function(data, status, ajax){ | ||
24 | + if ( !data.ok ) { | ||
25 | + display_notice(data.error.message); | ||
26 | + } | ||
27 | + else { | ||
28 | + display_notice(data.message); | ||
29 | + jQuery("input#triples_triple" + triple_id + "_from_object").val(jQuery("input#triples_triple" + triple_id + "_to_object").val()); | ||
30 | + } | ||
31 | + }, | ||
32 | + error: function(ajax, status, errorThrown) { | ||
33 | + alert('Send request - HTTP '+status+': '+errorThrown); | ||
34 | + } | ||
35 | + }); | ||
36 | + | ||
37 | +} | ||
38 | + | ||
1 | function add_triple() { | 39 | function add_triple() { |
2 | graph = jQuery("input#triple_graph").val(); | 40 | graph = jQuery("input#triple_graph").val(); |
3 | subject = jQuery("input#triple_subject").val(); | 41 | subject = jQuery("input#triple_subject").val(); |
plugins/virtuoso/views/virtuoso_plugin_admin/triple_management.html.erb
@@ -36,6 +36,7 @@ | @@ -36,6 +36,7 @@ | ||
36 | <%= labelled_form_field(_('Object:'), text_field_tag("triples[triple#{triple_counter}[to][object]]", triple[:o].to_s) ) %> | 36 | <%= labelled_form_field(_('Object:'), text_field_tag("triples[triple#{triple_counter}[to][object]]", triple[:o].to_s) ) %> |
37 | </li> | 37 | </li> |
38 | <li class="triple-actions"> | 38 | <li class="triple-actions"> |
39 | + <%= button :save, _('Update triple'), {}, :href => '#', :onclick => "update_triple(#{triple_counter}); return false;" %> | ||
39 | <%= button :remove, _('Remove triple'), {}, :href => '#', :onclick => "remove_triple(#{triple_counter}); return false;" %> | 40 | <%= button :remove, _('Remove triple'), {}, :href => '#', :onclick => "remove_triple(#{triple_counter}); return false;" %> |
40 | </li> | 41 | </li> |
41 | </ul> | 42 | </ul> |
@@ -47,10 +48,6 @@ | @@ -47,10 +48,6 @@ | ||
47 | 48 | ||
48 | </ul> | 49 | </ul> |
49 | 50 | ||
50 | - <% button_bar do %> | ||
51 | - <%= submit_button(:save, _('Save')) %> | ||
52 | - <% end %> | ||
53 | - | ||
54 | <% end %> | 51 | <% end %> |
55 | 52 | ||
56 | <% end %> | 53 | <% end %> |