60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
Kanboard.Markdown = function(app) {
|
|
this.app = app;
|
|
this.editor = null;
|
|
};
|
|
|
|
Kanboard.Markdown.prototype.onPopoverOpened = function() {
|
|
this.listen();
|
|
};
|
|
|
|
Kanboard.Markdown.prototype.onPopoverClosed = function() {
|
|
this.listen();
|
|
};
|
|
|
|
Kanboard.Markdown.prototype.listen = function() {
|
|
var editors = $(".markdown-editor");
|
|
|
|
if (this.editor) {
|
|
this.destroy();
|
|
}
|
|
|
|
if (editors.length > 0) {
|
|
this.show(editors[0]);
|
|
}
|
|
};
|
|
|
|
Kanboard.Markdown.prototype.destroy = function() {
|
|
var cm = this.editor.codemirror;
|
|
var wrapper = cm.getWrapperElement();
|
|
|
|
for (var item in ["toolbar", "statusbar", "sideBySide"]) {
|
|
if (this.editor.gui[item]) {
|
|
wrapper.parentNode.removeChild(this.editor.gui[item]);
|
|
}
|
|
}
|
|
|
|
cm.toTextArea();
|
|
this.editor = null;
|
|
};
|
|
|
|
Kanboard.Markdown.prototype.show = function(textarea) {
|
|
var toolbar = ["bold", "italic", "strikethrough", "heading", "|", "unordered-list", "ordered-list", "link", "|", "code", "table"];
|
|
|
|
this.editor = new SimpleMDE({
|
|
element: textarea,
|
|
status: false,
|
|
toolbarTips: false,
|
|
autoDownloadFontAwesome: false,
|
|
spellChecker: false,
|
|
autosave: {
|
|
enabled: false
|
|
},
|
|
forceSync: true,
|
|
blockStyles: {
|
|
italic: "_"
|
|
},
|
|
toolbar: textarea.hasAttribute("data-markdown-editor-disable-toolbar") ? false : toolbar,
|
|
placeholder: textarea.getAttribute("placeholder")
|
|
});
|
|
};
|