]> BookStack Code Mirror - bookstack/blob - resources/js/vues/code-editor.js
Merge branch 'feature/#1598' of git://github.com/cw1998/BookStack into cw1998-feature...
[bookstack] / resources / js / vues / code-editor.js
1 import codeLib from "../services/code";
2
3 const methods = {
4     show() {
5         if (!this.editor) this.editor = codeLib.popupEditor(this.$refs.editor, this.language);
6         this.$refs.overlay.components.overlay.show(() => {
7             codeLib.updateLayout(this.editor);
8             this.editor.focus();
9         });
10     },
11     hide() {
12         this.$refs.overlay.components.overlay.hide();
13     },
14     updateEditorMode(language) {
15         codeLib.setMode(this.editor, language, this.editor.getValue());
16     },
17     updateLanguage(lang) {
18         this.language = lang;
19         this.updateEditorMode(lang);
20     },
21     open(code, language, callback) {
22         this.show();
23         this.updateEditorMode(language);
24         this.language = language;
25         codeLib.setContent(this.editor, code);
26         this.code = code;
27         this.callback = callback;
28     },
29     save() {
30         if (!this.callback) return;
31         this.callback(this.editor.getValue(), this.language);
32         this.hide();
33     }
34 };
35
36 const data = {
37     editor: null,
38     language: '',
39     code: '',
40     callback: null
41 };
42
43 export default {
44     methods,
45     data
46 };