Kanboard frontend UI powered by Webix
npm run buildconf --endpoint=http://your-kanboard-endpoint.com
Ok done, run
or
docker run --rm --name kbclient -p 8085:80 -d -e "API_SERVER=http://localhost/kanboard" finzaiko/kb_client:1.0
and open in browser: http://localhost:8085
Clone this repository and run:
npm i
npm start
Replace <rootpath>/jsonrpc.php
to this:
require __DIR__.'/app/common.php';
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: ACCEPT, ORIGIN, X-REQUESTED-WITH, CONTENT-TYPE, AUTHORIZATION');
if ("OPTIONS" === $_SERVER['REQUEST_METHOD']) {
die();
}
echo $container['api']->execute();
Change extendedQuery to addional usefull field method in kanboard/app/Model/TaskFinderModel.php
public function getExtendedQuery()
{
return $this->db
->table(TaskModel::TABLE)
->columns(
...
ProjectModel::TABLE.'.name AS project_name',
...
'uc.username AS creator_username', // <-- new
'uc.name AS creator_name' // <-- new
)
->join(UserModel::TABLE, 'id', 'owner_id', TaskModel::TABLE)
...
}
Change getAll method in kanboard/app/Model/TaskFinderModel.php
to this to get all available joined data
public function getAll($project_id, $status_id = TaskModel::STATUS_OPEN)
{
return
$this->getExtendedQuery() // <-- new
->eq(TaskModel::TABLE.'.project_id', $project_id)
->eq(TaskModel::TABLE.'.is_active', $status_id)
->desc(TaskModel::TABLE.'.id') // order last update on top
->findAll();
}
Change getAll method in kanboard/app/Model/TaskFinderModel.php
to this to get by id joined data
public function getById($task_id)
{
return $this->getExtendedQuery() // <-- new
->eq(TaskModel::TABLE.'.id', $task_id)->findOne();
}