JSFiddle - React, Tailwind, and code Playground
by L T
HTML
<script src="//cdn.jsdelivr.net/interact.js/1.2.6/interact.min.js"></script>
<script src="https://drive.google.com/uc?export=download&id=0ByUQqnidnRkFZmpTVW9YWkhjN0k"></script>
<div id="interactGridTest"></div>
CSS
table.kanban-grid {
overflow: hidden;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
}
table.kanban-grid tr:nth-child(even) {
background-color: #eeeeee;
}
table.kanban-grid tr:nth-child(odd) {
background-color: #cecece;
}
table.kanban-grid td {
position: relative;
padding: 10px;
}
table.kanban-grid th {
position: relative;
background-color: #0275d8;
color: white;
padding: 10px;
}
table.kanban-grid th.hovered {
background-color: #66b3ff;
}
div.info-div {
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
padding: 10px;
background-color: #ff9933;
color: white;
min-width: 150px;
position: fixed;
right: 0;
opacity: 0.8;
z-index: 1000;
}
div.kanban-item {
font-size: 12px;
margin-bottom: 5px;
background-color: orange;
border-radius: 5px;
box-shadow: 5px 5px 5px #888888;
}
div.kanban-item .header, div.kanban-item .content, div.kanban-item .footer, div.kanban-item .hidden {
padding: 5px 10;
}
div.kanban-item .header {
background-color: azure;
}
div.kanban-item .footer {
font-size: 10px;
text-align: right;
}
div.kanban-item div.hidden {
display: none;
}
div.kanban-item label {
padding-right: 5px;
color: #333333;
}
#drag-1, #drag-2 {
width: 25%;
height: 20%;
min-height: 6.5em;
margin: 10%;
background-color: #29e;
color: white;
border-radius: 0.75em;
padding: 4%;
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
#drag-me::before {
content: "#" attr(id);
font-weight: bold;
}
JavaScript
var parameters = {
fieldList: [
{name: "Id", map: "id", location: "hidden"},
{name: "Summary", map: "title", location: "header", link: "http://examplelink.com/{id}"},
{name: "Issue State", map: "state", location: "content", cssClass: "state"},
{name: "Owner", map: "assignee", location: "content"},
{name: "Priority", map: "priority", location: "footer"},
{name: "Last Changed", map: "lastEdit", location: "footer"}
],
source: [
{id: "12", title: "Go to the laundry", state: "Created", assignee: "Tyrion", priority: 9, lastEdit: "2016.06.06"},
{id: "13", title: "Feed the dog", state: "Ready", assignee: "Arya", priority: 4, lastEdit: "2016.06.11"},
{id: "14", title: "Dishwashing", state: "InProgress", assignee: "Tyrion", priority: 6, lastEdit: "2016.06.03"},
{id: "15", title: "Mowing", state: "Created", assignee: "Unassigned", priority: 2, lastEdit: "2016.06.01"},
{id: "16", title: "Cooking", state: "Ready", assignee: "Unassigned", priority: 4, lastEdit: "2016.06.24"}
],
config: {
columnField: "state",
columns: [{name: "Created", value: 0, limit: 3}, {name: "InProgress", value: 1, limit: 3}, {name: "Ready", value: 2, limit: 3}, {name: "Archived", value: 3, limit: 0}],
rowField: "assignee",
rows: [{name: "Unassigned", value: 'ua', limit: 3}, {name: "Tyrion", value: 13, limit: 3}, {name: "Arya", value: 17, limit: 3}],
colorField: "priority",
colorValues: {1: "#33cc33", 2: "#33cc33", 3: "#33cc33", 4: "yellow", 5: "yellow", 6: "yellow", 7: "yellow", 8: "#ffcccc", 9: "#ffcccc", 10: "#ffcccc"},
zeroLimitColor: "#ffcccc",
transactionUrl: "serverOk.html",
//transactionUrl: "serverError.html",
transactionCallback: function (droppedItem) {
// if returns false then element gets back to its original position
return true;
}
}
}
var kg = kanbanGrid(parameters,...