Element: <ins-kanban-board>
Defines a Kanban board.
Code Snippet
<ins-kanban-board>
<ins-kanban-column
heading="TODO"
heading-color="#4ecdc4"
heading-text-color="#000"
total-count="3"
heading-sub-detail="$308"
add-item-button
add-item-button-label="Add New" >
<ins-kanban-card id="columnItem">
<div class="card-title">
Item Name
</div>
<div class="sub-details-wrap">
<div class="sub-detail">
<i class="icon-calendar"></i>
<span>
2020-08-12
</span>
</div>
<div class="sub-detail">
<i class="icon-clock"></i>
<span>
2:12 PM
</span>
</div>
</div>
<div class="details-footer">
<div class="user-options">
<i class="icon-user-1"></i>
<span>
Courtney Henry
</span>
</div>
<div class="primary-detail">
$120
</div>
</div>
</ins-kanban-card>
<ins-kanban-card>
column 1 item 2
</ins-kanban-card>
<ins-kanban-card>
column 1 item 3
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="In Progress"
heading-color="#76E5FC"
heading-text-color="#000"
total-count="3"
heading-sub-detail="$123"
add-item-button >
<ins-kanban-card>
column 2 item 1
</ins-kanban-card>
<ins-kanban-card>
column 2 item 2
</ins-kanban-card>
<ins-kanban-card>
column 2 item 3
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
Code Snippet
<ins-kanban-board>
<ins-kanban-column
id="emptyComlumn"
heading="Empty State (No Items)"
no-items
no-items-detail="Cras venenatis justo quis turpis vestibulum placerat. Curabitur aliquet lacus fringilla sem tempor lacinia.">
</ins-kanban-column>
</ins-kanban-board>
Code Snippet
<ins-kanban-board>
<ins-kanban-column
id="disabledSortColumn"
heading="Sort Disabled"
disable-sort >
<ins-kanban-card>
column 1 item 1
</ins-kanban-card>
<ins-kanban-card>
column 1 item 2
</ins-kanban-card>
<ins-kanban-card>
column 1 item 3
</ins-kanban-card>
<ins-kanban-card>
<i>Please note that this only disables the sorting within the column, but you can still move cards from one column to another</i>
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
The kanban-card tag will not require you to put any attributes to display the contents you want inside it. This will allow you to customise the card contents in any way you like. However, this component still provides a default design which can be overriden via css. Just take note of the tags, classes, and containers used.
Sample link Insites Docs.
Code Snippet
<ins-kanban-board>
<ins-kanban-column
heading="With the default design style containers and classes"
heading-color="#FFD6E0"
total-count="2"
add-item-button
add-item-button-label="Add Task">
<ins-kanban-card>
<div class="card-title">
We design and make concrete products.
</div>
<div class="sub-details-wrap">
<div class="sub-detail">
<i class="icon-calendar"></i>
<span>
2020-08-09
</span>
</div>
<div class="sub-detail">
<i class="icon-clock"></i>
<span>
2:33 PM
</span>
</div>
</div>
<div class="details-footer">
<div class="user-options">
<i class="icon-user-1"></i>
<span>
Jane Cooper
</span>
</div>
<div class="primary-detail">
$98
</div>
</div>
</ins-kanban-card>
<ins-kanban-card>
<div class="card-title">
Item Name
</div>
<div class="sub-details-wrap">
<div class="sub-detail">
<i class="icon-calendar"></i>
<span>
Date
</span>
</div>
<div class="sub-detail">
<i class="icon-clock"></i>
<span>
Time
</span>
</div>
</div>
<div class="details-footer">
<div class="user-options">
<i class="icon-user-1"></i>
<span>
The quick brown fox jumps over the lazy dog
</span>
</div>
<div class="primary-detail">
Price
</div>
</div>
</ins-kanban-card>
<ins-kanban-card>
<div class="card-title">
Item Name
</div>
<div class="sub-details-wrap">
<div class="sub-detail">
<i class="icon-calendar"></i>
<span>
Date
</span>
</div>
<div class="sub-detail">
<i class="icon-clock"></i>
<span>
Time
</span>
</div>
</div>
<div class="details-footer">
<div class="user-options">
<i class="icon-user-1"></i>
<span>
The quick brown fox jumps over the lazy dog
</span>
</div>
<div class="primary-detail">
Price
</div>
</div>
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="With custom components, elements"
heading-color="#7BF1A8"
total-count="3"
add-item-button >
<ins-kanban-card>
<strong>Sunt Lorem et ullamco laborum anim nisi dolor labore sint nulla Lorem.</strong>
<i>Nulla mollit pariatur laboris eu veniam occaecat eiusmod tempor ex anim in. Eiusmod sint aute voluptate non ipsum adipisicing commodo laborum dolore aliquip occaecat. Labore deserunt do nulla non sint reprehenderit. Amet nulla sit cupidatat reprehenderit dolor ea minim. Excepteur adipisicing ullamco ea aliquip ut irure.
</i>
</ins-kanban-card>
<ins-kanban-card>
<h3>Incididunt consectetur minim mollit aute do elit proident deserunt ipsum.</h3>
</ins-kanban-card>
<ins-kanban-card>
<i class="icon-heart"></i>
<h3>
Lorem ipsum
</h3>
<doc-quote type="reference">
<div>
<span class="icon-feather"></span>
<span class="box-title">Pariatur velit officia aliqua aute deserunt proident deserunt.</span>
</div>
<p>Sample link <a href="https://docs.insites.io/" target="_blank">Insites Docs</a>.</p>
</doc-quote>
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
By default, cards inside the columns that belong to the parent Kanban Board element can only be moved in that container only. However, if you want to move cards between different boards, you can achieve this by adding the board-group attribute on the Kanban Boards that you want to belong in the same group. This attribute is a string type and you can put any name that you prefer.
Code Snippet
<ins-kanban-board board-group="MyGroup" class="MyGroup1">
<ins-kanban-column
heading="Board 1: MyGroup"
heading-color="#FF8C42" >
<ins-kanban-card style="background-color: rgba(255, 140, 66, 0.25)">
board 1 column 1 item 1
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(255, 140, 66, 0.25)">
board 1 column 1 item 2
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(255, 140, 66, 0.25)">
board 1 column 1 item 3
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="Board 1: MyGroup"
heading-color="#FF8C42">
<ins-kanban-card style="background-color: rgba(255, 140, 66, 0.25)">
board 1 column 2 item 1
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(255, 140, 66, 0.25)">
board 1 column 2 item 2
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
<br>
<ins-kanban-board board-group="MyGroup" class="MyGroup2">
<ins-kanban-column
heading="Board 2: MyGroup"
heading-color="#FDE74C" >
<ins-kanban-card style="background-color: rgba(253, 231, 76, 0.25)">
board 2 column 1 item 1
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(253, 231, 76, 0.25)">
board 2 column 1 item 2
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(253, 231, 76, 0.25)">
board 2 column 1 item 3
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="Board 2: MyGroup"
heading-color="#FDE74C">
<ins-kanban-card style="background-color: rgba(253, 231, 76, 0.25)">
board 2 column 2 item 1
</ins-kanban-card>
<ins-kanban-card style="background-color: rgba(253, 231, 76, 0.25)">
board 2 column 2 item 2
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
<br>
<ins-kanban-board>
<ins-kanban-column
heading="Board 3: No group" >
<ins-kanban-card>
board 3 column 1 item 1
</ins-kanban-card>
<ins-kanban-card>
board 3 column 1 item 2
</ins-kanban-card>
<ins-kanban-card>
board 3 column 1 item 3
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="Board 3: No group">
<ins-kanban-card>
board 3 column 2 item 1
</ins-kanban-card>
<ins-kanban-card>
board 3 column 2 item 2
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
Please check console log for the output.
Code Snippet
<ins-kanban-board>
<ins-kanban-column
id="myColumn"
heading="TODO"
total-count="2"
heading-sub-detail="$308"
add-item-button>
<ins-kanban-card id="myCard" card-id="123" card-sortable-id="1">
<div class="card-title">
Item Name
</div>
<div class="sub-details-wrap">
<div class="sub-detail">
<i class="icon-calendar"></i>
<span>
2020-08-12
</span>
</div>
<div class="sub-detail">
<i class="icon-clock"></i>
<span>
2:12 PM
</span>
</div>
</div>
<div class="details-footer">
<div class="user-options">
<i class="icon-user-1"></i>
<span>
Courtney Henry
</span>
</div>
<div class="primary-detail">
$120
</div>
</div>
</ins-kanban-card>
<ins-kanban-card card-id="324" card-sortable-id="2">
column 1 item 2
</ins-kanban-card>
<ins-kanban-card card-id="897" card-sortable-id="3">
column 1 item 3
</ins-kanban-card>
</ins-kanban-column>
<ins-kanban-column
heading="In Progress (No Sort)"
heading-sub-detail="$123"
add-item-button
disable-sort >
<ins-kanban-card>
column 2 item 1
</ins-kanban-card>
<ins-kanban-card>
column 2 item 2
</ins-kanban-card>
<ins-kanban-card>
column 2 item 3
</ins-kanban-card>
</ins-kanban-column>
</ins-kanban-board>
<script>
var myColumn = document.getElementById('myColumn');
// Event for when the Add Item button is clicked
myColumn.addEventListener('insColumnAdd', event => {
console.log(event.detail);
// Method that returns the order of the cards in the column (this is based from the card-sortable-id attribute of the ins-kanban-card)
console.log(myColumn.getColumnCardsOrder())
var order = ["3","2","1"];
// Method that reorders the cards in the column based on the passed order array
myColumn.reorderCards(order);
});
// Event for when the a drag has started
myColumn.addEventListener('insDragStart', event => {
console.log("insDragStart: ", event.detail);
});
// Event for when the a drag has ended
myColumn.addEventListener('insDragEnd', event => {
console.log("insDragEnd: ", event.detail);
});
// Event for when a card is dropped into the column from another column
myColumn.addEventListener('insAdd', event => {
console.log("insAdd: ", event.detail);
});
// Event for when any change is done to the column (add/update/remove)
myColumn.addEventListener('insSort', event => {
console.log("insSort: ", event.detail);
});
// Event for when when a card is chosen
myColumn.addEventListener('insChoose', event => {
console.log("insChoose: ", event.detail);
});
// Event for when the sorting is changed within the column
myColumn.addEventListener('insUpdate', event => {
console.log("insUpdate: ", event.detail);
});
// Event for when a card is moved in the column or between columns
myColumn.addEventListener('insMove', event => {
console.log("insMove: ", event.detail);
});
// Event for when a card is removed from the column into another column
myColumn.addEventListener('insRemove', event => {
console.log("insRemove: ", event.detail);
});
// Event for when the dragged card changes position
myColumn.addEventListener('insPositionChanged', event => {
console.log("insPositionChanged: ", event.detail);
});
var myCard = document.getElementById('myCard');
// Event for when a card is clicked
myCard.addEventListener('insClick', event => {
console.log(event.detail)
});
</script>
<ins-kanban-board> Attributes
| FIELD ATTRIBUTE | TYPE | DEFAULT | OPTIONS | DESCRIPTION |
|---|---|---|---|---|
| boardGroup | string | _blank | - | Defines which boards belong to the same group (Can be used to drag and drop kanban cards from one kanban board to the other.) |
<ins-kanban-column> Attributes
| FIELD ATTRIBUTE | TYPE | DEFAULT | OPTIONS | DESCRIPTION |
|---|---|---|---|---|
| add-item-button | boolean | false | true, false | Defines if an Add Item button should be shown on the board |
| add-item-button-label | string | Add Item | - | Label for the Add Item button |
| disable-sort | boolean | false | true, false | Disables the sorting/moving of cards in a board |
| heading | string | Heading | - | Heading label of the board |
| heading-color | string | #fff | - | Color of the heading |
| heading-text-color | string | - | - | Color of the heading text |
| heading-sub-detail | string | - | - | Heading's sub detail (will be shown on the right part of the heading wrapper) |
| no-items | boolean | false | true, false | Defines if there are card items inside the board |
| no-items-heading | string | - | - | No Items heading/label |
| total-count | any | - | - | Defines total count value |
<ins-kanban-card> Attributes
| FIELD ATTRIBUTE | TYPE | DEFAULT | OPTIONS | DESCRIPTION |
|---|---|---|---|---|
| card-id | string | - | - | Defines unique identifier for the card |
| card-sortable-id | number | - | - | Defines sort order identifier for the card |
<ins-kanban-column> Events
| EVENT | OBJECT | DESCRIPTION |
|---|---|---|
| insColumnAdd | heading, el | Execute a script when the Add Item button is clicked |
| insAdd | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script when a card is dropped into the column from another column |
| insChoose | item, from, oldIndex | Execute a script when a card is chosen |
| insDragStart | item, from, oldIndex, oldDraggableIndex | Execute a script on drag start |
| insDragEnd | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script on drag end |
| insMove | item, to, from, relatedItem, insertedAfter | Execute a script when a card is moved in the column or between columns |
| insPositionChanged | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script when the dragged card changes position |
| insRemove | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script when a card is removed from the column into another column |
| insSort | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script when any change is done to the column (add/update/remove) |
| insUpdate | item, to, from, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex | Execute a script when the sorting is changed within the column |
<ins-kanban-column> Methods
| FUNCTION | PARAMETERS | RETURN | DESCRIPTION |
|---|---|---|---|
| getColumnCardsOrder | n/a | array object | Returns the order of the cards in the column (this is based from the card-sortable-id attribute of the ins-kanban-card) |
| reorderCards | array | n/a | Reorders the cards in the column based on the passed order array (e.g. ["3", "2", "1]) |
<ins-kanban-card> Events
| EVENT | OBJECT | DESCRIPTION |
|---|---|---|
| insClick | cardId, currentOrder | Execute a script when the card is clicked |
| OBJECT | DESCRIPTION |
|---|---|
| heading | Kanban Board heading value |
| el | Kanban Board HTMLElement |
| item | Dragged HTMLElement(kanban card) |
| to | Target list(kanban column) |
| from | Previous list(kanban column) |
| oldIndex | Card element's old index within old parent |
| newIndex | Card element's new index within new parent |
| oldDraggableIndex | Card element's old index within old parent, only counting draggable elements |
| newDraggableIndex | Card element's new index within new parent, only counting draggable elements |
| relatedItem | HTMLElement(kanban card) on which previously has the dragged card's new position |
| insertedAfter | Defines if the dragged card has been inserted after the related item |
Didn't quite find what you are looking for or have feedback on how we can make the content better then we would love to hear from you. Please provide us feedback and we will get back to you shortly.