Skip to content
Snippets Groups Projects
Commit 953624de authored by Mateus Rambo Strey's avatar Mateus Rambo Strey
Browse files

Merge branch 'fix-management' into 'master'

Fix management



See merge request !157
parents f8f1f6e4 d4b29282
No related branches found
No related tags found
No related merge requests found
Showing
with 217 additions and 56 deletions
......@@ -19,8 +19,14 @@
//= require locastyle
//= require turbolinks
//= require_tree ./management
var teachers, curators, admins;
var visualised,non_visualised;
var n_complaints;
var complaints = [];
var complaints_names = [];
$(document).ready(function(){
if (document.getElementById("lobject") !== null) {
visualised = document.getElementById("lobject").value;
......@@ -35,13 +41,16 @@ $(document).ready(function(){
var data_users = dataUsers(teachers,curators,admins);
}
if(document.getElementById("lcomplaints") != null) {
if(document.getElementById("n_complaints") != null) {
n_complaints = document.getElementById("n_complaints").value;
for (i = 0; i < n_complaints; i++) {
complaints[i] = document.getElementById("complaints[" + i + "]").value;
complaints_names[i] = document.getElementById("complaints_names[" + i + "]").value;
}
false_user = document.getElementById("lcomplaints").value;
agressive_user = document.getElementById("lcomplaints_false").value;
offensive_object = document.getElementById("lcomplaints_offensive").value;
violates_copyright = document.getElementById("lcomplaints_violates").value;
var data_complaints = dataComplaints(false_user,agressive_user,offensive_object,violates_copyright);
var data_complaints = dataComplaints(complaints, complaints_names, n_complaints);
}
if (document.getElementById("lcollection") !== null) {
......
......@@ -3,38 +3,37 @@
//confurações dos gráficos de linha
//mais infos: www.chartjs.org/docs/
function increase_brightness(hex, percent){
// strip the leading # if it's there
hex = hex.replace(/^\s*#|\s*$/g, '');
// convert 3 char codes --> 6, e.g. `E0F` --> `EE00FF`
if(hex.length == 3){
hex = hex.replace(/(.)/g, '$1$1');
}
var r = parseInt(hex.substr(0, 2), 16),
g = parseInt(hex.substr(2, 2), 16),
b = parseInt(hex.substr(4, 2), 16);
return '#' +
((0|(1<<8) + r + (256 - r) * percent / 100).toString(16)).substr(1) +
((0|(1<<8) + g + (256 - g) * percent / 100).toString(16)).substr(1) +
((0|(1<<8) + b + (256 - b) * percent / 100).toString(16)).substr(1);
}
//var visual = document.getElementById("object").value;
//alert(visual);
function dataComplaints(false_user,agressive_user,offensive_object,violates_copyright) {
var data = [
{
value: false_user,
color:"#68F000",
highlight: "#a9ff67",
label: "Usuários Falsos"
},
{
value: agressive_user,
color: "#F55858",
highlight: "#FC8787",
label: "Usuários Ofensivos/Agressivos"
},
{
value: offensive_object,
color: "#F9D60A",
highlight: "#fbe357",
label: "Objetos contém conteúdo Ofensivo/Abusivo"
},
{
value: violates_copyright,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Objeto viola direitos Autorais"
},
];
function dataComplaints(complaints,complaints_names, n) {
var data = [];
for(i = 0; i < n; i++) {
var color = "#"+((1<<24)*Math.random()|0).toString(16);
var color_highlight = increase_brightness(color,20);
data[i] = {value: complaints[i], color: color, highlight: color_highlight, label: complaints_names[i]};
}
return data;
}
......
class Management::ComplaintReasonsController < ManagementController
before_action :set_complaint_reason, only: [:destroy, :update, :edit]
def show
end
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_reasons_path }
else
format.html { render :new }
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.save
format.html { redirect_to management_complaint_reasons_path }
else
format.html { render :new }
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
......@@ -21,7 +21,9 @@ class Management::ComplaintsController < ManagementController
-DateTime::Infinity.new
end
@complaints_in_period = @complaints.select{ |complaint| complaint.created_at >= @date_limit}
@n_complaints_in_period = @complaints_in_period.size
@complaints_objs = @complaints_in_period.uniq{|x| x.complaintable.name}.size
@complaints_in_period = Kaminari.paginate_array(@complaints_in_period).page(params[:page]).per(25)
end
def suspend_object
......
......@@ -39,7 +39,7 @@ class Management::StatisticsController < ManagementController
@complaints = Complaint.all
@n_complaints = Complaint.count
@complaints_objs = @complaints.map{|complaint| complaint.complaintable.name}.inject(Hash.new(0)) { |h,e| h[e] += 1; h }
@complaints_per_message = Complaint.group(:complaint_reason_id).count
@complaints_per_message = Complaint.group(:complaint_reason).count.reduce({}){ |hash, (k, v)| hash.merge( k.reason => v ) }
end
end
class ComplaintReason < ActiveRecord::Base
has_many :complaints
has_many :complaints, dependent: :destroy
validates_presence_of :reason
end
<%= 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_complaint_reasons_path,class: "ls-btn-danger"%>
</div>
<% end %>
<h1 class="ls-title-intro ls-ico-star">Razões</h1>
<ol class="ls-breadcrumb">
<li><%= link_to 'Razões', management_complaint_reason_path %></li>
</ol>
<%= render 'form' %>
<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_complaint_reason_path(complaint), class:'ls-btn-primary ls-ico-cog' %>
<%= link_to 'Excluir', management_complaint_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_complaint_reason_path, title: 'Excluir', class: 'ls-btn ls-btn-sm', role: 'button' %>
</div>
<h1 class="ls-title-intro ls-ico-star">Razão</h1>
<ol class="ls-breadcrumb">
</ol>
<%= render 'form' %>
......@@ -32,7 +32,7 @@
<div class="row">
<div class="col-md-6 col-sm-6"><p>Número de vezes que os usuários marcaram objetos educacionais como spam.</p></div>
<div class="col-md-6 col-sm-6">
<p class="ls-float-right ls-float-none-xs">Período selecionado: <strong>últimos 30 dias</strong></p></div>
<p class="ls-float-right ls-float-none-xs">Período selecionado: <strong><%= @date_limit %></strong></p></div>
</div>
<div class="ls-clearfix"></div>
......@@ -46,7 +46,7 @@
<h6 class="ls-title-4">Total de denúncias</h6>
</div>
<div class="ls-box-body">
<strong><%= @complaints_in_period.size %></strong>
<strong><%= @n_complaints_in_period %></strong>
</div>
</div>
</div>
......@@ -67,7 +67,7 @@
<div class="ls-tabs-container" id="awesome-tab-content">
<div id="infoAll" class="ls-tab-content" role="tabpanel" style="display: block;">
<% (@complaints.sort{|x,y| x.created_at <=> y.created_at}.reverse.uniq{ |x| x.complaintable.name}).each do |complaint| %>
<% (@complaints_in_period.sort{|x,y| x.created_at <=> y.created_at}.reverse.uniq{ |x| x.complaintable.name}).each do |complaint| %>
<% if Date.parse(complaint.created_at.to_s) >= @date_limit %>
<div class="ls-list">
<header class="ls-list-header">
......@@ -76,12 +76,12 @@
<% if complaint.complaintable.state == 'suspended' %>
<a href="#" class="ls-tag-danger">Objeto Suspenso</a>
<% end %>
<small><%= @complaints.select{ |x| x.complaintable.name == complaint.complaintable.name}.map{|x| x.reason }.each_with_object(Hash.new(0)){ |frequency,message| message[frequency] += 1 }.sort_by{ |k,v| v }.reverse.each{|x| x}.map{ |k,v| "#{k}(#{v})"}.join(",")%></small>
<small><%= @complaints_in_period.select{ |x| x.complaintable.name == complaint.complaintable.name}.map{|x| x.reason }.each_with_object(Hash.new(0)){ |frequency,message| message[frequency] += 1 }.sort_by{ |k,v| v }.reverse.each{|x| x}.map{ |k,v| "#{k}(#{v})"}.join(",")%></small>
<div data-ls-module="collapse" data-target="#<%= complaint.complaintable.id %>" class="ls-collapse ">
<a href="#" class="ls-collapse-header"><h5 class="ls-collapse-title"><strong>Descrições</strong></h5></a>
<div class="ls-collapse-body" id="<%= complaint.complaintable.id %>">
<% @complaints.sort {|left, right| left.description.length <=> right.description.length}.reverse.select{ |x| x.complaintable.name == complaint.complaintable.name }.each do |complaint_description| %>
<% @complaints_in_period.sort {|left, right| left.description.length <=> right.description.length}.reverse.select{ |x| x.complaintable.name == complaint.complaintable.name }.each do |complaint_description| %>
<table class="ls-table ls-no-hover ls-table-striped">
<thead>
<tr>
......@@ -146,4 +146,8 @@
</div>
<div class="ls-pagination-filter">
<%= paginate @complaints_in_period, :theme => 'management_theme', :window => 2 %>
</div>
</div>
......@@ -27,7 +27,7 @@
<div class="col-sm-6 col-md-6">
<div class="ls-box">
<h6 class="ls-title-4"><%= complaint.reason %></h6>
<strong class="ls-color-theme"><%= @complaints_per_message[complaint.complaint_reason_id] %></strong>
<strong class="ls-color-theme"><%= @complaints_per_message[complaint.reason] %></strong>
</div>
</div>
......@@ -37,10 +37,14 @@
</div>
</div>
<input type="hidden" id="lcomplaints" value="<%= @complaints_per_message[1] %>"/>
<input type="hidden" id="lcomplaints_false" value="<%= @complaints_per_message[2] %>"/>
<input type="hidden" id="lcomplaints_offensive" value="<%= @complaints_per_message[3] %>"/>
<input type="hidden" id="lcomplaints_violates" value="<%= @complaints_per_message[4] %>"/>
<input type="hidden" id=<%= "n_complaints" %> value="<%= @complaints_per_message.keys.size %>"/>
<% @complaints.each_with_index do |complaint,i| %>
<input type="hidden" id=<%= "complaints[#{i}]" %> value="<%= @complaints_per_message[complaint.reason] %>"/>
<input type="hidden" id=<%= "complaints_names[#{i}]" %> value="<%= complaint.reason %>"/>
<% end %>
<div align="right" >
</div>
......
......@@ -64,10 +64,10 @@
<%= c.email %>
</td>
<td class="ls-txt-right ls-regroup">
<%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn-primary ls-ico-cog', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger ls-ico-close', role: 'option'} %>
<%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn-primary', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger', role: 'option'} %>
<div data-ls-module="dropdown" class="ls-dropdown ls-pos-right">
<a href="#" class="ls-btn ls-ico-list" aria-expanded="false" role="combobox">Nível</a>
<a href="#" class="ls-btn" aria-expanded="false" role="combobox">Nível</a>
<ul class="ls-dropdown-nav" aria-hidden="true">
<% Role.all.each do |r| %>
<% nome = translate_role(r.name) %>
......
......@@ -64,10 +64,10 @@
<%= c.email %>
</td>
<td class="ls-txt-right ls-regroup">
<%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn-primary ls-ico-cog', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger ls-ico-close', role: 'option'} %>
<%= link_to 'Administrar', edit_management_user_path(c), {class: 'ls-btn-primary', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(c), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger', role: 'option'} %>
<div data-ls-module="dropdown" class="ls-dropdown ls-pos-right">
<a href="#" class="ls-btn ls-ico-list" aria-expanded="false" role="combobox">Nível</a>
<a href="#" class="ls-btn" aria-expanded="false" role="combobox">Nível</a>
<ul class="ls-dropdown-nav" aria-hidden="true">
<% Role.all.each do |r| %>
<% nome = translate_role(r.name) %>
......
......@@ -66,10 +66,10 @@
</td>
<td class="ls-txt-right ls-regroup">
<%= link_to 'Administrar', edit_management_user_path(u), {class: 'ls-btn-primary ls-ico-cog', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(u), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger ls-ico-close', role: 'option'} %>
<%= link_to 'Administrar', edit_management_user_path(u), {class: 'ls-btn-primary', aria: {expanded: false}, role: 'combobox'} %>
<%= link_to 'Excluir', management_user_path(u), {method: :delete, data: {confirm: 'Tem certeza que deseja excluir?'}, title: 'Apagar usuário', class: 'ls-btn-danger', role: 'option'} %>
<div data-ls-module="dropdown" class="ls-dropdown ls-pos-right">
<a href="#" class="ls-btn ls-ico-list" aria-expanded="false" role="combobox">Nível</a>
<a href="#" class="ls-btn" aria-expanded="false" role="combobox">Nível</a>
<ul class="ls-dropdown-nav">
<% @user = u %>
<% Role.all.each do |r| %>
......
......@@ -11,6 +11,7 @@
<li><%= link_to "Coleções", collections_management_statistics_path, class: 'ls-submenu-item' %></li>
<li><%= link_to "Objetos", learning_objects_management_statistics_path, class: 'ls-submenu-item' %></li>
<li><%= link_to "Acessos", accesses_management_statistics_path, class: 'ls-submenu-item' %></li>
<li><%= link_to "Denúncias", complaints_management_statistics_path, class: 'ls-submenu-item' %></li>
</ul>
</li>
<li><%= link_to "Instituições", management_institutions_path, class: 'ls-ico-list2' %></li>
......@@ -22,7 +23,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_complaint_reasons_path, class: 'ls-submenu-item' %>
</ul>
</li>
<li> <%= link_to "Voltar ao Portal", root_path, class: 'ls-ico-chevron-left' %> </li>
</ul>
......
......@@ -18,6 +18,8 @@ Rails.application.routes.draw do
delete '/user/:user_id', as: :remove_user, action: :remove_user
end
end
resources :complaint_reasons
resources :highlights
resources :carousels
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment