From 6135028e2b03883bd3122790ca86a299f7984ca0 Mon Sep 17 00:00:00 2001 From: Giovanne Marcelo <gms15@inf.ufpr.br> Date: Tue, 23 Feb 2016 00:04:23 -0300 Subject: [PATCH] Fixing complaints statistics --- app/assets/javascripts/management.js | 21 +++++-- .../javascripts/management/complaints.js | 55 +++++++++---------- .../management/statistics_controller.rb | 2 +- .../management/statistics/complaints.html.erb | 14 +++-- 4 files changed, 52 insertions(+), 40 deletions(-) diff --git a/app/assets/javascripts/management.js b/app/assets/javascripts/management.js index 47fb7677..d6599d4f 100644 --- a/app/assets/javascripts/management.js +++ b/app/assets/javascripts/management.js @@ -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) { diff --git a/app/assets/javascripts/management/complaints.js b/app/assets/javascripts/management/complaints.js index c86edd81..987961ae 100644 --- a/app/assets/javascripts/management/complaints.js +++ b/app/assets/javascripts/management/complaints.js @@ -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; } diff --git a/app/controllers/management/statistics_controller.rb b/app/controllers/management/statistics_controller.rb index 09e45aa0..8695e54f 100644 --- a/app/controllers/management/statistics_controller.rb +++ b/app/controllers/management/statistics_controller.rb @@ -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 diff --git a/app/views/management/statistics/complaints.html.erb b/app/views/management/statistics/complaints.html.erb index 5542a969..cff40f44 100644 --- a/app/views/management/statistics/complaints.html.erb +++ b/app/views/management/statistics/complaints.html.erb @@ -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> -- GitLab