*/ use Picker\Mood; use Picker\MoodLevel; use Utils\Session; use Utils\Cookie; use Utils\TextHelper; // results of the day $dayMoods = Mood::CountDayMoods(); $dayBads = $dayMoods[MoodLevel::BAD]; $dayGoods = $dayMoods[MoodLevel::GOOD]; $dayCount = $dayMoods['count']; $this->assign('moods', $dayCount); if ($dayCount > 0) { $this->assign('goods_percentage', $dayGoods * 100 / $dayCount); $this->assign('bads_percentage', $dayBads * 100 / $dayCount); $s = "\n \$(function(){\n var data = [\n {\n value: " . $dayBads . ",\n color: \$('#color_picker .progress-bar-danger').css('background-color'),\n label: 'Bad Mood'\n },\n {\n value: " . $dayGoods . ",\n color: \$('#color_picker .progress-bar-success').css('background-color'),\n label: 'Good Mood'\n }\n ]; \n new Chart(document.getElementById('dayChart').getContext('2d')).Doughnut(data, { \n animation: true, animationEasing: 'linear', animationSteps: 25,\n tooltipFontFamily: \$('body').css('font-family'),\n tooltipFontSize: 12,\n segmentShowStroke: false,\n percentageInnerCutout : 60\n });\n });"; $this->register('script', TextHelper::removeLineBreak($s)); } // stats of the month $monthMoods = Mood::CountMonthMoods(); $monthGoods = $monthMoods[MoodLevel::GOOD]; $monthBads = $monthMoods[MoodLevel::BAD]; $monthCount = max(1, $monthBads + $monthGoods); $this->assign('month_goods_percentage', $monthGoods * 100 / $monthCount); $this->assign('month_bads_percentage', $monthBads * 100 / $monthCount); $this->assign('month_goods', $monthGoods); $this->assign('month_bads', $monthBads); // javascript dependancy if ($dayCount > 0) { $this->register('script_file', 'chart.min.js'); }
$year_moods = Mood::CountYearMoods($year); $year_nb_moods = $year_moods['count']; $year_nb_goods = $year_moods[MoodLevel::GOOD]; $year_nb_bads = $year_moods[MoodLevel::BAD]; if (empty($year_nb_moods)) { $year_nb_moods = 1; } $this->assign('year_goods_percentage', $year_nb_goods * 100 / $year_nb_moods); $this->assign('year_bads_percentage', $year_nb_bads * 100 / $year_nb_moods); $this->assign('year_goods', $year_nb_goods); $this->assign('year_bads', $year_nb_bads); // months stats $diplayMonths = array(); $monthsGraph = array(); foreach ($months as $m) { $monthMoods = Mood::CountMonthMoods($m, $year); $t = $monthMoods['count']; $tg = $monthMoods[MoodLevel::GOOD]; $tb = $monthMoods[MoodLevel::BAD]; $diplayMonths[$m] = array('total' => $t, 'goods' => $tg, 'bads' => $tb, 'goods_percentage' => $tg * 100 / $t, 'bads_percentage' => $tb * 100 / $t); $monthsGraph['name'][] = date('M.', mktime(0, 0, 0, $m, 1)); $monthsGraph['value'][] = round($diplayMonths[$m]['goods_percentage'], 2); $s .= "\n new Chart(document.getElementById('chartMonth" . $m . "').getContext('2d')).Doughnut(\n [\n {\n value: " . $tb . ",\n color: \$('#color_picker .progress-bar-danger').css('background-color'),\n label: 'Bad Mood'\n },\n {\n value: " . $tg . ",\n color: \$('#color_picker .progress-bar-success').css('background-color'),\n label: 'Good Mood'\n }\n ]\n , {\n animation: true,\n animationEasing: 'linear', animationSteps: 25,\n segmentShowStroke: false,\n percentageInnerCutout : 60\n }\n );\n "; } $this->assign('months', $diplayMonths); // draw year line graph if (count($months) > 1) { $monthsGraph = array_map('array_reverse', $monthsGraph); $s .= "\n var dataYear = {\n labels: ['" . implode("', '", $monthsGraph['name']) . "'],\n datasets: [\n {\n label: 'Mood',\n fillColor: 'rgba(220,220,220,0.2)',\n strokeColor: \$('#color_picker .progress-bar-success').css('background-color'),\n pointColor: \$('#color_picker .progress-bar-success').css('background-color'),\n data: [" . implode(", ", $monthsGraph['value']) . "]\n }\n ]\n };\n var chartYear = new Chart(document.getElementById('chartYear').getContext('2d')).Line(dataYear, { responsive: true });\n "; } else { $s .= "\$('#chartYear').parent().hide();";