Note This plugin is currently under active development and still in an early stage. Check the roadmap below in this readme for more details / upcoming features.
The most recent version of payload-kanban-board currently only supports Payload 2.0 and up.
$ yarn add payload-kanban-board
$ npm i payload-kanban-board
import { payloadKanbanBoard } from 'payload-kanban-board';
const config = buildConfig({
collections: [ ... ],
plugins: [
payloadKanbanBoard({
'my-collection-slug': {
statuses: [
{value: 'draft', label: 'Draft', dropValidation:({user,data})=>return true}, //<dropValidation key is optional>
{value: 'in-progress', label: 'In Progress'},
{value: 'ready-for-review', label: 'Ready for review'},
{value: 'published', label: 'Published'},
],
defaultStatus: 'draft',
hideNoStatusColumn: false,
fieldAccess:{
// <These fields are optional>
update:() => true,
create:() => false,
read:() => false,
},
fieldAdmin: {
// <These fields are optional>
hidden:true
// Any admin props for a normal field in payload cms
},
}
})
],
});
The kanban plugin introduces a new field called kanbanStatus
. This field does not interact with the draft/publish
system of Payload.
You can "integrate" the kanban status with the draft/publish system of Payload yourself by using Payloads hooks.
For example: Automatically publish the document when the kanbanStatus
has been changed to published
.
- [x] Payload 2.0 support
- [ ] Customize card properties (currently displays
title
andcreatedAt
) - [ ] Edit relationships directly from the card (e.g., assigning users to a document)
- [x] Toggleable column for posts without a kanban status (Currently, documents lacking
kanbanStatus
aren't visible on the board) - [ ] Lazy loading of column contents when scrolling (Currently, board only shows
defaultLimit
amount of cards) - [x] Validation for changing statuses
- [ ] Allowed transitions between statuses
- [ ] Integration with the draft/publish system of Payload (?)