feat(fontend,backend): Add createdBy and lastModifiedBy fields

This commit is contained in:
2025-04-19 09:04:52 +02:00
parent 9c1cefd4ed
commit 4e7a962a06
6 changed files with 41 additions and 10 deletions

View File

@@ -678,6 +678,8 @@ components:
- name - name
- formElements - formElements
- isTemplate - isTemplate
- createdBy
- lastModifiedBy
- createdAt - createdAt
- modifiedAt - modifiedAt
properties: properties:
@@ -692,6 +694,10 @@ components:
$ref: "#/components/schemas/FormElementDto" $ref: "#/components/schemas/FormElementDto"
isTemplate: isTemplate:
type: boolean type: boolean
createdBy:
type: string
lastModifiedBy:
type: string
createdAt: createdAt:
type: string type: string
format: date-time format: date-time
@@ -704,6 +710,8 @@ components:
- name - name
- formElements - formElements
- isTemplate - isTemplate
- createdBy
- lastModifiedBy
type: object type: object
properties: properties:
name: name:
@@ -715,6 +723,10 @@ components:
isTemplate: isTemplate:
type: boolean type: boolean
default: false default: false
createdBy:
type: string
lastModifiedBy:
type: string
PagedApplicationFormDto: PagedApplicationFormDto:
type: object type: object

View File

@@ -30,6 +30,12 @@ class ApplicationForm(
@Column(nullable = false) @Column(nullable = false)
var isTemplate: Boolean, var isTemplate: Boolean,
@Column(nullable = false)
var createdBy: String = "",
@Column(nullable = false)
var lastModifiedBy: String = "",
@CreatedDate @CreatedDate
@Column(nullable = false) @Column(nullable = false)
var createdAt: LocalDateTime? = null, var createdAt: LocalDateTime? = null,
@@ -37,6 +43,4 @@ class ApplicationForm(
@LastModifiedDate @LastModifiedDate
@Column(nullable = false) @Column(nullable = false)
var modifiedAt: LocalDateTime? = null var modifiedAt: LocalDateTime? = null
// TODO LastModifiedBy User einfügen
) )

View File

@@ -13,6 +13,8 @@ class ApplicationFormMapper(private val formElementMapper: FormElementMapper) {
name = applicationForm.name, name = applicationForm.name,
formElements = applicationForm.formElements.map { formElementMapper.toFormElementDto(it) }, formElements = applicationForm.formElements.map { formElementMapper.toFormElementDto(it) },
isTemplate = applicationForm.isTemplate, isTemplate = applicationForm.isTemplate,
createdBy = applicationForm.createdBy,
lastModifiedBy = applicationForm.lastModifiedBy,
createdAt = applicationForm.createdAt ?: LocalDateTime.now(), createdAt = applicationForm.createdAt ?: LocalDateTime.now(),
modifiedAt = applicationForm.modifiedAt ?: LocalDateTime.now() modifiedAt = applicationForm.modifiedAt ?: LocalDateTime.now()
) )
@@ -24,6 +26,8 @@ class ApplicationFormMapper(private val formElementMapper: FormElementMapper) {
name = applicationForm.name, name = applicationForm.name,
formElements = applicationForm.formElements.map { formElementMapper.toFormElement(it) }.toMutableList(), formElements = applicationForm.formElements.map { formElementMapper.toFormElement(it) }.toMutableList(),
isTemplate = applicationForm.isTemplate, isTemplate = applicationForm.isTemplate,
createdBy = applicationForm.createdBy,
lastModifiedBy = applicationForm.lastModifiedBy,
createdAt = applicationForm.createdAt, createdAt = applicationForm.createdAt,
modifiedAt = applicationForm.modifiedAt modifiedAt = applicationForm.modifiedAt
) )
@@ -32,7 +36,9 @@ class ApplicationFormMapper(private val formElementMapper: FormElementMapper) {
fun toApplicationForm(createApplicationFormDto: CreateApplicationFormDto): ApplicationForm { fun toApplicationForm(createApplicationFormDto: CreateApplicationFormDto): ApplicationForm {
val applicationForm = ApplicationForm( val applicationForm = ApplicationForm(
name = createApplicationFormDto.name, name = createApplicationFormDto.name,
isTemplate = createApplicationFormDto.isTemplate isTemplate = createApplicationFormDto.isTemplate,
createdBy = createApplicationFormDto.createdBy,
lastModifiedBy = createApplicationFormDto.lastModifiedBy
) )
applicationForm.formElements = createApplicationFormDto.formElements applicationForm.formElements = createApplicationFormDto.formElements
.map { formElementMapper.toFormElement(it, applicationForm) } .map { formElementMapper.toFormElement(it, applicationForm) }

View File

@@ -1,10 +1,12 @@
create table application_form create table application_form
( (
is_template boolean not null, is_template boolean not null,
created_at timestamp(6) not null, created_at timestamp(6) not null,
modified_at timestamp(6) not null, modified_at timestamp(6) not null,
id uuid not null, id uuid not null,
name varchar(255) not null, created_by varchar(255) not null,
last_modified_by varchar(255) not null,
name varchar(255) not null,
primary key (id) primary key (id)
); );

View File

@@ -46,6 +46,7 @@ definePageMeta({
const { getAllApplicationFormTemplates } = useApplicationFormTemplate() const { getAllApplicationFormTemplates } = useApplicationFormTemplate()
const { createApplicationForm } = useApplicationForm() const { createApplicationForm } = useApplicationForm()
const { validateFormElements, getHighestComplianceStatus } = useApplicationFormValidator() const { validateFormElements, getHighestComplianceStatus } = useApplicationFormValidator()
const { data: session } = await useSession(useFetch)
const { data } = await useAsyncData<PagedApplicationFormDto>(async () => { const { data } = await useAsyncData<PagedApplicationFormDto>(async () => {
return await getAllApplicationFormTemplates() return await getAllApplicationFormTemplates()
@@ -95,6 +96,9 @@ const ampelStatusEmoji = computed(() => {
async function onSubmit() { async function onSubmit() {
if (applicationFormTemplate.value) { if (applicationFormTemplate.value) {
applicationFormTemplate.value.createdBy = session.value?.user?.name ?? 'Unknown'
applicationFormTemplate.value.lastModifiedBy = session.value?.user?.name ?? 'Unknown'
await createApplicationForm(applicationFormTemplate.value) await createApplicationForm(applicationFormTemplate.value)
await navigateTo('/') await navigateTo('/')
} else { } else {

View File

@@ -31,9 +31,12 @@
#{{ index }} {{ applicationFormElem.name }} #{{ index }} {{ applicationFormElem.name }}
</p> </p>
<p class="text-(--ui-text-muted) text-sm"> <p class="text-(--ui-text-muted) text-sm">
Zuletzt bearbeitet: {{ formatDate(applicationFormElem.modifiedAt) }} Zuletzt bearbeitet von {{ applicationFormElem.lastModifiedBy }} am
{{ formatDate(applicationFormElem.modifiedAt) }}
</p>
<p class="text-(--ui-text-muted) text-sm">
Erstellt von {{ applicationFormElem.createdBy }} am {{ formatDate(applicationFormElem.createdAt) }}
</p> </p>
<p class="text-(--ui-text-muted) text-sm">Erstellt: {{ formatDate(applicationFormElem.createdAt) }}</p>
</div> </div>
<div> <div>
<UPageLinks :links="getLinksForApplicationForm(applicationFormElem)" /> <UPageLinks :links="getLinksForApplicationForm(applicationFormElem)" />