Bug fixes

This commit is contained in:
Dennis Eichhorn 2018-02-18 10:46:57 +01:00
parent fc8fbefe7b
commit 33618c0fcc
4 changed files with 222 additions and 38 deletions

View File

@ -22,6 +22,7 @@ use Modules\Tasks\Models\TaskElementMapper;
use Modules\Tasks\Models\TaskMapper; use Modules\Tasks\Models\TaskMapper;
use Modules\Tasks\Models\TaskStatus; use Modules\Tasks\Models\TaskStatus;
use Modules\Tasks\Models\TaskType; use Modules\Tasks\Models\TaskType;
use Modules\Tasks\Models\TaskPriority;
use Modules\Tasks\Models\PermissionState; use Modules\Tasks\Models\PermissionState;
use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\RequestStatusCode;
@ -319,6 +320,7 @@ class Controller extends ModuleAbstract implements WebInterface
$task->setDue(new \DateTime((string) ($request->getData('due') ?? 'now'))); $task->setDue(new \DateTime((string) ($request->getData('due') ?? 'now')));
$task->setStatus(TaskStatus::OPEN); $task->setStatus(TaskStatus::OPEN);
$task->setType(TaskType::SINGLE); $task->setType(TaskType::SINGLE);
$task->setPriority(TaskPriority::NONE);
$element = new TaskElement(); $element = new TaskElement();
$element->setForwarded((int) ($request->getData('forward') ?? $request->getHeader()->getAccount())); $element->setForwarded((int) ($request->getData('forward') ?? $request->getHeader()->getAccount()));
@ -409,8 +411,9 @@ class Controller extends ModuleAbstract implements WebInterface
$task->setDescription(Markdown::parse((string) ($request->getData('description') ?? $task->getDescriptionRaw()))); $task->setDescription(Markdown::parse((string) ($request->getData('description') ?? $task->getDescriptionRaw())));
$task->setDescriptionRaw((string) ($request->getData('description') ?? $task->getDescriptionRaw())); $task->setDescriptionRaw((string) ($request->getData('description') ?? $task->getDescriptionRaw()));
$task->setDue(new \DateTime((string) ($request->getData('due') ?? $task->getDue()->format('Y-m-d H:i:s')))); $task->setDue(new \DateTime((string) ($request->getData('due') ?? $task->getDue()->format('Y-m-d H:i:s'))));
$task->setStatus((int) $request->getData('status') ?? $task->getSatus()); $task->setStatus((int) ($request->getData('status') ?? $task->getStatus()));
$task->setType((int) $request->getData('type') ?? $task->getType()); $task->setType((int) ($request->getData('type') ?? $task->getType()));
$task->setPriority((int) ($request->getData('priority') ?? $task->getPriority()));
return $task; return $task;
} }

View File

@ -68,6 +68,12 @@ class Task implements \JsonSerializable
*/ */
protected $description = ''; protected $description = '';
/**
* Description raw.
*
* @var string
* @since 1.0.0
*/
protected $descriptionRaw = ''; protected $descriptionRaw = '';
/** /**
@ -134,8 +140,20 @@ class Task implements \JsonSerializable
*/ */
protected $schedule = null; protected $schedule = null;
/**
* Priority
*
* @var int
* @since 1.0.0
*/
protected $priority = TaskPriority::MEDIUM; protected $priority = TaskPriority::MEDIUM;
/**
* Media files
*
* @var array
* @since 1.0.0
*/
protected $media = []; protected $media = [];
protected $acc = []; protected $acc = [];
@ -154,11 +172,29 @@ class Task implements \JsonSerializable
$this->schedule = new Schedule(); $this->schedule = new Schedule();
} }
/**
* Set closable
*
* Setting it to false will only allow other modules to close this task
*
* @param bool $closable Is closable
*
* @return int
*
* @since 1.0.0
*/
public function setClosable(bool $closable) /* : void */ public function setClosable(bool $closable) /* : void */
{ {
$this->isClosable = $closable; $this->isClosable = $closable;
} }
/**
* Is closable
*
* @return bool
*
* @since 1.0.0
*/
public function isClosable() : bool public function isClosable() : bool
{ {
return $this->isClosable; return $this->isClosable;
@ -184,21 +220,55 @@ class Task implements \JsonSerializable
return $key; return $key;
} }
/**
* Get all media
*
* @return array
*
* @since 1.0.0
*/
public function getMedia() : array public function getMedia() : array
{ {
return $this->media; return $this->media;
} }
/**
* Add media
*
* @param mixed $media Media to add
*
* @return void
*
* @since 1.0.0
*/
public function addMedia($media) /* : void */ public function addMedia($media) /* : void */
{ {
$this->media[] = $media; $this->media[] = $media;
} }
/**
* Check if user is cc
*
* @param int $id User id
*
* @return bool
*
* @since 1.0.0
*/
public function isCc(int $id) : bool public function isCc(int $id) : bool
{ {
return false; return false;
} }
/**
* check if user is forwarded
*
* @param int $id User id
*
* @return bool
*
* @since 1.0.0
*/
public function isForwarded(int $id) : bool public function isForwarded(int $id) : bool
{ {
foreach ($this->taskElements as $element) { foreach ($this->taskElements as $element) {
@ -231,16 +301,22 @@ class Task implements \JsonSerializable
} }
/** /**
* @param \DateTime $created * Set start time of task
*
* @param \DateTime $start Start date of task
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setStart(\DateTime $start) public function setStart(\DateTime $start) /* : void */
{ {
$this->start = $start; $this->start = $start;
} }
/** /**
* Get created by
*
* @return mixed * @return mixed
* *
* @since 1.0.0 * @since 1.0.0
@ -251,17 +327,23 @@ class Task implements \JsonSerializable
} }
/** /**
* @param mixed $id * Set created by
*
* @param mixed $id Created by
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setCreatedBy($id) public function setCreatedBy($id) /* : void */
{ {
$this->createdBy = $id; $this->createdBy = $id;
$this->schedule->setCreatedBy($id); $this->schedule->setCreatedBy($id);
} }
/** /**
* Get description
*
* @return string * @return string
* *
* @since 1.0.0 * @since 1.0.0
@ -272,16 +354,22 @@ class Task implements \JsonSerializable
} }
/** /**
* @param string $description * Set description
*
* @param string $description Description
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDescription(string $description) public function setDescription(string $description) /* : void */
{ {
$this->description = $description; $this->description = $description;
} }
/** /**
* Get description
*
* @return string * @return string
* *
* @since 1.0.0 * @since 1.0.0
@ -292,7 +380,11 @@ class Task implements \JsonSerializable
} }
/** /**
* @param string $description * Set description
*
* @param string $description Description
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
@ -302,6 +394,8 @@ class Task implements \JsonSerializable
} }
/** /**
* Get done date
*
* @return \DateTime * @return \DateTime
* *
* @since 1.0.0 * @since 1.0.0
@ -312,16 +406,22 @@ class Task implements \JsonSerializable
} }
/** /**
* @param \DateTime $done * Set done date
*
* @param \DateTime $done Done date
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDone(\DateTime $done) public function setDone(\DateTime $done) /* : void */
{ {
$this->done = $done; $this->done = $done;
} }
/** /**
* Get due date
*
* @return \DateTime * @return \DateTime
* *
* @since 1.0.0 * @since 1.0.0
@ -332,16 +432,22 @@ class Task implements \JsonSerializable
} }
/** /**
* @param \DateTime $due * Set due date
*
* @param \DateTime $due Due date
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDue(\DateTime $due) public function setDue(\DateTime $due) /* : void */
{ {
$this->due = $due; $this->due = $due;
} }
/** /**
* Get id
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -352,6 +458,8 @@ class Task implements \JsonSerializable
} }
/** /**
* Get status
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -362,13 +470,17 @@ class Task implements \JsonSerializable
} }
/** /**
* @param int $status * Set status
*
* @param int $status Task status
*
* @return void
* *
* @throws InvalidEnumValue * @throws InvalidEnumValue
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setStatus(int $status) public function setStatus(int $status) /* : void */
{ {
if (!TaskStatus::isValidValue($status)) { if (!TaskStatus::isValidValue($status)) {
throw new InvalidEnumValue((string) $status); throw new InvalidEnumValue((string) $status);
@ -378,6 +490,8 @@ class Task implements \JsonSerializable
} }
/** /**
* Get priority
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -388,15 +502,19 @@ class Task implements \JsonSerializable
} }
/** /**
* @param int $priority * Set priority
*
* @param int $priority Task priority
*
* @return void
* *
* @throws InvalidEnumValue * @throws InvalidEnumValue
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setPriority(int $priority) public function setPriority(int $priority) /* : void */
{ {
if (!TaskStatus::isValidValue($priority)) { if (!TaskPriority::isValidValue($priority)) {
throw new InvalidEnumValue((string) $priority); throw new InvalidEnumValue((string) $priority);
} }
@ -404,6 +522,8 @@ class Task implements \JsonSerializable
} }
/** /**
* Get title
*
* @return string * @return string
* *
* @since 1.0.0 * @since 1.0.0
@ -414,11 +534,15 @@ class Task implements \JsonSerializable
} }
/** /**
* @param string $title * Set title
*
* @param string $title Title
*
* @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setTitle(string $title) public function setTitle(string $title) /* : void */
{ {
$this->title = $title; $this->title = $title;
} }
@ -507,6 +631,9 @@ class Task implements \JsonSerializable
return $this->schedule; return $this->schedule;
} }
/**
* {@inheritdoc}
*/
public function toArray() : array public function toArray() : array
{ {
return [ return [
@ -524,11 +651,7 @@ class Task implements \JsonSerializable
} }
/** /**
* Specify data which should be serialized to JSON * {@inheritdoc}
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
* @since 5.4.0
*/ */
public function jsonSerialize() public function jsonSerialize()
{ {

View File

@ -134,7 +134,9 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param mixed $creator * Set created by
*
* @param mixed $creator Creator
* *
* @return void * @return void
* *
@ -149,17 +151,34 @@ class TaskElement implements \JsonSerializable
} }
} }
/**
* Get all media
*
* @return array
*
* @since 1.0.0
*/
public function getMedia() : array public function getMedia() : array
{ {
return $this->media; return $this->media;
} }
/**
* Add media
*
* @param mixed $media Media to add
*
* @return void
*
* @since 1.0.0
*/
public function addMedia($media) /* : void */ public function addMedia($media) /* : void */
{ {
$this->media[] = $media; $this->media[] = $media;
} }
/** /**
* Get description
* @return string * @return string
* *
* @since 1.0.0 * @since 1.0.0
@ -170,18 +189,22 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param string $description * Set description
*
* @param string $description Description
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDescription(string $description) public function setDescription(string $description) /* : void */
{ {
$this->description = $description; $this->description = $description;
} }
/** /**
* Get description
*
* @return string * @return string
* *
* @since 1.0.0 * @since 1.0.0
@ -192,18 +215,22 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param string $description * Set description
*
* @param string $description Description
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDescriptionRaw(string $description) public function setDescriptionRaw(string $description) /* : void */
{ {
$this->descriptionRaw = $description; $this->descriptionRaw = $description;
} }
/** /**
* Get due date
*
* @return \DateTime * @return \DateTime
* *
* @since 1.0.0 * @since 1.0.0
@ -214,18 +241,22 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param \DateTime $due * Set due date
*
* @param \DateTime $due Due date
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setDue(\DateTime $due) public function setDue(\DateTime $due) /* : void */
{ {
$this->due = $due; $this->due = $due;
} }
/** /**
* Get forwarded
*
* @return mixed * @return mixed
* *
* @since 1.0.0 * @since 1.0.0
@ -236,18 +267,22 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param mixed $forwarded * Set forwarded
*
* @param mixed $forwarded Forward to
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setForwarded($forwarded) public function setForwarded($forwarded) /* : void */
{ {
$this->forwarded = $forwarded; $this->forwarded = $forwarded;
} }
/** /**
* Get id
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -258,6 +293,8 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* Get status
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -268,7 +305,9 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param int $status * Set Status
*
* @param int $status Task element status
* *
* @return void * @return void
* *
@ -276,7 +315,7 @@ class TaskElement implements \JsonSerializable
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setStatus(int $status) public function setStatus(int $status) /* : void */
{ {
if (!TaskStatus::isValidValue($status)) { if (!TaskStatus::isValidValue($status)) {
throw new InvalidEnumValue((string) $status); throw new InvalidEnumValue((string) $status);
@ -286,6 +325,8 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* Get task id
*
* @return int * @return int
* *
* @since 1.0.0 * @since 1.0.0
@ -296,7 +337,9 @@ class TaskElement implements \JsonSerializable
} }
/** /**
* @param int $task * Set task i
*
* @param int $task Task id
* *
* @return void * @return void
* *
@ -307,6 +350,9 @@ class TaskElement implements \JsonSerializable
$this->task = $task; $this->task = $task;
} }
/**
* {@inheritdoc}
*/
public function toArray() : array public function toArray() : array
{ {
return [ return [
@ -321,6 +367,9 @@ class TaskElement implements \JsonSerializable
]; ];
} }
/**
* {@inheritdoc}
*/
public function jsonSerialize() public function jsonSerialize()
{ {
return $this->toArray(); return $this->toArray();

View File

@ -129,6 +129,15 @@ class TaskMapper extends DataMapperAbstract
protected static $primaryField = 'task_id'; protected static $primaryField = 'task_id';
/**
* Count unread task
*
* @param int $user User
*
* @return int
*
* @since 1.0.0
*/
public static function countUnread(int $user) : int public static function countUnread(int $user) : int
{ {
try { try {