From 30ce42259b6b0ce038059691083bd64e55a7a6d9 Mon Sep 17 00:00:00 2001 From: Mateus Rambo Strey <mars11@inf.ufpr.br> Date: Tue, 15 Dec 2015 11:33:06 -0200 Subject: [PATCH] fix bookmarks --- app/builders/bookmarks_builder.rb | 28 +++++++++++++++++++ app/builders/collection_builder.rb | 9 +++--- app/services/dspace_service.rb | 2 +- app/views/collections/show.html.erb | 12 ++++---- .../_actions_buttons.html.erb | 4 +-- .../_bookmarks_button.html.erb | 4 +-- 6 files changed, 43 insertions(+), 16 deletions(-) create mode 100644 app/builders/bookmarks_builder.rb diff --git a/app/builders/bookmarks_builder.rb b/app/builders/bookmarks_builder.rb new file mode 100644 index 00000000..4065bf09 --- /dev/null +++ b/app/builders/bookmarks_builder.rb @@ -0,0 +1,28 @@ +class BookmarksBuilder < Builder + # def self.build(collections = []) + # super(subject_repository, collections, true, 'rid') + # end + + def self.build_from_orientdb(args = {}) + super(args) do + learning_objects = args['learning_objects'].nil? ? [] : LearningObjectBuilder.build(map_rid_to_object(args['learning_objects'])) + obj = Bookmarks.new( + learning_objects: learning_objects, + privacy: args['privacy'], + id: args['@rid'], + ) + obj.owner = collection_repository.owner(args['@rid']) + obj.created_at = DateTime.strptime(args['created_at'], "%Y-%m-%d %H:%M:%S") unless args['created_at'].nil? + obj.last_modified = DateTime.strptime(args['last_modified'], "%Y-%m-%d %H:%M:%S") unless args['last_modified'].nil? + obj + end + end + + def self.map_rid_to_object(ids) + return {'rid' => ids} if ids.class == String + + ids.map do |id| + {'rid' => id} + end + end +end diff --git a/app/builders/collection_builder.rb b/app/builders/collection_builder.rb index ad218588..3baa0530 100644 --- a/app/builders/collection_builder.rb +++ b/app/builders/collection_builder.rb @@ -8,19 +8,18 @@ class CollectionBuilder < Builder # # If the last_modified param is null, the object will be always reconstructed and updated in the cache def self.build(collections = []) - super(subject_repository, collections, true, 'rid') + super(collection_repository, collections, true, 'rid') end def self.build_from_orientdb(args = {}) super(args) do - type = (args['name'] == 'Bookmarks') ? Bookmarks : Collection learning_objects = args['learning_objects'].nil? ? [] : LearningObjectBuilder.build(map_rid_to_object(args['learning_objects'])) - obj = type.new( + obj = Collection.new( learning_objects: learning_objects, privacy: args['privacy'], - id: args['@rid'] + id: args['@rid'], + name: args['name'] ) - obj.name = args['name'] unless type == Bookmarks obj.owner = collection_repository.owner(args['@rid']) obj.created_at = DateTime.strptime(args['created_at'], "%Y-%m-%d %H:%M:%S") unless args['created_at'].nil? obj.last_modified = DateTime.strptime(args['last_modified'], "%Y-%m-%d %H:%M:%S") unless args['last_modified'].nil? diff --git a/app/services/dspace_service.rb b/app/services/dspace_service.rb index 59610a7e..49f53d08 100644 --- a/app/services/dspace_service.rb +++ b/app/services/dspace_service.rb @@ -19,7 +19,7 @@ class DspaceService def self.config if @config.nil? @config = {} - + if Rails.env.production? @config['link'] = "https://#{ENV['PORTALMEC_DSPACE_HOST']}:#{ENV['PORTALMEC_DSPACE_PORT']}" @config['login'] = ENV['PORTALMEC_DSPACE_LOGIN'] diff --git a/app/views/collections/show.html.erb b/app/views/collections/show.html.erb index 6c6bdeea..ea3e4c77 100644 --- a/app/views/collections/show.html.erb +++ b/app/views/collections/show.html.erb @@ -7,13 +7,13 @@ <%= link_to '#' do %> <%= link_to 'APAGAR', collection_path(@collection.id), method: :delete, class: 'btn btn-danger btn-remove', style: 'margin-right: 30px', data: {confirm: 'Não será possÃvel recuperá-la, você tem certeza?'} %></span> <% end %> + <div class="collection-privacy"> + <input type="radio" name="privacy" id="privacy_private" data-cid="<%= @collection.id %>" value="private" <%= "checked" if @collection.privacy == "private" %>> + <label for="privacy_private">Privada</label> | + <input type="radio" name="privacy" id="privacy_public" data-cid="<%= @collection.id %>" value="public" <%= "checked" if @collection.privacy == "public" %>> + <label for="privacy_public">Pública</label> + </div> <% end %> - <div class="collection-privacy"> - <input type="radio" name="privacy" id="privacy_private" data-cid="<%= @collection.id %>" value="private" <%= "checked" if @collection.privacy == "private" %>> - <label for="privacy_private">Privada</label> | - <input type="radio" name="privacy" id="privacy_public" data-cid="<%= @collection.id %>" value="public" <%= "checked" if @collection.privacy == "public" %>> - <label for="privacy_public">Pública</label> - </div> <% end %> </div> diff --git a/app/views/learning_objects/_actions_buttons.html.erb b/app/views/learning_objects/_actions_buttons.html.erb index 2c2cd538..ab828128 100644 --- a/app/views/learning_objects/_actions_buttons.html.erb +++ b/app/views/learning_objects/_actions_buttons.html.erb @@ -1,5 +1,5 @@ <div class="learning-object-actions"> <%= render 'learning_objects/like_button', learning_object: learning_object %> - <%= render 'learning_objects/bookmarks_button' %> + <%= render 'learning_objects/bookmarks_button', learning_object: learning_object %> <%= render 'learning_objects/collections_button', learning_object: learning_object %> -</div> \ No newline at end of file +</div> diff --git a/app/views/learning_objects/_bookmarks_button.html.erb b/app/views/learning_objects/_bookmarks_button.html.erb index 69513ca1..9a5885c1 100644 --- a/app/views/learning_objects/_bookmarks_button.html.erb +++ b/app/views/learning_objects/_bookmarks_button.html.erb @@ -1,3 +1,3 @@ -<button type="button" class="btn btn-default btn-xs" data-toggle="button" aria-pressed="false" autocomplete="off" title="Adicionar aos favoritos"> +<%= link_to bookmarks_learning_object_path(id: learning_object.id), class: 'btn btn-default btn-xs', title: "Adicionar aos favoritos", method: :post, remote: true do %> <span class="glyphicon glyphicon-bookmark" aria-hidden="true"></span> -</button> \ No newline at end of file +<% end %> -- GitLab