/*eslint no-var: "error" */ /*eslint no-unused-vars: "off" */ /*eslint linebreak-style: "off" */ /*eslint no-trailing-spaces: "off" */ /*eslint-env es6*/ import {call} from 'core/ajax'; import notification from 'core/notification'; import Vue from './vue/vue'; import Debugger from './util/debugger'; import {load_strings} from './util/string-helper'; import SRComponents from './studyplan-report-components'; Vue.use(SRComponents); import RVComponents from './report-viewer-components'; Vue.use(RVComponents); import ModalComponents from './modedit-modal'; Vue.use(ModalComponents); import PortalVue from './portal-vue/portal-vue.esm'; Vue.use(PortalVue); import BootstrapVue from './bootstrap-vue/bootstrap-vue'; Vue.use(BootstrapVue); let debug = new Debugger("treestudyplanviewer"); let strings = load_strings({ studyplan: { studyplan_select_placeholder: 'studyplan_select_placeholder', }, }); /** * Initialize the Page * @param {Number} studyplanid The id of the studyplan we need to view * @param {Number} pageid The id of the studyplan page we need to view * @param {Number} firstperiod The number of the first period to view * @param {Number} lastperiod The number of the last period to view */ export function init(studyplanid, pageid, firstperiod, lastperiod) { if (undefined === pageid || !Number.isInteger(Number(pageid)) || undefined === studyplanid || !Number.isInteger(Number(studyplanid))) { debug.error("Did Error: studyplan id and page id not provided as integer numbers to script.", studyplanid, pageid, firstperiod, lastperiod); return; // Do not continue if plan and page are not proper integers } // Ensure a numeric value instead of string. studyplanid = Number(studyplanid); pageid = Number(pageid); // Startup app. const app = new Vue({ el: '#root', data: { structure: null, }, async mounted() { }, created() { this.loadStructure(); }, computed: { }, methods: { loadStructure() { const self = this; this.structure = null; // Starts loading icon. Hides old data. call([{ methodname: 'local_treestudyplan_get_report_structure', args: { pageid: pageid, firstperiod: firstperiod, lastperiod: lastperiod } }])[0].then(function(response){ self.structure = response; }).catch(notification.exception); } }, }); }