This commit is contained in:
2020-08-31 23:22:07 +00:00
parent d8dfaaa5f3
commit 6698157f85

View File

@@ -29,6 +29,10 @@
<v-btn value="jsHelpers"> <v-btn value="jsHelpers">
Helpers Helpers
</v-btn> </v-btn>
<v-btn value="rawData">
Data
</v-btn>
</v-btn-toggle> </v-btn-toggle>
</v-col> </v-col>
<v-col cols="12" v-show="showEditor"> <v-col cols="12" v-show="showEditor">
@@ -86,6 +90,7 @@
></v-textarea> ></v-textarea>
</v-col> </v-col>
</v-row> </v-row>
{{ reportData }}
</v-form> </v-form>
</v-col> </v-col>
</v-row> </v-row>
@@ -150,6 +155,42 @@ export default {
loading: false loading: false
}); });
} }
//---------------
//setup the editor and models
//Created editor models for each type of report element that can be edited
vm.editData.template.model = monaco.editor.createModel(
vm.obj.template,
"javascript"
);
vm.editData.style.model = monaco.editor.createModel(vm.obj.style, "css");
vm.editData.jsPrerender.model = monaco.editor.createModel(
vm.obj.jsPrerender,
"javascript"
);
vm.editData.rawData.model = monaco.editor.createModel(
JSON.stringify(vm.reportData, null, "\t"),
"json"
);
vm.editData.jsHelpers.model = monaco.editor.createModel(
vm.obj.jsHelpers,
"javascript"
);
//Create the editor itself
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 = editor.saveViewState();
vm.showEditor = false;
//---------------
window.$gz.form.setFormState({ window.$gz.form.setFormState({
vm: vm, vm: vm,
dirty: false, dirty: false,
@@ -163,40 +204,15 @@ export default {
vm.formState.ready = true; vm.formState.ready = true;
} }
}, },
mounted() {
let vm = this;
//Created editor models for each type of report element that can be edited
vm.editData.template.model = monaco.editor.createModel(
vm.obj.template,
"javascript"
);
vm.editData.style.model = monaco.editor.createModel(vm.obj.style, "css");
vm.editData.jsPrerender.model = monaco.editor.createModel(
vm.obj.jsPrerender,
"javascript"
);
vm.editData.jsHelpers.model = monaco.editor.createModel(
vm.obj.jsHelpers,
"javascript"
);
//Create the editor itself
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 = editor.saveViewState();
vm.showEditor = false;
},
beforeDestroy() { beforeDestroy() {
//dispose all models and editor //TODO: dispose all models and editor
editor && editor.dispose(); editor && editor.dispose();
}, },
data() { data() {
return { return {
reportData: [], reportData: null,
editAreaHeight: 300, editAreaHeight: 300,
activeTab: "properties", activeTab: "properties",
lastTab: "properties", lastTab: "properties",
@@ -217,6 +233,10 @@ export default {
jsHelpers: { jsHelpers: {
model: null, model: null,
state: null state: null
},
rawData: {
model: null,
state: null
} }
}, },
obj: { obj: {
@@ -287,6 +307,9 @@ Handlebars.registerHelper('loud', function (aString) {
case "jsHelpers": case "jsHelpers":
vm.editData.jsHelpers.state = currentState; vm.editData.jsHelpers.state = currentState;
break; break;
case "rawData":
vm.editData.rawData.state = currentState;
break;
} }
//set new view stuff //set new view stuff
@@ -297,24 +320,35 @@ Handlebars.registerHelper('loud', function (aString) {
case "template": case "template":
editor.setModel(vm.editData.template.model); editor.setModel(vm.editData.template.model);
editor.restoreViewState(vm.editData.template.state); editor.restoreViewState(vm.editData.template.state);
editor.updateOptions({ readOnly: false });
vm.showEditor = true; vm.showEditor = true;
editor.focus(); editor.focus();
break; break;
case "style": case "style":
editor.setModel(vm.editData.style.model); editor.setModel(vm.editData.style.model);
editor.restoreViewState(vm.editData.style.state); editor.restoreViewState(vm.editData.style.state);
editor.updateOptions({ readOnly: false });
vm.showEditor = true; vm.showEditor = true;
editor.focus(); editor.focus();
break; break;
case "jsPrerender": case "jsPrerender":
editor.setModel(vm.editData.jsPrerender.model); editor.setModel(vm.editData.jsPrerender.model);
editor.restoreViewState(vm.editData.jsPrerender.state); editor.restoreViewState(vm.editData.jsPrerender.state);
editor.updateOptions({ readOnly: false });
vm.showEditor = true; vm.showEditor = true;
editor.focus(); editor.focus();
break; break;
case "jsHelpers": case "jsHelpers":
editor.setModel(vm.editData.jsHelpers.model); editor.setModel(vm.editData.jsHelpers.model);
editor.restoreViewState(vm.editData.jsHelpers.state); editor.restoreViewState(vm.editData.jsHelpers.state);
editor.updateOptions({ readOnly: false });
vm.showEditor = true;
editor.focus();
break;
case "rawData":
editor.setModel(vm.editData.rawData.model);
editor.restoreViewState(vm.editData.rawData.state);
editor.updateOptions({ readOnly: true });
vm.showEditor = true; vm.showEditor = true;
editor.focus(); editor.focus();
break; break;