All Projects → riktar → Jkanban

riktar / Jkanban

Licence: apache-2.0
Vanilla Javascript plugin for manage kanban boards

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Jkanban

backlog-board
This is Kanban Board connected to Backlog
Stars: ✭ 18 (-97.29%)
Mutual labels:  kanban, kanban-board
DragBoardView
⭐ Android 看板,支持项拖拽、列拖拽。Draggable kanban/board view for Android.
Stars: ✭ 85 (-87.2%)
Mutual labels:  kanban, kanban-board
kanban-project-management
Web Application to manage software development projects.
Stars: ✭ 39 (-94.13%)
Mutual labels:  kanban, kanban-board
react-kanban
Yet another Kanban/Trello board lib for React.
Stars: ✭ 567 (-14.61%)
Mutual labels:  kanban, kanban-board
React Kanban
Yet another Kanban/Trello board lib for React.
Stars: ✭ 345 (-48.04%)
Mutual labels:  kanban, kanban-board
actionview-fe
ActionView front-end source code, based on Reactjs+Redux.
Stars: ✭ 63 (-90.51%)
Mutual labels:  kanban, kanban-board
agileseason-v1
Kanban board for GitHub issues
Stars: ✭ 12 (-98.19%)
Mutual labels:  kanban, kanban-board
js-study-lv1
단국대학교 자바스크립트 스터디 레벨 1 과정을 위한 저장소
Stars: ✭ 18 (-97.29%)
Mutual labels:  vanilla-js, todolist
Croppr.js
A vanilla JavaScript image cropper that's lightweight, awesome, and has absolutely zero dependencies.
Stars: ✭ 294 (-55.72%)
Mutual labels:  component, vanilla
Rome
📆 Customizable date (and time) picker. Opt-in UI, no jQuery!
Stars: ✭ 2,901 (+336.9%)
Mutual labels:  component, vanilla
taiga-stats
Generate statistics from Taiga and produce burnup diagrams, CFDs, dependency graphs and more.
Stars: ✭ 40 (-93.98%)
Mutual labels:  kanban, kanban-board
Bunny
BunnyJS - Lightweight native (vanilla) JavaScript (JS) and ECMAScript 6 (ES6) browser library, package of small stand-alone components without dependencies: FormData, upload, image preview, HTML5 validation, Autocomplete, Dropdown, Calendar, Datepicker, Ajax, Datatable, Pagination, URL, Template engine, Element positioning, smooth scrolling, routing, inversion of control and more. Simple syntax and architecture. Next generation jQuery and front-end framework. Documentation and examples available.
Stars: ✭ 473 (-28.77%)
Mutual labels:  vanilla-js, vanilla
kanban-board
Single-click full-stack application (Postgres, Spring Boot & Angular) using Docker Compose
Stars: ✭ 138 (-79.22%)
Mutual labels:  kanban, kanban-board
drawer
A touch-enabled drawer component for the modern web.
Stars: ✭ 26 (-96.08%)
Mutual labels:  vanilla, vanilla-js
ugly-todo
Just an Ugly To-Do app that I wanted to develop.
Stars: ✭ 35 (-94.73%)
Mutual labels:  todolist, kanban-board
KanbanView
CLI, API, Web Service and Kanban for Things 3
Stars: ✭ 64 (-90.36%)
Mutual labels:  kanban, kanban-board
curved-menu
VanillaJS fully configurable curved menu (circular navigation)
Stars: ✭ 30 (-95.48%)
Mutual labels:  vanilla, vanilla-js
kanban-board-app
Kanban style task management board app
Stars: ✭ 118 (-82.23%)
Mutual labels:  kanban, kanban-board
Personal Kanban
📌 Personal Kanban Board is an agile project management tool that helps you visualise your work, limit your work-in-progress (WIP) and to craft & optimise your work flow to get the maximum output. To achieve this, it makes use of columns and cards. Personal Kanban offers visual clue, columns, WIP limits, start point and end point to set you up for success.
Stars: ✭ 268 (-59.64%)
Mutual labels:  kanban, kanban-board
Dragula
👌 Drag and drop so simple it hurts
Stars: ✭ 21,011 (+3064.31%)
Mutual labels:  component, vanilla

jKanban

Javascript plugin for Kanban boards

jKanban allow you to create and manage Kanban Board in your project!

Please try out the live demo!

GET SUPPORT / REQUIRE CUSTOM FEATURE

jKanban

Install

Clone the repo and use the javascript and the css files in the dist folder.

You have to include

<link rel="stylesheet" href="path/to/jkanban.min.css">

and

<script src="path/to/jkanban.min.js"></script>

in your page and you are done.

Usage

Init jKanban is a piece of cake!

var kanban = new jKanban(options)

Here's an overview of the default values.

var kanban = new jKanban({
    element          : '',                                           // selector of the kanban container
    gutter           : '15px',                                       // gutter of the board
    widthBoard       : '250px',                                      // width of the board
    responsivePercentage: false,                                    // if it is true I use percentage in the width of the boards and it is not necessary gutter and widthBoard
    dragItems        : true,                                         // if false, all items are not draggable
    boards           : [],                                           // json of boards
    dragBoards       : true,                                         // the boards are draggable, if false only item can be dragged
    itemAddOptions: {
        enabled: false,                                              // add a button to board for easy item creation
        content: '+',                                                // text or html content of the board button   
        class: 'kanban-title-button btn btn-default btn-xs',         // default class of the button
        footer: false                                                // position the button on footer
    },    
    itemHandleOptions: {
        enabled             : false,                                 // if board item handle is enabled or not
        handleClass         : "item_handle",                         // css class for your custom item handle
        customCssHandler    : "drag_handler",                        // when customHandler is undefined, jKanban will use this property to set main handler class
        customCssIconHandler: "drag_handler_icon",                   // when customHandler is undefined, jKanban will use this property to set main icon handler class. If you want, you can use font icon libraries here
        customHandler       : "<span class='item_handle'>+</span> %s"// your entirely customized handler. Use %s to position item title
    },
    click            : function (el) {},                             // callback when any board's item are clicked
    dragEl           : function (el, source) {},                     // callback when any board's item are dragged
    dragendEl        : function (el) {},                             // callback when any board's item stop drag
    dropEl           : function (el, target, source, sibling) {},    // callback when any board's item drop in a board
    dragBoard        : function (el, source) {},                     // callback when any board stop drag
    dragendBoard     : function (el) {},                             // callback when any board stop drag
    buttonClick      : function(el, boardId) {}                      // callback when the board's button is clicked
})

Now take a look to the boards object

[
    {
        "id"    : "board-id-1",               // id of the board
        "title" : "Board Title",              // title of the board
        "class" : "class1,class2,...",        // css classes to add at the title
        "dragTo": ['another-board-id',...],   // array of ids of boards where items can be dropped (default: [])
        "item"  : [                           // item of this board
            {
                "id"    : "item-id-1",        // id of the item
                "title" : "Item 1"            // title of the item
                "class" : ["myClass",...]     // array of additional classes
            },
            {
                "id"    : "item-id-2",
                "title" : "Item 2"
            }
        ]
    },
    {
        "id"    : "board-id-2",
        "title" : "Board Title 2"
    }
]

WARNING: all ids are unique!

About custom properties

jKanban also support custom properties on items to improve your applications with html data- properties. You can define them at like:

[
    {
        "id"    : "board-id-1",
        "title" : "Board Title",
        "item"  : [
            {
                "id"      : "item-id-1",
                "title"   : "Item 1",
                "username": "username1"
            },
            {
                "id"      : "item-id-2",
                "title"   : "Item 2",
                "username": "username2"
            }
        ]
    }
]

Which jKanban will convert to:

<main class="kanban-drag">
    <div class="kanban-item" data-eid="item-id-1" data-username="username1">Item 1</div>
    <div class="kanban-item" data-eid="item-id-2" data-username="username2">Item 2</div>
</main>

API

jKanban provides the easiest possible API to make your boards awesome!

Method Name Arguments Description
addElement boardID, element Add element in the board with ID boardID, element is the standard format
addForm boardID, formItem Add formItem as html element into the board with ID boardID
addBoards boards Add one or more boards in the kanban, boards are in the standard format
findElement id Find board's item by id
replaceElement id, element Replace item by id with element JSON standard format
getParentBoardID id Get board ID of item id passed
findBoard id Find board by id
getBoardElements id Get all item of a board
removeElement id Remove a board's element by id
removeBoard id Remove a board by id

Example

Clone the repo and look in the example folder

Thanks

jKanban use dragula for drag&drop

Develop

Clone the repo then use npm install for download all the dependencies then launch npm run build for build the project

Pull Requests?

I'd love them!

Comments?

Let's hear them! (The nice ones please!)

Me?

In case you're interested I'm @riktarweb

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].