diff --git a/frontend/components/EntityTable.vue b/frontend/components/EntityTable.vue
index 5dfc78b..b530da7 100644
--- a/frontend/components/EntityTable.vue
+++ b/frontend/components/EntityTable.vue
@@ -75,6 +75,11 @@
return `${stringValue.substring(0, maxLength)}...`
}
+ const getColumnDisplayValue = (column, row) => {
+ const value = row[column.key]
+ if (column.displayFunction) return column.displayFunction(value, row)
+ return value
+ }
const handleSortChange = (value) => {
const nextSort = Array.isArray(value) ? value[0] : undefined
@@ -148,9 +153,9 @@
v-slot:[`${column.key}-cell`]="{ row }">
-
+
- {{ `${truncateValue(row.original[column.key], column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }}
+ {{ `${truncateValue(getColumnDisplayValue(column, row.original), column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }}
diff --git a/frontend/pages/standardEntity/[type]/index.vue b/frontend/pages/standardEntity/[type]/index.vue
index 5805a0a..e745382 100644
--- a/frontend/pages/standardEntity/[type]/index.vue
+++ b/frontend/pages/standardEntity/[type]/index.vue
@@ -317,9 +317,17 @@ const truncateValue = (value, maxLength) => {
return `${stringValue.substring(0, maxLength)}...`
}
+const getColumnDisplayValue = (column, row) => {
+ const value = row[column.key]
+ if (column.displayFunction) return column.displayFunction(value, row)
+ return value
+}
+
const getDistinctFilterItems = (columnKey) => {
+ const column = dataType.templateColumns.find((item) => item.key === columnKey)
+
return (itemsMeta.value?.distinctValues?.[columnKey] || []).map((value) => ({
- label: String(value),
+ label: String(column?.displayFunction ? column.displayFunction(value) : value),
value
}))
}
@@ -550,9 +558,9 @@ const isDistinctFilterActive = (columnKey) => {
v-slot:[`${column.key}-cell`]="{row}">
-
+
- {{ `${truncateValue(row.original[column.key], column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }}
+ {{ `${truncateValue(getColumnDisplayValue(column, row.original), column.maxLength)}${column.unit ? ` ${column.unit}` : ''}` }}
diff --git a/frontend/stores/data.js b/frontend/stores/data.js
index d0bfffa..f443262 100644
--- a/frontend/stores/data.js
+++ b/frontend/stores/data.js
@@ -87,6 +87,10 @@ export const useDataStore = defineStore('data', () => {
{ key: "reminders", label: "Mahnung" },
]
+ const getFiletagDocumentTypeLabel = (options, value) => {
+ return options.find((option) => option.key === value)?.label || value
+ }
+
const dataTypes = {
tasks: {
isArchivable: true,
@@ -2397,6 +2401,9 @@ export const useDataStore = defineStore('data', () => {
selectValueAttribute: "key",
selectOptionAttribute: "label",
selectManualOptions: filetagCreatedDocumentTypeOptions,
+ displayFunction: function (value) {
+ return getFiletagDocumentTypeLabel(filetagCreatedDocumentTypeOptions, value)
+ },
inputColumn: "Automatik",
},
{
@@ -2406,6 +2413,9 @@ export const useDataStore = defineStore('data', () => {
selectValueAttribute: "key",
selectOptionAttribute: "label",
selectManualOptions: filetagIncomingDocumentTypeOptions,
+ displayFunction: function (value) {
+ return getFiletagDocumentTypeLabel(filetagIncomingDocumentTypeOptions, value)
+ },
inputColumn: "Automatik",
},
{