From 2433c8407e3078e1f08cd5e8b1b86d6739487cde Mon Sep 17 00:00:00 2001
From: Alexandre Arias <apa13@inf.ufpr.br>
Date: Mon, 5 Oct 2015 11:56:53 -0300
Subject: [PATCH] fix complaint controllers and views

Signed-off-by: Alexandre Arias <apa13@inf.ufpr.br>
---
 app/assets/javascripts/application.js         |  6 +++-
 .../javascripts/application/complaints.coffee | 10 ++++---
 .../application/learning_objects.coffee       | 10 -------
 app/assets/stylesheets/application.scss       | 30 +++++--------------
 app/controllers/complaints_controller.rb      | 11 ++-----
 app/controllers/concerns/reportable.rb        | 14 +++++++++
 .../learning_objects_controller.rb            | 11 ++++++-
 app/models/complaint.rb                       | 10 +++----
 app/models/complaint_message.rb               | 11 +++++++
 .../complaints/_add_to_complaint_btn.html.erb | 11 -------
 .../complaints/_complaints_button.html.erb    |  6 ++--
 app/views/complaints/_form.html.erb           | 19 +++++++-----
 app/views/learning_objects/show.html.erb      |  2 +-
 config/routes.rb                              |  9 ++++--
 14 files changed, 82 insertions(+), 78 deletions(-)
 create mode 100644 app/controllers/concerns/reportable.rb
 create mode 100644 app/models/complaint_message.rb
 delete mode 100644 app/views/complaints/_add_to_complaint_btn.html.erb

diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 608172a8..762e2e50 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -16,4 +16,8 @@
 //= require jquery.turbolinks
 //= require bootstrap-sprockets
 //= require select2
-//= require_tree ./application
\ No newline at end of file
+//= require_tree ./application
+
+$(document).ready(function(){
+$('.btn-success').popover({title: "Header", content: "Blabla", trigger: "click"});
+});
diff --git a/app/assets/javascripts/application/complaints.coffee b/app/assets/javascripts/application/complaints.coffee
index c4f6cb8e..149f06dc 100644
--- a/app/assets/javascripts/application/complaints.coffee
+++ b/app/assets/javascripts/application/complaints.coffee
@@ -1,8 +1,10 @@
 $ ->
-  $('#create_complaint_popover').popover
+  $('.add_to_complaint').popover
     html: true
-    content: ->
-      $('#create_complaint_popover_content').html()
+    placement: "left"
     title: ->
-      $('#create_complaint_popover_title').html()
+      $('#complaints_list_popover_title').html()
+    content: ->
+      $('#complaints_list_popover').html()
+
   return
diff --git a/app/assets/javascripts/application/learning_objects.coffee b/app/assets/javascripts/application/learning_objects.coffee
index 13d52976..b50f394b 100644
--- a/app/assets/javascripts/application/learning_objects.coffee
+++ b/app/assets/javascripts/application/learning_objects.coffee
@@ -5,13 +5,3 @@ $ ->
       $('#collections_list_popover').html()
 
   return
-
-$ ->
-  $('.add_to_complaint').popover
-    html: true
-    placement: "left"
-    title: "<strong>Product search</strong> enter number or name"
-    content: ->
-      $('#complaints_list_popover').html()
-  
-  return
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index 77857c1a..6e39e46c 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -62,33 +62,17 @@ a, a:focus, a:hover {
   top: 45%;
 }
 
-.popover {
-	max-width: 800px;
-	width:500px;
-	height:550px;
 
+.popover{
+	display: none;
+	z-index: 999;
+	max-width: 600px;
+	width: auto;
 }
 
-.collection_popover{
-
-
-	max-width: 800px;
-	width:30px;
-	height:15px;
+.radio {
+  margin-left: 20px;
 }
-
-
-
-.popover-title {
-	background-color: #2178f5;
-	align-content: center;
-	font-style: oblique;
-	font: bold;
-	font-size: 150%;
-	color: white;
-
-}
-
 //// HEADER
 header {
   border: 0;
diff --git a/app/controllers/complaints_controller.rb b/app/controllers/complaints_controller.rb
index ef8f87bb..dc7dfd32 100644
--- a/app/controllers/complaints_controller.rb
+++ b/app/controllers/complaints_controller.rb
@@ -5,14 +5,7 @@ class ComplaintsController < ApplicationController
   # POST /complaints.json
   def create
     @complaint = Complaint.new(complaint_params)
-    @messages = [
-      Complaint.copyrights,
-      Complaint.ofensive_content,
-      Complaint.ofensive_user,
-      Complaint.fake_user
-
-    ]
-
+  
     respond_to do |format|
       if complaint_repository.report @complaint
         format.html { redirect_to @complaint, notice: 'complaint was successfully created.' }
@@ -28,7 +21,7 @@ class ComplaintsController < ApplicationController
     complaint_repository.destroy @complaint
 
     respond_to do |format|
-      format.html { redirect_to complaints_url, notice: 'Learning object was successfully destroyed.' }
+      format.html { redirect_to complaints_url, notice: 'Complaint was successfully destroyed.' }
     end
   end
 
diff --git a/app/controllers/concerns/reportable.rb b/app/controllers/concerns/reportable.rb
new file mode 100644
index 00000000..e53469da
--- /dev/null
+++ b/app/controllers/concerns/reportable.rb
@@ -0,0 +1,14 @@
+module Reportable
+  extend ActiveSupport::Concern
+
+  included do
+    @complaint = Complaint.new
+    @messages = [
+      Complaint.copyrights,
+      Complaint.ofensive_content,
+      Complaint.ofensive_user,
+      Complaint.fake_user
+    ]
+  end
+
+end
diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index 38ee2cad..c7a83f2a 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -1,4 +1,6 @@
 class LearningObjectsController < ApplicationController
+  include Reportable
+
   before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like]
   after_action :increment_learning_object_views, only: [:show]
   before_action :authenticate_user!, except: [:index, :show]
@@ -12,6 +14,13 @@ class LearningObjectsController < ApplicationController
   # GET /learning_objects/1
   # GET /learning_objects/1.json
   def show
+    @complaint = Complaint.new
+    @messages = [
+      Complaint.copyrights,
+      Complaint.ofensive_content,
+      Complaint.ofensive_user,
+      Complaint.fake_user
+    ]
   end
 
   # GET /learning_objects/new
@@ -65,7 +74,7 @@ class LearningObjectsController < ApplicationController
     redirect_to :back
   end
 
-  def report_object 
+  def report_object
     learning_object_repository.report current_user, @learning_object, message, description
   end
 
diff --git a/app/models/complaint.rb b/app/models/complaint.rb
index 8e571e74..f5815c16 100644
--- a/app/models/complaint.rb
+++ b/app/models/complaint.rb
@@ -3,20 +3,20 @@ class Complaint
 
   attr_accessor :user,:object,:message,:description
   validates_presence_of :user,:object,:message
-  
+
   def self.copyrights
-    "Objeto viola direitos autorais"
+    ComplaintMessage.new("Objeto viola direitos autorais")
   end
 
   def self.ofensive_content
-    "Objeto contém conteúdo ofensivo/abusivo"
+    ComplaintMessage.new "Objeto contém conteúdo ofensivo/abusivo"
   end
 
   def self.ofensive_user
-    "Usuário ofensivo/agressivo"
+    ComplaintMessage.new "Usuário ofensivo/agressivo"
   end
 
   def self.fake_user
-    "Usuário falso"
+    ComplaintMessage.new "Usuário falso"
   end
 end
diff --git a/app/models/complaint_message.rb b/app/models/complaint_message.rb
new file mode 100644
index 00000000..a87abecb
--- /dev/null
+++ b/app/models/complaint_message.rb
@@ -0,0 +1,11 @@
+class ComplaintMessage
+  attr_accessor :message
+
+  def initialize(message)
+    @message = message
+  end
+
+  def to_s
+    @message.to_s
+  end
+end
diff --git a/app/views/complaints/_add_to_complaint_btn.html.erb b/app/views/complaints/_add_to_complaint_btn.html.erb
deleted file mode 100644
index 5e9d0f72..00000000
--- a/app/views/complaints/_add_to_complaint_btn.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-<a href="#" id="add_to_complaint">Adicionar as coleções</a>
-
-<div id="complaints_list_popover" style="display: none">
-  <ul>
-  <%= ComplaintsController.copyrights %>
-  </ul>
-</div>
-
-<div id="complaints_list_popover_title" style="display: none">
-  Adicione esse objeto a uma coleção
-</div>
diff --git a/app/views/complaints/_complaints_button.html.erb b/app/views/complaints/_complaints_button.html.erb
index d8692267..25d6f566 100644
--- a/app/views/complaints/_complaints_button.html.erb
+++ b/app/views/complaints/_complaints_button.html.erb
@@ -1,7 +1,7 @@
-<button type="button" class="btn btn-default btn-xs add_to_complaint"  data-toggle="button" aria-pressed="false" autocomplete="off" title="Denunciar Objeto" border-style: "none" >
+<button type="button" class="btn btn-default btn-xs add_to_complaint "  data-toggle="button" data-trigger="click" aria-pressed="false" autocomplete="off" title="Denunciar Objeto" border-style: "none" >
  <%= image_tag "icons/report-circle.png", alt: "Denunciar objeto" %>
 </button>
 
-<div id="complaints_list_popover" style="display: none; z-index: 999;">
-  <%= render 'form' %>
+<div id="complaints_list_popover"  class="popover">
+  <%= render 'complaints/form' %>
 </div>
diff --git a/app/views/complaints/_form.html.erb b/app/views/complaints/_form.html.erb
index 2cdad432..9b61b68b 100644
--- a/app/views/complaints/_form.html.erb
+++ b/app/views/complaints/_form.html.erb
@@ -1,26 +1,29 @@
-<%= form_tag @complaint do |f| %>
+
+<%= form_for @complaint do |f| %>
   <fieldset>
 
-  <div class="ls-label " align="center">
+  <div class="ls-label " >
 
     <h4 class="ls-title-4"><p><b>Escolha a razão da denúncia:</b></p></h4>
     <br><br>
 
     <%= f.collection_radio_buttons :message, @messages, :message, :message do |m| %>
-    <div class="radio">
-      <%= m.label { m.radio_button }  %>
+    <div class="radio" >
+      <%= f.radio_button :message, m.text  %>
+      <%= f.label :message, m.text %>
     </div>
     <% end %>
 
       <br><br>
       <div align="center">
-        <%= m.text_area :description, placeholder: "mais informações", rows: "10", cols: "30"  %>
+        <%= f.text_area :description, placeholder: "mais informações", rows: "10", cols: "30"  %>
       </div>
 
   </div>
   </fieldset>
-  <div align="center" class="ls-actions-btn">
-    <%= f.submit "Salvar", class: "ls-btn" %>
-    <%= link_to "Cancelar", {}, class: "ls-btn-alert" %>
+  <div align="center" class="ls-btn-primary">
+    <%= f.submit "Salvar" %>
+    <%= link_to "Fechar", class:"btn-success" %>
+
   </div>
   <%end%>
diff --git a/app/views/learning_objects/show.html.erb b/app/views/learning_objects/show.html.erb
index fa1d7e4a..5f87f10d 100644
--- a/app/views/learning_objects/show.html.erb
+++ b/app/views/learning_objects/show.html.erb
@@ -81,7 +81,7 @@
         <div class="col-md-3 action">
 
 
-          <%= render "learning_objects/complaints_button" %>
+          <%= render "complaints/complaints_button" %>
           <h6>denunciar objeto</h6>
         </div>
       </div>
diff --git a/config/routes.rb b/config/routes.rb
index 6502cb0d..a15076e0 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -44,7 +44,13 @@ Rails.application.routes.draw do
   resources :institutions
   resources :collections
   resources :subjects, only: [:index, :show]
-  resources :complaints, only: [:create, :destroy]
+  resources :complaints, only: [:create, :destroy] do
+    member do
+      post :create
+    end
+  end
+
+
 
   resources :users, only: [:show] do
     collection do
@@ -52,7 +58,6 @@ Rails.application.routes.draw do
     end
   end
   get 'users/:id', to: 'users#show', as: 'users_show'
-
   get '/faq' => 'welcome#faq'
   get '/contact' => 'welcome#contact', as: 'contact'
   get '/search' => 'search#index', as: 'search'
-- 
GitLab