From 7cb4bba0efd7cea36f09ed8db30d2a3bf4831f30 Mon Sep 17 00:00:00 2001
From: Giovanne Marcelo <gms15@inf.ufpr.br>
Date: Mon, 22 Feb 2016 12:06:10 -0300
Subject: [PATCH] [WIP] Adding complaints reason

---
 .../complaints_reasons_controller.rb          | 66 +++++++++++++++++++
 .../complaints_reasons/_form.html.erb         | 27 ++++++++
 .../complaints_reasons/edit.html.erb          |  7 ++
 .../complaints_reasons/index.html.erb         | 26 ++++++++
 .../complaints_reasons/new.html.erb           |  6 ++
 .../shared/management/_nav_menu.html.erb      | 10 ++-
 config/routes.rb                              |  2 +
 7 files changed, 143 insertions(+), 1 deletion(-)
 create mode 100644 app/controllers/management/complaints_reasons_controller.rb
 create mode 100644 app/views/management/complaints_reasons/_form.html.erb
 create mode 100644 app/views/management/complaints_reasons/edit.html.erb
 create mode 100644 app/views/management/complaints_reasons/index.html.erb
 create mode 100644 app/views/management/complaints_reasons/new.html.erb

diff --git a/app/controllers/management/complaints_reasons_controller.rb b/app/controllers/management/complaints_reasons_controller.rb
new file mode 100644
index 00000000..7dd3412f
--- /dev/null
+++ b/app/controllers/management/complaints_reasons_controller.rb
@@ -0,0 +1,66 @@
+class Management::ComplaintsReasonsController < ManagementController
+
+  before_action :set_complaint_reason, only: [:destroy, :update, :edit]
+
+  def index
+    @complaint_reasons = ComplaintReason.all
+  end
+
+
+  def new
+    @complaint_reason = ComplaintReason.new
+  end
+
+  def create
+    @complaint_reason = ComplaintReason.new(complaint_reason_params)
+
+    respond_to do |format|
+      if @complaint_reason.save
+        format.html { redirect_to [:management, @complaint_reason], notice: 'Instituição criada com sucesso.' }
+        format.json { render :show, status: :created, location: @complaint_reason }
+      else
+        format.html { render :new }
+        format.json { render json: @complaint_reason.errors, status: :unprocessable_entity }
+      end
+    end
+  end
+
+
+  def destroy
+    ComplaintReason.destroy @complaint_reason
+
+    respond_to do |format|
+      format.html { redirect_to :back, notice: 'Razão de denúncia excluída com sucesso.' }
+    end
+
+  end
+
+  def edit
+  end
+
+
+  def update
+    respond_to do |format|
+      if @complaint_reason.update complaint_reason_params
+        format.html { redirect_to [:management, @complaint_reason], notice: 'Instituição modificada com sucesso.' }
+        format.json { render :show, status: :ok, location: @complaint_reason }
+      else
+        format.html { render :edit }
+        format.json { render json: @complaint_reason.errors, status: :unprocessable_entity }
+      end
+    end
+  end
+
+
+
+  private
+
+  def set_complaint_reason
+    @complaint_reason = ComplaintReason.find params[:id]
+  end
+
+  def complaint_reason_params
+    params.require(:complaint_reason).permit(:reason)
+  end
+
+end
diff --git a/app/views/management/complaints_reasons/_form.html.erb b/app/views/management/complaints_reasons/_form.html.erb
new file mode 100644
index 00000000..ddaa364e
--- /dev/null
+++ b/app/views/management/complaints_reasons/_form.html.erb
@@ -0,0 +1,27 @@
+<%= form_for([:management, @complaint_reason], html: {class: 'ls-form row'}) do |f| %>
+
+    <% if @complaint_reason.errors.any? %>
+        <div class="ls-alert-danger">
+          <h2><%= pluralize(@complaint_reason.errors.count, "erro") %> <%= "happened".pluralize(@complaint_reason.errors.count) %>:</h2>
+          <ul>
+            <% @complaint_reason.errors.full_messages.each do |message| %>
+                <li><%= message %></li>
+            <% end %>
+          </ul>
+        </div>
+    <% end %>
+
+    <fieldset>
+      <label class="ls-label col-md-3">
+        <b class="ls-label-text">Razão</b>
+        <p>Digite a razão</p>
+        <%= f.text_field :reason, {required: true} %>
+      </label>
+    </fieldset>
+
+    <div class="ls-actions-btn">
+      <button class="ls-btn">Salvar</button>
+      <%= link_to "Cancelar", management_complaints_reason_path,class: "ls-btn-danger"%>
+    </div>
+
+<% end %>
diff --git a/app/views/management/complaints_reasons/edit.html.erb b/app/views/management/complaints_reasons/edit.html.erb
new file mode 100644
index 00000000..5a7c8de1
--- /dev/null
+++ b/app/views/management/complaints_reasons/edit.html.erb
@@ -0,0 +1,7 @@
+<h1 class="ls-title-intro ls-ico-star">Razões</h1>
+
+<ol class="ls-breadcrumb">
+  <li><%= link_to 'Razões', management_complaints_reason_path %></li>
+</ol>
+
+<%= render 'form' %>
diff --git a/app/views/management/complaints_reasons/index.html.erb b/app/views/management/complaints_reasons/index.html.erb
new file mode 100644
index 00000000..06c86cb8
--- /dev/null
+++ b/app/views/management/complaints_reasons/index.html.erb
@@ -0,0 +1,26 @@
+<h1 class="ls-title-intro ls-ico-bullhorn">Denúncias</h1>
+
+<h2 class="ls-title-4">Razões das Denúncias</h2>
+
+
+<div class="ls-clearfix"></div>
+
+<% @complaint_reasons.each do |complaint| %>
+<div class="ls-list">
+  <header class="ls-list-header">
+    <div class="ls-list-title col-md-9">
+      <a href="#" ><%= complaint.reason %></a>
+    </div>
+    <div class="col-md-3 ls-txt-right">
+      <%= link_to 'Modificar', edit_management_complaints_reason_path(complaint), class:'ls-btn-primary ls-ico-cog' %>
+      <%= link_to 'Excluir', management_complaints_reason_path(id: complaint.id), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir esta razão de denúncia?'}, title: 'Excluir', class: 'ls-btn ls-btn-sm', role: 'button'} %>
+    </div>
+  </header>
+</div>
+<% end %>
+
+<%= link_to 'Nova Razão', new_management_complaints_reason_path, title: 'Excluir', class: 'ls-btn ls-btn-sm', role: 'button' %>
+
+
+
+</div>
diff --git a/app/views/management/complaints_reasons/new.html.erb b/app/views/management/complaints_reasons/new.html.erb
new file mode 100644
index 00000000..db339872
--- /dev/null
+++ b/app/views/management/complaints_reasons/new.html.erb
@@ -0,0 +1,6 @@
+<h1 class="ls-title-intro ls-ico-star">Razão</h1>
+
+<ol class="ls-breadcrumb">
+</ol>
+
+<%= render 'form' %>
diff --git a/app/views/shared/management/_nav_menu.html.erb b/app/views/shared/management/_nav_menu.html.erb
index da551739..90afd036 100644
--- a/app/views/shared/management/_nav_menu.html.erb
+++ b/app/views/shared/management/_nav_menu.html.erb
@@ -22,7 +22,15 @@
         <li><%= link_to "Administradores", admins_management_users_path, class: 'ls-submenu-item' %></li>
       </ul>
     </li>
-    <li><%= link_to "Denúncias", management_complaints_path, class: 'ls-ico-bullhorn' %>
+
+    <li class="ls-submenu">
+      <a href="#" class="ls-ico-bullhorn">Denúncias</a>
+      <ul role="menu">
+        <li><%= link_to "Denúncias", management_complaints_path, class: 'ls-submenu-item' %>
+        <li><%= link_to "Razões", management_complaints_reasons_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 9c7b79d7..f5196368 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -18,6 +18,8 @@ Rails.application.routes.draw do
         delete '/user/:user_id', as: :remove_user, action: :remove_user
       end
     end
+
+    resources :complaints_reasons
     resources :highlights
     resources :carousels
 
-- 
GitLab