From 13b4fdb59b24d7b3943f5f03c9bb10f1b21f5c48 Mon Sep 17 00:00:00 2001 From: cole m alban Date: Wed, 5 Apr 2017 16:57:57 -0400 Subject: [PATCH] Added date filtering --- .../app/assets/javascripts/statistics.js | 111 +++++++++++------- .../app/controllers/statistics_controller.rb | 11 +- 2 files changed, 78 insertions(+), 44 deletions(-) diff --git a/Pearlception/app/assets/javascripts/statistics.js b/Pearlception/app/assets/javascripts/statistics.js index 25347a8..5647c58 100644 --- a/Pearlception/app/assets/javascripts/statistics.js +++ b/Pearlception/app/assets/javascripts/statistics.js @@ -1,43 +1,74 @@ +/* +Set up both the datepicker tabs with this +*/ $('#from_datepicker').datepicker() $('#to_datepicker').datepicker() -/* -*This is code for the grades chart. -*/ -var ctx = document.getElementById("gradesChart"); -var myChart = new Chart(ctx, { - type: 'bar', - data: { - labels: ["Grade1", "Grade2", "Grade3", "Grade4", "Grade5", "Grade6"], - datasets: [{ - label: 'Count for each grade', - data: [12, 19, 3, 5, 2, 3], - backgroundColor: [ - 'rgba(255, 99, 132, 0.2)', - 'rgba(54, 162, 235, 0.2)', - 'rgba(255, 206, 86, 0.2)', - 'rgba(75, 192, 192, 0.2)', - 'rgba(153, 102, 255, 0.2)', - 'rgba(255, 159, 64, 0.2)' - ], - borderColor: [ - 'rgba(255,99,132,1)', - 'rgba(54, 162, 235, 1)', - 'rgba(255, 206, 86, 1)', - 'rgba(75, 192, 192, 1)', - 'rgba(153, 102, 255, 1)', - 'rgba(255, 159, 64, 1)' - ], - borderWidth: 1 - }] - }, - options: { - scales: { - yAxes: [{ - ticks: { - beginAtZero:true - } - }] - } - } -}); +$(document).ready( + $.get("statistics.json", function(gradeData){ + constructGradesGraph(gradeData); + }) +); + +function constructGradesGraph(gradeData){ + console.log(gradeData) + var colors = generateColors(gradeData); + var ctx = document.getElementById("gradesChart"); + var myChart = new Chart(ctx, { + type: 'bar', + data: { + labels: generateLabels(gradeData), + datasets: [{ + label: 'Count for each grade', + data: getGradeCount(gradeData), + backgroundColor: colors, + borderColor: colors, + borderWidth: 1 + }] + }, + options: { + scales: { + yAxes: [{ + ticks: { + beginAtZero:true + } + }] + } + } + }); +} + +function generateLabels(gradeData){ + let grades = gradeData.grades; + labels = []; + for(var i = 0; i < grades.length; i++){ + labels.push(grades[i].Full_name) + } + return labels; +} + +function generateColors(gradeData){ + colors = []; + availableColors = [ + 'rgba(255, 99, 132, 0.2)', + 'rgba(54, 162, 235, 0.2)', + 'rgba(255, 206, 86, 0.2)', + 'rgba(75, 192, 192, 0.2)', + 'rgba(153, 102, 255, 0.2)', + 'rgba(255, 159, 64, 0.2)' + ]; + for(var i = 0; i < gradeData.grades.length; i++){ + var index = Math.round(Math.random() * (availableColors.length - 1)); + var color = availableColors[index] + colors.push(color); + } + return colors; +} + +function getGradeCount(gradeData){ + counts = []; + for(var i = 0; i < gradeData.grades.length; i++){ + counts.push(Math.random() * 100); + } + return counts; +} \ No newline at end of file diff --git a/Pearlception/app/controllers/statistics_controller.rb b/Pearlception/app/controllers/statistics_controller.rb index 0af7084..d03658b 100644 --- a/Pearlception/app/controllers/statistics_controller.rb +++ b/Pearlception/app/controllers/statistics_controller.rb @@ -1,14 +1,17 @@ class StatisticsController < ApplicationController def index + puts Grade.all if params[:from_date] != nil && params[:to_date] != nil - from_date = Date.parse params[:from_date] - to_date = Date.parse params[:to_date] + from_date = Date.strptime(params[:from_date], '%m/%d/%Y') + to_date = Date.strptime(params[:to_date], '%m/%d/%Y') runs = Run.where(:runDate => from_date.beginning_of_day..to_date.end_of_day) - puts runs.inspect else runs = Run.all - puts runs.inspect end + respond_to do |f| + f.html + f.json {render :json => {grades:Grade.all,runData:runs}} + end end end