mirror of
https://github.com/abhinavxd/libredesk.git
synced 2025-10-27 18:13:52 +00:00
83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
import { h } from 'vue'
|
|
import dropdown from './dataTableDropdown.vue'
|
|
import { format } from 'date-fns'
|
|
import { Badge } from '@/components/ui/badge'
|
|
|
|
export const createColumns = (t) => [
|
|
{
|
|
accessorKey: 'name',
|
|
header: function () {
|
|
return h('div', { class: 'text-center' }, t('globals.terms.name'))
|
|
},
|
|
cell: function ({ row }) {
|
|
return h('div', { class: 'text-center' }, row.getValue('name'))
|
|
}
|
|
},
|
|
{
|
|
accessorKey: 'url',
|
|
header: function () {
|
|
return h('div', { class: 'text-center' }, t('globals.terms.url'))
|
|
},
|
|
cell: function ({ row }) {
|
|
const url = row.getValue('url')
|
|
return h('div', { class: 'text-center font-mono mt-1 max-w-sm truncate' }, url)
|
|
}
|
|
},
|
|
{
|
|
accessorKey: 'events',
|
|
header: function () {
|
|
return h('div', { class: 'text-center' }, t('globals.terms.event', 2))
|
|
},
|
|
cell: function ({ row }) {
|
|
const events = row.getValue('events')
|
|
return h('div', { class: 'text-center' }, [
|
|
h(
|
|
Badge,
|
|
{ variant: 'secondary', class: 'text-xs' },
|
|
() => `${events.length} ${t('globals.terms.event', 2).toLowerCase()}`
|
|
)
|
|
])
|
|
}
|
|
},
|
|
{
|
|
accessorKey: 'is_active',
|
|
header: () => h('div', { class: 'text-center' }, t('globals.terms.status')),
|
|
cell: ({ row }) => {
|
|
const isActive = row.getValue('is_active')
|
|
return h('div', { class: 'text-center' }, [
|
|
h(
|
|
Badge,
|
|
{
|
|
variant: isActive ? 'default' : 'secondary',
|
|
class: 'text-xs'
|
|
},
|
|
() => isActive ? t('globals.terms.active') : t('globals.terms.inactive')
|
|
)
|
|
])
|
|
}
|
|
},
|
|
{
|
|
accessorKey: 'updated_at',
|
|
header: function () {
|
|
return h('div', { class: 'text-center' }, t('globals.terms.updatedAt'))
|
|
},
|
|
cell: function ({ row }) {
|
|
return h('div', { class: 'text-center text-sm' }, format(row.getValue('updated_at'), 'PPpp'))
|
|
}
|
|
},
|
|
{
|
|
id: 'actions',
|
|
enableHiding: false,
|
|
cell: ({ row }) => {
|
|
const webhook = row.original
|
|
return h(
|
|
'div',
|
|
{ class: 'relative' },
|
|
h(dropdown, {
|
|
webhook
|
|
})
|
|
)
|
|
}
|
|
}
|
|
]
|