-
-
-
-
+
+
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
{{$p.t('ui','bearbeiten')}}
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
`,
};
diff --git a/public/js/components/Cis/Profil/MitarbeiterViewProfil.js b/public/js/components/Cis/Profil/MitarbeiterViewProfil.js
index 29938bcf1..b062b7708 100644
--- a/public/js/components/Cis/Profil/MitarbeiterViewProfil.js
+++ b/public/js/components/Cis/Profil/MitarbeiterViewProfil.js
@@ -1,4 +1,4 @@
-import { CoreFilterCmpt } from "../../../components/filter/Filter.js";
+import {CoreFilterCmpt} from "../../../components/filter/Filter.js";
import Mailverteiler from "./ProfilComponents/Mailverteiler.js";
import QuickLinks from "./ProfilComponents/QuickLinks.js";
import RoleInformation from "./ProfilComponents/RoleInformation.js";
@@ -6,280 +6,219 @@ import ProfilEmails from "./ProfilComponents/ProfilEmails.js";
import ProfilInformation from "./ProfilComponents/ProfilInformation.js";
export default {
- components: {
- CoreFilterCmpt,
- Mailverteiler,
- QuickLinks,
- RoleInformation,
- ProfilEmails,
- ProfilInformation,
- },
- inject: ["collapseFunction"],
- data() {
- return {
- collapseIconFunktionen: true,
+ components: {
+ CoreFilterCmpt,
+ Mailverteiler,
+ QuickLinks,
+ RoleInformation,
+ ProfilEmails,
+ ProfilInformation,
+ },
+ inject: ["collapseFunction"],
+ data() {
+ return {
+ collapseIconFunktionen: true,
- funktionen_table_options: {
- height: 300,
- layout: "fitColumns",
- responsiveLayout: "collapse",
- responsiveLayoutCollapseUseFormatters: false,
- responsiveLayoutCollapseFormatter: Vue.$collapseFormatter,
- data: [
- {
- Bezeichnung: "",
- Organisationseinheit: "",
- Gültig_von: "",
- Gültig_bis: "",
- Wochenstunden: "",
- },
- ],
- columns: [
- //? option when wanting to hide the collapsed list
+ funktionen_table_options: {
+ height: 300,
+ layout: "fitColumns",
+ responsiveLayout: "collapse",
+ responsiveLayoutCollapseUseFormatters: false,
+ responsiveLayoutCollapseFormatter: Vue.$collapseFormatter,
+ data: [
+ {
+ Bezeichnung: "",
+ Organisationseinheit: "",
+ Gültig_von: "",
+ Gültig_bis: "",
+ Wochenstunden: "",
+ },
+ ],
+ columns: [
+ //? option when wanting to hide the collapsed list
- {
- title:
- "
",
- field: "collapse",
- headerSort: false,
- headerFilter: false,
- formatter: "responsiveCollapse",
- maxWidth: 40,
- headerClick: this.collapseFunction,
- },
- {
- title: "Bezeichnung",
- field: "Bezeichnung",
- headerFilter: true,
- minWidth: 200,
- },
- {
- title: "Organisationseinheit",
- field: "Organisationseinheit",
- headerFilter: true,
- minWidth: 200,
- },
- {
- title: "Gültig_von",
- field: "Gültig_von",
- headerFilter: true,
- resizable: true,
- minWidth: 200,
- },
- {
- title: "Gültig_bis",
- field: "Gültig_bis",
- headerFilter: true,
- resizable: true,
- minWidth: 200,
- },
- {
- title: "Wochenstunden",
- field: "Wochenstunden",
- headerFilter: true,
- minWidth: 200,
- },
- ],
- },
- };
- },
+ {
+ title:
+ "
",
+ field: "collapse",
+ headerSort: false,
+ headerFilter: false,
+ formatter: "responsiveCollapse",
+ maxWidth: 40,
+ headerClick: this.collapseFunction,
+ },
+ {
+ title: "Bezeichnung",
+ field: "Bezeichnung",
+ headerFilter: true,
+ minWidth: 200,
+ },
+ {
+ title: "Organisationseinheit",
+ field: "Organisationseinheit",
+ headerFilter: true,
+ minWidth: 200,
+ },
+ {
+ title: "Gültig_von",
+ field: "Gültig_von",
+ headerFilter: true,
+ resizable: true,
+ minWidth: 200,
+ },
+ {
+ title: "Gültig_bis",
+ field: "Gültig_bis",
+ headerFilter: true,
+ resizable: true,
+ minWidth: 200,
+ },
+ {
+ title: "Wochenstunden",
+ field: "Wochenstunden",
+ headerFilter: true,
+ minWidth: 200,
+ },
+ ],
+ },
+ };
+ },
- //? this is the prop passed to the dynamic component with the custom data of the view
- props: ["data"],
- methods: {
- funktionenTableBuilt: function () {
- this.$refs.funktionenTable.tabulator.setData(this.data.funktionen);
- },
- },
+ //? this is the prop passed to the dynamic component with the custom data of the view
+ props: ["data"],
+ methods: {
+ funktionenTableBuilt: function () {
+ this.$refs.funktionenTable.tabulator.setData(this.data.funktionen);
+ },
+ },
- computed: {
- editable() {
- return this.data?.editAllowed ?? false;
- },
-
- personEmails() {
- return this.data?.emails ? this.data.emails : [];
- },
+ computed: {
+ editable() {
+ return this.data?.editAllowed ?? false;
+ },
- profilInformation() {
- if (!this.data) {
- return {};
- }
+ personEmails() {
+ return this.data?.emails ? this.data.emails : [];
+ },
- return {
- Vorname: this.data.vorname,
- Nachname: this.data.nachname,
- Username: this.data.username,
- Anrede: this.data.anrede,
- Titel: this.data.titel,
- Postnomen: this.data.postnomen,
- foto_sperre: this.data.foto_sperre,
- foto: this.data.foto,
- };
- },
+ profilInformation() {
+ if (!this.data) {
+ return {};
+ }
- roleInformation() {
- if (!this.data) {
- return {};
- }
+ return {
+ Vorname: this.data.vorname,
+ Nachname: this.data.nachname,
+ Username: this.data.username,
+ Anrede: this.data.anrede,
+ Titel: this.data.titel,
+ Postnomen: this.data.postnomen,
+ foto_sperre: this.data.foto_sperre,
+ foto: this.data.foto,
+ };
+ },
- return {
- [`${this.$p.t('profil', 'Geburtsdatum')}`]: this.data.gebdatum,
- [`${this.$p.t('profil', 'Geburtsort')}`]: this.data.gebort,
- [`${this.$p.t('profil', 'Kurzzeichen')}`]: this.data.kurzbz,
- [`${this.$p.t('profil', 'Telefon')}`]:
- (this.data.standort_telefon ? this.data.standort_telefon + " " + this.data.telefonklappe : this.data.telefonklappe),
- [`${this.$p.t('profil', 'Büro')}`]: this.data.ort_kurzbz,
- };
- },
- },
+ roleInformation() {
+ if (!this.data) {
+ return {};
+ }
- template: /*html*/ `
+ return {
+ [`${this.$p.t('profil', 'Geburtsdatum')}`]: this.data.gebdatum,
+ [`${this.$p.t('profil', 'Geburtsort')}`]: this.data.gebort,
+ [`${this.$p.t('profil', 'Kurzzeichen')}`]: this.data.kurzbz,
+ [`${this.$p.t('profil', 'Telefon')}`]:
+ (this.data.standort_telefon ? this.data.standort_telefon + " " + this.data.telefonklappe : this.data.telefonklappe),
+ [`${this.$p.t('profil', 'Büro')}`]: this.data.ort_kurzbz,
+ };
+ },
+ },
-
+ template: /*html*/ `
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- `,
+ -->
+
+
+
+
+
+
+
+`,
};
diff --git a/public/js/components/Cis/Profil/StudentViewProfil.js b/public/js/components/Cis/Profil/StudentViewProfil.js
index 335b606a1..fec4e3664 100644
--- a/public/js/components/Cis/Profil/StudentViewProfil.js
+++ b/public/js/components/Cis/Profil/StudentViewProfil.js
@@ -5,185 +5,142 @@ import RoleInformation from "./ProfilComponents/RoleInformation.js";
import ProfilInformation from "./ProfilComponents/ProfilInformation.js";
export default {
- data() {
- return {};
- },
- components: {
- QuickLinks,
- Mailverteiler,
- ProfilEmails,
- RoleInformation,
- ProfilInformation,
- },
+ data() {
+ return {};
+ },
+ components: {
+ QuickLinks,
+ Mailverteiler,
+ ProfilEmails,
+ RoleInformation,
+ ProfilInformation,
+ },
- props: ["data"],
- methods: {},
+ props: ["data"],
+ methods: {},
- computed: {
- editable() {
- return this.data?.editAllowed ?? false;
- },
- profilInformation() {
- if (!this.data) {
- return {};
- }
+ computed: {
+ editable() {
+ return this.data?.editAllowed ?? false;
+ },
+ profilInformation() {
+ if (!this.data) {
+ return {};
+ }
- return {
- Vorname: this.data.vorname,
- Nachname: this.data.nachname,
- Username: this.data.username,
- Anrede: this.data.anrede,
- Titel: this.data.titel,
- Postnomen: this.data.postnomen,
- foto_sperre: this.data.foto_sperre,
- foto: this.data.foto,
- };
- },
+ return {
+ Vorname: this.data.vorname,
+ Nachname: this.data.nachname,
+ Username: this.data.username,
+ Anrede: this.data.anrede,
+ Titel: this.data.titel,
+ Postnomen: this.data.postnomen,
+ foto_sperre: this.data.foto_sperre,
+ foto: this.data.foto,
+ };
+ },
- personEmails() {
- return this.data?.emails ? this.data.emails : [];
- },
+ personEmails() {
+ return this.data?.emails ? this.data.emails : [];
+ },
- roleInformation() {
- if (!this.data) {
- return {};
- }
+ roleInformation() {
+ if (!this.data) {
+ return {};
+ }
- return {
- Geburtsdatum: this.data.gebdatum,
- Geburtsort: this.data.gebort,
- Personenkennzeichen: this.data.personenkennzeichen,
- Studiengang: this.data.studiengang,
- Semester: this.data.semester,
- Verband: this.data.verband,
- Gruppe: this.data.gruppe.trim(),
- };
- },
- },
+ return {
+ Geburtsdatum: this.data.gebdatum,
+ Geburtsort: this.data.gebort,
+ Personenkennzeichen: this.data.personenkennzeichen,
+ Studiengang: this.data.studiengang,
+ Semester: this.data.semester,
+ Verband: this.data.verband,
+ Gruppe: this.data.gruppe.trim(),
+ };
+ },
+ },
- mounted() {},
+ mounted() {
+ },
- template: /*html*/ `
+ template: /*html*/ `
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
`,
};
diff --git a/public/js/components/Dashboard/Dashboard.js b/public/js/components/Dashboard/Dashboard.js
index 6fb7dfe48..b1219cad6 100644
--- a/public/js/components/Dashboard/Dashboard.js
+++ b/public/js/components/Dashboard/Dashboard.js
@@ -7,22 +7,32 @@ export default {
DashboardSection,
DashboardWidgetPicker
},
- props: [
- "dashboard",
- "viewDataString"
- ],
+ props: {
+ dashboard: {
+ type: String,
+ required: true,
+ default: 'CIS'
+ },
+ viewData: {
+ type: Object,
+ required: true,
+ default: () => ({name: '', uid: ''}),
+ validator(value) {
+ return value && value.name && value.uid
+ }
+ }
+ },
data() {
return {
sections: [],
widgets: null,
- viewData: JSON.parse(this.viewDataString ?? '{}'),
- editMode: false
+ editMode: false,
+ viewDataInternal: this.viewData
}
},
provide() {
return {
editMode: Vue.computed(()=>this.editMode),
- viewData: Vue.computed(()=>Vue.reactive(this.viewData)),
}
},
computed: {
@@ -151,10 +161,16 @@ export default {
}
}).catch(err => console.error('ERROR:', err));
},
+ async beforeMount() {
+ if(!this.viewData.name || !this.viewData.uid) {
+ const res = await this.$fhcApi.factory.dashboard.getViewData()
+ this.viewDataInternal = res.data
+ }
+ },
template: `
- {{ $p.t('global/personalGreeting', [ viewData?.name ]) }}
+ {{ $p.t('global/personalGreeting', [ viewDataInternal?.name ]) }}