From 529cd2080970ea6ba34d2f27db07cad2c8d1d28f Mon Sep 17 00:00:00 2001 From: Giovanne Marcelo <gms15@inf.ufpr.br> Date: Thu, 3 Mar 2016 12:03:54 -0300 Subject: [PATCH] [WIP] Adding a tag in suspended object thumbnails and creating a list of suspended learning objects in mangement system --- .../learning_objects_controller.rb | 6 +--- .../management/learning_objects_controller.rb | 18 ++++++++++ app/controllers/search_controller.rb | 12 ++++--- .../_learning_object_vertical.erb | 19 +++++++---- app/views/learning_objects/show.html.erb | 3 +- .../learning_objects/index.html.erb | 34 +++++++++++++++++++ .../shared/management/_nav_menu.html.erb | 2 ++ config/routes.rb | 2 ++ 8 files changed, 79 insertions(+), 17 deletions(-) create mode 100644 app/controllers/management/learning_objects_controller.rb create mode 100644 app/views/management/learning_objects/index.html.erb diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index 218c8c69..531a60de 100644 --- a/app/controllers/learning_objects_controller.rb +++ b/app/controllers/learning_objects_controller.rb @@ -19,10 +19,6 @@ class LearningObjectsController < ApplicationController authorize @learning_object @liked = !@learning_object.liked?(current_user) if user_signed_in? @reviews = Review.where(reviewable: @learning_object) - if @learning_object.state == 'suspended' - flash[:notice] = "Este objeto está suspenso!" - flash[:alert] = "Razões: #{Complaint.where(complaintable_id: @learning_object.id).map(&:reason).join(",")}" - end end # GET /learning_objects/new @@ -143,7 +139,7 @@ class LearningObjectsController < ApplicationController def user_not_authorized flash[:notice] = "Este objeto está suspenso!" flash[:alert] = "Razões: #{Complaint.where(complaintable_id: @learning_object.id).map(&:reason).join(',').to_s}" - redirect_to(request.referrer || root_path) + redirect_to (root_path) end end diff --git a/app/controllers/management/learning_objects_controller.rb b/app/controllers/management/learning_objects_controller.rb new file mode 100644 index 00000000..f1405db7 --- /dev/null +++ b/app/controllers/management/learning_objects_controller.rb @@ -0,0 +1,18 @@ +class Management::LearningObjectsController < ManagementController + + + def index + @learning_objects = LearningObject.where(state: 'suspended') + end + + def publish_object + @learning_object = LearningObject.find params[:object_id] + @learning_object.update(state: 'published') + + respond_to do |format| + format.html { redirect_to :back, notice: 'Objeto publicado com sucesso.' } + end + end + + +end diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index d16cb5e9..67c41f4f 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -90,11 +90,6 @@ class SearchController < ApplicationController hash.blank? ? nil : hash end - def validate_object - return 'published' if current_user.nil? || !current_user.is_admin? - return ['published', 'suspended', 'draft'] - end - def lo_order_hash(params) case params[:order] when 'author' @@ -130,4 +125,11 @@ class SearchController < ApplicationController { name: :asc } end + private + + def validate_object + return 'published' if current_user.nil? || !current_user.is_admin? + return ['published', 'suspended', 'draft'] + end + end diff --git a/app/views/learning_objects/_learning_object_vertical.erb b/app/views/learning_objects/_learning_object_vertical.erb index 4ce5e32f..a0d249d2 100644 --- a/app/views/learning_objects/_learning_object_vertical.erb +++ b/app/views/learning_objects/_learning_object_vertical.erb @@ -2,18 +2,25 @@ <div class="panel"> <div class="learning-object-thumbnail"> <%= link_to learning_object_path(id: learning_object.id) do - image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail" + if learning_object.state == 'published' + image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail" + end + end %> + <% if learning_object.state == 'suspended' %> + <div style='position:relative; top:0px; left:0px;'> + <%= image_tag learning_object_thumbnail(learning_object), alt: learning_object_title(learning_object), class: "thumbnail" %> + <div style='position:absolute;width: 0;height: 0;top:-300px; left:-200px;'> + <img src=https://pixabay.com/static/uploads/photo/2012/05/04/09/06/banned-46789_960_720.png> + </div> + </div>" + <% end %> <% if user_signed_in? %> <%= render 'learning_objects/actions_buttons', learning_object: learning_object %> <% end %> </div> <div class="panel-body"> - <% if learning_object.state == "suspended" %> - <h4 class="media-heading"><%= "[OBJETO SUSPENSO] #{learning_object_title(learning_object)}" %></h4> - <% else %> - <h4 class="media-heading"><%= learning_object_title(learning_object) %></h4> - <% end %> + <h4 class="media-heading"><%= learning_object_title(learning_object) %></h4> <i class="fa fa-eye" data-toggle="tooltip" data-placement="bottom" title="Visualizações"><%= learning_object.views.size %></i> <i class="fa fa-star votes-count" data-id="<%= learning_object.id %>" data-toggle="tooltip" data-placement="bottom" title="Curtidas"><%= learning_object.likes.size %></i> <span class="author-label">Por <%= learning_object.get_metadata_value_of("dc.contributor.author") %></span> diff --git a/app/views/learning_objects/show.html.erb b/app/views/learning_objects/show.html.erb index c3f3ca11..2dd9f610 100644 --- a/app/views/learning_objects/show.html.erb +++ b/app/views/learning_objects/show.html.erb @@ -1,4 +1,5 @@ <% content_for(:body_attributes) do %>data-no-turbolink="true"<% end %> + <div class="row learning-object"> <div class="col-md-7"> <div class="view"> @@ -10,7 +11,7 @@ </div> <br/><br/> - <h2 class="title"><%= @learning_object.name %></h2> + <h2 class="title"><%= learning_object_title(@learning_object) %></h2> <% unless @learning_object.description.nil? %> <p class="description"><%= @learning_object.description %></p> <% end %> diff --git a/app/views/management/learning_objects/index.html.erb b/app/views/management/learning_objects/index.html.erb new file mode 100644 index 00000000..875e0015 --- /dev/null +++ b/app/views/management/learning_objects/index.html.erb @@ -0,0 +1,34 @@ +<h1 class="ls-title-intro ls-ico-bullhorn">Conteúdos Suspensos</h1> + +<div class="ls-clearfix"></div> + +<div class="ls-board-box"> + + <div id="sending-stats" class="row ls-box-group"> + <div class="col-sm-12 col-lg-7"> + <div class="ls-box"> + <div class="ls-box-head"> + <h6 class="ls-title-4">Total de conteúdos denunciados</h6> + </div> + <div class="ls-box-body"> + <strong class="ls-color-theme"><%= @learning_objects.size %></strong> + </div> + </div> + </div> + </div> + + <% @learning_objects.sort{|x,y| x.name <=> y.name}.each do |learning_object| %> + <div class="ls-list"> + <header class="ls-list-header"> + <div class="ls-list-title col-md-9"> + <%= link_to "#{learning_object.name}", learning_object_path(id: learning_object.id) %></a> + <small><%= learning_object.description %> </small> + </div> + <div class="col-md-3 ls-txt-right"> + <%= link_to 'Publicar Objeto', management_complaint_publish_object_path(complaint_id: Complaint.where(complaintable_id: learning_object.id).first, object_id: learning_object.id), {method: :post, data: {confirm: 'Tem certeza que deseja publicar este objeto?'}, title: 'Suspender Objeto', class: 'ls-btn-primary ls-btn-sm', role: 'option'} %> + </div> + </header> + </div> + <% end %> + + </div> diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb index 142c1071..72c3fc1b 100644 --- a/app/views/shared/management/_nav_menu.html.erb +++ b/app/views/shared/management/_nav_menu.html.erb @@ -29,9 +29,11 @@ <ul role="menu"> <li><%= link_to "Denúncias", management_complaints_path, class: 'ls-submenu-item' %> <li><%= link_to "Razões", management_complaint_reasons_path, class: 'ls-submenu-item' %> + <li><%= link_to "Conteúdos suspensos", management_learning_objects_path, class: 'ls-submenu-item' %> </ul> </li> + <li> <%= link_to "Voltar ao Portal", root_path, class: 'ls-ico-chevron-left' %> </li> </ul> diff --git a/config/routes.rb b/config/routes.rb index 66838964..2d62f841 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,6 +11,7 @@ Rails.application.routes.draw do root 'welcome#index' resources :complaints do post '/suspend_object/:object_id', as: :suspend_object, action: :suspend_object + post '/publish_object/:object_id', as: :publish_object, action: :publish_object end resources :institutions do member do @@ -22,6 +23,7 @@ Rails.application.routes.draw do resources :complaint_reasons resources :highlights resources :carousels + resources :learning_objects, only: [:index] resources :statistics do collection do -- GitLab