From 51ea425feec53e8dc9b2fd263b3127e417a2f315 Mon Sep 17 00:00:00 2001 From: Marcelo JĂșnior Date: Thu, 18 Sep 2014 20:06:42 -0300 Subject: [PATCH] dspace_plugin : improve ui navigation --- plugins/dspace/lib/dspace/client.rb | 5 +++-- plugins/dspace/lib/dspace/collection.rb | 21 +++++++++++++++++++-- plugins/dspace/lib/dspace/item.rb | 9 +++++++++ plugins/dspace/lib/dspace_plugin.rb | 2 +- plugins/dspace/lib/dspace_plugin/collection.rb | 4 ++++ plugins/dspace/lib/dspace_plugin/library.rb | 6 +++++- plugins/dspace/public/style.css | 8 ++++++++ plugins/dspace/views/cms/dspace_plugin/_collection.html.erb | 14 ++++++-------- plugins/dspace/views/content_viewer/_collection_item.html.erb | 4 ++++ plugins/dspace/views/content_viewer/_item.html.erb | 3 +++ plugins/dspace/views/content_viewer/collection.html.erb | 17 +++++++++-------- plugins/dspace/views/content_viewer/library.html.erb | 13 ++++++++++++- 12 files changed, 83 insertions(+), 23 deletions(-) create mode 100644 plugins/dspace/lib/dspace/item.rb create mode 100644 plugins/dspace/public/style.css create mode 100644 plugins/dspace/views/content_viewer/_collection_item.html.erb create mode 100644 plugins/dspace/views/content_viewer/_item.html.erb diff --git a/plugins/dspace/lib/dspace/client.rb b/plugins/dspace/lib/dspace/client.rb index db3d3c6..0301d79 100644 --- a/plugins/dspace/lib/dspace/client.rb +++ b/plugins/dspace/lib/dspace/client.rb @@ -1,10 +1,11 @@ class Dspace::Client - def initialize(dspace_server_url) + def initialize(server_url) + @server_url = server_url end def get_collections - Dspace::Collection.find(:all) + Dspace::Collection.get_all_collections_from @server_url end def get_communities diff --git a/plugins/dspace/lib/dspace/collection.rb b/plugins/dspace/lib/dspace/collection.rb index d37d4b2..4aa7684 100644 --- a/plugins/dspace/lib/dspace/collection.rb +++ b/plugins/dspace/lib/dspace/collection.rb @@ -1,9 +1,26 @@ class Dspace::Collection < Dspace::Resource - self.site = "http://dev.maljr.net:8080/rest/" - def self.get_items(collection_id) + def self.get_all_items_from(dspace_server, collection_id) + self.site = dspace_server result = self.find collection_id, :params => { :expand => 'items' } + + #if result.items.count > 0 + + # result.items.each { |item| + + # item_metadata = Dspace::Item.get_all_item_metadata_from dspace_server, item.id + #raise item_metadata.count.inspect + # raise item_metadata.inspect + + # } + #end + result.items end + def self.get_all_collections_from(dspace_server) + self.site = dspace_server + self.find(:all) + end + end diff --git a/plugins/dspace/lib/dspace/item.rb b/plugins/dspace/lib/dspace/item.rb new file mode 100644 index 0000000..fa4e81f --- /dev/null +++ b/plugins/dspace/lib/dspace/item.rb @@ -0,0 +1,9 @@ +class Dspace::Item < Dspace::Resource + + def self.get_all_item_metadata_from(dspace_server, item_id) + self.site = dspace_server + result = self.find item_id, :params => { :expand => 'metadata' } + result.metadata + end + +end diff --git a/plugins/dspace/lib/dspace_plugin.rb b/plugins/dspace/lib/dspace_plugin.rb index bf13365..eb92ab7 100644 --- a/plugins/dspace/lib/dspace_plugin.rb +++ b/plugins/dspace/lib/dspace_plugin.rb @@ -25,7 +25,7 @@ class DspacePlugin < Noosfero::Plugin end def stylesheet? - false + true end def self.has_admin_url? diff --git a/plugins/dspace/lib/dspace_plugin/collection.rb b/plugins/dspace/lib/dspace_plugin/collection.rb index 4ef2035..bd20e4b 100644 --- a/plugins/dspace/lib/dspace_plugin/collection.rb +++ b/plugins/dspace/lib/dspace_plugin/collection.rb @@ -23,4 +23,8 @@ class DspacePlugin::Collection < Article end end + def items(dspace_server, collection_id) + Dspace::Collection.get_all_items_from dspace_server, collection_id + end + end diff --git a/plugins/dspace/lib/dspace_plugin/library.rb b/plugins/dspace/lib/dspace_plugin/library.rb index c6d6a12..0059312 100644 --- a/plugins/dspace/lib/dspace_plugin/library.rb +++ b/plugins/dspace/lib/dspace_plugin/library.rb @@ -25,7 +25,11 @@ class DspacePlugin::Library < Blog end def communities - [] + DspacePlugin::Communities.find(:all) + end + + def collections + DspacePlugin::Collection.find(:all) end end diff --git a/plugins/dspace/public/style.css b/plugins/dspace/public/style.css new file mode 100644 index 0000000..848628d --- /dev/null +++ b/plugins/dspace/public/style.css @@ -0,0 +1,8 @@ +#dspace_library ul { + margin: 0; + padding: 0 0 0 20px; +} + +#dspace_library li { + list-style-image: url(/designs/themes/base/imgs/li-recent.gif); +} diff --git a/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb b/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb index b475f81..ea07b9c 100644 --- a/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb +++ b/plugins/dspace/views/cms/dspace_plugin/_collection.html.erb @@ -6,19 +6,17 @@ <%= hidden_field_tag 'article[parent_id]', @article.parent_id %> -<% dspace_client = Dspace::Client.new('') %> +<% dspace_server_url = @article.parent.server_url %> -<% collections = dspace_client.get_collections %> +<%#= hidden_field_tag 'article[server_url]', dspace_server_url %> -<% -collections_2 = collections.map { |collection| - item = [_(collection.name), collection.id] -} -%> +<% dspace_client = Dspace::Client.new(dspace_server_url) %> + +<% collections = dspace_client.get_collections.map { |collection| item = [_(collection.name), collection.id] } %> <%= labelled_form_field(_('Collections:'), select(:article, :dspace_collection_id, - options_for_select_with_title(collections_2))) %> + options_for_select_with_title(collections))) %> <% #raise collections_2.inspect %> diff --git a/plugins/dspace/views/content_viewer/_collection_item.html.erb b/plugins/dspace/views/content_viewer/_collection_item.html.erb new file mode 100644 index 0000000..77a2857 --- /dev/null +++ b/plugins/dspace/views/content_viewer/_collection_item.html.erb @@ -0,0 +1,4 @@ +
  • +

    <%= link_to collection_item.title, :controller => 'content_viewer', :action => 'view_page', :page => collection_item.path %> +

    +
  • diff --git a/plugins/dspace/views/content_viewer/_item.html.erb b/plugins/dspace/views/content_viewer/_item.html.erb new file mode 100644 index 0000000..e1fad0c --- /dev/null +++ b/plugins/dspace/views/content_viewer/_item.html.erb @@ -0,0 +1,3 @@ +
  • +
    <%= item.name %>
    +
  • diff --git a/plugins/dspace/views/content_viewer/collection.html.erb b/plugins/dspace/views/content_viewer/collection.html.erb index 8842a8b..bc7ae1a 100644 --- a/plugins/dspace/views/content_viewer/collection.html.erb +++ b/plugins/dspace/views/content_viewer/collection.html.erb @@ -1,9 +1,10 @@ -<% dspace_collection_id = 7 %> +<% collection_id = dspace_collection.dspace_collection_id %> +<% dspace_server = dspace_collection.parent.server_url %> -<% dspace_items_from_collection = Dspace::Collection.get_items(dspace_collection_id) %> - -<% dspace_items_from_collection.each { |item| %> -
    -<%= item.name %> -
    -<% } %> +
    +
    +
      + <%= render :partial => 'item', :collection => dspace_collection.items(dspace_server, collection_id) %> +
    +
    +
    diff --git a/plugins/dspace/views/content_viewer/library.html.erb b/plugins/dspace/views/content_viewer/library.html.erb index 7c2a8ab..5db04ae 100644 --- a/plugins/dspace/views/content_viewer/library.html.erb +++ b/plugins/dspace/views/content_viewer/library.html.erb @@ -2,6 +2,8 @@ <%= content_tag 'div', dspace_library.body %> + <% if dspace_library.gather_option == "communities" %> +

    <%= _("Communities") %>

    <% if true %> @@ -18,10 +20,13 @@ <%= render :partial => 'community_item', :collection => dspace_library.communities %> + <% end %> + + <% if dspace_library.gather_option == "collections" %>

    <%= _("Collections") %>

    - <% if true %> + <% if true %>
    <%= content_tag('a', :href => url_for({:controller => 'cms', :action => 'new', :type => "DspacePlugin::Collection", :parent_id => dspace_library.id}), :class => 'button with-text icon-add') do %> @@ -29,6 +34,12 @@ <% end %>
    + <% end %> + + + <% end %> -- libgit2 0.21.2