diff --git a/app/builders/bookmarks_builder.rb b/app/builders/bookmarks_builder.rb new file mode 100644 index 0000000000000000000000000000000000000000..4065bf093f104dd2c121b8a9960a0d1e9d9ec107 --- /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 ad218588d8e2534485a29626169ebee8d002706e..3baa053060ec25a8a14724af070699e1a8b8a0f9 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 59610a7e8ad43710e89c6470ebce3d561cc484f0..49f53d087cc9e07c661ee150483ac6f9295177fd 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 6c6bdeead1c2b851dc14236c879dd95fbbf61772..ea3e4c77f6ffb39e3fe68f9b0e99068c16149551 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 2c2cd538f55be02f4a44533a06dd5b4689625e14..ab828128232d17171862d63e352460910dbb62ba 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 69513ca105d96133c02c12a670b1df4613833921..9a5885c16f2560599bc1fab75aacc9592b7e1f12 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 %>