
This refactoring is required for Sentry tracing. It ensures that the respective functions only return as soon as a code execution finished. With this approach, we can then instrument the duration of the functions, so that Sentry spans are created as desired. Co-authored-by: Jan Graichen <jgraichen@altimos.de>
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
$(document).on('turbolinks:load', function() {
|
|
|
|
if ($.isController('community_solutions') && $('#community-solution-editor').isPresent()) {
|
|
CodeOceanEditor.sendEvents = false;
|
|
CodeOceanEditor.editors = [];
|
|
CodeOceanEditor.initializeDescriptionToggle();
|
|
CodeOceanEditor.initializeEditors();
|
|
CodeOceanEditor.initializeEditors(true);
|
|
CodeOceanEditor.initializeFileTree();
|
|
CodeOceanEditor.initializeFileTree(true);
|
|
CodeOceanEditor.showFirstFile();
|
|
CodeOceanEditor.showFirstFile(true);
|
|
CodeOceanEditor.resizeAceEditors();
|
|
CodeOceanEditor.resizeAceEditors(true);
|
|
|
|
$.extend(
|
|
CodeOceanEditor,
|
|
CodeOceanEditorAJAX,
|
|
CodeOceanEditorSubmissions
|
|
)
|
|
|
|
$(document).on('theme:change:ace', CodeOceanEditor.handleAceThemeChangeEvent.bind(CodeOceanEditor));
|
|
$('#submit').one('click', submitCode.bind(CodeOceanEditor));
|
|
$('#accept').one('click', submitCode.bind(CodeOceanEditor));
|
|
}
|
|
});
|
|
|
|
function submitCode(event) {
|
|
const button = $(event.target) || $('#submit');
|
|
this.startSentryTransaction(button);
|
|
const submission = await this.createSubmission(button, null).catch(this.ajaxError.bind(this));
|
|
if (!submission) return;
|
|
if (!submission.redirect) return;
|
|
|
|
this.autosaveIfChanged();
|
|
this.stopCode(event);
|
|
this.editors = [];
|
|
Turbolinks.clearCache();
|
|
Turbolinks.visit(submission.redirect);
|
|
}
|