mirror of
https://github.com/Karaka-Management/oms-Tasks.git
synced 2026-02-17 23:28:42 +00:00
ui fixes
This commit is contained in:
parent
6378eed239
commit
66aa098313
|
|
@ -8,7 +8,7 @@
|
||||||
"value_type": "int",
|
"value_type": "int",
|
||||||
"is_custom_allowed": false,
|
"is_custom_allowed": false,
|
||||||
"validation_pattern": "",
|
"validation_pattern": "",
|
||||||
"is_required": true,
|
"is_required": false,
|
||||||
"default_value": "",
|
"default_value": "",
|
||||||
"values": [
|
"values": [
|
||||||
{
|
{
|
||||||
|
|
@ -19,5 +19,126 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "item",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Item",
|
||||||
|
"de": "Artikel"
|
||||||
|
},
|
||||||
|
"value_type": "int",
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lot_external",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Lot/SN External",
|
||||||
|
"de": "Charge/SN Extern"
|
||||||
|
},
|
||||||
|
"value_type": "int",
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lot_internal",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Lot/SN",
|
||||||
|
"de": "Charge/SN"
|
||||||
|
},
|
||||||
|
"value_type": "int",
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "justified",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Justified",
|
||||||
|
"de": "Berechtigt"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "recall",
|
||||||
|
"l11n": {
|
||||||
|
"en": "Recall",
|
||||||
|
"de": "Rückruf"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "measure",
|
||||||
|
"l11n": {
|
||||||
|
"en": "measure",
|
||||||
|
"de": "Maßnahme"
|
||||||
|
},
|
||||||
|
"value_type": 1,
|
||||||
|
"is_custom_allowed": true,
|
||||||
|
"validation_pattern": "",
|
||||||
|
"is_required": false,
|
||||||
|
"default_value": "",
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"l11n": {
|
||||||
|
"en": "None",
|
||||||
|
"de": "Keine"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 2,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Other",
|
||||||
|
"de": "Sonstige"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 3,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Replace",
|
||||||
|
"de": "Austausch"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 4,
|
||||||
|
"l11n": {
|
||||||
|
"en": "Discount",
|
||||||
|
"de": "Nachlass"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -109,6 +109,14 @@
|
||||||
"name": "task_created_at",
|
"name": "task_created_at",
|
||||||
"type": "DATETIME",
|
"type": "DATETIME",
|
||||||
"null": false
|
"null": false
|
||||||
|
},
|
||||||
|
"task_unit": {
|
||||||
|
"name": "task_unit",
|
||||||
|
"type": "INT",
|
||||||
|
"null": true,
|
||||||
|
"default": null,
|
||||||
|
"foreignTable": "unit",
|
||||||
|
"foreignKey": "unit_id"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskCreate',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskCreate',
|
||||||
'verb' => RouteVerb::PUT,
|
'verb' => RouteVerb::PUT,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::CREATE,
|
'type' => PermissionType::CREATE,
|
||||||
|
|
@ -33,6 +34,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskSet',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskSet',
|
||||||
'verb' => RouteVerb::SET,
|
'verb' => RouteVerb::SET,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::MODIFY,
|
'type' => PermissionType::MODIFY,
|
||||||
|
|
@ -43,6 +45,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskGet',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskGet',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
@ -55,6 +58,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskReminderCreate',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskReminderCreate',
|
||||||
'verb' => RouteVerb::PUT,
|
'verb' => RouteVerb::PUT,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::CREATE,
|
'type' => PermissionType::CREATE,
|
||||||
|
|
@ -67,6 +71,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementCreate',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementCreate',
|
||||||
'verb' => RouteVerb::PUT,
|
'verb' => RouteVerb::PUT,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::CREATE,
|
'type' => PermissionType::CREATE,
|
||||||
|
|
@ -77,6 +82,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementSet',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementSet',
|
||||||
'verb' => RouteVerb::SET,
|
'verb' => RouteVerb::SET,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::MODIFY,
|
'type' => PermissionType::MODIFY,
|
||||||
|
|
@ -87,6 +93,7 @@ return [
|
||||||
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementGet',
|
'dest' => '\Modules\Tasks\Controller\ApiController:apiTaskElementGet',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
'csrf' => true,
|
'csrf' => true,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => ApiController::NAME,
|
'module' => ApiController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ return [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskDashboard',
|
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskDashboard',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => BackendController::NAME,
|
'module' => BackendController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
@ -33,6 +34,7 @@ return [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskList',
|
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskList',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => BackendController::NAME,
|
'module' => BackendController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
@ -44,6 +46,7 @@ return [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskView',
|
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskView',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => BackendController::NAME,
|
'module' => BackendController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
@ -55,6 +58,7 @@ return [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskCreate',
|
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskCreate',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => BackendController::NAME,
|
'module' => BackendController::NAME,
|
||||||
'type' => PermissionType::CREATE,
|
'type' => PermissionType::CREATE,
|
||||||
|
|
@ -66,6 +70,7 @@ return [
|
||||||
[
|
[
|
||||||
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskAnalysis',
|
'dest' => '\Modules\Tasks\Controller\BackendController:viewTaskAnalysis',
|
||||||
'verb' => RouteVerb::GET,
|
'verb' => RouteVerb::GET,
|
||||||
|
'active' => true,
|
||||||
'permission' => [
|
'permission' => [
|
||||||
'module' => BackendController::NAME,
|
'module' => BackendController::NAME,
|
||||||
'type' => PermissionType::READ,
|
'type' => PermissionType::READ,
|
||||||
|
|
|
||||||
|
|
@ -463,6 +463,7 @@ final class ApiController extends Controller
|
||||||
$task->status = TaskStatus::OPEN;
|
$task->status = TaskStatus::OPEN;
|
||||||
$task->type = TaskType::tryFromValue($request->getDataInt('type')) ?? TaskType::SINGLE;
|
$task->type = TaskType::tryFromValue($request->getDataInt('type')) ?? TaskType::SINGLE;
|
||||||
$task->redirect = $request->getDataString('redirect') ?? '';
|
$task->redirect = $request->getDataString('redirect') ?? '';
|
||||||
|
$task->unit = $request->getDataInt('unit');
|
||||||
|
|
||||||
if ($request->hasData('due')) {
|
if ($request->hasData('due')) {
|
||||||
$task->due = $request->getDataDateTime('due');
|
$task->due = $request->getDataDateTime('due');
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ use Modules\Dashboard\Models\DashboardElementInterface;
|
||||||
use Modules\Media\Models\MediaMapper;
|
use Modules\Media\Models\MediaMapper;
|
||||||
use Modules\Profile\Models\SettingsEnum;
|
use Modules\Profile\Models\SettingsEnum;
|
||||||
use Modules\Tasks\Models\AccountRelationMapper;
|
use Modules\Tasks\Models\AccountRelationMapper;
|
||||||
|
use Modules\Tasks\Models\Attribute\TaskAttributeTypeMapper;
|
||||||
use Modules\Tasks\Models\PermissionCategory;
|
use Modules\Tasks\Models\PermissionCategory;
|
||||||
use Modules\Tasks\Models\TaskElementMapper;
|
use Modules\Tasks\Models\TaskElementMapper;
|
||||||
use Modules\Tasks\Models\TaskMapper;
|
use Modules\Tasks\Models\TaskMapper;
|
||||||
|
|
@ -289,8 +290,15 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
->with('taskElements/media')
|
->with('taskElements/media')
|
||||||
->with('taskElements/accRelation')
|
->with('taskElements/accRelation')
|
||||||
->with('taskElements/accRelation/relation')
|
->with('taskElements/accRelation/relation')
|
||||||
|
->with('attributes')
|
||||||
|
->with('attributes/type')
|
||||||
|
->with('attributes/type/l11n')
|
||||||
|
->with('attributes/value')
|
||||||
|
->with('attributes/value/l11n')
|
||||||
->where('id', (int) $request->getData('id'))
|
->where('id', (int) $request->getData('id'))
|
||||||
->where('tags/title/language', $request->header->l11n->language)
|
->where('tags/title/language', $request->header->l11n->language)
|
||||||
|
->where('attributes/type/l11n/language', $response->header->l11n->language)
|
||||||
|
->where('attributes/value/l11n/language', [$response->header->l11n->language, null])
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$accountId = $request->header->account;
|
$accountId = $request->header->account;
|
||||||
|
|
@ -306,6 +314,11 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
return $view;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$view->data['attributeTypes'] = TaskAttributeTypeMapper::getAll()
|
||||||
|
->with('l11n')
|
||||||
|
->where('l11n/language', $response->header->l11n->language)
|
||||||
|
->executeGetArray();
|
||||||
|
|
||||||
$reminderStatus = [];
|
$reminderStatus = [];
|
||||||
|
|
||||||
// Set task as seen
|
// Set task as seen
|
||||||
|
|
@ -350,11 +363,12 @@ final class BackendController extends Controller implements DashboardElementInte
|
||||||
$view->data['task'] = $task;
|
$view->data['task'] = $task;
|
||||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response);
|
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response);
|
||||||
|
|
||||||
$accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response);
|
$view->data['accGrpSelector'] = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response);
|
||||||
$view->data['accGrpSelector'] = $accGrpSelector;
|
|
||||||
|
|
||||||
$editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response);
|
$view->data['editor'] = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response);
|
||||||
$view->data['editor'] = $editor;
|
|
||||||
|
$view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response);
|
||||||
|
$view->data['attributeView']->data['default_localization'] = $this->app->l11nServer;
|
||||||
|
|
||||||
return $view;
|
return $view;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ use Modules\Admin\Models\AccountMapper;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* AccountRelation mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\Tasks\Models
|
* @package Modules\Tasks\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ use Modules\Admin\Models\GroupMapper;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* GroupRelation mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\Tasks\Models
|
* @package Modules\Tasks\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
|
||||||
|
|
@ -208,6 +208,8 @@ class Task implements \JsonSerializable
|
||||||
*/
|
*/
|
||||||
public ?Account $for = null;
|
public ?Account $for = null;
|
||||||
|
|
||||||
|
public ?int $unit = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ use Modules\Media\Models\MediaMapper;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* TaskElement mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\Tasks\Models
|
* @package Modules\Tasks\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ use phpOMS\DataStorage\Database\Query\Builder;
|
||||||
use phpOMS\DataStorage\Database\Query\Where;
|
use phpOMS\DataStorage\Database\Query\Where;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* Task mapper class.
|
||||||
*
|
*
|
||||||
* @package Modules\Tasks\Models
|
* @package Modules\Tasks\Models
|
||||||
* @license OMS License 2.0
|
* @license OMS License 2.0
|
||||||
|
|
@ -63,6 +63,7 @@ final class TaskMapper extends DataMapperFactory
|
||||||
'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
|
'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
|
||||||
'task_for' => ['name' => 'task_for', 'type' => 'int', 'internal' => 'for'],
|
'task_for' => ['name' => 'task_for', 'type' => 'int', 'internal' => 'for'],
|
||||||
'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
||||||
|
'task_unit' => ['name' => 'task_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,17 @@ $cElements = \count($elements);
|
||||||
$color = $this->getStatus($task->status);
|
$color = $this->getStatus($task->status);
|
||||||
|
|
||||||
echo $this->data['nav']->render(); ?>
|
echo $this->data['nav']->render(); ?>
|
||||||
|
<div class="tabview tab-2">
|
||||||
<div class="row">
|
<div class="box">
|
||||||
|
<ul class="tab-links">
|
||||||
|
<li><label for="c-tab-1"><?= $this->getHtml('Task'); ?></label>
|
||||||
|
<li><label for="c-tab-2"><?= $this->getHtml('Attributes', 'Attribute', 'Backend'); ?></label>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tab-content">
|
||||||
|
<input type="radio" id="c-tab-1" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
|
||||||
|
<div class="tab">
|
||||||
|
<div class="row">
|
||||||
<div class="col-md-6 col-xs-12">
|
<div class="col-md-6 col-xs-12">
|
||||||
<?php if (!empty($this->data['reminder'])) : ?>
|
<?php if (!empty($this->data['reminder'])) : ?>
|
||||||
<section class="portlet hl-4">
|
<section class="portlet hl-4">
|
||||||
|
|
@ -427,4 +436,22 @@ echo $this->data['nav']->render(); ?>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="radio" id="c-tab-2" name="tabular-2" checked>
|
||||||
|
<div class="tab">
|
||||||
|
<div class="row">
|
||||||
|
<?= $this->data['attributeView']->render(
|
||||||
|
$task->attributes,
|
||||||
|
$this->data['attributeTypes'] ?? [],
|
||||||
|
$this->data['units'] ?? [],
|
||||||
|
'{/api}task/attribute?csrf={$CSRF}',
|
||||||
|
$task->id
|
||||||
|
);
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user