All Projects → danilosampaio → Semantic Kanban

danilosampaio / Semantic Kanban

Licence: mit
A simple Kanban Component built with Semantic-UI + Vue.js

Projects that are alternatives of or similar to Semantic Kanban

Twake
Twake is a secure open source collaboration platform to improve organizational productivity.
Stars: ✭ 862 (+1005.13%)
Mutual labels:  kanban
Fogga Kanban
🎽 React Kanban Dashboard Template
Stars: ✭ 46 (-41.03%)
Mutual labels:  kanban
Parabol
Free online agile retrospective meeting tool
Stars: ✭ 1,145 (+1367.95%)
Mutual labels:  kanban
Kanban React
The Kanban Application with multiple backend languages.
Stars: ✭ 15 (-80.77%)
Mutual labels:  semantic-ui
Suicrux
🚀 Ultimate universal starter with lazy-loading, SSR and i18n. [not maintained]
Stars: ✭ 958 (+1128.21%)
Mutual labels:  semantic-ui
Any Video
【已停止维护】
Stars: ✭ 1,059 (+1257.69%)
Mutual labels:  semantic-ui
Jitamin
🐼 Jitamin is a free software written in PHP, intended to handle the project management over the web. QQ群: 656868
Stars: ✭ 903 (+1057.69%)
Mutual labels:  kanban
Taskell
Command-line Kanban board/task manager with support for Trello boards and GitHub projects
Stars: ✭ 1,175 (+1406.41%)
Mutual labels:  kanban
React Trello Multiboard
React-Trello-Multiboard is a single-page application built with React displaying multiple cards of several Trello® boards and lists. The cards can be filtered by preferred team members.
Stars: ✭ 43 (-44.87%)
Mutual labels:  kanban
Semanticui Angular
Angular Directives for Semantic UI
Stars: ✭ 58 (-25.64%)
Mutual labels:  semantic-ui
Semantic Ui Vue
Semantic UI integration for Vue
Stars: ✭ 914 (+1071.79%)
Mutual labels:  semantic-ui
Planka
The realtime kanban board for workgroups built with React and Redux.
Stars: ✭ 944 (+1110.26%)
Mutual labels:  kanban
Semantic Form
[READ ONLY] Semantic-UI form helper
Stars: ✭ 51 (-34.62%)
Mutual labels:  semantic-ui
Docker Taiga
Docker container for Taiga https://taiga.io
Stars: ✭ 14 (-82.05%)
Mutual labels:  kanban
Hexo Theme Aloha
A hexo theme, use semantic ui.
Stars: ✭ 68 (-12.82%)
Mutual labels:  semantic-ui
Masterlab
简单高效、基于敏捷开发的项目管理工具
Stars: ✭ 846 (+984.62%)
Mutual labels:  kanban
Textusm
Online tool for Generate a User Story Map from indented text.
Stars: ✭ 49 (-37.18%)
Mutual labels:  kanban
Taskboard
A Kanban-inspired app for keeping track of things that need to get done. (Don't forget to read the Wiki page!)
Stars: ✭ 1,191 (+1426.92%)
Mutual labels:  kanban
Liszt
A personal organization software with a script engine for automation
Stars: ✭ 72 (-7.69%)
Mutual labels:  kanban
Mycollab
An open source, free, high performance, stable and secure Java Application Business Platform of Project Management and Document
Stars: ✭ 1,063 (+1262.82%)
Mutual labels:  kanban

semantic-kanban Build Status Coverage Status

A simple Kanban component built with Semantic-UI + Vue.js.

Features

  • Drag and drop tasks cards on the kanban board.
  • Organize tasks by Owner (Team view)
  • Customizable API
  • Beautiful

Kanban

Install

$ npm install --save semantic-kanban

Usage

<template>
	<semantic-kanban
		:tasks="tasks"
		:members="members"
		:options="options"
		@updateTask="updateTask"
		@deleteTask="deleteTask"
		@updateMember="updateMember">
	</semantic-kanban>	
</template>

<script type="text/javascript">

	import SemanticKanban from 'semantic-kanban'

	export default {
		components: {
			SemanticKanban
		},
		data () {
			return {
				tasks: [{
					id: 1,
					subject: 'Brace yourselves',
					description: 'Winter is coming...',
					status: 'doing',
					dueDate: '2017-09-09 07:00',
					owner: 1
				}],
					members: [{
					id: 1,
					name: 'Danilo',
					avatar: 'img/avatar.png'
				}],
				options: {
					defaultTaskDialog: true,
					defaultConfirmDialog: true,
					defaultMemberDialog: true
				}
			}
		},
		methods: {
			updateTask (task) {
				console.log(task)
			},
			deleteTask (task) {
				console.log(task)
			},
			updateMember (member) {
				console.log(member)
			}
		}
	}
</script>

Customize your tasks

Standard tasks have the following fields: id, subject, description, status, dueDate, owner. You can add custom fields, and override some contents of the task card. Ex: add type field ('feature'|'bug'), and cutomize the extra content of the task card:

<template>
	<semantic-kanban
		:tasks="tasks"
		:members="members"
		:options="options"
		@updateTask="updateTask"
		@deleteTask="deleteTask"
		@updateMember="updateMember">
	</semantic-kanban>	
</template>

<script type="text/javascript">

	import SemanticKanban from 'semantic-kanban'

	export default {
		components: {
			SemanticKanban
		},
		data () {
			return {
				tasks: [{
					id: 1,
					subject: 'Brace yourselves',
					description: 'Winter is coming...',
					status: 'doing',
					dueDate: '2017-09-09 07:00',
					owner: 1,
					type: 'feature'
				},
				{
					id: 3,
					subject: 'Kill Cersei',
					description: 'Shame!',
					status: 'blocked',
					dueDate: '2017-08-20 18:00',
					owner: 1,
					type: 'bug'
				}],
		        members: [{
					id: 1,
					name: 'Danilo',
					avatar: 'img/avatar.png'
				}],
				options: {
					defaultTaskDialog: true,
					defaultConfirmDialog: true,
					defaultMemberDialog: true,
					taskExtraContent () {
						return function() {
							const dueDate = this.task.dueDate;
							const remain = 10;
							const icon = this.task.type == 'feature' ? 'blue cubes icon' : 
											this.task.type == 'bug' ? 'red bug icon' : '';
							return `
								<div class="right floated meta">
						  			<span>Rem. ${remain}h</span>
						  			<i class="${icon}"></i>
						  		</div>
						    	${dueDate}
							`;
						}
					}
				}
			}
		},
		methods: {
			updateTask (task) {
				console.log(task);
			},
			deleteTask (task) {
				console.log(task)
			},
			updateMember (member) {
				console.log(member)
			}
		}
	}
</script>

Results:

Kanban

Props

tasks: array of tasks

Task object:

id

Type: number

subject

Type: string

Short title of the task.

description

Type: string

Description of the task.

status

Type: string ('backlog' | 'doing' | 'blocked' | 'done' | 'archived'`)

Status of the task:

'backlog': left column of kanban, containing not started tasks.

'doing': first column of board, containing in progress tasks.

'blocked': second column of board, containing blocked/stoped tasks.

'done': right column of board, containing in done tasks.

'archived' represents a finished task that it's not viewed on the board.

dueDate

Type: date

Due date of the tasks. Format: 'YYYY-MM-DD hh:mm'

owner

Type: number

Member Id from members list.

tags

Type: Array

Tags of the task.

Ex: ['critical', 'help-wanted'].

Ex2: [{value: 'critical', color: 'red'}].

members: array of members

Member object:

id

Type: number

name

Type: string

avatar

Type: string

href of <img>

options: JSON object

defaultTaskDialog

Type: boolean

Open default dialog for editing task. Set it to false to use a custom dialog.

defaultConfirmDialog

Type: boolean

Open default dialog for delete task. Set it to false to use a custom dialog.

columnLabels

Type: array

Default: ['Backlog','Team','Doing','Blocked','Done']

newTaskHint

Type: string

Default: New Task

newMemberHint

Type: string

Default: New Member

backlogTopContent

Type: function

Default return:

	<div class="right floated meta">
		<i class="${semafor}"><i>
	</div>
	${formattedSubject}

backlogExtraContent

Type: function

Default return:

	<div class="right floated meta">
		<span>${ownerName}</span>
	</div>
	${dueDate}

taskTopContent

Type: function

Default return:

	<div class="right floated meta">
		<i class="${semafor}"></i>
	</div>
	${formattedSubject}

taskExtraContent

Type: function

Default return:

	<div class="right floated meta">
		<span>Rem. ${remain}h</span>
	</div>
	${dueDate}

Events

@openTask

Emitted when the task card is clicked.

Params : task

@newTask

Emitted when the New Task button is clicked.

@updateTask

Emitted when the task is updated by drag and drop between the status columns, or when the save button is clicked on the task dialog.

Params : task

@confirmDeleteTask

Emitted when the close button is clicked.

Params : task

@deleteTask

Emitted when the confirm button is clicked.

Params : task

@addTag

Emitted when a new tag is added in the task dialog.

Params : task, tag

@deleteTag

Emitted when a tag is deleted in the task dialog.

Params : task, tag

@updateMember

Emitted when the save button is clicked in the member dialog.

License

MIT © Danilo Sampaio

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].