/payload-kanban-board

A payload cms plugin for kanban board view

Primary LanguageTypeScript

Payload kanban plugin

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.

Shows an image illustrating the payload-kanban-board plugin

Installation

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

Basic usage

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
        },

      }
    })
  ],
});

Differences with the draft/publish system of Payload.

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.

Roadmap

Upcoming Features / Ideas. Have a suggestion for the plugin? Feel free to open an issue or contribute!
  • Payload 2.0 support
  • Customize card properties (currently displays title and createdAt)
  • Edit relationships directly from the card (e.g., assigning users to a document)
  • 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)
  • Validation for changing statuses
  • Allowed transitions between statuses
  • Integration with the draft/publish system of Payload (?)