$(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)); });