Translations of this page:
 

CRM/RTR audio measuring

Displaying the rating in the questionnaire

Using the chart library ChartJS, the rating can be displayed as a chart, either after the assessment (on the following page), or live during the recording.

Live chart

To display a chart during data collection, save the following HTML/JavaScript code in a section (List of QuestionsAdd TextDisplayHTML Code”).

<div>
    <canvas id="chart" style="width: 100%; height: 200px"></canvas>
</div>
 
 
<script type="text/javascript">
<!--
 
// Initialise chart 
var chart = new Chart(
    document.getElementById('chart'),
    {
        type: 'line',
        data: {
            labels: [],
            datasets: [{
                label: 'Rating',
                backgroundColor: 'rgb(99, 99, 200)',
                borderColor: 'rgb(99, 99, 200)',
                data: [],
            }],
        },
        options: {
            scales: {
                yAxis: {
                    min: 0,
                    max: 100
                }
            }
        }
    }
);
 
// Updating the chart during recording
var rtr = document.getElementById("%questionID%_tab");
rtr.addEventListener("change", function(evt) {
    var response = evt.detail.response;
    var samples = evt.detail.duration * evt.detail.resolution;
 
    // Set labels for the whole duration
    if (chart.data.labels.length < evt.detail.duration) {
        labels = [];
        for (var i=0; i<samples; i++) {
            labels.push((i + 1) / evt.detail.resolution);
        }
        chart.data.labels = labels;
    }
 
    chart.data.datasets[0].data = response;
    chart.update("none");
});
 
// -->
</script>

The placeholder %questionID% is replaced by the following PHP code with the identifier of the question. Place the following PHP code under Compose Questionnaire directly under the CRM question. The identifier CR01 must be replaced with the identifier of the CRM question, and the identifier CR02 must be replaced with the identifier of the text containing the JavaScript code.

library('ChartJS');
show('CR02', [
    '%questionID%' => 'CR01'
]);

Chart after completion

If the chart is to be displayed on a later page in the questionnaire, the data is retrieved from the dataset using value(). To do this, create the following HTML/JavaScript code in a section in the Questionnaire (Add textDisplayHTML code”).

<div>
    <canvas id="chart" style="width: 100%; height: 200px"></canvas>
</div>
 
 
<script type="text/javascript">
<!--
 
var myChart = new Chart(
    document.getElementById('chart'),
    {
        type: 'line',
        data: {
            labels: %labels%,
            datasets: [{
                label: 'Rating',
                backgroundColor: 'rgb(99, 99, 200)',
                borderColor: 'rgb(99, 99, 200)',
                data: %data%,
            }]
        },
        options: {}
    }
);
 
// -->
</script>

Place the following PHP code in the questionnaire (Compose Questionnaire) where you want the chart to appear. Replace “CR01rsp” with the variable identifier of your CRM question. If the question's identifier is AB01, the variable identifier will be “AB01rsp” by default.

$data = value('CR01rsp', 'label');
$data = explode(',', $data);
 
$values = [null];
foreach ($data as $value) {
  $iValue = (int)$value;
  if ($iValue >= 0) {
    $values[] = (int)$value;
  } else {
    $values[] = NULL;
  }
}
 
replace('%data%', json_encode($values));
replace('%labels%', json_encode(array_keys($values)));
library('ChartJS');
option('nextbutton', false);

Drag the text module created above to the same page in the questionnaire (Compose Questionnaire) under the PHP code.

en/create/questions/rtr-audio.txt · Last modified: 29.11.2021 09:06 by admin
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki