mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-19 21:19:29 +00:00
96 lines
2.8 KiB
JavaScript
96 lines
2.8 KiB
JavaScript
import PluginsPhrasen from '../../plugins/Phrasen.js';
|
|
import {setScrollbarWidth} from "../../helpers/CssVarCalcHelpers.js";
|
|
|
|
const app = Vue.createApp({
|
|
name: 'DocumentsApp',
|
|
data() {
|
|
return {
|
|
inscriptiontable: null,
|
|
inscriptiontableFilters: {},
|
|
studienerfolgsbestaetigungtable: null,
|
|
studienerfolgsbestaetigungtableFilters: {},
|
|
abschlussdokumentetable: null
|
|
};
|
|
},
|
|
computed: {
|
|
inscriptiontableFilter() {
|
|
const filter = [];
|
|
for (var k in this.inscriptiontableFilters)
|
|
if (this.inscriptiontableFilters[k])
|
|
filter.push({
|
|
field: k,
|
|
type: '=',
|
|
value: this.inscriptiontableFilters[k]
|
|
});
|
|
return filter;
|
|
},
|
|
inscriptiontableEmpty() {
|
|
// NOTE(chris): empty result on filter
|
|
if (this.inscriptiontableFilters.Stsem)
|
|
return this.$p.t('tools', 'studienbeitragFuerSSNochNichtBezahlt', {stsem: this.inscriptiontableFilters.Stsem});
|
|
if (this.inscriptiontableFilters.Stg)
|
|
return this.$p.t('tools', 'studienbeitragFuerStgNochNichtBezahlt', {stsem: this.inscriptiontableFilters.Stg});
|
|
|
|
return this.$p.t('tools', 'studienbeitragNochNichtBezahlt');
|
|
},
|
|
studienerfolgsbestaetigungtableFilter() {
|
|
const filter = [];
|
|
for (var k in this.studienerfolgsbestaetigungtableFilters)
|
|
if (this.studienerfolgsbestaetigungtableFilters[k])
|
|
filter.push({
|
|
field: k,
|
|
type: '=',
|
|
value: this.studienerfolgsbestaetigungtableFilters[k]
|
|
});
|
|
return filter;
|
|
}
|
|
},
|
|
methods: {
|
|
changeFilter(table, field, evt) {
|
|
this[table + 'Filters'][field] = evt.target.value;
|
|
this[table].clearFilter();
|
|
if (this[table + 'Filter'].length)
|
|
this[table].setFilter(this[table + 'Filter']);
|
|
}
|
|
},
|
|
mounted() {
|
|
this.inscriptiontable = new Tabulator(this.$refs.inscriptiontable, {
|
|
layout: 'fitDataStretch',
|
|
placeholder: this.$p.t('tools', 'studienbeitragNochNichtBezahlt')
|
|
});
|
|
this.studienerfolgsbestaetigungtable = new Tabulator(this.$refs.studienerfolgsbestaetigungtable, {
|
|
layout: 'fitDataStretch'
|
|
});
|
|
this.abschlussdokumentetable = new Tabulator(this.$refs.abschlussdokumentetable, {
|
|
layout: 'fitDataStretch',
|
|
placeholder: this.$p.t('tools', 'nochKeineAbschlussdokumenteVorhanden')
|
|
});
|
|
|
|
// NOTE(chris): empty result on filter
|
|
const div = Vue.h(
|
|
'div',
|
|
{
|
|
class: 'position-absolute top-0 left-0 w-100 h-100 d-flex justify-content-center align-items-center fw-bold text-muted'
|
|
},
|
|
[
|
|
this.inscriptiontableEmpty
|
|
]
|
|
);
|
|
this.inscriptiontable.on('dataSorted', (sorters, rows) => {
|
|
if (!rows.length) {
|
|
div.children = [this.inscriptiontableEmpty];
|
|
Vue.render(div, this.inscriptiontable.element.querySelector('.tabulator-tableholder'));
|
|
} else {
|
|
Vue.render(null, this.inscriptiontable.element.querySelector('.tabulator-tableholder'));
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
FhcApps.makeExtendable(app);
|
|
|
|
setScrollbarWidth();
|
|
|
|
app.use(PluginsPhrasen);
|
|
app.mount('#content');
|