Esempio n. 1
0
    $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();";
    }
    // wait loading
    $this->register('script', TextHelper::RemoveLineBreak("\n    \$(function() {\n        \$('a.details-year').on('click', function(){\n            \$('.modal').modal({show: true});\n            var modal = \$('#loadingModal');\n            setTimeout(function() {\n                modal.html('Still loading…');\n                setTimeout(function() {\n                    modal.html('Still loading all the amazing data…');\n                }, 2000);\n            }, 1000);\n        });\n    });"));
}
// shared data postlude
$s .= '});';
$this->register('script', TextHelper::RemoveLineBreak($s));
$this->register('script_file', 'chart.min.js');