32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
$(document).on('turbolinks:load', function(event) {
|
|
|
|
//Merge all editor components.
|
|
$.extend(
|
|
CodeOceanEditor,
|
|
CodeOceanEditorAJAX,
|
|
CodeOceanEditorEvaluation,
|
|
CodeOceanEditorFlowr,
|
|
CodeOceanEditorSubmissions,
|
|
CodeOceanEditorTurtle,
|
|
CodeOceanEditorWebsocket,
|
|
CodeOceanEditorPrompt,
|
|
CodeOceanEditorRequestForComments
|
|
);
|
|
|
|
if ($('#editor').isPresent() && CodeOceanEditor && event.originalEvent.data.url.includes("/implement")) {
|
|
// This call will (amon other things) initializeEditors and load the content except for the last line
|
|
// It must not be called during page navigation. Otherwise, content will be duplicated!
|
|
// Search for insertFullLines and Turbolinks reload / cache control
|
|
CodeOceanEditor.initializeEverything();
|
|
}
|
|
|
|
function handleThemeChangeEvent(event) {
|
|
if (CodeOceanEditor) {
|
|
CodeOceanEditor.THEME = event.detail.currentTheme === 'dark' ? 'ace/theme/tomorrow_night' : 'ace/theme/tomorrow';
|
|
document.dispatchEvent(new Event('theme:change:ace'));
|
|
}
|
|
}
|
|
|
|
$(document).on('theme:change', handleThemeChangeEvent.bind(this));
|
|
});
|