diff --git a/app/assets/javascripts/application/collections.coffee b/app/assets/javascripts/application/collections.coffee index 86ce3498dbffda6d780d4ffc3aced05634770869..8fbbd33029d3108b41bf282838b580152b5ee6a1 100644 --- a/app/assets/javascripts/application/collections.coffee +++ b/app/assets/javascripts/application/collections.coffee @@ -99,7 +99,8 @@ $(document).on 'add_collection_selector', (e) -> $(document).on 'click', '.collection-selector', -> if this.checked if selected_objects.indexOf(this.value) < 0 - selected_objects.push this.value + selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value} + console.log(selected_objects) $(document).trigger('check_selected_collection') return else @@ -114,8 +115,7 @@ $(document).on 'mark_all_collections', -> selected_objects = [] $('.collection-selector').prop('checked', true) $('.collection-selector').each () -> - console.log(this) - selected_objects.push { "class" : this.data, "value" : this.value} + selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value} console.log(selected_objects) $(document).trigger('check_selected_collection') @@ -136,14 +136,29 @@ $(document).on 'clear_collections', -> $(document).on 'click', '.collection-button', -> collection = $('.collection-show-page').data('cid') index = permitted_types.indexOf($(this).data('action')) + urls = [] + los = [] if permitted_types[index] == 'remove' - url = '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(selected_objects.join()) + if ($('.collection-button').data('class') == 'collections') + i = 0 + while i < selected_objects.length + los.push selected_objects[i]["value"] + i++ + urls.push '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(los.join(',')) + else + i = 0 + while i < selected_objects.length + urls.push '/bookmarks/' + encodeURIComponent(selected_objects[i]["class"]) + '/' + encodeURIComponent(selected_objects[i]["value"]) + i++ if confirm('Você tem certeza?') - $.ajax { method: 'DELETE', url: url } - .done -> - $(document).trigger 'refresh_comments' - else - $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index) + i = 0 + while i < urls.length + $.ajax { method: 'DELETE', url: urls[i] } + .done -> + $(document).trigger 'refresh_comments' + i++ + else + $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index) # refresh comments via ajax $(document).on 'refresh_comments', (e) -> diff --git a/app/controllers/bookmarks_controller.rb b/app/controllers/bookmarks_controller.rb index 487cbfd5baed5cfd16afd3755b2da4525d926e55..0dccaf5650ce3f19e62f7958053fe880caca1741 100644 --- a/app/controllers/bookmarks_controller.rb +++ b/app/controllers/bookmarks_controller.rb @@ -9,6 +9,7 @@ class BookmarksController < ApplicationController # GET /bookmarks/1 # GET /bookmarks/1.json def show + render partial: 'list' if params[:list] == 'true' end # POST /bookmarks/1/learning_object @@ -19,10 +20,14 @@ class BookmarksController < ApplicationController render json: { status: true } if request.xhr? end + def list + render layout: false + end + # DELETE /bookmarks/1/learning_object def remove_object authorize @object - Bookmark.destroy(user: @user, bookmarkable: @object) + Bookmark.destroy Bookmark.where(user: @user, bookmarkable: @object) render json: { status: true } if request.xhr? end diff --git a/app/views/bookmarks/_list.html.erb b/app/views/bookmarks/_list.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..622dcb1d1f55703db09a2a9e315e1f770c67e8cb --- /dev/null +++ b/app/views/bookmarks/_list.html.erb @@ -0,0 +1,3 @@ +<% @user.bookmark_learning_objects.each do |object| %> + <%= render object, orientation: 'vertical' %> +<% end %> diff --git a/app/views/bookmarks/show.html.erb b/app/views/bookmarks/show.html.erb index bc0da0e0ebf61839838a74349b978334a4d67d01..9654a664e767ea0d6ccc39f7f2c5e6e8d4736da6 100644 --- a/app/views/bookmarks/show.html.erb +++ b/app/views/bookmarks/show.html.erb @@ -39,11 +39,9 @@ </div> </nav> -<div class= "row"> +<div class="row"> <div class="learning-object-columns"> <br/> - <% @user.bookmark_learning_objects.each do |object| %> - <%= render object, orientation: 'vertical' %> - <% end %> + <%= render partial: 'list' %> </div> </div> diff --git a/app/views/collections/show.html.erb b/app/views/collections/show.html.erb index 3e7ad12fea11b52ce967315c1c13d34856850341..3e6359ec6c75b3f5a19ffbaf4979325c0f9a7dfa 100644 --- a/app/views/collections/show.html.erb +++ b/app/views/collections/show.html.erb @@ -39,22 +39,22 @@ <div class="container-fluid"> <a class="navbar-brand" data-toggle="tooltip" data-placement="bottom" ></a> <ul class="nav navbar-nav navbar-right"> - <li class="set-align collection-button" data-action="download"> + <li class="set-align collection-button" data-action="download" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Salvar no <br>computador</span></a> </li> <% if user_signed_in? %> - <li class="set-align collection-button" data-action="copy"> + <li class="set-align collection-button" data-action="copy" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Copiar <br>para</span></a> </li> <% end %> <% if @own %> - <li class="set-align collection-button" data-action="move"> + <li class="set-align collection-button" data-action="move" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Mover <br>para</span></a> </li> - <li class="set-align collection-button" data-action="remove"> + <li class="set-align collection-button" data-action="remove" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Remover da <br>coleção</span></a> </li> diff --git a/config/routes.rb b/config/routes.rb index 6591c4e0facb47f8bb3e36464b685f7b4f8b9c7f..3a6aa06ca2fa0df06f61e6a951b020bbb5bc468f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -110,8 +110,9 @@ Rails.application.routes.draw do end get '/bookmarks' => 'bookmarks#show', as: 'bookmark' + get '/bookmarks/list' => 'bookmarks#list', as: 'list' post '/bookmarks/:type/:id' => 'bookmarks#add_object', as: :bookmark_add - delete '/bookmarks/' => 'bookmarks#remove_object', as: :bookmark_remove + delete '/bookmarks/:type/:id' => 'bookmarks#remove_object', as: :bookmark_remove get '/users/verify_email' => 'users#verify_email', as: :verify_email get '/users/list' => 'users#list', as: :list_all_users