MDL-74153 portfolio_download: fix download form

The download form usas autosubmit to start downloading the content. This
breaks the JS modules loading because the page loading is cancelled when
the form is submitted. To prevent this from happen the download form now
has a hidden iframe to execute the download action without affecting the
rest of the page.
This commit is contained in:
Ferran Recio 2022-03-16 11:02:56 +01:00
parent 967d9b2546
commit e9de12ec51

View File

@ -29,9 +29,11 @@ echo $OUTPUT->notification('<a href="' . $returnurl . '">' . get_string('returnt
// if they don't have javascript, they can submit the form here to get the file.
// if they do, it does it nicely for them.
echo '<div id="redirect">
<form action="' . $exporter->get('instance')->get_base_file_url() . '" method="post" id="redirectform">
<form action="' . $exporter->get('instance')->get_base_file_url() . '" method="post" id="redirectform" target="download-iframe">
<input type="submit" value="' . get_string('downloadfile', 'portfolio_download') . '" />
</form></div>
</form>
<iframe class="d-none" name="download-iframe" src=""></iframe>
</div>
';
$PAGE->requires->js_amd_inline("
@ -41,5 +43,3 @@ require(['jquery'], function($) {
}).submit();
});");
echo $OUTPUT->footer();