From cc779f3d273b777a5620807f8475d231c6b70e62 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 21 Nov 2023 08:48:34 +0100 Subject: [PATCH] finish --- .../Studierendenantrag/Lvzuweisung.js | 230 +++++++++--------- 1 file changed, 117 insertions(+), 113 deletions(-) diff --git a/public/js/components/Studierendenantrag/Lvzuweisung.js b/public/js/components/Studierendenantrag/Lvzuweisung.js index 34576ed4c..6b482dc38 100644 --- a/public/js/components/Studierendenantrag/Lvzuweisung.js +++ b/public/js/components/Studierendenantrag/Lvzuweisung.js @@ -105,121 +105,125 @@ export default { else { let res = {}; - for (var k in result.data.retval) { - if (result.data.retval[k] === null) { - const alert = document.createElement('div'); - alert.innerHTML = this.$p.t('studierendenantrag', 'error_stg_last_semester'); - alert.className = 'alert alert-warning'; - alert.role = 'alert'; - this.$refs["lvtable" + k.substr(0,1)].append(alert); - continue; - } - let lvs = result.data.retval[k].reduce((obj,lv) => { - obj[lv.studienplan_lehrveranstaltung_id] = lv; - return obj; - }, {}); - for (var lv of Object.values(lvs)) { - if (!lv.studienplan_lehrveranstaltung_id_parent) - continue; - if (!lvs[lv.studienplan_lehrveranstaltung_id_parent]) - console.error('parent not available'); - else { - if (!lvs[lv.studienplan_lehrveranstaltung_id_parent]._children) - lvs[lv.studienplan_lehrveranstaltung_id_parent]._children = []; - lvs[lv.studienplan_lehrveranstaltung_id_parent]._children.push(lv); - } - } - res[k] = Object.values(lvs).filter(lv => !lv.studienplan_lehrveranstaltung_id_parent); - let current = res[k]; - let index = k.substr(0,1); - - const options = { - data: current, - dataTree: true, - dataTreeStartExpanded: true, //start with an expanded tree - dataTreeChildIndent: 15, - layout: "fitDataStretch", - columns: [ - {title: this.$p.t_node('ui', 'bezeichnung'), field: "bezeichnung"}, - {title: this.$p.t_node('lehre','lehrform'), field: "lehrform_kurzbz"}, - {title: "ECTS", field: "ects"}, - {title: this.$p.t_node('lehre','note'), field: "note", formatter:(cell, formatterParams, onRendered)=>cell.getValue() || "---"}, - {title: (index==1) ? this.$p.t_node('studierendenantrag','lv_nicht_zulassen') : this.$p.t_node('studierendenantrag','lv_wiederholen'), field: "antrag_zugelassen", formatter: (cell, formatterParams, onRendered) => { - let data = cell.getData(); - if(data._children || !data.zeugnis) - return ""; - let input = document.createElement('input'); - input.className = "form-check-input"; - input.type = "checkbox"; - input.role = "switch"; - input.checked = cell.getValue(); - input.addEventListener('input', () => { - lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen = input.checked; - cell.getRow().reformat(); - }); - if (this.disabled) { - input.disabled = true; - } - - let div = document.createElement('div'); - div.className = 'form-check form-switch'; - div.append(input); - - return div; - }}, - { - title: this.$p.t_node('global','anmerkung'), - field: "antrag_anmerkung", - headerSort:false, - titleFormatter:(cell, formatterParams, onRendered)=>{ - let link = document.createElement('a'); - link.addEventListener('click', (e) => { - e.preventDefault(); - }); - - link.href ="#"; - link.title = this.$p.t('studierendenantrag','anmerkung_tooltip'); - new bootstrap.Tooltip(link); - let tooltip = document.createElement('span'); - tooltip.innerHTML = this.$p.t('global','anmerkung') + " "; - tooltip.append(link); - - let icon = document.createElement('i'); - link.append(icon); - icon.className = "fa fa-info-circle"; - icon.setAttribute("aria-hidden", "true"); - icon.style.minWidth = '1em'; - - return tooltip; - - }, - formatter: (cell, formatterParams, onRendered) => { - if (this.disabled) { - return cell.getValue() || ""; - } - var data = cell.getData(); - if (lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen) - { - let input = document.createElement('input'); - input.className = "form-control"; - input.type = "text"; - input.value = cell.getValue() || ""; - input.addEventListener('input', () => { - lvs[data.studienplan_lehrveranstaltung_id].antrag_anmerkung = input.value; - }); - return input; - } - else - { - return ""; - } + this.$p + .loadCategory(['ui', 'lehre', 'studierendenantrag', 'global']) + .then(() => { + for (var k in result.data.retval) { + if (result.data.retval[k] === null) { + const alert = document.createElement('div'); + alert.innerHTML = this.$p.t('studierendenantrag', 'error_stg_last_semester'); + alert.className = 'alert alert-warning'; + alert.role = 'alert'; + this.$refs["lvtable" + k.substr(0,1)].append(alert); + continue; + } + let lvs = result.data.retval[k].reduce((obj,lv) => { + obj[lv.studienplan_lehrveranstaltung_id] = lv; + return obj; + }, {}); + for (var lv of Object.values(lvs)) { + if (!lv.studienplan_lehrveranstaltung_id_parent) + continue; + if (!lvs[lv.studienplan_lehrveranstaltung_id_parent]) + console.error('parent not available'); + else { + if (!lvs[lv.studienplan_lehrveranstaltung_id_parent]._children) + lvs[lv.studienplan_lehrveranstaltung_id_parent]._children = []; + lvs[lv.studienplan_lehrveranstaltung_id_parent]._children.push(lv); } } - ] - }; - var table = new Tabulator(this.$refs["lvtable" + k.substr(0,1)], options); - } - this.lvs = result.data.retval; + res[k] = Object.values(lvs).filter(lv => !lv.studienplan_lehrveranstaltung_id_parent); + let current = res[k]; + let index = k.substr(0,1); + + const options = { + data: current, + dataTree: true, + dataTreeStartExpanded: true, //start with an expanded tree + dataTreeChildIndent: 15, + layout: "fitDataStretch", + columns: [ + {title: this.$p.t('ui', 'bezeichnung'), field: "bezeichnung"}, + {title: this.$p.t('lehre','lehrform'), field: "lehrform_kurzbz"}, + {title: "ECTS", field: "ects"}, + {title: this.$p.t('lehre','note'), field: "note", formatter:(cell, formatterParams, onRendered)=>cell.getValue() || "---"}, + {title: (index==1) ? this.$p.t('studierendenantrag','lv_nicht_zulassen') : this.$p.t('studierendenantrag','lv_wiederholen'), field: "antrag_zugelassen", formatter: (cell, formatterParams, onRendered) => { + let data = cell.getData(); + if(data._children || !data.zeugnis) + return ""; + let input = document.createElement('input'); + input.className = "form-check-input"; + input.type = "checkbox"; + input.role = "switch"; + input.checked = cell.getValue(); + input.addEventListener('input', () => { + lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen = input.checked; + cell.getRow().reformat(); + }); + if (this.disabled) { + input.disabled = true; + } + + let div = document.createElement('div'); + div.className = 'form-check form-switch'; + div.append(input); + + return div; + }}, + { + title: this.$p.t('global','anmerkung'), + field: "antrag_anmerkung", + headerSort:false, + titleFormatter:(cell, formatterParams, onRendered)=>{ + let link = document.createElement('a'); + link.addEventListener('click', (e) => { + e.preventDefault(); + }); + + link.href ="#"; + link.title = this.$p.t('studierendenantrag','anmerkung_tooltip'); + new bootstrap.Tooltip(link); + let tooltip = document.createElement('span'); + tooltip.innerHTML = this.$p.t('global','anmerkung') + " "; + tooltip.append(link); + + let icon = document.createElement('i'); + link.append(icon); + icon.className = "fa fa-info-circle"; + icon.setAttribute("aria-hidden", "true"); + icon.style.minWidth = '1em'; + + return tooltip; + + }, + formatter: (cell, formatterParams, onRendered) => { + if (this.disabled) { + return cell.getValue() || ""; + } + var data = cell.getData(); + if (lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen) + { + let input = document.createElement('input'); + input.className = "form-control"; + input.type = "text"; + input.value = cell.getValue() || ""; + input.addEventListener('input', () => { + lvs[data.studienplan_lehrveranstaltung_id].antrag_anmerkung = input.value; + }); + return input; + } + else + { + return ""; + } + } + } + ] + }; + var table = new Tabulator(this.$refs["lvtable" + k.substr(0,1)], options); + } + this.lvs = result.data.retval; + }); } } );