diff --git a/public/js/components/DetailHeader/DetailHeader.js b/public/js/components/DetailHeader/DetailHeader.js
index f0db9fe5d..3e7187d27 100644
--- a/public/js/components/DetailHeader/DetailHeader.js
+++ b/public/js/components/DetailHeader/DetailHeader.js
@@ -55,9 +55,9 @@ export default {
});
}
- if(this.headerData){
+/* if (this.headerData && this.headerData.length) { //bereits im watcher
this.getSemesterStati(this.headerData[0].prestudent_id);
- }
+ }*/
},
watch: {
person_id: {
@@ -86,167 +86,176 @@ export default {
},
deep: true,
},
+ headerData: {
+ handler(newVal) {
+ if (this.typeHeader === 'student' && newVal?.length) {
+ this.getSemesterStati(newVal[0].prestudent_id);
+ }
+ },
+ immediate: true
+ },
},
- data(){
- return{
- headerDataMa: {},
- departmentData: {},
- leitungData: {},
- noCurrentStatus: false
- };
- },
- methods: {
- getHeader(person_id) {
- return this.$api
- .call(ApiDetailHeader.getHeader(person_id))
- .then(result => {
- this.headerDataMa = result.data;
+data(){
+return{
+ headerDataMa: {},
+ departmentData: {},
+ leitungData: {},
+ noCurrentStatus: false
+};
+},
+methods: {
+getHeader(person_id) {
+ return this.$api
+ .call(ApiDetailHeader.getHeader(person_id))
+ .then(result => {
+ this.headerDataMa = result.data;
- })
- .catch(this.$fhcAlert.handleSystemError);
- },
- loadDepartmentData(mitarbeiter_uid) {
- return this.$api
- .call(ApiDetailHeader.getPersonAbteilung(mitarbeiter_uid))
- .then(result => {
- this.departmentData = result.data;
- })
- .catch(this.$fhcAlert.handleSystemError);
- },
- getLeitungOrg(oekurzbz){
- return this.$api
- .call(ApiDetailHeader.getLeitungOrg(oekurzbz))
- .then(result => {
- this.leitungData = result.data;
- })
- .catch(this.$fhcAlert.handleSystemError);
- },
- redirectToLeitung(){
- this.$emit('redirectToLeitung', {
- person_id: this.leitungData.person_id});
- },
- getFotoSrc(foto) {
- if(foto === null) {
- return FHC_JS_DATA_STORAGE_OBJECT.app_root + 'skin/images/profilbild_dummy.jpg';
- } else {
- return 'data:image/jpeg;base64,' + foto;
- }
- },
- getSemesterStati(prestudent_id){
- return this.$api
- .call(ApiDetailHeader.getSemesterStati(prestudent_id))
- .then(result => {
- this.semesterStati = result.data;
- })
- .catch(this.$fhcAlert.handleSystemError);
- }
- },
- template: `
-
- `
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+},
+loadDepartmentData(mitarbeiter_uid) {
+ return this.$api
+ .call(ApiDetailHeader.getPersonAbteilung(mitarbeiter_uid))
+ .then(result => {
+ this.departmentData = result.data;
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+},
+getLeitungOrg(oekurzbz){
+ return this.$api
+ .call(ApiDetailHeader.getLeitungOrg(oekurzbz))
+ .then(result => {
+ this.leitungData = result.data;
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+},
+redirectToLeitung(){
+ this.$emit('redirectToLeitung', {
+ person_id: this.leitungData.person_id});
+},
+getFotoSrc(foto) {
+ if(foto === null) {
+ return FHC_JS_DATA_STORAGE_OBJECT.app_root + 'skin/images/profilbild_dummy.jpg';
+ } else {
+ return 'data:image/jpeg;base64,' + foto;
+ }
+},
+getSemesterStati(prestudent_id){
+ return this.$api
+ .call(ApiDetailHeader.getSemesterStati(prestudent_id))
+ .then(result => {
+ this.semesterStati = result.data;
+ //console.log("getSemesterStati loaded for prestudent_id " + prestudent_id);
+ })
+ .catch(this.$fhcAlert.handleSystemError);
+}
+},
+template: `
+
+`
}
diff --git a/public/js/components/Stv/Studentenverwaltung.js b/public/js/components/Stv/Studentenverwaltung.js
index 52b4b9d07..e62ccfe7d 100644
--- a/public/js/components/Stv/Studentenverwaltung.js
+++ b/public/js/components/Stv/Studentenverwaltung.js
@@ -422,12 +422,13 @@ export default {
this.$refs.searchbar.abort();
this.$refs.searchbar.hideresult();
},
- handleReloadStudent(students){
- //TODO(Manu) check with Harald
-
+ handleReloadStudent_DEPR(students){
+ // @reload-students="handleReloadStudent"
+ //TODO(Manu) delete
this.$refs.details.reload(); //reload simply without updateUrl
//this.selected = students;
+ //analoge to url_studiensemester_kurzbz
/* this.$refs.stvList.updateUrl(
ApiStv.students.uid(students[0].uid,'CURRENT_SEMESTER'),
true
@@ -644,7 +645,7 @@ export default {
-
+
diff --git a/public/js/components/Stv/Studentenverwaltung/Details.js b/public/js/components/Stv/Studentenverwaltung/Details.js
index 519b0b1b5..95d791ef9 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details.js
@@ -2,6 +2,7 @@ import FhcTabs from "../../Tabs.js";
import FhcHeader from "../../DetailHeader/DetailHeader.js";
import ApiStvApp from '../../../api/factory/stv/app.js';
+import ApiStudent from '../../../api/factory/stv/students.js';
// TODO(chris): alt & title
// TODO(chris): phrasen
@@ -20,15 +21,13 @@ export default {
data() {
return {
configStudent: {},
- configStudents: {}
+ configStudents: {},
+ localStudent: null
};
},
props: {
students: Array
},
- emits: [
- 'reload-students:students'
- ],
computed: {
appRoot() {
return FHC_JS_DATA_STORAGE_OBJECT.app_root;
@@ -48,27 +47,29 @@ export default {
}
return Object.fromEntries(Object.entries(this.configStudents).filter(([ , value ]) => !value.showOnlyWithUid && !value.showOnlyWithUid));
},
-/* studiensemester(){
- if(this.students)
- return this.students.query_studiensemester_kurzbz;
- else
- return null;
- //return this.students?[0].query_studiensemester_kurzbz || null;
- },*/
+ //for reloading component if data changes
+ headerKey() {
+ return this.students?.[0]?.uid || this.localStudent?.[0]?.uid || "empty";
+ }
},
watch: {
'$p.user_language.value'(n, o) {
if (n !== o && o !== undefined)
this.loadConfig();
},
+ //ohne zusätzlichen Watcher reload header und details
currentSemester(newVal) {
if (
this.students &&
this.students.length > 0 &&
newVal !== this.students[0].query_studiensemester_kurzbz
) {
- this.$emit('reload-students', this.students);
+ console.log("studiensemester_kurzbz " + this.students[0].query_studiensemester_kurzbz + " vs " + newVal);
+ this.reloadDataStudent();
}
+ },
+ headerKey(newVal){
+ this.reloadDataStudent();
}
},
@@ -91,10 +92,31 @@ export default {
if (this.$refs.tabs?.$refs?.current?.reload)
this.$refs.tabs.$refs.current.reload();
},
+ reloadDataStudent(){
+ //TODO(check)
+ this.localStudent = null;
+ const studentArr = this.students;
+
+ if (!studentArr || !studentArr.length) {
+ console.log("no data");
+ return;
+ }
+
+ console.log("uid " + studentArr[0].uid);
+
+ this.$api
+ .call(ApiStudent.uid(studentArr[0].uid, this.currentSemester))
+ .then(result => {
+ this.localStudent = result.data;
+ });
+ }
},
created() {
this.loadConfig();
},
+ /* //TODO(remove)
+ * {{headerKey}} {{localStudent?.[0]?.uid}}
{{ students?.[0]?.uid }}
+ * */
template: `
@@ -102,7 +124,8 @@ export default {
@@ -110,7 +133,7 @@ export default {
v-if="students.length == 1"
ref="tabs"
:useprimevue="true"
- :modelValue="students[0]"
+ :modelValue="localStudent[0] || students[0]"
:config="config"
:default="$route.params.tab"
style="flex: 1 1 0%; height: 0%"