From 9f4525053fe2a85e8c8fce72e40486d299cefd7c Mon Sep 17 00:00:00 2001
From: Giovanne Marcelo <gms15@inf.ufpr.br>
Date: Wed, 17 Feb 2016 22:44:45 -0200
Subject: [PATCH] Suspending an object

---
 app/controllers/management/complaints_controller.rb    | 10 +++++++++-
 app/models/concerns/stateful.rb                        | 10 +++++++++-
 app/views/management/complaints/index.html.erb         |  4 +++-
 .../management/statistics/learning_objects.html.erb    |  2 +-
 4 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/app/controllers/management/complaints_controller.rb b/app/controllers/management/complaints_controller.rb
index 52ad6a8b3..0f62e0a5d 100644
--- a/app/controllers/management/complaints_controller.rb
+++ b/app/controllers/management/complaints_controller.rb
@@ -1,7 +1,6 @@
 class Management::ComplaintsController < ManagementController
   include RepositoriesProxy
   before_action :set_complaint, only: :destroy
-
   def index
     @complaints = Complaint.all
 
@@ -26,6 +25,15 @@ class Management::ComplaintsController < ManagementController
     @complaints_objs = @complaints_in_period.uniq{|x| x.complaintable.name}.size
   end
 
+  def suspend_object
+    @learning_object = LearningObject.find (params[:object_id])
+    @learning_object.update(state: 'suspended')
+
+    respond_to do |format|
+      format.html { redirect_to :back, notice: 'Objeto suspenso com sucesso.' }
+    end
+
+  end
 
   def destroy
     Complaint.destroy @complaint
diff --git a/app/models/concerns/stateful.rb b/app/models/concerns/stateful.rb
index b0e24aa10..65b899ecf 100644
--- a/app/models/concerns/stateful.rb
+++ b/app/models/concerns/stateful.rb
@@ -17,4 +17,12 @@ module Stateful
     @state = 'published'
   end
 
-end
\ No newline at end of file
+  def suspend
+    @state = 'suspended'
+  end
+
+  def is_suspended?
+    'suspended' == @state
+  end
+
+end
diff --git a/app/views/management/complaints/index.html.erb b/app/views/management/complaints/index.html.erb
index 23a286e54..320a2a859 100644
--- a/app/views/management/complaints/index.html.erb
+++ b/app/views/management/complaints/index.html.erb
@@ -103,7 +103,9 @@
                 <div data-ls-module="dropdown" class="ls-dropdown ls-pos-right">
                   <a href="#" class="ls-btn-primary" aria-expanded="false" role="combobox">Administrar</a>
                   <ul class="ls-dropdown-nav" aria-hidden="true">
-                    <li><a href="#" role="option" title="Funcionalidade em desenvolvimento!">Suspender conteúdo</a></li>
+                    <li>
+                      <%= link_to 'Suspender Objeto', management_complaint_suspend_object_path(complaint_id: complaint.id, object_id: complaint.complaintable_id), {method: :post, data: {confirm: 'Tem certeza que deseja suspender este objeto?'}, title: 'Suspender Objeto', class: 'ls-btn ls-btn-sm', role: 'option'} %>
+                    </li>
                     <li>
                       <% @complaints.select{ |x| x.complaintable.name == complaint.complaintable.name }.each do |complaint_ignore| %>
                         <%= link_to 'Ignorar denúncia', management_complaint_path(id: complaint_ignore.id), {method: :delete, data: {confirm: 'Tem certeza que deseja ignorar esta denúncia?'}, title: 'Ignorar denúncia', class: 'ls-btn ls-btn-sm', role: 'option'} %>
diff --git a/app/views/management/statistics/learning_objects.html.erb b/app/views/management/statistics/learning_objects.html.erb
index 2b6f9d195..81a70f378 100644
--- a/app/views/management/statistics/learning_objects.html.erb
+++ b/app/views/management/statistics/learning_objects.html.erb
@@ -52,7 +52,7 @@
   </div>
 
   <div style="margin-left: 900px">
-    <h3><th><b> 10 mais visualisados </b></th></h3><br>
+    <h3><th><b> 10 mais visualizados </b></th></h3><br>
     <div class="row learning-object-columns">
       <% @most_visualised.first(10).each do |most| %>
         <%#= render_learning_object("vertical", most) %>
-- 
GitLab