Allow to associate project categories to colors
The color is then used as background in the board and list views
This commit is contained in:
@@ -41,6 +41,7 @@ class CategoryController extends BaseController
|
|||||||
|
|
||||||
$this->response->html($this->template->render('category/create', array(
|
$this->response->html($this->template->render('category/create', array(
|
||||||
'values' => $values + array('project_id' => $project['id']),
|
'values' => $values + array('project_id' => $project['id']),
|
||||||
|
'colors' => $this->colorModel->getList(),
|
||||||
'errors' => $errors,
|
'errors' => $errors,
|
||||||
'project' => $project,
|
'project' => $project,
|
||||||
)));
|
)));
|
||||||
@@ -87,6 +88,7 @@ class CategoryController extends BaseController
|
|||||||
|
|
||||||
$this->response->html($this->template->render('category/edit', array(
|
$this->response->html($this->template->render('category/edit', array(
|
||||||
'values' => empty($values) ? $category : $values,
|
'values' => empty($values) ? $category : $values,
|
||||||
|
'colors' => $this->colorModel->getList(),
|
||||||
'errors' => $errors,
|
'errors' => $errors,
|
||||||
'project' => $project,
|
'project' => $project,
|
||||||
)));
|
)));
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ class ColorModel extends Base
|
|||||||
$buffer = '';
|
$buffer = '';
|
||||||
|
|
||||||
foreach ($this->default_colors as $color => $values) {
|
foreach ($this->default_colors as $color => $values) {
|
||||||
$buffer .= '.task-board.color-'.$color.', .task-summary-container.color-'.$color.', .color-picker-square.color-'.$color.' {';
|
$buffer .= '.task-board.color-'.$color.', .task-summary-container.color-'.$color.', .color-picker-square.color-'.$color.', .task-board-category.color-'.$color.', .table-list-category.color-'.$color.' {';
|
||||||
$buffer .= 'background-color: '.$values['background'].';';
|
$buffer .= 'background-color: '.$values['background'].';';
|
||||||
$buffer .= 'border-color: '.$values['border'];
|
$buffer .= 'border-color: '.$values['border'];
|
||||||
$buffer .= '}';
|
$buffer .= '}';
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ class TaskFinderModel extends Base
|
|||||||
UserModel::TABLE.'.avatar_path AS assignee_avatar_path',
|
UserModel::TABLE.'.avatar_path AS assignee_avatar_path',
|
||||||
CategoryModel::TABLE.'.name AS category_name',
|
CategoryModel::TABLE.'.name AS category_name',
|
||||||
CategoryModel::TABLE.'.description AS category_description',
|
CategoryModel::TABLE.'.description AS category_description',
|
||||||
|
CategoryModel::TABLE.'.color_id AS category_color_id',
|
||||||
ColumnModel::TABLE.'.title AS column_name',
|
ColumnModel::TABLE.'.title AS column_name',
|
||||||
ColumnModel::TABLE.'.position AS column_position',
|
ColumnModel::TABLE.'.position AS column_position',
|
||||||
SwimlaneModel::TABLE.'.name AS swimlane_name',
|
SwimlaneModel::TABLE.'.name AS swimlane_name',
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use PDO;
|
|||||||
use Kanboard\Core\Security\Token;
|
use Kanboard\Core\Security\Token;
|
||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
|
|
||||||
const VERSION = 131;
|
const VERSION = 132;
|
||||||
|
|
||||||
|
function version_132(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE `project_has_categories` ADD COLUMN `color_id` VARCHAR(50) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_131(PDO $pdo)
|
function version_131(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use PDO;
|
|||||||
use Kanboard\Core\Security\Token;
|
use Kanboard\Core\Security\Token;
|
||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
|
|
||||||
const VERSION = 109;
|
const VERSION = 110;
|
||||||
|
|
||||||
|
function version_110(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE "project_has_categories" ADD COLUMN "color_id" VARCHAR(50) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_109(PDO $pdo)
|
function version_109(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -294,6 +294,7 @@ CREATE TABLE `project_has_categories` (
|
|||||||
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
`name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||||
`project_id` int(11) NOT NULL,
|
`project_id` int(11) NOT NULL,
|
||||||
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
`description` mediumtext COLLATE utf8mb4_unicode_ci,
|
||||||
|
`color_id` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `idx_project_category` (`project_id`,`name`),
|
UNIQUE KEY `idx_project_category` (`project_id`,`name`),
|
||||||
KEY `categories_project_idx` (`project_id`),
|
KEY `categories_project_idx` (`project_id`),
|
||||||
|
|||||||
@@ -542,7 +542,8 @@ CREATE TABLE "project_has_categories" (
|
|||||||
"id" integer NOT NULL,
|
"id" integer NOT NULL,
|
||||||
"name" character varying(255) NOT NULL,
|
"name" character varying(255) NOT NULL,
|
||||||
"project_id" integer NOT NULL,
|
"project_id" integer NOT NULL,
|
||||||
"description" "text"
|
"description" "text",
|
||||||
|
"color_id" character varying(255)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use Kanboard\Core\Security\Token;
|
|||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
use PDO;
|
use PDO;
|
||||||
|
|
||||||
const VERSION = 118;
|
const VERSION = 119;
|
||||||
|
|
||||||
|
function version_119(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE project_has_categories ADD COLUMN color_id TEXT DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_118(PDO $pdo)
|
function version_118(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php if (! empty($task['category_id'])): ?>
|
<?php if (! empty($task['category_id'])): ?>
|
||||||
<div class="task-board-category-container task-board-category-container-color">
|
<div class="task-board-category-container task-board-category-container-color">
|
||||||
<span class="task-board-category category-<?= $this->text->e($task['category_name']) ?>">
|
<span class="task-board-category category-<?= $this->text->e($task['category_name']) ?> <?= $task['category_color_id'] ? "color-{$task['category_color_id']}" : '' ?>">
|
||||||
<?php if ($not_editable): ?>
|
<?php if ($not_editable): ?>
|
||||||
<?= $this->text->e($task['category_name']) ?>
|
<?= $this->text->e($task['category_name']) ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
|
|||||||
@@ -7,5 +7,8 @@
|
|||||||
<?= $this->form->label(t('Category Name'), 'name') ?>
|
<?= $this->form->label(t('Category Name'), 'name') ?>
|
||||||
<?= $this->form->text('name', $values, $errors, array('autofocus', 'required')) ?>
|
<?= $this->form->text('name', $values, $errors, array('autofocus', 'required')) ?>
|
||||||
|
|
||||||
|
<?= $this->form->label(t('Color'), 'color_id') ?>
|
||||||
|
<?= $this->form->select('color_id', array('' => t('No color')) + $colors, $values, $errors, array(), 'color-picker') ?>
|
||||||
|
|
||||||
<?= $this->modal->submitButtons() ?>
|
<?= $this->modal->submitButtons() ?>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -11,5 +11,8 @@
|
|||||||
<?= $this->form->label(t('Description'), 'description') ?>
|
<?= $this->form->label(t('Description'), 'description') ?>
|
||||||
<?= $this->form->textEditor('description', $values, $errors, array('tabindex' => 2)) ?>
|
<?= $this->form->textEditor('description', $values, $errors, array('tabindex' => 2)) ?>
|
||||||
|
|
||||||
|
<?= $this->form->label(t('Color'), 'color_id') ?>
|
||||||
|
<?= $this->form->select('color_id', array('' => t('No color')) + $colors, $values, $errors, array(), 'color-picker') ?>
|
||||||
|
|
||||||
<?= $this->modal->submitButtons() ?>
|
<?= $this->modal->submitButtons() ?>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<?= $this->text->e($task['column_name']) ?>
|
<?= $this->text->e($task['column_name']) ?>
|
||||||
|
|
||||||
<?php if (! empty($task['category_id'])): ?>
|
<?php if (! empty($task['category_id'])): ?>
|
||||||
<span class="table-list-category">
|
<span class="table-list-category <?= $task['category_color_id'] ? "color-{$task['category_color_id']}" : '' ?>">
|
||||||
<?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?>
|
<?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?>
|
||||||
<?= $this->url->link(
|
<?= $this->url->link(
|
||||||
$this->text->e($task['category_name']),
|
$this->text->e($task['category_name']),
|
||||||
|
|||||||
Reference in New Issue
Block a user