Commit 14b5363d6eccde2944178b9558352f3b6bf354b2
1 parent
fc1168b8
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
virtuoso: added ontology mapping management
Showing
6 changed files
with
84 additions
and
0 deletions
Show diff stats
plugins/virtuoso/controllers/admin/virtuoso_plugin_ontology_mapping_controller.rb
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +class VirtuosoPluginOntologyMappingController < AdminController | |
2 | + | |
3 | + def index | |
4 | + @settings = VirtuosoPlugin.new(self).settings | |
5 | + if request.post? | |
6 | + @settings.ontology_mapping = params['ontology_mapping'] | |
7 | + @settings.save! | |
8 | + session[:notice] = _('Saved!') | |
9 | + end | |
10 | + @ontology_mapping = @settings.ontology_mapping | |
11 | + end | |
12 | + | |
13 | +end | ... | ... |
... | ... | @@ -0,0 +1,11 @@ |
1 | +jQuery(document).ready(function($) { | |
2 | + | |
3 | + $('#new-ontology-button').on('click', function() { | |
4 | + $('#ontology-table').append($('#ontology-item-template tr').clone()); | |
5 | + }); | |
6 | + | |
7 | + $('#ontology-table').on('click', '.remove-ontology-button', function() { | |
8 | + $(this).parents('tr').remove(); | |
9 | + }); | |
10 | + | |
11 | +}); | ... | ... |
plugins/virtuoso/test/functional/virtuoso_plugin_ontology_mapping_controller.rb
0 → 100644
... | ... | @@ -0,0 +1,32 @@ |
1 | +require 'test_helper' | |
2 | + | |
3 | +class VirtuosoPluginOntologyMappingControllerTest < ActionController::TestCase | |
4 | + | |
5 | + setup do | |
6 | + @environment = Environment.default | |
7 | + @plugin = VirtuosoPlugin.new(self) | |
8 | + login_as(create_admin_user(environment)) | |
9 | + @ontology_mapping = [{'source' => 'title', 'target' => 'http://purl.org/dc/elements/1.1/title'}, | |
10 | + {'source' => 'creator', 'target' => 'http://purl.org/dc/elements/1.1/creator'}] | |
11 | + end | |
12 | + | |
13 | + attr_reader :environment, :plugin, :ontology_mapping | |
14 | + | |
15 | + should 'list saved mappings' do | |
16 | + settings = plugin.settings | |
17 | + settings.ontology_mapping = ontology_mapping | |
18 | + settings.save! | |
19 | + get :index | |
20 | + assert_select "#ontology-table tr", 3 do | |
21 | + assert_select "input[name='ontology_mapping[][source]']" | |
22 | + assert_select "input[name='ontology_mapping[][target]']" | |
23 | + end | |
24 | + end | |
25 | + | |
26 | + should 'save ontology mappings' do | |
27 | + post :index, 'ontology_mapping' => ontology_mapping | |
28 | + @environment = environment.reload | |
29 | + assert_equivalent ontology_mapping, plugin.settings.ontology_mapping | |
30 | + end | |
31 | + | |
32 | +end | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_admin/index.html.erb
... | ... | @@ -43,5 +43,6 @@ |
43 | 43 | <div class="actions"> |
44 | 44 | <%= button :edit, _('Triples management'), :action => :triples_management %> |
45 | 45 | <%= button :edit, _('Custom Queries'), :action => :index, :controller => 'virtuoso_plugin_custom_queries' %> |
46 | + <%= button :edit, _('Ontology mapping'), :action => :index, :controller => 'virtuoso_plugin_ontology_mapping' %> | |
46 | 47 | </div> |
47 | 48 | </div> | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_ontology_mapping/_ontology_mapping_item.html.erb
0 → 100644
... | ... | @@ -0,0 +1,5 @@ |
1 | +<tr> | |
2 | + <td><%= text_field_tag 'ontology_mapping[][source]', ontology_mapping_item[:source] %></td> | |
3 | + <td><%= text_field_tag 'ontology_mapping[][target]', ontology_mapping_item[:target], :style => 'width: 100%' %></td> | |
4 | + <td><%= button :remove, _('Remove'), '#', :class => "remove-ontology-button" %></td> | |
5 | +</tr> | ... | ... |
plugins/virtuoso/views/virtuoso_plugin_ontology_mapping/index.html.erb
0 → 100644
... | ... | @@ -0,0 +1,22 @@ |
1 | +<h1><%= _('Ontology Mapping') %></h1> | |
2 | + | |
3 | +<%= form_for :ontology_mapping do |f| %> | |
4 | +<table id="ontology-table"> | |
5 | + <tr> | |
6 | + <th width="30%"><%= _('Source') %></th> | |
7 | + <th width="70%"><%= _('Target') %></th> | |
8 | + <th></th> | |
9 | + </tr> | |
10 | + <%= render :partial => 'ontology_mapping_item', :collection => @ontology_mapping %> | |
11 | +</table> | |
12 | +<div class="actions"> | |
13 | + <%= button :new, _('New'), '#', :id => 'new-ontology-button' %> | |
14 | + <%= submit_button :save, _('Save') %> | |
15 | +</div> | |
16 | +<% end %> | |
17 | + | |
18 | +<table id="ontology-item-template" style="display: none"> | |
19 | + <%= render :partial => 'ontology_mapping_item', :collection => [{:source => '', :target => ''}] %> | |
20 | +</table> | |
21 | + | |
22 | +<%= javascript_include_tag '/plugins/virtuoso/ontology_mapping.js' %> | ... | ... |