diff --git a/plugins/dspace/lib/dspace/resource.rb b/plugins/dspace/lib/dspace/resource.rb index 8c9f23e..36d8613 100644 --- a/plugins/dspace/lib/dspace/resource.rb +++ b/plugins/dspace/lib/dspace/resource.rb @@ -1,19 +1,5 @@ class Dspace::Resource < ActiveResource::Base - %w(site).each do |attr| - define_method(attr) do - Thread.current["#{name}.active_resource.#{attr}"] - end - - if attr.eql?('site') - define_method("#{attr}=") do |site| - @connection = nil - site_uri = "http://localhost:8080/rest/" - Thread.current["#{name}.active_resource.site"] = site_uri - end - end - end - class << self def element_path(id, prefix_options = {}, query_options = nil) prefix_options, query_options = split_options(prefix_options) if query_options.nil? diff --git a/plugins/dspace/lib/dspace_plugin.rb b/plugins/dspace/lib/dspace_plugin.rb index eb92ab7..66276c4 100644 --- a/plugins/dspace/lib/dspace_plugin.rb +++ b/plugins/dspace/lib/dspace_plugin.rb @@ -17,6 +17,8 @@ class DspacePlugin < Noosfero::Plugin if parent.kind_of?(DspacePlugin::Library) types << DspacePlugin::Collection types << DspacePlugin::Communityy + elsif parent.kind_of?(DspacePlugin::Communityy) + types << DspacePlugin::Collection end types else diff --git a/plugins/dspace/lib/dspace_plugin/collection.rb b/plugins/dspace/lib/dspace_plugin/collection.rb index bd20e4b..8507bbc 100644 --- a/plugins/dspace/lib/dspace_plugin/collection.rb +++ b/plugins/dspace/lib/dspace_plugin/collection.rb @@ -1,8 +1,9 @@ class DspacePlugin::Collection < Article settings_items :dspace_collection_id, :type => :string + settings_items :dspace_community_id, :type => :integer - attr_accessible :dspace_collection_id + attr_accessible :dspace_collection_id, :dspace_community_id def self.icon_name(article = nil) 'dspace' diff --git a/plugins/dspace/lib/dspace_plugin/communityy.rb b/plugins/dspace/lib/dspace_plugin/communityy.rb index fa6c0c7..3b7ed92 100644 --- a/plugins/dspace/lib/dspace_plugin/communityy.rb +++ b/plugins/dspace/lib/dspace_plugin/communityy.rb @@ -24,7 +24,7 @@ class DspacePlugin::Communityy < Article end def collections(dspace_server, community_id) - Dspace::Community.get_all_collections_from dspace_server, community_id + DspacePlugin::Collection.find(:all) end end diff --git a/plugins/dspace/lib/dspace_plugin/library.rb b/plugins/dspace/lib/dspace_plugin/library.rb index b73bf8d..b3dfdcd 100644 --- a/plugins/dspace/lib/dspace_plugin/library.rb +++ b/plugins/dspace/lib/dspace_plugin/library.rb @@ -1,9 +1,8 @@ class DspacePlugin::Library < Blog settings_items :dspace_server_url, :type => :string - settings_items :gather_option, :type => :string, :default => "collections" - attr_accessible :dspace_server_url, :gather_option + attr_accessible :dspace_server_url def dspace_server_url_valid errors.add(self.dspace_server_url, _("is not a valid URL. Please correct it and resubmit.")) unless url_valid?(self.dspace_server_url) @@ -34,10 +33,6 @@ class DspacePlugin::Library < Blog DspacePlugin::Communityy.find(:all) end - def collections - DspacePlugin::Collection.find(:all) - end - protected def url_valid?(url) diff --git a/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb b/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb index c003771..53f34f1 100644 --- a/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb +++ b/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb @@ -6,11 +6,15 @@ <%= hidden_field_tag 'article[parent_id]', @article.parent_id %> -<% dspace_server_url = @article.parent.dspace_server_url %> +<%= hidden_field_tag 'article[dspace_community_id]', @article.parent.dspace_community_id %> -<% dspace_client = Dspace::Client.new(dspace_server_url) %> +<% dspace_server_url = @article.parent.parent.dspace_server_url %> -<% collections = dspace_client.get_collections.map { |collection| item = [_(collection.name), collection.id] } %> +<% community_id = @article.parent.dspace_community_id %> + +<% #dspace_client = Dspace::Client.new(dspace_server_url) %> + +<% collections = Dspace::Community.get_all_collections_from( dspace_server_url, community_id ).map { |collection| item = [_(collection.name), collection.id] } %> <%= labelled_form_field(_('Collections:'), select(:article, diff --git a/plugins/dspace/views/cms/dspace_plugin/_library.html.erb b/plugins/dspace/views/cms/dspace_plugin/_library.html.erb index 19c385d..e648d30 100644 --- a/plugins/dspace/views/cms/dspace_plugin/_library.html.erb +++ b/plugins/dspace/views/cms/dspace_plugin/_library.html.erb @@ -6,6 +6,8 @@ <%= required f.text_field(:name, :size => '64', :maxlength => 150, :onchange => "updateUrlField(this, 'article_slug')") %> +<%= required f.text_field(:dspace_server_url, :size => '150', :maxlength => 150) %> + <%= render :partial => 'general_fields' %>