Skip to content

Commit

Permalink
Survey: Fix PDF export BT#17835
Browse files Browse the repository at this point in the history
  • Loading branch information
jmontoyaa committed Dec 4, 2020
1 parent 5b9a517 commit 4451889
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 24 deletions.
16 changes: 8 additions & 8 deletions main/survey/reporting.php
Expand Up @@ -161,7 +161,7 @@
await html2canvas(table).then(function(canvas) {
var pageData = canvas.toDataURL("image/jpeg", 1);
headerY = 530.28/canvas.width * canvas.height;
pdf.addImage(pageData, "JPEG", 40, 60, 530, headerY);
pdf.addImage(pageData, "JPEG", 35, 60, 530, headerY);
});
var divs = doc.getElementsByClassName("question-item");
Expand All @@ -174,7 +174,7 @@
pages[page] = 0;
}
var positionY = 160;
var positionY = 150;
pages[page] += 1;
var diff = 250;
if (page > 1) {
Expand All @@ -183,26 +183,26 @@
diff = 220;
}
if (pages[page] > 1) {
positionY = pages[page] * diff + 10;
positionY = pages[page] * diff + 5;
}
const title = $(divs[i]).find(".title-question");
pdf.setFontSize(12);
pdf.setFontSize(10);
pdf.text(40, positionY, title.text());
var svg = divs[i].querySelector("svg");
svg2pdf(svg, pdf, {
xOffset: 10,
yOffset: positionY + 10,
xOffset: 150,
yOffset: positionY,
scale: 0.45
});
var tables = divs[i].getElementsByClassName("display-survey");
var config= {};
for (var j = 0; j < tables.length; j += 1) {
await html2canvas(tables[j], config).then(function(canvas) {
var pageData = canvas.toDataURL("image/jpeg", 0.8);
pdf.addImage(pageData, "JPEG", 40, positionY + 200, 500, 500/canvas.width * canvas.height);
var pageData = canvas.toDataURL("image/jpeg", 0.7);
pdf.addImage(pageData, "JPEG", 40, positionY + 175, 500, 500/canvas.width * canvas.height);
});
}
Expand Down
37 changes: 21 additions & 16 deletions main/survey/surveyUtil.class.php
Expand Up @@ -734,7 +734,7 @@ public static function display_question_report($survey_data)
array_push($chartData, ['option' => $optionText, 'votes' => $votes]);
}
$chartContainerId = 'chartContainer'.$question['question_id'];
echo '<div id="'.$chartContainerId.'" >';
echo '<div id="'.$chartContainerId.'" style="text-align:center;">';
echo self::drawChart($chartData, false, $chartContainerId, false);
echo '</div>';

Expand Down Expand Up @@ -3911,23 +3911,23 @@ public static function drawChart($chartData, $hasSerie = false, $chartContainerI
$serieValue = isset($chartDataElement['serie']) ? $chartDataElement['serie'] : null;

if (!$hasSerie) {
$data .= get_lang("Option").'":"'.$option.'", "';
$data .= get_lang('Option').'":"'.$option.'", "';
array_push($order, $option);
} else {
if (!is_array($serieValue)) {
$data .=
get_lang("Option").'":"'.$serieValue.'", "'.
get_lang("Score").'":"'.$option.'", "';
get_lang('Option').'":"'.$serieValue.'", "'.
get_lang('Score').'":"'.$option.'", "';
array_push($serie, $serieValue);
} else {
$data .=
get_lang("Serie").'":"'.$serieValue[0].'", "'.
get_lang("Option").'":"'.$serieValue[1].'", "'.
get_lang("Score").'":"'.$option.'", "';
get_lang('Serie').'":"'.$serieValue[0].'", "'.
get_lang('Option').'":"'.$serieValue[1].'", "'.
get_lang('Score').'":"'.$option.'", "';
}
}
$data .= get_lang("Votes").'":"'.$chartDataElement['votes'].'"},';
rtrim($data, ",");
$data .= get_lang('Votes').'":"'.$chartDataElement['votes'].'"},';
rtrim($data, ',');
}

if ($loadLibs) {
Expand All @@ -3937,29 +3937,34 @@ public static function drawChart($chartData, $hasSerie = false, $chartContainerI

$htmlChart .= '
<script>
var svg = dimple.newSvg("#'.$chartContainerId.'", "100%", 400);
var svg = dimple.newSvg("#'.$chartContainerId.'", 600, 400);
var data = ['.$data.'];
var myChart = new dimple.chart(svg, data);
myChart.addMeasureAxis("y", "'.get_lang("Votes").'");';
myChart.setBounds(50, 30, 550, 300);
var yAxis = myChart.addMeasureAxis("y", "'.get_lang('Votes').'");
yAxis.fontSize = "14px";
';

if (!$hasSerie) {
$htmlChart .= '
var xAxisCategory = myChart.addCategoryAxis("x", "'.get_lang("Option").'");
xAxisCategory.fontSize = "14px";
xAxisCategory.addOrderRule('.json_encode($order).');
myChart.addSeries("'.get_lang("Option").'", dimple.plot.bar);';
} else {
if (!is_array($chartDataElement['serie'])) {
$serie = array_values(array_unique($serie));
$htmlChart .= '
var xAxisCategory =
myChart.addCategoryAxis("x", ["'.get_lang("Option").'","'.get_lang("Score").'"]);
myChart.addCategoryAxis("x", ["'.get_lang('Option').'","'.get_lang("Score").'"]);
xAxisCategory.addOrderRule('.json_encode($serie).');
xAxisCategory.addGroupOrderRule("'.get_lang("Score").'");
myChart.addSeries("'.get_lang("Option").'", dimple.plot.bar);';
xAxisCategory.addGroupOrderRule("'.get_lang('Score').'");
myChart.addSeries("'.get_lang('Option').'", dimple.plot.bar);';
} else {
$htmlChart .= '
myChart.addCategoryAxis("x", ["'.get_lang("Option").'","'.get_lang("Score").'"]);
myChart.addSeries("'.get_lang("Serie").'", dimple.plot.bar);';
myChart.addCategoryAxis("x", ["'.get_lang('Option').'","'.get_lang("Score").'"]);
myChart.addSeries("'.get_lang('Serie').'", dimple.plot.bar);';
}
}

Expand Down

0 comments on commit 4451889

Please sign in to comment.