diff --git a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue index 22bbc6157..a786adfda 100644 --- a/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue +++ b/admin/src/components/ContributionMessages/slots/ContributionMessagesListItem.vue @@ -7,7 +7,7 @@ {{ $d(new Date(message.createdAt), 'short') }} - + {{ message.userFirstName }} {{ message.userLastName }} @@ -28,7 +28,7 @@ - + {{ message.userFirstName }} {{ message.userLastName }} diff --git a/admin/src/components/Tables/OpenCreationsTable.vue b/admin/src/components/Tables/OpenCreationsTable.vue index 6a1680601..5bce1bfb7 100644 --- a/admin/src/components/Tables/OpenCreationsTable.vue +++ b/admin/src/components/Tables/OpenCreationsTable.vue @@ -93,15 +93,6 @@ - - {{ row.item.firstName }} - - - {{ row.item.lastName }} - - - {{ row.item.contributionDate }} - diff --git a/admin/src/components/Tables/SearchUserTable.vue b/admin/src/components/Tables/SearchUserTable.vue index 996b35733..1a92962e3 100644 --- a/admin/src/components/Tables/SearchUserTable.vue +++ b/admin/src/components/Tables/SearchUserTable.vue @@ -156,6 +156,7 @@ const props = defineProps({ const rolesValues = { ADMIN: 'ADMIN', MODERATOR: 'MODERATOR', + MODERATOR_AI: 'MODERATOR_AI', USER: 'USER', } @@ -166,6 +167,28 @@ const myItems = ref() const creationUserData = ref({}) const rowDetails = ref() +const userRoleChangeConfirmationBody = computed(() => { + let roleLabel = '' + switch (userChangeForm.value.roleSelected) { + case rolesValues.ADMIN: + roleLabel = t('userRole.selectRoles.admin') + break + case rolesValues.MODERATOR: + roleLabel = t('userRole.selectRoles.moderator') + break + case rolesValues.MODERATOR_AI: + roleLabel = t('userRole.selectRoles.moderatorAi') + break + default: + roleLabel = t('userRole.selectRoles.user') + break + } + return t('overlay.changeUserRole.question', { + username: `${selectedRow.value.firstName} ${selectedRow.value.lastName}`, + newRole: roleLabel, + }) +}) + const showModal = async () => { await confirm?.({ props: { @@ -175,15 +198,7 @@ const showModal = async () => { title: t('overlay.changeUserRole.title'), okTitle: t('overlay.changeUserRole.yes'), okVariant: 'danger', - body: t('overlay.changeUserRole.question', { - username: `${selectedRow.value.firstName} ${selectedRow.value.lastName}`, - newRole: - userChangeForm.value.roleSelected === rolesValues.ADMIN - ? t('userRole.selectRoles.admin') - : userChangeForm.value.roleSelected === rolesValues.MODERATOR - ? t('userRole.selectRoles.moderator') - : t('userRole.selectRoles.user'), - }), + body: userRoleChangeConfirmationBody.value, }, }) .then((ok) => { diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index a830cb777..407258cec 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -119,7 +119,7 @@ const FILTER_TAB_MAP = [ ] const store = useStore() -const { t, d } = useI18n() +const { t } = useI18n() const { toastError, toastSuccess } = useAppToast() const tabIndex = ref(0) @@ -134,6 +134,33 @@ const query = ref('') const noHashtag = ref(null) const hideResubmissionModel = ref(true) +const formatDateOrDash = (value) => (value ? new Date(value).toLocaleDateString() : '—') +const baseFields = { + firstName: { key: 'firstName', label: t('firstname'), class: 'no-select' }, + lastName: { key: 'lastName', label: t('lastname'), class: 'no-select' }, + amount: { key: 'amount', label: t('creation'), formatter: (value) => value + ' GDD' }, + memo: { key: 'memo', label: t('text'), class: 'text-break' }, + contributionDate: { + key: 'contributionDate', + label: t('created'), + class: 'no-select', + formatter: formatDateOrDash, + }, + createdAt: { + key: 'createdAt', + label: t('createdAt'), + class: 'no-select', + formatter: formatDateOrDash, + }, + confirmedAt: { + key: 'confirmedAt', + label: t('contributions.confirms'), + class: 'no-select', + formatter: formatDateOrDash, + }, + confirmedBy: { key: 'confirmedBy', label: t('moderator.moderator'), class: 'no-select' }, +} + const fields = computed( () => [ @@ -141,103 +168,54 @@ const fields = computed( [ { key: 'bookmark', label: t('delete') }, { key: 'deny', label: t('deny') }, - { key: 'firstName', label: t('firstname') }, - { key: 'lastName', label: t('lastname') }, - { - key: 'amount', - label: t('creation'), - formatter: (value) => value + ' GDD', - }, - { key: 'memo', label: t('text'), class: 'text-break' }, - { - key: 'contributionDate', - label: t('created'), - formatter: (value) => formatDateOrDash(value), - }, - { key: 'moderatorId', label: t('moderator.moderator') }, + baseFields.firstName, + baseFields.lastName, + baseFields.amount, + baseFields.memo, + baseFields.contributionDate, + { key: 'moderatorId', label: t('moderator.moderator'), class: 'no-select' }, { key: 'editCreation', label: t('details') }, { key: 'confirm', label: t('save') }, ], // confirmed contributions [ - { key: 'firstName', label: t('firstname') }, - { key: 'lastName', label: t('lastname') }, - { - key: 'amount', - label: t('creation'), - formatter: (value) => value + ' GDD', - }, - { key: 'memo', label: t('text'), class: 'text-break' }, - { - key: 'contributionDate', - label: t('created'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'createdAt', - label: t('createdAt'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'confirmedAt', - label: t('contributions.confirms'), - formatter: (value) => formatDateOrDash(value), - }, - { key: 'confirmedBy', label: t('moderator.moderator') }, + baseFields.firstName, + baseFields.lastName, + baseFields.memo, + baseFields.contributionDate, + baseFields.createdAt, + baseFields.confirmedAt, + baseFields.confirmedBy, { key: 'chatCreation', label: t('details') }, ], // denied contributions [ - { key: 'firstName', label: t('firstname') }, - { key: 'lastName', label: t('lastname') }, - { - key: 'amount', - label: t('creation'), - formatter: (value) => value + ' GDD', - }, - { key: 'memo', label: t('text'), class: 'text-break' }, - { - key: 'contributionDate', - label: t('created'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'createdAt', - label: t('createdAt'), - formatter: (value) => formatDateOrDash(value), - }, + baseFields.firstName, + baseFields.lastName, + baseFields.amount, + baseFields.memo, + baseFields.contributionDate, + baseFields.createdAt, { key: 'deniedAt', label: t('contributions.denied'), - formatter: (value) => formatDateOrDash(value), + formatter: formatDateOrDash, }, { key: 'deniedBy', label: t('moderator.moderator') }, { key: 'chatCreation', label: t('details') }, ], // deleted contributions [ - { key: 'firstName', label: t('firstname') }, - { key: 'lastName', label: t('lastname') }, - { - key: 'amount', - label: t('creation'), - formatter: (value) => value + ' GDD', - }, - { key: 'memo', label: t('text'), class: 'text-break' }, - { - key: 'contributionDate', - label: t('created'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'createdAt', - label: t('createdAt'), - formatter: (value) => formatDateOrDash(value), - }, + baseFields.firstName, + baseFields.lastName, + baseFields.amount, + baseFields.memo, + baseFields.contributionDate, + baseFields.createdAt, { key: 'deletedAt', label: t('contributions.deleted'), - formatter: (value) => formatDateOrDash(value), + formatter: formatDateOrDash, }, { key: 'deletedBy', label: t('moderator.moderator') }, { key: 'chatCreation', label: t('details') }, @@ -245,30 +223,14 @@ const fields = computed( // all contributions [ { key: 'status', label: t('status') }, - { key: 'firstName', label: t('firstname') }, - { key: 'lastName', label: t('lastname') }, - { - key: 'amount', - label: t('creation'), - formatter: (value) => value + ' GDD', - }, - { key: 'memo', label: t('text'), class: 'text-break' }, - { - key: 'contributionDate', - label: t('created'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'createdAt', - label: t('createdAt'), - formatter: (value) => formatDateOrDash(value), - }, - { - key: 'confirmedAt', - label: t('contributions.confirms'), - formatter: (value) => formatDateOrDash(value), - }, - { key: 'confirmedBy', label: t('moderator.moderator') }, + baseFields.firstName, + baseFields.lastName, + baseFields.amount, + baseFields.memo, + baseFields.contributionDate, + baseFields.createdAt, + baseFields.confirmedAt, + baseFields.confirmedBy, { key: 'chatCreation', label: t('details') }, ], ][tabIndex.value], @@ -464,10 +426,6 @@ const updateStatus = (id) => { target.status = 'IN_PROGRESS' } } - -const formatDateOrDash = (value) => { - return value ? d(new Date(value), 'short') : '—' -}