74 lines
No EOL
1.8 KiB
TypeScript
74 lines
No EOL
1.8 KiB
TypeScript
import {CollectionConfig} from 'payload'
|
|
import {
|
|
AlignFeature,
|
|
BoldFeature,
|
|
HeadingFeature, HTMLConverterFeature, InlineToolbarFeature,
|
|
ItalicFeature,
|
|
lexicalEditor, LinkFeature, ParagraphFeature,
|
|
UnderlineFeature, UnorderedListFeature,
|
|
} from '@payloadcms/richtext-lexical'
|
|
import { hide, isAdminOrEmployee } from '@/collections/access/admin'
|
|
|
|
let oneMonth = new Date();
|
|
oneMonth.setDate(oneMonth.getDate() + 30);
|
|
|
|
export const Classifieds: CollectionConfig = {
|
|
slug: 'classifieds',
|
|
labels: {
|
|
singular: {
|
|
de: 'Kleinanzeige'
|
|
},
|
|
plural: {
|
|
de: 'Kleinanzeigen'
|
|
}
|
|
},
|
|
fields: [
|
|
{
|
|
name: "until",
|
|
label: {
|
|
de: "Anzeigen bis"
|
|
},
|
|
type: 'date',
|
|
required: true,
|
|
defaultValue: oneMonth,
|
|
},
|
|
{
|
|
name: 'text',
|
|
type: 'richText',
|
|
label: {
|
|
de: "Anzeige"
|
|
},
|
|
editor: lexicalEditor( {
|
|
features: () => [
|
|
BoldFeature(),
|
|
ItalicFeature(),
|
|
UnderlineFeature(),
|
|
LinkFeature(),
|
|
InlineToolbarFeature(),
|
|
]
|
|
}),
|
|
required: true
|
|
},
|
|
{
|
|
name: 'email',
|
|
type: 'email',
|
|
label: {
|
|
de: "Kontakt E-mail"
|
|
},
|
|
required: true
|
|
}
|
|
],
|
|
admin: {
|
|
hidden: hide,
|
|
defaultColumns: ['until', 'text', 'email'],
|
|
description: {
|
|
de: "Dieser Bereich des Dashboards ermöglicht die umfassende Verwaltung aller veröffentlichten Kleinanzeigen für freiwillige Tätigkeiten. Hier können Administratoren Inserate einsehen, bearbeiten, veröffentlichen und entfernen, um die Qualität und Relevanz der angebotenen Möglichkeiten sicherzustellen."
|
|
}
|
|
},
|
|
access: {
|
|
read: () => true,
|
|
create: isAdminOrEmployee(),
|
|
update: isAdminOrEmployee(),
|
|
delete: isAdminOrEmployee(),
|
|
}
|
|
} |