mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 08:52:21 +00:00
show updated/inserted by/at on every abgabetermin in mitarbeiter detail view;
This commit is contained in:
@@ -210,7 +210,15 @@ class Projektarbeit_model extends DB_Model
|
||||
campus.tbl_paabgabe.insertvon,
|
||||
campus.tbl_paabgabe.updatevon,
|
||||
campus.tbl_paabgabe.insertamum,
|
||||
campus.tbl_paabgabe.updateamum
|
||||
campus.tbl_paabgabe.updateamum,
|
||||
(SELECT p.vorname || ' ' || p.nachname
|
||||
FROM public.tbl_benutzer b
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
WHERE b.uid = campus.tbl_paabgabe.insertvon) AS insertvon_fullname,
|
||||
(SELECT p.vorname || ' ' || p.nachname
|
||||
FROM public.tbl_benutzer b
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
WHERE b.uid = campus.tbl_paabgabe.updatevon) AS updatevon_fullname
|
||||
FROM campus.tbl_paabgabe JOIN campus.tbl_paabgabetyp USING(paabgabetyp_kurzbz)
|
||||
WHERE campus.tbl_paabgabe.projektarbeit_id IN ?
|
||||
ORDER BY campus.tbl_paabgabe.datum";
|
||||
|
||||
@@ -2,7 +2,8 @@ import BsModal from '../../Bootstrap/Modal.js';
|
||||
import VueDatePicker from '../../vueDatepicker.js.php';
|
||||
import ApiAbgabe from '../../../api/factory/abgabe.js'
|
||||
import { getDateStyleClass } from "./getDateStyleClass.js";
|
||||
import { compareISODateValues, formatISODate, getViennaTodayISO } from "./dateUtils.js";
|
||||
import {compareISODateValues, formatDateTime, formatISODate, getViennaTodayISO} from "./dateUtils.js";
|
||||
|
||||
|
||||
export const AbgabeMitarbeiterDetail = {
|
||||
name: "AbgabeMitarbeiterDetail",
|
||||
@@ -77,6 +78,19 @@ export const AbgabeMitarbeiterDetail = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getSavedTerminInfoString(termin) {
|
||||
const isUpdate = termin.updateamum != null;
|
||||
|
||||
const fullname = isUpdate
|
||||
? termin.updatevon_fullname
|
||||
: termin.insertvon_fullname;
|
||||
|
||||
const datetime = isUpdate
|
||||
? termin.updateamum
|
||||
: termin.insertamum;
|
||||
|
||||
return this.$p.t('ui/savedAtByV3', [formatDateTime(datetime), fullname])
|
||||
},
|
||||
terminIsInvalid(termin) {
|
||||
return termin.note?.positiv == false && !termin.beurteilungsnotiz
|
||||
},
|
||||
@@ -905,7 +919,7 @@ export const AbgabeMitarbeiterDetail = {
|
||||
<div class="col-12 col-md-3 fw-bold align-content-center">
|
||||
{{ $capitalize( $p.t('abgabetool/c4actions') )}}
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="col-12 col-md-5">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<button v-if="termin.allowedToSave && !terminIsInvalid(termin)" style="max-height: 40px;" class="btn btn-primary border-0" @click="saveTermin(termin)">
|
||||
@@ -933,8 +947,8 @@ export const AbgabeMitarbeiterDetail = {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-3 align-content-center text-end text-muted small">
|
||||
Your grey text here
|
||||
<div class="col-12 col-md-4 align-content-center text-end text-muted small">
|
||||
{{getSavedTerminInfoString(termin)}}
|
||||
</div>
|
||||
</div>
|
||||
</AccordionTab>
|
||||
|
||||
@@ -11,6 +11,13 @@ export function formatISODate(dateParam) {
|
||||
return date.isValid ? date.toFormat('dd.MM.yyyy') : '';
|
||||
}
|
||||
|
||||
export function formatDateTime(dateParam) {
|
||||
if (!dateParam) return '';
|
||||
|
||||
const date = luxon.DateTime.fromFormat(dateParam, "yyyy-MM-dd HH:mm:ss");
|
||||
return date.isValid ? date.toFormat("dd.MM.yyyy HH:mm") : '';
|
||||
}
|
||||
|
||||
export function toViennaDate(dateParam) {
|
||||
if (!dateParam) return null;
|
||||
|
||||
|
||||
@@ -2134,6 +2134,26 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'savedAtByV3',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Gespeichert am {0} von {1}',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Saved on {0} by {1}',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
@@ -57463,7 +57483,7 @@ I have been informed that I am under no obligation to consent to the transmissio
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Saved on {date} von {name}',
|
||||
'text' => 'Saved on {date} by {name}',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user