attempt_answers_distribution_report.mustache 3.45 KB
Newer Older
0815-xyz's avatar
0815-xyz committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{{!
    This file is part of Moodle - http://moodle.org/

    Moodle is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Moodle is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
}}
{{!
    @template mod_adaptivequiz/attempt_answers_distribution_report

    Renders a bar chart for the answers distribution data.

    Context variables required for this template:
    * showchartstacked - whether the chart should be displayed in stacked form
    * userid - current user id
    * adaptivequizid - id of the current adaptive quiz instance

    Data attributes required for JS:
    * data-action

    Example context (json):
    {
        showchartstacked: true,
        userid: 5,
        adaptivequizid: 3
    }
}}
<div class="mdl-align mb-3">
    <span class="mr-1">
        <input id="answers-distribution-chart-stacked" type="checkbox" data-action="set-answers-distribution-chart-stacked" {{#showchartstacked}}checked{{/showchartstacked}} />
        <label class="mr-1" for="answers-distribution-chart-stacked">{{#str}}reportanswersdistributionchartdisplaystacked, adaptivequiz{{/str}}</label>
    </span>
</div>
{{< mod_adaptivequiz/attempt_report_chart }}
    {{$initjs}}
        {{#js}}
            require([
                'jquery',
                'core/chart_builder',
                'core/chart_output_chartjs',
                'core/chart_output_htmltable',
                'mod_adaptivequiz/attempt_answers_distribution_chart_manager'
            ], function(
                $,
                Builder,
                Output,
                OutputTable,
                ChartManager
            ) {
                var data = {{{chartdata}}},
                    uniqid = "{{uniqid}}",
                    chartArea = $('#chart-area-' + uniqid),
                    chartImage = chartArea.find('.chart-image'),
                    chartTable = chartArea.find('.chart-table-data'),
                    chartLink = chartArea.find('.chart-table-expand a');

                    Builder.make(data).then(function(ChartInst) {
                        const output = new Output(chartImage, ChartInst);
                        ChartManager.init(output, ChartInst, {{userid}}, {{adaptivequizid}});

                        new OutputTable(chartTable, ChartInst);
                    });

                chartLink.on('click', function(e) {
                    e.preventDefault();

                    if (chartTable.is(':visible')) {
                        chartTable.hide();
                        chartLink.text({{#quote}}{{#str}}showchartdata, moodle{{/str}}{{/quote}});
                        chartTable.attr('aria-expanded', false);
                    } else {
                        chartTable.show();
                        chartLink.text({{#quote}}{{#str}}hidechartdata, moodle{{/str}}{{/quote}});
                        chartTable.attr('aria-expanded', true);
                    }
                });
            });
        {{/js}}
    {{/initjs}}
{{/ mod_adaptivequiz/attempt_report_chart }}