diff --git a/static/js/site.js b/static/js/site.js new file mode 100644 index 0000000000000000000000000000000000000000..e67bf0734d95df001106e0abdc44601c2d971625 --- /dev/null +++ b/static/js/site.js @@ -0,0 +1,32 @@ +/* global window ace */ + +const loadEditors = () => { + const $editors = $('.modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography'); + $editors.each((i, el) => { + const editorId = `markdown-editor-${i}`; + const reportDiv = $('
').attr('id', editorId); + const setupEditor = (editor, textarea) => { + const session = editor.getSession(); + editor.setTheme('ace/theme/tomorrow'); + editor.$blockScrolling = Infinity; + editor.setOption('scrollPastEnd', true); + session.setMode('ace/mode/markdown'); + session.setValue(textarea.val()); + session.setUseWrapMode(true); + session.on('change', () => { + textarea.val(session.getValue()); + }); + editor.renderer.setShowGutter(false); + session.setTabSize(4); + session.setUseSoftTabs(true); + }; + const $formGroup = $(el).closest('.form-group'); + const $textarea = $formGroup.find('textarea'); + $formGroup.append(reportDiv); + setupEditor(ace.edit(editorId), $textarea); + }); +}; + +$(() => { + loadEditors(); +});