Commit 6950a50d80bde8a2e5cc823bc6383f51f2f03b69

Authored by Francisco Júnior
1 parent 51ea425f

dspace_plugin : improve ui navigation

plugins/dspace/lib/dspace/client.rb
@@ -9,7 +9,7 @@ class Dspace::Client @@ -9,7 +9,7 @@ class Dspace::Client
9 end 9 end
10 10
11 def get_communities 11 def get_communities
12 - Dspace::Community.find(:all) 12 + Dspace::Community.get_all_communities_from @server_url
13 end 13 end
14 14
15 end 15 end
plugins/dspace/lib/dspace/collection.rb
@@ -4,18 +4,41 @@ class Dspace::Collection < Dspace::Resource @@ -4,18 +4,41 @@ class Dspace::Collection < Dspace::Resource
4 self.site = dspace_server 4 self.site = dspace_server
5 result = self.find collection_id, :params => { :expand => 'items' } 5 result = self.find collection_id, :params => { :expand => 'items' }
6 6
7 - #if result.items.count > 0 7 + item_list = []
8 8
9 - # result.items.each { |item| 9 + if result.items.count > 0
10 10
11 - # item_metadata = Dspace::Item.get_all_item_metadata_from dspace_server, item.id  
12 - #raise item_metadata.count.inspect  
13 - # raise item_metadata.inspect 11 + result.items.each { |element|
14 12
15 - # }  
16 - #end 13 + item_metadata = Dspace::Item.get_all_item_metadata_from dspace_server, element.id
17 14
18 - result.items 15 + # author
  16 + metadata = item_metadata[0].attributes
  17 + if metadata != {}
  18 + metadata = Hash[[metadata.map{|k,v| v}]]
  19 + author = metadata.has_key?('dc.contributor.author') ? metadata['dc.contributor.author'] : nil
  20 + end
  21 +
  22 + # date issued
  23 + metadata = item_metadata[3].attributes
  24 + if metadata != {}
  25 + metadata = Hash[[metadata.map{|k,v| v}]]
  26 + date_issued = metadata.has_key?('dc.date.issued') ? metadata['dc.date.issued'] : nil
  27 + end
  28 +
  29 + item = DspacePlugin::Item.new
  30 +
  31 + item.id = element.id
  32 + item.name = element.name
  33 + item.author = author
  34 + item.date_issued = date_issued
  35 +
  36 + item_list << item
  37 +
  38 + }
  39 + end
  40 +
  41 + item_list
19 end 42 end
20 43
21 def self.get_all_collections_from(dspace_server) 44 def self.get_all_collections_from(dspace_server)
plugins/dspace/lib/dspace/community.rb
1 class Dspace::Community < Dspace::Resource 1 class Dspace::Community < Dspace::Resource
2 - self.site = "http://dev.maljr.net:8080/rest/"  
3 2
4 - def self.get_collections(community_id) 3 + def self.get_all_communities_from(dspace_server)
  4 + self.site = dspace_server
  5 + self.find(:all)
  6 + end
  7 +
  8 + def self.get_all_collections_from(dspace_server, community_id)
  9 + self.site = dspace_server
5 result = self.find community_id, :params => { :expand => 'collections' } 10 result = self.find community_id, :params => { :expand => 'collections' }
6 result.collections 11 result.collections
7 end 12 end
plugins/dspace/lib/dspace_plugin/communityy.rb
@@ -23,4 +23,8 @@ class DspacePlugin::Communityy &lt; Article @@ -23,4 +23,8 @@ class DspacePlugin::Communityy &lt; Article
23 end 23 end
24 end 24 end
25 25
  26 + def collections(dspace_server, community_id)
  27 + Dspace::Community.get_all_collections_from dspace_server, community_id
  28 + end
  29 +
26 end 30 end
plugins/dspace/lib/dspace_plugin/item.rb
1 -class DspacePlugin::Item < Article 1 +class DspacePlugin::Item
2 2
3 - settings_items :dspace_collection_id, :type => :string  
4 -  
5 - attr_accessible :dspace_collection_id  
6 -  
7 - def self.icon_name(article = nil)  
8 - 'dspace'  
9 - end  
10 -  
11 - def self.short_description  
12 - _("DSpace item")  
13 - end  
14 -  
15 - def self.description  
16 - _("Defines a item on DSpace library")  
17 - end  
18 -  
19 - def to_html(options = {})  
20 - dspace_item = self  
21 - proc do  
22 - render :file => 'content_viewer/item', :locals => {:dspace_item => dspace_item}  
23 - end  
24 - end 3 + attr_accessor :id, :name, :author, :date_issued
25 4
26 end 5 end
plugins/dspace/lib/dspace_plugin/library.rb
@@ -25,7 +25,7 @@ class DspacePlugin::Library &lt; Blog @@ -25,7 +25,7 @@ class DspacePlugin::Library &lt; Blog
25 end 25 end
26 26
27 def communities 27 def communities
28 - DspacePlugin::Communities.find(:all) 28 + DspacePlugin::Communityy.find(:all)
29 end 29 end
30 30
31 def collections 31 def collections
plugins/dspace/public/style.css
@@ -6,3 +6,18 @@ @@ -6,3 +6,18 @@
6 #dspace_library li { 6 #dspace_library li {
7 list-style-image: url(/designs/themes/base/imgs/li-recent.gif); 7 list-style-image: url(/designs/themes/base/imgs/li-recent.gif);
8 } 8 }
  9 +
  10 +#dspace_library li.item,
  11 +#dspace_library li.collection {
  12 + margin: 10px 0;
  13 +}
  14 +
  15 +#dspace_library li.item span.name,
  16 +#dspace_library li.collection span.title,
  17 +#dspace_library li.community span.title {
  18 + font-weight: bold;
  19 +}
  20 +
  21 +#dspace_library div#actions {
  22 + margin: 10px 0;
  23 +}
plugins/dspace/views/cms/dspace_plugin/_collection.html.erb
@@ -8,8 +8,6 @@ @@ -8,8 +8,6 @@
8 8
9 <% dspace_server_url = @article.parent.server_url %> 9 <% dspace_server_url = @article.parent.server_url %>
10 10
11 -<%#= hidden_field_tag 'article[server_url]', dspace_server_url %>  
12 -  
13 <% dspace_client = Dspace::Client.new(dspace_server_url) %> 11 <% dspace_client = Dspace::Client.new(dspace_server_url) %>
14 12
15 <% collections = dspace_client.get_collections.map { |collection| item = [_(collection.name), collection.id] } %> 13 <% collections = dspace_client.get_collections.map { |collection| item = [_(collection.name), collection.id] } %>
@@ -18,5 +16,3 @@ @@ -18,5 +16,3 @@
18 select(:article, 16 select(:article,
19 :dspace_collection_id, 17 :dspace_collection_id,
20 options_for_select_with_title(collections))) %> 18 options_for_select_with_title(collections))) %>
21 -  
22 -<% #raise collections_2.inspect %>  
plugins/dspace/views/cms/dspace_plugin/_communityy.html.erb
@@ -6,19 +6,13 @@ @@ -6,19 +6,13 @@
6 6
7 <%= hidden_field_tag 'article[parent_id]', @article.parent_id %> 7 <%= hidden_field_tag 'article[parent_id]', @article.parent_id %>
8 8
9 -<% dspace_client = Dspace::Client.new('') %> 9 +<% dspace_server_url = @article.parent.server_url %>
10 10
11 -<% communities = dspace_client.get_communities %> 11 +<% dspace_client = Dspace::Client.new(dspace_server_url) %>
12 12
13 -<%  
14 -communities_2 = communities.map { |community|  
15 - item = [_(community.name), community.id]  
16 -}  
17 -%> 13 +<% communities = dspace_client.get_communities.map { |community| item = [_(community.name), community.id] } %>
18 14
19 <%= labelled_form_field(_('Communities:'), 15 <%= labelled_form_field(_('Communities:'),
20 select(:article, 16 select(:article,
21 :dspace_community_id, 17 :dspace_community_id,
22 - options_for_select_with_title(communities_2))) %>  
23 -  
24 -<% #raise collections_2.inspect %> 18 + options_for_select_with_title(communities))) %>
plugins/dspace/views/content_viewer/_collection.html.erb 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +<li class="collection">
  2 + <span class="title"><%= collection.name %></span><br />
  3 +</li>
plugins/dspace/views/content_viewer/_collection_item.html.erb
1 -<li>  
2 - <h4><%= link_to collection_item.title, :controller => 'content_viewer', :action => 'view_page', :page => collection_item.path %>  
3 - </h4> 1 +<li class="collection">
  2 + <span class="title"><%= link_to collection_item.title, :controller => 'content_viewer', :action => 'view_page', :page => collection_item.path %></span>
4 </li> 3 </li>
plugins/dspace/views/content_viewer/_community_item.html.erb
1 -hello! 1 +<li class="community">
  2 + <span class="title"><%= link_to community_item.title, :controller => 'content_viewer', :action => 'view_page', :page => community_item.path %></span>
  3 +</li>
plugins/dspace/views/content_viewer/_item.html.erb
1 -<li>  
2 - <h5><%= item.name %></h5> 1 +<li class="item">
  2 + <span class="name"><%= item.name %></span><br />
  3 + <span class="authors"><%= item.author %></span> <span class="date_issued">(<%= item.date_issued %>)</span>
3 </li> 4 </li>
plugins/dspace/views/content_viewer/collection.html.erb
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 3
4 <div id="dspace_library"> 4 <div id="dspace_library">
5 <div id="dspace_collection"> 5 <div id="dspace_collection">
6 - <ul id="items_list" class="items_list"> 6 + <ul id="items_list">
7 <%= render :partial => 'item', :collection => dspace_collection.items(dspace_server, collection_id) %> 7 <%= render :partial => 'item', :collection => dspace_collection.items(dspace_server, collection_id) %>
8 </ul> 8 </ul>
9 </div> 9 </div>
plugins/dspace/views/content_viewer/community.html.erb
1 -<% dspace_community_id = 5 %> 1 +<% community_id = dspace_community.dspace_community_id %>
  2 +<% dspace_server = dspace_community.parent.server_url %>
2 3
3 -<% dspace_collections_from_community = Dspace::Community.get_collections(dspace_community_id) %>  
4 -  
5 -<% dspace_collections_from_community.each { |collection| %>  
6 -<br />  
7 -<%= collection.name %>  
8 -<br />  
9 -<% } %> 4 +<div id="dspace_library">
  5 + <div id="dspace_community">
  6 + <ul id="collection_list">
  7 + <%= render :partial => 'collection', :collection => dspace_community.collections(dspace_server, community_id) %>
  8 + </ul>
  9 + </div>
  10 +</div>
plugins/dspace/views/content_viewer/library.html.erb
@@ -4,11 +4,9 @@ @@ -4,11 +4,9 @@
4 4
5 <% if dspace_library.gather_option == "communities" %> 5 <% if dspace_library.gather_option == "communities" %>
6 6
7 - <h3><%= _("Communities") %></h3>  
8 -  
9 <% if true %> 7 <% if true %>
10 8
11 - <div class="library_actions"> 9 + <div id="actions">
12 <%= content_tag('a', :href => url_for({:controller => 'cms', :action => 'new', :type => "DspacePlugin::Communityy", :parent_id => dspace_library.id}), :class => 'button with-text icon-add') do %> 10 <%= content_tag('a', :href => url_for({:controller => 'cms', :action => 'new', :type => "DspacePlugin::Communityy", :parent_id => dspace_library.id}), :class => 'button with-text icon-add') do %>
13 <%= _("New %s") % DspacePlugin::Communityy.short_description %> 11 <%= _("New %s") % DspacePlugin::Communityy.short_description %>
14 <% end %> 12 <% end %>
@@ -16,19 +14,19 @@ @@ -16,19 +14,19 @@
16 14
17 <% end %> 15 <% end %>
18 16
  17 + <% communities = dspace_library.communities %>
  18 +
19 <ul id="sortable" class="communities_list"> 19 <ul id="sortable" class="communities_list">
20 - <%= render :partial => 'community_item', :collection => dspace_library.communities %> 20 + <%= render :partial => 'community_item', :collection => communities %>
21 </ul> 21 </ul>
22 22
23 <% end %> 23 <% end %>
24 24
25 <% if dspace_library.gather_option == "collections" %> 25 <% if dspace_library.gather_option == "collections" %>
26 26
27 - <h3><%= _("Collections") %></h3>  
28 -  
29 <% if true %> 27 <% if true %>
30 28
31 - <div class="library_actions"> 29 + <div id="actions">
32 <%= 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 %> 30 <%= 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 %>
33 <%= _("New %s") % DspacePlugin::Collection.short_description %> 31 <%= _("New %s") % DspacePlugin::Collection.short_description %>
34 <% end %> 32 <% end %>
@@ -36,9 +34,13 @@ @@ -36,9 +34,13 @@
36 34
37 <% end %> 35 <% end %>
38 36
39 - <ul id="collections_list" class="collections_list">  
40 - <%= render :partial => 'collection_item', :collection => dspace_library.collections %>  
41 - </ul> 37 + <% collections = dspace_library.collections %>
  38 +
  39 + <% unless collections.blank? %>
  40 + <ul id="collections_list" class="collections_list">
  41 + <%= render :partial => 'collection_item', :collection => collections %>
  42 + </ul>
  43 + <% end %>
42 44
43 <% end %> 45 <% end %>
44 46