diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index 218c8c6901a63498aee271db8e18f101c3be6770..531a60de5b64dfd946d970fa5b211721b61eef0d 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 0000000000000000000000000000000000000000..f1405db7fb0d7fe8a745b1d71f03655edf95e73f --- /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 d16cb5e90402d66533902db0212333c11aafb72d..67c41f4fc225e2f889c9da30645406c151d05460 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 4ce5e32fd42f280f71fffd304fcef4e4d6617187..a0d249d2cec5aa0e57176cd39edd6ba590ed8abe 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 c3f3ca11015188e53cfb0cc6e8c2bbd3d233e7f5..2dd9f61009e1ca4c51b93168ba96bbeebe2a2e29 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 0000000000000000000000000000000000000000..875e0015e28bae8f9c3a4ad260b6d497942bab78 --- /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 142c107193eb73cc4d6695a40544fa343f5c0150..72c3fc1bcd8ed194bf6f3708c036ea0a6cb155d0 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 668389642b64b537cd5763cf68e0d656330d2b94..2d62f841b232c5f754b3542e16c7d433f8e8642b 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