* kanban column added for team column config data

* team contains jira filter id and kanban column config
This commit is contained in:
Dávid Danyi 2018-04-27 18:41:03 +02:00
parent a43b5e9d09
commit c096510b3d
4 changed files with 273 additions and 5 deletions

View File

@ -0,0 +1,83 @@
<?php
declare(strict_types=1);
namespace App\Entity;
class KanbanColumn implements \JsonSerializable
{
/** @var string */
private $jiraStatusName = "";
/** @var string */
private $label = "";
/** @var integer */
private $wipLimit = 0;
/**
* @return string
*/
public function getJiraStatusName(): ?string
{
return $this->jiraStatusName;
}
/**
* @param string $jiraStatusName
* @return KanbanColumn
*/
public function setJiraStatusName(?string $jiraStatusName): KanbanColumn
{
$this->jiraStatusName = $jiraStatusName;
return $this;
}
/**
* @return string
*/
public function getLabel(): ?string
{
return $this->label;
}
/**
* @param string $label
* @return KanbanColumn
*/
public function setLabel(?string $label): KanbanColumn
{
$this->label = $label;
return $this;
}
/**
* @return int
*/
public function getWipLimit(): ?int
{
return $this->wipLimit;
}
/**
* @param int $wipLimit
* @return KanbanColumn
*/
public function setWipLimit(?int $wipLimit): KanbanColumn
{
$this->wipLimit = $wipLimit;
return $this;
}
/**
* @return array
*/
function jsonSerialize()
{
return [
'jiraStatusName' => $this->getJiraStatusName(),
'label' => $this->getLabel(),
'wipLimit' => $this->getWipLimit(),
];
}
}

View File

@ -309,7 +309,7 @@ class KanbanEntry implements \JsonSerializable
/**
* @return string
*/
public function getIssuePriority(): string
public function getIssuePriority(): ?string
{
return $this->issuePriority;
}
@ -318,7 +318,7 @@ class KanbanEntry implements \JsonSerializable
* @param string $issuePriority
* @return KanbanEntry
*/
public function setIssuePriority(string $issuePriority): KanbanEntry
public function setIssuePriority(?string $issuePriority): KanbanEntry
{
$this->issuePriority = $issuePriority;
return $this;
@ -327,7 +327,7 @@ class KanbanEntry implements \JsonSerializable
/**
* @return string
*/
public function getIssuePriorityIcon(): string
public function getIssuePriorityIcon(): ?string
{
return $this->issuePriorityIcon;
}
@ -336,7 +336,7 @@ class KanbanEntry implements \JsonSerializable
* @param string $issuePriorityIcon
* @return KanbanEntry
*/
public function setIssuePriorityIcon(string $issuePriorityIcon): KanbanEntry
public function setIssuePriorityIcon(?string $issuePriorityIcon): KanbanEntry
{
$this->issuePriorityIcon = $issuePriorityIcon;
return $this;

View File

@ -47,6 +47,36 @@ class Team implements JsonSerializable
*/
private $slides;
/**
* @ORM\Column(name="filter_id", type="integer", nullable=true)
* @var int
*/
private $filterId;
/**
* @ORM\Column(name="backlog_column", type="json", nullable=true)
* @var KanbanColumn
*/
private $backlogColumn;
/**
* @ORM\Column(name="inprogress_column", type="json", nullable=true)
* @var KanbanColumn
*/
private $inprogressColumn;
/**
* @ORM\Column(name="verification_column", type="json", nullable=true)
* @var KanbanColumn
*/
private $verificationColumn;
/**
* @ORM\Column(name="done_column", type="json", nullable=true)
* @var KanbanColumn
*/
private $doneColumn;
/**
* @ORM\Column(name="is_active", type="boolean")
* @var bool
@ -69,8 +99,13 @@ class Team implements JsonSerializable
public function __construct()
{
$this->slides = new ArrayCollection;
$this->members = new \ArrayObject;
$this->slides = new ArrayCollection;
$this->backlogColumn = new KanbanColumn();
$this->inprogressColumn = new KanbanColumn();
$this->verificationColumn = new KanbanColumn();
$this->doneColumn = new KanbanColumn();
}
/**
@ -159,6 +194,96 @@ class Team implements JsonSerializable
return $this;
}
/**
* @return int
*/
public function getFilterId(): ?int
{
return $this->filterId;
}
/**
* @param int $filterId
* @return Team
*/
public function setFilterId(?int $filterId): Team
{
$this->filterId = $filterId;
return $this;
}
/**
* @return array|KanbanColumn
*/
public function getBacklogColumn()
{
return $this->backlogColumn;
}
/**
* @param array $backlogColumn
* @return Team
*/
public function setBacklogColumn(?array $backlogColumn): Team
{
$this->backlogColumn = $backlogColumn;
return $this;
}
/**
* @return array|KanbanColumn
*/
public function getInprogressColumn()
{
return $this->inprogressColumn;
}
/**
* @param array $inprogressColumn
* @return Team
*/
public function setInprogressColumn(array $inprogressColumn): Team
{
$this->inprogressColumn = $inprogressColumn;
return $this;
}
/**
* @return array|KanbanColumn
*/
public function getVerificationColumn()
{
return $this->verificationColumn;
}
/**
* @param array $verificationColumn
* @return Team
*/
public function setVerificationColumn(?array $verificationColumn): Team
{
$this->verificationColumn = $verificationColumn;
return $this;
}
/**
* @return array|KanbanColumn
*/
public function getDoneColumn()
{
return $this->doneColumn;
}
/**
* @param array $doneColumn
* @return Team
*/
public function setDoneColumn(?array $doneColumn): Team
{
$this->doneColumn = $doneColumn;
return $this;
}
/**
* @return bool
*/
@ -222,6 +347,11 @@ class Team implements JsonSerializable
'id' => $this->getId(),
'name' => $this->getName(),
'members' => $this->getMembers(),
'filterId' => $this->getFilterId(),
'backlogColumn' => $this->getBacklogColumn() ?? new KanbanColumn(),
'inprogressColumn' => $this->getInprogressColumn() ?? new KanbanColumn(),
'verificationColumn' => $this->getVerificationColumn() ?? new KanbanColumn(),
'doneColumn' => $this->getDoneColumn() ?? new KanbanColumn(),
'isActive' => $this->isActive(),
'createdAt' => $this->getCreatedAt()
? $this->getCreatedAt()->format("Y-m-d H:i:s")

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Form;
use App\Entity\KanbanColumn;
use Zend\Form\Annotation;
/**
@ -41,6 +42,60 @@ class Team
*/
private $members;
/**
* @Annotation\Type("Zend\Form\Element\Number")
* @Annotation\Required(true)
* @Annotation\Options({
* "label": "Jira filter id"
* })
* @var int
*/
private $filterId;
/**
* This is a dummy field, not a text actually. Only used to filter the input
* @Annotation\Type("Zend\Form\Element\Text")
* @Annotation\Required(true)
* @Annotation\Options({
* "label": "1st column"
* })
* @var KanbanColumn
*/
private $backlogColumn;
/**
* This is a dummy field, not a text actually. Only used to filter the input
* @Annotation\Type("Zend\Form\Element\Text")
* @Annotation\Required(true)
* @Annotation\Options({
* "label": "1st column"
* })
* @var KanbanColumn
*/
private $inprogressColumn;
/**
* This is a dummy field, not a text actually. Only used to filter the input
* @Annotation\Type("Zend\Form\Element\Text")
* @Annotation\Required(true)
* @Annotation\Options({
* "label": "1st column"
* })
* @var KanbanColumn
*/
private $verificationColumn;
/**
* This is a dummy field, not a text actually. Only used to filter the input
* @Annotation\Type("Zend\Form\Element\Text")
* @Annotation\Required(true)
* @Annotation\Options({
* "label": "1st column"
* })
* @var KanbanColumn
*/
private $doneColumn;
/**
* Also a dummy field, a
* @Annotation\Type("Zend\Form\Element\Text")