diff --git a/ayanova/src/views/ay-report-edit.vue b/ayanova/src/views/ay-report-edit.vue
index 9bdbed43..e18373b0 100644
--- a/ayanova/src/views/ay-report-edit.vue
+++ b/ayanova/src/views/ay-report-edit.vue
@@ -29,6 +29,10 @@
Helpers
+
+
+ Data
+
@@ -86,6 +90,7 @@
>
+ {{ reportData }}
@@ -150,6 +155,42 @@ export default {
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({
vm: vm,
dirty: false,
@@ -163,40 +204,15 @@ export default {
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() {
- //dispose all models and editor
+ //TODO: dispose all models and editor
editor && editor.dispose();
},
data() {
return {
- reportData: [],
+ reportData: null,
editAreaHeight: 300,
activeTab: "properties",
lastTab: "properties",
@@ -217,6 +233,10 @@ export default {
jsHelpers: {
model: null,
state: null
+ },
+ rawData: {
+ model: null,
+ state: null
}
},
obj: {
@@ -287,6 +307,9 @@ Handlebars.registerHelper('loud', function (aString) {
case "jsHelpers":
vm.editData.jsHelpers.state = currentState;
break;
+ case "rawData":
+ vm.editData.rawData.state = currentState;
+ break;
}
//set new view stuff
@@ -297,24 +320,35 @@ Handlebars.registerHelper('loud', function (aString) {
case "template":
editor.setModel(vm.editData.template.model);
editor.restoreViewState(vm.editData.template.state);
+ editor.updateOptions({ readOnly: false });
vm.showEditor = true;
editor.focus();
break;
case "style":
editor.setModel(vm.editData.style.model);
editor.restoreViewState(vm.editData.style.state);
+ editor.updateOptions({ readOnly: false });
vm.showEditor = true;
editor.focus();
break;
case "jsPrerender":
editor.setModel(vm.editData.jsPrerender.model);
editor.restoreViewState(vm.editData.jsPrerender.state);
+ editor.updateOptions({ readOnly: false });
vm.showEditor = true;
editor.focus();
break;
case "jsHelpers":
editor.setModel(vm.editData.jsHelpers.model);
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;
editor.focus();
break;