This commit is contained in:
2020-08-31 18:44:50 +00:00
parent 465cb4c0f5
commit 1a8bd23d5e

View File

@@ -22,11 +22,11 @@
Style
</v-btn>
<v-btn value="jsprerender">
<v-btn value="jsPrerender">
JSPrerender
</v-btn>
<v-btn value="jshelpers">
<v-btn value="jsHelpers">
JSHelpers
</v-btn>
</v-btn-toggle>
@@ -123,22 +123,28 @@ export default {
// language: "javascript"
// };
let vm = this;
//Created editor models for each type of report element that can be edited
vm.editData.template.model = monaco.editor.createModel(
vm.template,
vm.obj.template,
"javascript"
);
vm.editData.style.model = monaco.editor.createModel(vm.style, "css");
vm.editData.style.model = monaco.editor.createModel(vm.obj.style, "css");
vm.editData.jsPrerender.model = monaco.editor.createModel(
vm.jsPrerender,
vm.obj.jsPrerender,
"javascript"
);
vm.editData.jsHelpers.model = monaco.editor.createModel(
vm.jsHelpers,
vm.obj.jsHelpers,
"javascript"
);
//Create the editor itself
vm.editor = monaco.editor.create(document.getElementById("editContainer"), {
model: vm.editData.template.model
});
//save the initial state because we're going to move away from it immediately
vm.editData.template.state = vm.editor.saveViewState();
vm.showEditor = false;
},
beforeDestroy() {
@@ -158,6 +164,7 @@ export default {
editAreaHeight: 300,
activeTab: "properties",
lastTab: "properties",
lastEditTab: "template",
showEditor: true,
editData: {
template: {
@@ -186,9 +193,15 @@ export default {
roles: null,
objectType: 0,
template: `console.log('hello world');`,
style: "",
jsPrerender: "",
jsHelpers: "",
style: `.example {
color: blue;
}`,
jsPrerender: `function pre(reportdata){
return reportData;
}`,
jsHelpers: `Handlebars.registerHelper('loud', function (aString) {
return aString.toUpperCase()
})`,
renderType: 0
},
formState: {
@@ -214,7 +227,7 @@ export default {
//
onViewChange() {
let vm = this;
let editor = vm.$refs.editor ? vm.$refs.editor.getEditor() : null;
//let editor = vm.$refs.editor ? vm.$refs.editor.getEditor() : null;
// console.log(`Switching from ${vm.lastTab} to ${vm.activeTab}`);
// console.log("editor", editor);
@@ -222,17 +235,25 @@ export default {
//Note that properties tab doesn't mean need to dump editor as user could be switching back and forth
//so really the lasttab needs to be the last edited tab because we don't need to save when going to properties from script and back again
//save last view stuff
let currentState = vm.editor.saveViewState();
let currentModel = vm.editor.getModel();
// debugger;
//save edit state before switching
switch (vm.lastTab) {
case "properties":
//no state to save here
break;
case "template":
vm.editData.template.state = currentState;
break;
case "style":
vm.editData.style.state = currentState;
break;
case "jsprerender":
case "jsPrerender":
vm.editData.jsPrerender.state = currentState;
break;
case "jshelpers":
case "jsHelpers":
vm.editData.jsHelpers.state = currentState;
break;
}
@@ -242,16 +263,28 @@ export default {
vm.showEditor = false;
break;
case "template":
vm.editor.setModel(vm.editData.template.model);
vm.editor.restoreViewState(vm.editData.template.state);
vm.showEditor = true;
vm.editor.focus();
break;
case "style":
vm.editor.setModel(vm.editData.style.model);
vm.editor.restoreViewState(vm.editData.style.state);
vm.showEditor = true;
vm.editor.focus();
break;
case "jsprerender":
case "jsPrerender":
vm.editor.setModel(vm.editData.jsPrerender.model);
vm.editor.restoreViewState(vm.editData.jsPrerender.state);
vm.showEditor = true;
vm.editor.focus();
break;
case "jshelpers":
case "jsHelpers":
vm.editor.setModel(vm.editData.jsHelpers.model);
vm.editor.restoreViewState(vm.editData.jsHelpers.state);
vm.showEditor = true;
vm.editor.focus();
break;
}
vm.lastTab = vm.activeTab;