replace createdAt column in open creations with smart colum closed

This commit is contained in:
einhornimmond 2025-12-19 10:00:46 +01:00
parent 62e6bfe414
commit 4d1eaba6cf
5 changed files with 29 additions and 8 deletions

View File

@ -99,6 +99,9 @@
</BButton> </BButton>
</div> </div>
</template> </template>
<template #cell(closed)="row">
{{ formatDateOrDash(getClosedDate(row.item)) }}
</template>
<template #row-details="row"> <template #row-details="row">
<row-details <row-details
:row="row" :row="row"
@ -140,6 +143,7 @@
import RowDetails from '../RowDetails' import RowDetails from '../RowDetails'
import EditCreationFormular from '../EditCreationFormular' import EditCreationFormular from '../EditCreationFormular'
import ContributionMessagesList from '../ContributionMessages/ContributionMessagesList' import ContributionMessagesList from '../ContributionMessages/ContributionMessagesList'
import { useDateFormatter } from '@/composables/useDateFormatter'
const iconMap = { const iconMap = {
IN_PROGRESS: 'question-square', IN_PROGRESS: 'question-square',
@ -195,6 +199,7 @@ export default {
this.removeClipboardListener() this.removeClipboardListener()
}, },
methods: { methods: {
...useDateFormatter(),
myself(item) { myself(item) {
return item.userId === this.$store.state.moderator.id return item.userId === this.$store.state.moderator.id
}, },
@ -209,6 +214,16 @@ export default {
if (item.contributionStatus === 'IN_PROGRESS') return 'table-primary' if (item.contributionStatus === 'IN_PROGRESS') return 'table-primary'
if (item.contributionStatus === 'PENDING') return 'table-primary' if (item.contributionStatus === 'PENDING') return 'table-primary'
}, },
getClosedDate(item) {
if (item.contributionStatus === 'CONFIRMED') {
return item.confirmedAt
} else if (item.contributionStatus === 'DENIED') {
return item.deniedAt
} else if (item.contributionStatus === 'DELETED') {
return item.deletedAt
}
return null
},
updateStatus(id) { updateStatus(id) {
this.$emit('update-status', id) this.$emit('update-status', id)
}, },

View File

@ -1,10 +1,14 @@
export const useDateFormatter = () => { export const useDateFormatter = () => {
const formatDateFromDateTime = (datetimeString) => { const formatDateFromDateTime = (datetimeString) => {
if (!datetimeString || !datetimeString?.includes('T')) return datetimeString if (!datetimeString || !datetimeString?.includes('T')) {
return datetimeString
}
return datetimeString.split('T')[0] return datetimeString.split('T')[0]
} }
const formatDateOrDash = (value) => (value ? new Date(value).toLocaleDateString() : '—')
return { return {
formatDateFromDateTime, formatDateFromDateTime,
formatDateOrDash,
} }
} }

View File

@ -55,6 +55,7 @@
}, },
"contributions": { "contributions": {
"all": "Alle", "all": "Alle",
"closed": "Geschlossen",
"confirms": "Bestätigt", "confirms": "Bestätigt",
"deleted": "Gelöscht", "deleted": "Gelöscht",
"denied": "Abgelehnt", "denied": "Abgelehnt",

View File

@ -55,6 +55,7 @@
}, },
"contributions": { "contributions": {
"all": "All", "all": "All",
"closed": "Closed",
"confirms": "Confirmed", "confirms": "Confirmed",
"deleted": "Deleted", "deleted": "Deleted",
"denied": "Rejected", "denied": "Rejected",

View File

@ -108,6 +108,7 @@ import { confirmContribution } from '../graphql/confirmContribution'
import { denyContribution } from '../graphql/denyContribution' import { denyContribution } from '../graphql/denyContribution'
import { getContribution } from '../graphql/getContribution' import { getContribution } from '../graphql/getContribution'
import { useAppToast } from '@/composables/useToast' import { useAppToast } from '@/composables/useToast'
import { useDateFormatter } from '@/composables/useDateFormatter'
import CONFIG from '@/config' import CONFIG from '@/config'
const FILTER_TAB_MAP = [ const FILTER_TAB_MAP = [
@ -134,7 +135,7 @@ const query = ref('')
const noHashtag = ref(null) const noHashtag = ref(null)
const hideResubmissionModel = ref(true) const hideResubmissionModel = ref(true)
const formatDateOrDash = (value) => (value ? new Date(value).toLocaleDateString() : '—') const { formatDateOrDash } = useDateFormatter()
const baseFields = { const baseFields = {
firstName: { key: 'user.firstName', label: t('firstname'), class: 'no-select' }, firstName: { key: 'user.firstName', label: t('firstname'), class: 'no-select' },
@ -159,11 +160,6 @@ const baseFields = {
class: 'no-select', class: 'no-select',
formatter: formatDateOrDash, formatter: formatDateOrDash,
}, },
confirmedByUserName: {
key: 'confirmedByUserName',
label: t('moderator.who'),
class: 'no-select',
},
} }
const fields = computed( const fields = computed(
@ -231,7 +227,11 @@ const fields = computed(
baseFields.memo, baseFields.memo,
baseFields.contributionDate, baseFields.contributionDate,
baseFields.createdAt, baseFields.createdAt,
baseFields.confirmedAt, {
key: 'closed',
label: t('contributions.closed'),
class: 'no-select',
},
{ key: 'chatCreation', label: t('details') }, { key: 'chatCreation', label: t('details') },
], ],
][tabIndex.value], ][tabIndex.value],