]> BookStack Code Mirror - bookstack/blob - resources/js/vues/code-editor.js
Merge branch 'master' of git://github.com/Binternet/BookStack into Binternet-master
[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         });
9     },
10     hide() {
11         this.$refs.overlay.components.overlay.hide();
12     },
13     updateEditorMode(language) {
14         codeLib.setMode(this.editor, language, this.editor.getValue());
15     },
16     updateLanguage(lang) {
17         this.language = lang;
18         this.updateEditorMode(lang);
19     },
20     open(code, language, callback) {
21         this.show();
22         this.updateEditorMode(language);
23         this.language = language;
24         codeLib.setContent(this.editor, code);
25         this.code = code;
26         this.callback = callback;
27     },
28     save() {
29         if (!this.callback) return;
30         this.callback(this.editor.getValue(), this.language);
31         this.hide();
32     }
33 };
34
35 const data = {
36     editor: null,
37     language: '',
38     code: '',
39     callback: null
40 };
41
42 export default {
43     methods,
44     data
45 };