Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 20 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 1 |
TaskView | |
0.00% |
0 / 20 |
|
0.00% |
0 / 3 |
110 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
getAccountImage | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
12 | |||
getStatus | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
42 |
1 | <?php |
2 | /** |
3 | * Jingga |
4 | * |
5 | * PHP Version 8.1 |
6 | * |
7 | * @package Modules\Tasks |
8 | * @copyright Dennis Eichhorn |
9 | * @license OMS License 2.0 |
10 | * @version 1.0.0 |
11 | * @link https://jingga.app |
12 | */ |
13 | declare(strict_types=1); |
14 | |
15 | namespace Modules\Tasks\Views; |
16 | |
17 | use Modules\Media\Models\Media; |
18 | use Modules\Media\Models\NullMedia; |
19 | use Modules\Profile\Models\ProfileMapper; |
20 | use Modules\Tasks\Models\TaskStatus; |
21 | use phpOMS\Localization\L11nManager; |
22 | use phpOMS\Message\RequestAbstract; |
23 | use phpOMS\Message\ResponseAbstract; |
24 | use phpOMS\Uri\UriFactory; |
25 | use phpOMS\Views\View; |
26 | |
27 | /** |
28 | * Task view class. |
29 | * |
30 | * @package Modules\Tasks |
31 | * @license OMS License 2.0 |
32 | * @link https://jingga.app |
33 | * @since 1.0.0 |
34 | */ |
35 | class TaskView extends View |
36 | { |
37 | /** |
38 | * User profile image. |
39 | * |
40 | * @var Media |
41 | * @since 1.0.0 |
42 | */ |
43 | public Media $defaultProfileImage; |
44 | |
45 | /** |
46 | * Constructor |
47 | * |
48 | * @since 1.0.0 |
49 | */ |
50 | public function __construct(L11nManager $l11n = null, RequestAbstract $request = null, ResponseAbstract $response = null) |
51 | { |
52 | $this->defaultProfileImage = new NullMedia(); |
53 | parent::__construct($l11n, $request, $response); |
54 | } |
55 | |
56 | /** |
57 | * Get the profile image |
58 | * |
59 | * If the profile doesn't have an image a random default image is used |
60 | * |
61 | * @param int $account Account |
62 | * |
63 | * @return string |
64 | * |
65 | * @since 1.0.0 |
66 | */ |
67 | public function getAccountImage(int $account) : string |
68 | { |
69 | /** @var \Modules\Profile\Models\Profile $profile */ |
70 | $profile = ProfileMapper::get() |
71 | ->with('image') |
72 | ->where('account', $account) |
73 | ->execute(); |
74 | |
75 | if ($profile->id === 0 || $profile->image->getPath() === '') { |
76 | return UriFactory::build($this->defaultProfileImage->getPath()); |
77 | } |
78 | |
79 | return UriFactory::build($profile->image->getPath()); |
80 | } |
81 | |
82 | /** |
83 | * Get task status color. |
84 | * |
85 | * @param int $status Status |
86 | * |
87 | * @return string |
88 | * |
89 | * @since 1.0.0 |
90 | */ |
91 | public function getStatus(int $status) : string |
92 | { |
93 | if ($status === TaskStatus::OPEN) { |
94 | return 'darkblue'; |
95 | } elseif ($status === TaskStatus::DONE) { |
96 | return 'green'; |
97 | } elseif ($status === TaskStatus::WORKING) { |
98 | return 'purple'; |
99 | } elseif ($status === TaskStatus::CANCELED) { |
100 | return 'red'; |
101 | } elseif ($status === TaskStatus::SUSPENDED) { |
102 | return 'yellow'; |
103 | } |
104 | |
105 | return 'black'; |
106 | } |
107 | } |