diff --git a/htdocs/js/PGProblemEditor/pgproblemeditor.js b/htdocs/js/PGProblemEditor/pgproblemeditor.js
index fe41965c22..4318e11f1f 100644
--- a/htdocs/js/PGProblemEditor/pgproblemeditor.js
+++ b/htdocs/js/PGProblemEditor/pgproblemeditor.js
@@ -272,6 +272,16 @@
.then((data) => {
if (data.error) throw new Error(data.error);
if (!data.result_data) throw new Error('An invalid response was received.');
+ if (data.result_data.error) {
+ renderArea.innerHTML =
+ '
' +
+ '
PGML conversion error:
' +
+ data.result_data.error +
+ '
';
+
+ showMessage('Errors occurred when converting code to PGML.', false);
+ return;
+ }
if (request_object.pgCode === data.result_data.pgmlCode) {
showMessage('There were no changes to the code.', true);
} else {
@@ -279,6 +289,7 @@
else document.getElementById('problemContents').value = data.result_data.pgmlCode;
saveTempFile();
showMessage('Successfully converted code to PGML', true);
+ if (!(renderArea.firstChild instanceof HTMLIFrameElement)) render();
}
})
.catch((err) => showMessage(`Error: ${err?.message ?? err}`));
diff --git a/lib/WebworkWebservice/ProblemActions.pm b/lib/WebworkWebservice/ProblemActions.pm
index a93babdf56..f58460857d 100644
--- a/lib/WebworkWebservice/ProblemActions.pm
+++ b/lib/WebworkWebservice/ProblemActions.pm
@@ -159,13 +159,11 @@ sub tidyPGCode {
sub convertCodeToPGML {
my ($invocant, $self, $params) = @_;
- my $code = $params->{pgCode};
return {
- ra_out => { pgmlCode => convertToPGML($code) },
+ ra_out => convertToPGML($params->{pgCode}),
text => 'Converted to PGML'
};
-
}
sub runPGCritic {