diff --git a/application/controllers/api/frontend/v1/vertraege/Vertraege.php b/application/controllers/api/frontend/v1/vertraege/Vertraege.php
index c426d5637..c0683e999 100644
--- a/application/controllers/api/frontend/v1/vertraege/Vertraege.php
+++ b/application/controllers/api/frontend/v1/vertraege/Vertraege.php
@@ -238,7 +238,7 @@ class Vertraege extends FHCAPI_Controller
}
}
$this->db->trans_complete();
- $this->terminateWithSuccess(true);
+ $this->terminateWithSuccess($vertrag_id);
}
public function updateContract()
@@ -355,7 +355,7 @@ class Vertraege extends FHCAPI_Controller
}
$this->db->trans_complete();
- $this->terminateWithSuccess(true);
+ $this->terminateWithSuccess($vertrag_id);
}
public function loadContract($vertrag_id)
diff --git a/application/views/Vertragsverwaltung.php b/application/views/Vertragsverwaltung.php
index 7738a8d4a..8fa6dff27 100644
--- a/application/views/Vertragsverwaltung.php
+++ b/application/views/Vertragsverwaltung.php
@@ -8,7 +8,7 @@ $includesArray = array(
'primevue3' => true,
'filtercomponent' => true,
'navigationcomponent' => true,
- 'tabulator5' => true,
+ 'tabulator6' => true,
'tinymce5' => true,
'phrases' => array(
'global',
diff --git a/public/js/components/Vertraege/List/Details.js b/public/js/components/Vertraege/List/Details.js
index a8f50743a..c33407109 100644
--- a/public/js/components/Vertraege/List/Details.js
+++ b/public/js/components/Vertraege/List/Details.js
@@ -111,8 +111,8 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '200',
- selectableRangeMode: 'click',
- selectable: true,
+ selectableRowsRangeMode: 'click',
+ selectableRows: true,
persistenceID: 'core-contracts-details'
},
tabulatorEvents: [
diff --git a/public/js/components/Vertraege/List/Status.js b/public/js/components/Vertraege/List/Status.js
index 7427ac7af..ff729cfe7 100644
--- a/public/js/components/Vertraege/List/Status.js
+++ b/public/js/components/Vertraege/List/Status.js
@@ -47,6 +47,7 @@ export default {
this.endpoint.getStatiOfContract(this.person_id, this.vertrag_id)
),
ajaxResponse: (url, params, response) => response.data,
+ persistenceID: 'core-contracts-status',
columns: [
{title: "Status", field: "bezeichnung"},
{
@@ -148,9 +149,8 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '200',
- selectableRangeMode: 'click',
- selectable: true,
- persistenceID: 'core-contracts-status'
+ selectableRowsRangeMode: 'click',
+ selectableRows: true,
},
tabulatorEvents: [
{
diff --git a/public/js/components/Vertraege/List/Unassigned.js b/public/js/components/Vertraege/List/Unassigned.js
index 4b0d20bb8..1ea7d9b3b 100644
--- a/public/js/components/Vertraege/List/Unassigned.js
+++ b/public/js/components/Vertraege/List/Unassigned.js
@@ -58,8 +58,8 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '200',
- selectableRangeMode: 'click',
- selectable: true,
+ selectableRowsRangeMode: 'click',
+ selectableRows: true,
persistenceID: 'core-contracts-unassigned'
},
tabulatorEvents: [
diff --git a/public/js/components/Vertraege/MitarbeiterHeader.js b/public/js/components/Vertraege/MitarbeiterHeader.js
index 31f9fe96d..9417942c8 100644
--- a/public/js/components/Vertraege/MitarbeiterHeader.js
+++ b/public/js/components/Vertraege/MitarbeiterHeader.js
@@ -65,8 +65,8 @@ export default {
layout: 'fitColumns',
persistenceID: 'core-mitarbeiter_20250901-2',
footerElement: '
∑ /
',
- selectableRangeMode: 'click',
- selectable: true,
+ selectableRowsRangeMode: 'click',
+ selectableRows: true,
},
tabulatorEvents: [
{
diff --git a/public/js/components/Vertraege/Vertraege.js b/public/js/components/Vertraege/Vertraege.js
index 2b9531a07..5868cc540 100644
--- a/public/js/components/Vertraege/Vertraege.js
+++ b/public/js/components/Vertraege/Vertraege.js
@@ -132,8 +132,9 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '250',
- selectableRangeMode: 'click',
- selectable: true,
+ selectableRowsRangeMode: 'click',
+ selectableRows: true,
+ index: "vertrag_id",
persistence: {
sort: true,
page: true,
@@ -149,38 +150,30 @@ export default {
await this.$p.loadCategory(['ui', 'global', 'vertrag']);
- let cm = this.$refs.table.tabulator.columnManager;
+ const setHeader = (field, text) => {
+ const col = this.$refs.table.tabulator.getColumn(field);
+ if (!col) return;
- cm.getColumnByField('bezeichnung').component.updateDefinition({
- title: this.$p.t('ui', 'bezeichnung')
- });
- cm.getColumnByField('betrag').component.updateDefinition({
- title: this.$p.t('ui', 'betrag')
- });
- cm.getColumnByField('status').component.updateDefinition({
- title: this.$p.t('global', 'status')
- });
- cm.getColumnByField('vertragstyp_bezeichnung').component.updateDefinition({
- title: this.$p.t('vertrag', 'vertragstyp')
- });
- cm.getColumnByField('vertragsdatum').component.updateDefinition({
- title: this.$p.t('vertrag', 'vertragsdatum')
- });
- cm.getColumnByField('vertragsstunden').component.updateDefinition({
- title: this.$p.t('vertrag', 'vertragsstunden')
- });
- cm.getColumnByField('vertragsstunden_studiensemester_kurzbz').component.updateDefinition({
- title: this.$p.t('vertrag', 'vertragsstunden_studiensemester')
- });
- cm.getColumnByField('vertrag_id').component.updateDefinition({
- title: this.$p.t('ui', 'vertrag_id')
- });
- cm.getColumnByField('anmerkung').component.updateDefinition({
- title: this.$p.t('global', 'anmerkung')
- });
- cm.getColumnByField('isabgerechnet').component.updateDefinition({
- title: this.$p.t('vertrag', 'abgerechnet')
- });
+ const el = col.getElement();
+ if (!el || !el.querySelector) return;
+
+ const titleEl = el.querySelector('.tabulator-col-title');
+ if (titleEl) {
+ titleEl.textContent = text;
+ }
+ };
+
+ setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
+ setHeader('betrag', this.$p.t('ui', 'betrag'));
+ setHeader('status', this.$p.t('global', 'status'));
+ setHeader('vertragstyp_bezeichnung', this.$p.t('vertrag', 'vertragstyp'));
+ setHeader('vertragsdatum', this.$p.t('vertrag', 'vertragsdatum'));
+ setHeader('vertragsstunden', this.$p.t('vertrag', 'vertragsstunden'));
+ setHeader('vertragsstunden_studiensemester_kurzbz', this.$p.t('vertrag', 'vertragsstunden_studiensemester'));
+ setHeader('vertrag_id', this.$p.t('ui', 'vertrag_id'));
+ setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
+ setHeader('isabgerechnet', this.$p.t('vertrag', 'abgerechnet'));
+ setHeader('actions', this.$p.t('global', 'aktionen'));
/* cm.getColumnByField('actions').component.updateDefinition({
title: this.$p.t('global', 'aktionen')
});*/
@@ -265,15 +258,42 @@ export default {
return this.$refs.contractData
.call(this.endpoint.addNewContract(dataToSend))
.then(response => {
+ //get new ID of request to focus the new entry
+ let vertrag_id = response.data;
+
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.contractModal.hide();
this.resetModal();
- //this.$refs.contractdetails.reload();
+ this.$refs.contractdetails.reload();
this.$refs.unassignedLehrauftraege.reloadUnassigned();
+
this.reload();
+ //TODO(Manu) Finish Selection of current dataset
+/* this.reload().then(() => {
+ this.selectRow(vertrag_id);
+ })*/
+
+
})
.catch(this.$fhcAlert.handleSystemError);
},
+/* async selectRow(vertrag_id){
+ console.log("in selectRow " + vertrag_id);
+ //if (!this.table) return;
+
+ if (!this.$refs.table) return;
+
+ //this.table.selectRow(this.$refs.table.tabulator.getRows()[0]);
+
+ this.$refs.table.tabulator.selectRow(vertrag_id);
+ // this.$refs.table.tabulator.selectRow("visible");
+ console.log("Vertrag_id" + vertrag_id);
+
+ //console.log(this.$refs.table.tabulator.getRow(vertrag_id));
+ //this.table.selectRow(vertrag_id);
+
+ // this.$refs.table.selectRow(vertrag_id);
+ },*/
updateContract(vertrag_id) {
this.$refs.unassignedLehrauftraege.emitSaveEvent();
@@ -287,11 +307,20 @@ export default {
.call(this.endpoint.updateContract(dataToSend))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
+ //TODO(Manu) get Id from dataToSend
+ let vertrag_id = response.data;
+ console.log(vertrag_id);
this.$refs.contractModal.hide();
this.resetModal();
this.$refs.unassignedLehrauftraege.reloadUnassigned();
this.$refs.contractdetails.reload();
this.reload();
+ //TODO(Manu) Finish Selection of current dataset
+ /* this.reload().then(() => {
+ this.selectRow(vertrag_id);
+ })*/
+
+ //this.selectRow(vertrag_id);
})
.catch(this.$fhcAlert.handleSystemError);
},
@@ -331,7 +360,7 @@ export default {
this.$refs.contractstati.closeModal();
this.$refs.contractstati.reload();
- this.reload();
+ //this.reload(); //focus get lost with reload
})
.catch(this.$fhcAlert.handleSystemError);
},
@@ -372,7 +401,7 @@ export default {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.contractstati.closeModal();
this.$refs.contractstati.reload();
- this.reload();
+ //this.reload(); //focus gets lost with reload
})
.catch(this.$fhcAlert.handleSystemError);
},
diff --git a/public/js/components/Vertraege/Vertragsverwaltung.js b/public/js/components/Vertraege/Vertragsverwaltung.js
index d1f209527..754161d02 100644
--- a/public/js/components/Vertraege/Vertragsverwaltung.js
+++ b/public/js/components/Vertraege/Vertragsverwaltung.js
@@ -65,7 +65,7 @@ export default {
@redirectToLeitung="handleSelection"
>
{{mitarbeiter_uid}}
- pID
+ persID
{{person_id}}