This commit is contained in:
@@ -22,11 +22,11 @@
|
|||||||
Style
|
Style
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
<v-btn value="jsprerender">
|
<v-btn value="jsPrerender">
|
||||||
JSPrerender
|
JSPrerender
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
|
||||||
<v-btn value="jshelpers">
|
<v-btn value="jsHelpers">
|
||||||
JSHelpers
|
JSHelpers
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</v-btn-toggle>
|
</v-btn-toggle>
|
||||||
@@ -123,22 +123,28 @@ export default {
|
|||||||
// language: "javascript"
|
// language: "javascript"
|
||||||
// };
|
// };
|
||||||
let vm = this;
|
let vm = this;
|
||||||
|
|
||||||
|
//Created editor models for each type of report element that can be edited
|
||||||
vm.editData.template.model = monaco.editor.createModel(
|
vm.editData.template.model = monaco.editor.createModel(
|
||||||
vm.template,
|
vm.obj.template,
|
||||||
"javascript"
|
"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.editData.jsPrerender.model = monaco.editor.createModel(
|
||||||
vm.jsPrerender,
|
vm.obj.jsPrerender,
|
||||||
"javascript"
|
"javascript"
|
||||||
);
|
);
|
||||||
vm.editData.jsHelpers.model = monaco.editor.createModel(
|
vm.editData.jsHelpers.model = monaco.editor.createModel(
|
||||||
vm.jsHelpers,
|
vm.obj.jsHelpers,
|
||||||
"javascript"
|
"javascript"
|
||||||
);
|
);
|
||||||
|
//Create the editor itself
|
||||||
vm.editor = monaco.editor.create(document.getElementById("editContainer"), {
|
vm.editor = monaco.editor.create(document.getElementById("editContainer"), {
|
||||||
model: vm.editData.template.model
|
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;
|
vm.showEditor = false;
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
@@ -158,6 +164,7 @@ export default {
|
|||||||
editAreaHeight: 300,
|
editAreaHeight: 300,
|
||||||
activeTab: "properties",
|
activeTab: "properties",
|
||||||
lastTab: "properties",
|
lastTab: "properties",
|
||||||
|
lastEditTab: "template",
|
||||||
showEditor: true,
|
showEditor: true,
|
||||||
editData: {
|
editData: {
|
||||||
template: {
|
template: {
|
||||||
@@ -186,9 +193,15 @@ export default {
|
|||||||
roles: null,
|
roles: null,
|
||||||
objectType: 0,
|
objectType: 0,
|
||||||
template: `console.log('hello world');`,
|
template: `console.log('hello world');`,
|
||||||
style: "",
|
style: `.example {
|
||||||
jsPrerender: "",
|
color: blue;
|
||||||
jsHelpers: "",
|
}`,
|
||||||
|
jsPrerender: `function pre(reportdata){
|
||||||
|
return reportData;
|
||||||
|
}`,
|
||||||
|
jsHelpers: `Handlebars.registerHelper('loud', function (aString) {
|
||||||
|
return aString.toUpperCase()
|
||||||
|
})`,
|
||||||
renderType: 0
|
renderType: 0
|
||||||
},
|
},
|
||||||
formState: {
|
formState: {
|
||||||
@@ -214,7 +227,7 @@ export default {
|
|||||||
//
|
//
|
||||||
onViewChange() {
|
onViewChange() {
|
||||||
let vm = this;
|
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(`Switching from ${vm.lastTab} to ${vm.activeTab}`);
|
||||||
// console.log("editor", editor);
|
// 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
|
//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
|
//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) {
|
switch (vm.lastTab) {
|
||||||
case "properties":
|
case "properties":
|
||||||
|
//no state to save here
|
||||||
break;
|
break;
|
||||||
case "template":
|
case "template":
|
||||||
|
vm.editData.template.state = currentState;
|
||||||
break;
|
break;
|
||||||
case "style":
|
case "style":
|
||||||
|
vm.editData.style.state = currentState;
|
||||||
break;
|
break;
|
||||||
case "jsprerender":
|
case "jsPrerender":
|
||||||
|
vm.editData.jsPrerender.state = currentState;
|
||||||
break;
|
break;
|
||||||
case "jshelpers":
|
case "jsHelpers":
|
||||||
|
vm.editData.jsHelpers.state = currentState;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,16 +263,28 @@ export default {
|
|||||||
vm.showEditor = false;
|
vm.showEditor = false;
|
||||||
break;
|
break;
|
||||||
case "template":
|
case "template":
|
||||||
|
vm.editor.setModel(vm.editData.template.model);
|
||||||
|
vm.editor.restoreViewState(vm.editData.template.state);
|
||||||
vm.showEditor = true;
|
vm.showEditor = true;
|
||||||
|
vm.editor.focus();
|
||||||
break;
|
break;
|
||||||
case "style":
|
case "style":
|
||||||
|
vm.editor.setModel(vm.editData.style.model);
|
||||||
|
vm.editor.restoreViewState(vm.editData.style.state);
|
||||||
vm.showEditor = true;
|
vm.showEditor = true;
|
||||||
|
vm.editor.focus();
|
||||||
break;
|
break;
|
||||||
case "jsprerender":
|
case "jsPrerender":
|
||||||
|
vm.editor.setModel(vm.editData.jsPrerender.model);
|
||||||
|
vm.editor.restoreViewState(vm.editData.jsPrerender.state);
|
||||||
vm.showEditor = true;
|
vm.showEditor = true;
|
||||||
|
vm.editor.focus();
|
||||||
break;
|
break;
|
||||||
case "jshelpers":
|
case "jsHelpers":
|
||||||
|
vm.editor.setModel(vm.editData.jsHelpers.model);
|
||||||
|
vm.editor.restoreViewState(vm.editData.jsHelpers.state);
|
||||||
vm.showEditor = true;
|
vm.showEditor = true;
|
||||||
|
vm.editor.focus();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
vm.lastTab = vm.activeTab;
|
vm.lastTab = vm.activeTab;
|
||||||
|
|||||||
Reference in New Issue
Block a user