Commit 53af25959e5523e6051b20d9cc4683522d470f73
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'virtuoso_integration' of gitlab.com:participa/noosfero into virtuoso_integration
Showing
8 changed files
with
36 additions
and
28 deletions
Show diff stats
plugins/virtuoso/controllers/virtuoso_plugin_admin_controller.rb
| 1 | class VirtuosoPluginAdminController < AdminController | 1 | class VirtuosoPluginAdminController < AdminController |
| 2 | 2 | ||
| 3 | - #validates :dspace_servers, presence: true | ||
| 4 | - | ||
| 5 | def index | 3 | def index |
| 6 | - settings = params[:settings] | 4 | + settings = params[:settings] |
| 7 | settings ||= {} | 5 | settings ||= {} |
| 8 | @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) | 6 | @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) |
| 9 | @harvest_running = VirtuosoPlugin::DspaceHarvest.new(environment).find_job.present? | 7 | @harvest_running = VirtuosoPlugin::DspaceHarvest.new(environment).find_job.present? |
| 10 | if request.post? | 8 | if request.post? |
| 11 | - settings[:dspace_servers].delete_if do | server | | 9 | + settings[:dspace_servers].delete_if do | server | |
| 12 | server[:dspace_uri].empty? | 10 | server[:dspace_uri].empty? |
| 13 | end | 11 | end |
| 14 | @settings.save! | 12 | @settings.save! |
plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb
| 1 | #inspired by https://github.com/code4lib/ruby-oai/blob/master/lib/oai/harvester/harvest.rb | 1 | #inspired by https://github.com/code4lib/ruby-oai/blob/master/lib/oai/harvester/harvest.rb |
| 2 | class VirtuosoPlugin::DspaceHarvest | 2 | class VirtuosoPlugin::DspaceHarvest |
| 3 | 3 | ||
| 4 | - DC_CONVERSION = [:title, :creator, :subject, :description, :date, :type, :identifier, :language, :rights, :format] | ||
| 5 | - | ||
| 6 | - def initialize(environment, dspace_uri = "") | 4 | + def initialize(environment, dspace_uri = nil) |
| 7 | @environment = environment | 5 | @environment = environment |
| 8 | @dspace_uri = dspace_uri | 6 | @dspace_uri = dspace_uri |
| 9 | end | 7 | end |
| @@ -69,19 +67,19 @@ class VirtuosoPlugin::DspaceHarvest | @@ -69,19 +67,19 @@ class VirtuosoPlugin::DspaceHarvest | ||
| 69 | settings.last_harvest = nil | 67 | settings.last_harvest = nil |
| 70 | settings.save! | 68 | settings.save! |
| 71 | end | 69 | end |
| 72 | - job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id) | 70 | + job = VirtuosoPlugin::DspaceHarvest::Job.new(@environment.id, @dspace_uri) |
| 73 | Delayed::Job.enqueue(job) | 71 | Delayed::Job.enqueue(job) |
| 74 | end | 72 | end |
| 75 | end | 73 | end |
| 76 | 74 | ||
| 77 | def find_job | 75 | def find_job |
| 78 | - Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\n") | 76 | + Delayed::Job.where(:handler => "--- !ruby/struct:VirtuosoPlugin::DspaceHarvest::Job\nenvironment_id: #{@environment.id}\ndspace_uri: #{@dspace_uri}\n") |
| 79 | end | 77 | end |
| 80 | 78 | ||
| 81 | - class Job < Struct.new(:environment_id) | 79 | + class Job < Struct.new(:environment_id, :dspace_uri) |
| 82 | def perform | 80 | def perform |
| 83 | environment = Environment.find(environment_id) | 81 | environment = Environment.find(environment_id) |
| 84 | - harvest = VirtuosoPlugin::DspaceHarvest.new(environment) | 82 | + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, dspace_uri) |
| 85 | harvest.run | 83 | harvest.run |
| 86 | end | 84 | end |
| 87 | end | 85 | end |
plugins/virtuoso/lib/virtuoso_plugin/triples_template.rb
| @@ -21,6 +21,7 @@ class VirtuosoPlugin::TriplesTemplate < Article | @@ -21,6 +21,7 @@ class VirtuosoPlugin::TriplesTemplate < Article | ||
| 21 | settings_items :query, :type => :string | 21 | settings_items :query, :type => :string |
| 22 | settings_items :template, :type => :string, :default => initial_template | 22 | settings_items :template, :type => :string, :default => initial_template |
| 23 | settings_items :stylesheet, :type => :string | 23 | settings_items :stylesheet, :type => :string |
| 24 | + settings_items :per_page, :type => :integer, :default => 50 | ||
| 24 | 25 | ||
| 25 | attr_accessible :query, :template, :stylesheet | 26 | attr_accessible :query, :template, :stylesheet |
| 26 | 27 | ||
| @@ -35,12 +36,12 @@ class VirtuosoPlugin::TriplesTemplate < Article | @@ -35,12 +36,12 @@ class VirtuosoPlugin::TriplesTemplate < Article | ||
| 35 | @plugin ||= VirtuosoPlugin.new(self) | 36 | @plugin ||= VirtuosoPlugin.new(self) |
| 36 | end | 37 | end |
| 37 | 38 | ||
| 38 | - def template_content | 39 | + def template_content(page=1) |
| 39 | begin | 40 | begin |
| 40 | - results = plugin.virtuoso_readonly_client.query(query) | 41 | + results = plugin.virtuoso_readonly_client.query(query).paginate({:per_page => per_page, :page => page}) |
| 41 | liquid_template = Liquid::Template.parse(template) | 42 | liquid_template = Liquid::Template.parse(template) |
| 42 | - page = liquid_template.render('results' => results) | ||
| 43 | - transform_html(page) | 43 | + rendered_template = liquid_template.render('results' => results) |
| 44 | + transform_html(rendered_template) | ||
| 44 | rescue => ex | 45 | rescue => ex |
| 45 | logger.info ex.to_s | 46 | logger.info ex.to_s |
| 46 | "Failed to process the template" | 47 | "Failed to process the template" |
plugins/virtuoso/public/ontology_mapping.js
| @@ -2,10 +2,12 @@ jQuery(document).ready(function($) { | @@ -2,10 +2,12 @@ jQuery(document).ready(function($) { | ||
| 2 | 2 | ||
| 3 | $('#new-ontology-button').on('click', function() { | 3 | $('#new-ontology-button').on('click', function() { |
| 4 | $('#ontology-table').append($('#ontology-item-template tr').clone()); | 4 | $('#ontology-table').append($('#ontology-item-template tr').clone()); |
| 5 | + return false; | ||
| 5 | }); | 6 | }); |
| 6 | 7 | ||
| 7 | $('#ontology-table').on('click', '.remove-ontology-button', function() { | 8 | $('#ontology-table').on('click', '.remove-ontology-button', function() { |
| 8 | $(this).parents('tr').remove(); | 9 | $(this).parents('tr').remove(); |
| 10 | + return false; | ||
| 9 | }); | 11 | }); |
| 10 | 12 | ||
| 11 | }); | 13 | }); |
plugins/virtuoso/test/functional/virtuoso_plugin_admin_controller_test.rb
| @@ -9,17 +9,26 @@ class VirtuosoPluginAdminControllerTest < ActionController::TestCase | @@ -9,17 +9,26 @@ class VirtuosoPluginAdminControllerTest < ActionController::TestCase | ||
| 9 | end | 9 | end |
| 10 | 10 | ||
| 11 | attr_reader :environment | 11 | attr_reader :environment |
| 12 | - | 12 | + |
| 13 | should 'save virtuoso plugin settings' do | 13 | should 'save virtuoso plugin settings' do |
| 14 | - post :index, :settings => {'virtuoso_uri' => 'http://virtuoso.noosfero.com', | ||
| 15 | - 'virtuoso_username' => 'username', | ||
| 16 | - 'virtuoso_password' => 'password', | ||
| 17 | - 'dspace_uri' => 'http://dspace.noosfero.com'} | 14 | + post :index, :settings => |
| 15 | + {:virtuoso_uri=>"http://virtuoso.noosfero.com", | ||
| 16 | + :virtuoso_username=>"username", :virtuoso_password=>"password", | ||
| 17 | + :virtuoso_readonly_username=>"password", | ||
| 18 | + :virtuoso_readonly_password=>"password", | ||
| 19 | + :dspace_servers=>[ | ||
| 20 | + {"dspace_uri"=>"http://dspace1.noosfero.com"}, | ||
| 21 | + {"dspace_uri"=>"http://dspace2.noosfero.com"}, | ||
| 22 | + {"dspace_uri"=>"http://dspace3.noosfero.com"} | ||
| 23 | + ] | ||
| 24 | + } | ||
| 18 | @settings = Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) | 25 | @settings = Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) |
| 19 | assert_equal 'http://virtuoso.noosfero.com', @settings.settings[:virtuoso_uri] | 26 | assert_equal 'http://virtuoso.noosfero.com', @settings.settings[:virtuoso_uri] |
| 20 | assert_equal 'username', @settings.settings[:virtuoso_username] | 27 | assert_equal 'username', @settings.settings[:virtuoso_username] |
| 21 | assert_equal 'password', @settings.settings[:virtuoso_password] | 28 | assert_equal 'password', @settings.settings[:virtuoso_password] |
| 22 | - assert_equal 'http://dspace.noosfero.com', @settings.settings[:dspace_uri] | 29 | + assert_equal 'http://dspace1.noosfero.com', @settings.settings[:dspace_servers][0][:dspace_uri] |
| 30 | + assert_equal 'http://dspace2.noosfero.com', @settings.settings[:dspace_servers][1][:dspace_uri] | ||
| 31 | + assert_equal 'http://dspace3.noosfero.com', @settings.settings[:dspace_servers][2][:dspace_uri] | ||
| 23 | assert_redirected_to :action => 'index' | 32 | assert_redirected_to :action => 'index' |
| 24 | end | 33 | end |
| 25 | 34 |
plugins/virtuoso/views/virtuoso_plugin_admin/_server_list_item.html.erb
| 1 | <div> | 1 | <div> |
| 2 | <% value = server_list_item[:dspace_uri] if server_list_item %> | 2 | <% value = server_list_item[:dspace_uri] if server_list_item %> |
| 3 | - <%= text_field_tag 'settings[dspace_servers][][dspace_uri]', value, { :class => 'link-name', :maxlength => 60 } %> | 3 | + <%= text_field_tag 'settings[dspace_servers][][dspace_uri]', value, { :class => 'link-name', :maxlength => 60, :size=> 58 } %> |
| 4 | <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-server-list-row") %> | 4 | <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-server-list-row") %> |
| 5 | <BR><BR> | 5 | <BR><BR> |
| 6 | </div> | 6 | </div> |
plugins/virtuoso/views/virtuoso_plugin_admin/index.html.erb
| @@ -5,12 +5,11 @@ | @@ -5,12 +5,11 @@ | ||
| 5 | 5 | ||
| 6 | <%= form_for(:settings) do |f| %> | 6 | <%= form_for(:settings) do |f| %> |
| 7 | <strong> | 7 | <strong> |
| 8 | - <%= labelled_form_field _('Virtuoso URL:'), f.text_field(:virtuoso_uri) %> | ||
| 9 | - <%= labelled_form_field _('Virtuoso Admin Username:'), f.text_field(:virtuoso_username) %> | ||
| 10 | - <%= labelled_form_field _('Virtuoso Admin Password:'), f.password_field(:virtuoso_password) %> | ||
| 11 | - <%= labelled_form_field _('Virtuoso Read-Only Username:'), f.text_field(:virtuoso_readonly_username) %> | ||
| 12 | - <%= labelled_form_field _('Virtuoso Read-Only Password:'), f.password_field(:virtuoso_readonly_password) %> | ||
| 13 | - <%= labelled_form_field _('DSpace URL:'), f.text_field(:dspace_uri) %> | 8 | + <%= labelled_form_field _('Virtuoso URL:'), f.text_field(:virtuoso_uri, :size=> 60) %> |
| 9 | + <%= labelled_form_field _('Virtuoso Admin Username:'), f.text_field(:virtuoso_username, :size=> 60) %> | ||
| 10 | + <%= labelled_form_field _('Virtuoso Admin Password:'), f.password_field(:virtuoso_password, :size=> 60) %> | ||
| 11 | + <%= labelled_form_field _('Virtuoso Read-Only Username:'), f.text_field(:virtuoso_readonly_username, :size=> 60) %> | ||
| 12 | + <%= labelled_form_field _('Virtuoso Read-Only Password:'), f.password_field(:virtuoso_readonly_password, :size=> 60) %> | ||
| 14 | </strong> | 13 | </strong> |
| 15 | <BR> | 14 | <BR> |
| 16 | <div class="dspace-servers-config-box" > | 15 | <div class="dspace-servers-config-box" > |
plugins/virtuoso/views/virtuoso_plugin_ontology_mapping/index.html.erb
| @@ -12,6 +12,7 @@ | @@ -12,6 +12,7 @@ | ||
| 12 | <div class="actions"> | 12 | <div class="actions"> |
| 13 | <%= button :new, _('New'), '#', :id => 'new-ontology-button' %> | 13 | <%= button :new, _('New'), '#', :id => 'new-ontology-button' %> |
| 14 | <%= submit_button :save, _('Save') %> | 14 | <%= submit_button :save, _('Save') %> |
| 15 | + <%= button 'cancel', _('Cancel'), :controller => 'virtuoso_plugin_admin', :action => 'index' %> | ||
| 15 | </div> | 16 | </div> |
| 16 | <% end %> | 17 | <% end %> |
| 17 | 18 |