mirror of
https://github.com/Karaka-Management/oms-Support.git
synced 2026-01-11 00:58:41 +00:00
remove some getter/setter
This commit is contained in:
parent
aaabe2edf4
commit
3b980fd3f7
|
|
@ -6,62 +6,62 @@ use phpOMS\Account\PermissionType;
|
|||
use phpOMS\Router\RouteVerb;
|
||||
|
||||
return [
|
||||
'^.*/task(\?.*|$)' => [
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionState::TICKET,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskSet',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::MODIFY,
|
||||
'state' => PermissionState::TICKET,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskGet',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionState::TICKET,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/task/element.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionState::ELEMENT,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementSet',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::MODIFY,
|
||||
'state' => PermissionState::ELEMENT,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementGet',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => ApiController::MODULE_NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionState::TICKET,
|
||||
],
|
||||
],
|
||||
],
|
||||
// '^.*/task(\?.*|$)' => [
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskCreate',
|
||||
// 'verb' => RouteVerb::PUT,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::CREATE,
|
||||
// 'state' => PermissionState::TICKET,
|
||||
// ],
|
||||
// ],
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskSet',
|
||||
// 'verb' => RouteVerb::SET,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::MODIFY,
|
||||
// 'state' => PermissionState::TICKET,
|
||||
// ],
|
||||
// ],
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskGet',
|
||||
// 'verb' => RouteVerb::GET,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::READ,
|
||||
// 'state' => PermissionState::TICKET,
|
||||
// ],
|
||||
// ],
|
||||
// ],
|
||||
// '^.*/task/element.*$' => [
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementCreate',
|
||||
// 'verb' => RouteVerb::PUT,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::CREATE,
|
||||
// 'state' => PermissionState::ELEMENT,
|
||||
// ],
|
||||
// ],
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementSet',
|
||||
// 'verb' => RouteVerb::SET,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::MODIFY,
|
||||
// 'state' => PermissionState::ELEMENT,
|
||||
// ],
|
||||
// ],
|
||||
// [
|
||||
// 'dest' => '\Modules\Support\Controller\ApiController:apiTaskElementGet',
|
||||
// 'verb' => RouteVerb::GET,
|
||||
// 'permission' => [
|
||||
// 'module' => ApiController::MODULE_NAME,
|
||||
// 'type' => PermissionType::READ,
|
||||
// 'state' => PermissionState::TICKET,
|
||||
// ],
|
||||
// ],
|
||||
// ],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -94,14 +94,14 @@ final class ApiController extends Controller
|
|||
public function apiTicketCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateTicketCreate($request))) {
|
||||
$response->set($request->getUri()->__toString(), new FormValidation($val));
|
||||
$response->getHeader()->setStatusCode(RequestStatusCode::R_400);
|
||||
$response->set($request->uri->__toString(), new FormValidation($val));
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$task = $this->createTicketFromRequest($request);
|
||||
$this->createModel($request->getHeader()->getAccount(), $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully created.', $task);
|
||||
}
|
||||
|
||||
|
|
@ -117,15 +117,15 @@ final class ApiController extends Controller
|
|||
private function createTicketFromRequest(RequestAbstract $request) : Task
|
||||
{
|
||||
$task = new Task();
|
||||
$task->setTitle((string) ($request->getData('title') ?? ''));
|
||||
$task->setDescription(Markdown::parse((string) ($request->getData('plain') ?? '')));
|
||||
$task->setDescriptionRaw((string) ($request->getData('plain') ?? ''));
|
||||
$task->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
|
||||
$task->title = (string) ($request->getData('title') ?? '');
|
||||
$task->description = Markdown::parse((string) ($request->getData('plain') ?? ''));
|
||||
$task->descriptionRaw = (string) ($request->getData('plain') ?? '');
|
||||
$task->setCreatedBy(new NullAccount($request->header->account));
|
||||
$task->setStatus(TaskStatus::OPEN);
|
||||
$task->setType(TaskType::SINGLE);
|
||||
|
||||
if (empty($request->getData('priority'))) {
|
||||
$task->setDue(empty($request->getData('due')) ? null : new \DateTime($request->getData('due')));
|
||||
$task->due = empty($request->getData('due')) ? null : new \DateTime($request->getData('due'));
|
||||
} else {
|
||||
$task->setPriority((int) $request->getData('priority'));
|
||||
}
|
||||
|
|
@ -139,7 +139,7 @@ final class ApiController extends Controller
|
|||
|
||||
$internalResponse = new HttpResponse();
|
||||
$this->app->moduleManager->get('Tag')->apiTagCreate($request, $internalResponse, null);
|
||||
$task->addTag($internalResponse->get($request->getUri()->__toString())['response']);
|
||||
$task->addTag($internalResponse->get($request->uri->__toString())['response']);
|
||||
} else {
|
||||
$task->addTag(new NullTag((int) $tag['id']));
|
||||
}
|
||||
|
|
@ -147,9 +147,9 @@ final class ApiController extends Controller
|
|||
}
|
||||
|
||||
$element = new TaskElement();
|
||||
$element->addTo(new NullAccount((int) ($request->getData('forward') ?? $request->getHeader()->getAccount())));
|
||||
$element->setCreatedBy($task->getCreatedBy());
|
||||
$element->setDue($task->getDue());
|
||||
$element->addTo(new NullAccount((int) ($request->getData('forward') ?? $request->header->account)));
|
||||
$element->createdBy = $task->createdBy;
|
||||
$element->due = $task->due;
|
||||
$element->setPriority($task->getPriority());
|
||||
$element->setStatus(TaskStatus::OPEN);
|
||||
|
||||
|
|
@ -194,7 +194,7 @@ final class ApiController extends Controller
|
|||
{
|
||||
$old = clone TaskMapper::get((int) $request->getData('id'));
|
||||
$new = $this->updateTicketFromRequest($request);
|
||||
$this->updateModel($request->getHeader()->getAccount(), $old, $new, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->updateModel($request->header->account, $old, $new, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully updated.', $new);
|
||||
}
|
||||
|
||||
|
|
@ -210,10 +210,10 @@ final class ApiController extends Controller
|
|||
private function updateTicketFromRequest(RequestAbstract $request) : Task
|
||||
{
|
||||
$task = TaskMapper::get((int) ($request->getData('id')));
|
||||
$task->setTitle((string) ($request->getData('title') ?? $task->getTitle()));
|
||||
$task->setDescription(Markdown::parse((string) ($request->getData('plain') ?? $task->getDescriptionRaw())));
|
||||
$task->setDescriptionRaw((string) ($request->getData('plain') ?? $task->getDescriptionRaw()));
|
||||
$task->setDue(new \DateTime((string) ($request->getData('due') ?? $task->getDue()->format('Y-m-d H:i:s'))));
|
||||
$task->title = (string) ($request->getData('title') ?? $task->getTitle());
|
||||
$task->description = Markdown::parse((string) ($request->getData('plain') ?? $task->descriptionRaw));
|
||||
$task->descriptionRaw = (string) ($request->getData('plain') ?? $task->descriptionRaw);
|
||||
$task->due = new \DateTime((string) ($request->getData('due') ?? $task->getDue()->format('Y-m-d H:i:s')));
|
||||
$task->setStatus((int) ($request->getData('status') ?? $task->getStatus()));
|
||||
$task->setType((int) ($request->getData('type') ?? $task->getType()));
|
||||
$task->setPriority((int) ($request->getData('priority') ?? $task->getPriority()));
|
||||
|
|
@ -236,7 +236,7 @@ final class ApiController extends Controller
|
|||
if (($val['status'] = !TaskStatus::isValidValue((int) $request->getData('status')))
|
||||
|| ($val['due'] = !((bool) \strtotime((string) $request->getData('due'))))
|
||||
|| ($val['task'] = !(\is_numeric($request->getData('task'))))
|
||||
|| ($val['forward'] = !(\is_numeric(empty($request->getData('forward')) ? $request->getHeader()->getAccount() : $request->getData('forward'))))
|
||||
|| ($val['forward'] = !(\is_numeric(empty($request->getData('forward')) ? $request->header->account : $request->getData('forward'))))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
|
@ -261,7 +261,7 @@ final class ApiController extends Controller
|
|||
{
|
||||
if (!empty($val = $this->validateTicketElementCreate($request))) {
|
||||
$response->set('task_element_create', new FormValidation($val));
|
||||
$response->getHeader()->setStatusCode(RequestStatusCode::R_400);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -275,10 +275,10 @@ final class ApiController extends Controller
|
|||
$element = $this->createTicketElementFromRequest($request, $task);
|
||||
$task->setStatus($element->getStatus());
|
||||
$task->setPriority($element->getPriority());
|
||||
$task->setDue($element->getDue());
|
||||
$task->setDue($element->due);
|
||||
|
||||
$this->createModel($request->getHeader()->getAccount(), $element, TaskElementMapper::class, 'taskelement', $request->getOrigin());
|
||||
$this->updateModel($request->getHeader()->getAccount(), $task, $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $element, TaskElementMapper::class, 'taskelement', $request->getOrigin());
|
||||
$this->updateModel($request->header->account, $task, $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully created.', $element);
|
||||
}
|
||||
|
||||
|
|
@ -295,15 +295,15 @@ final class ApiController extends Controller
|
|||
private function createTicketElementFromRequest(RequestAbstract $request, Task $task) : TaskElement
|
||||
{
|
||||
$element = new TaskElement();
|
||||
$element->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
|
||||
$element->setDue(!empty($request->getData('due')) ? new \DateTime((string) ($request->getData('due'))) : $task->getDue());
|
||||
$element->createdBy = new NullAccount($request->header->account);
|
||||
$element->due = !empty($request->getData('due')) ? new \DateTime((string) ($request->getData('due'))) : $task->due;
|
||||
$element->setPriority((int) ($request->getData('priority') ?? $task->getPriority()));
|
||||
$element->setStatus((int) ($request->getData('status')));
|
||||
$element->setTask($task->getId());
|
||||
$element->setDescription(Markdown::parse((string) ($request->getData('plain') ?? '')));
|
||||
$element->setDescriptionRaw((string) ($request->getData('plain') ?? ''));
|
||||
$element->task = $task->getId();
|
||||
$element->description = Markdown::parse((string) ($request->getData('plain') ?? ''));
|
||||
$element->descriptionRaw = (string) ($request->getData('plain') ?? '');
|
||||
|
||||
$tos = $request->getData('to') ?? $request->getHeader()->getAccount();
|
||||
$tos = $request->getData('to') ?? $request->header->account;
|
||||
if (!\is_array($tos)) {
|
||||
$tos = [$tos];
|
||||
}
|
||||
|
|
@ -360,7 +360,7 @@ final class ApiController extends Controller
|
|||
{
|
||||
$old = clone TaskElementMapper::get((int) $request->getData('id'));
|
||||
$new = $this->updateTicketElementFromRequest($request);
|
||||
$this->updateModel($request->getHeader()->getAccount(), $old, $new, TaskElementMapper::class, 'taskelement', $request->getOrigin());
|
||||
$this->updateModel($request->header->account, $old, $new, TaskElementMapper::class, 'taskelement', $request->getOrigin());
|
||||
|
||||
/**
|
||||
* @todo Orange-Management/oms-Tasks#2
|
||||
|
|
@ -368,7 +368,7 @@ final class ApiController extends Controller
|
|||
* The task status is not normalized and relates to the last task element.
|
||||
* Depending on the task status of the last task element also the task status should change.
|
||||
*/
|
||||
//$this->updateModel($request->getHeader()->getAccount(), $task, $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
//$this->updateModel($request->header->account, $task, $task, TaskMapper::class, 'task', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully updated.', $new);
|
||||
}
|
||||
|
||||
|
|
@ -386,10 +386,10 @@ final class ApiController extends Controller
|
|||
$element = TaskElementMapper::get((int) ($request->getData('id')));
|
||||
$element->setDue(new \DateTime((string) ($request->getData('due') ?? $element->getDue()->format('Y-m-d H:i:s'))));
|
||||
$element->setStatus((int) ($request->getData('status') ?? $element->getStatus()));
|
||||
$element->setDescription(Markdown::parse((string) ($request->getData('plain') ?? $element->getDescriptionRaw())));
|
||||
$element->setDescriptionRaw((string) ($request->getData('plain') ?? $element->getDescriptionRaw()));
|
||||
$element->description = Markdown::parse((string) ($request->getData('plain') ?? $element->descriptionRaw));
|
||||
$element->descriptionRaw = (string) ($request->getData('plain') ?? $element->descriptionRaw);
|
||||
|
||||
$tos = $request->getData('to') ?? $request->getHeader()->getAccount();
|
||||
$tos = $request->getData('to') ?? $request->header->account;
|
||||
if (!\is_array($tos)) {
|
||||
$tos = [$tos];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class Issue
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private string $name = '';
|
||||
public string $name = '';
|
||||
|
||||
/**
|
||||
* Description.
|
||||
|
|
@ -86,32 +86,6 @@ class Issue
|
|||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get name/title
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getName() : string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set name/title
|
||||
*
|
||||
* @param string $name Name/title
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setName(string $name) : void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get created.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class Message
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private string $name = '';
|
||||
public string $name = '';
|
||||
|
||||
/**
|
||||
* Description.
|
||||
|
|
@ -86,32 +86,6 @@ class Message
|
|||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get name/title.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function getName() : string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set name.
|
||||
*
|
||||
* @param string $name Name/title
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function setName(string $name) : void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get created.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ echo $this->getData('nav')->render(); ?>
|
|||
<td><a href="<?= $url; ?>"><span class="tag <?= $this->printHtml($color); ?>"><?= $this->getHtml('S' . $ticket->getTask()->getStatus(), 'Tasks'); ?></span></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->getDue()->format('Y-m-d H:i')); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->getTitle()); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->getCreatedBy()->getName1()); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->getCreatedAt()->format('Y-m-d H:i')); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->createdBy->name1); ?></a>
|
||||
<td><a href="<?= $url; ?>"><?= $this->printHtml($ticket->getTask()->createdAt->format('Y-m-d H:i')); ?></a>
|
||||
<?php endforeach; if ($c == 0) : ?>
|
||||
<tr><td colspan="6" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
|
|
|
|||
|
|
@ -33,16 +33,16 @@ echo $this->getData('nav')->render(); ?>
|
|||
<header><h1><?= $this->printHtml($ticket->getTask()->getTitle()); ?></h1></header>
|
||||
<div class="inner">
|
||||
<div class="floatRight">Due <?= $this->printHtml($ticket->getTask()->getDue()->format('Y-m-d H:i')); ?></div>
|
||||
<div>Created <?= $this->printHtml($ticket->getTask()->getCreatedAt()->format('Y-m-d H:i')); ?></div>
|
||||
<div>Created <?= $this->printHtml($ticket->getTask()->createdAt->format('Y-m-d H:i')); ?></div>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<blockquote>
|
||||
<?= $this->printHtml($ticket->getTask()->getDescription()); ?>
|
||||
<?= $this->printHtml($ticket->getTask()->description); ?>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="inner">
|
||||
<div class="pAlignTable">
|
||||
<div class="vC wf-100">Created <?= $this->printHtml($ticket->getTask()->getCreatedBy()->getName1()); ?></div>
|
||||
<div class="vC wf-100">Created <?= $this->printHtml($ticket->getTask()->createdBy->name1); ?></div>
|
||||
<span class="vC nobreak tag"><?= $this->getHtml('S' . $ticket->getTask()->getStatus()); ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -57,14 +57,14 @@ echo $this->getData('nav')->render(); ?>
|
|||
elseif ($element->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; } ?>
|
||||
<section class="box wf-100">
|
||||
<div class="inner pAlignTable">
|
||||
<div class="vC wf-100"><?= $this->printHtml($element->getCreatedBy()->getName1()); ?> - <?= $this->printHtml($element->getCreatedAt()->format('Y-m-d H:i')); ?></div>
|
||||
<div class="vC wf-100"><?= $this->printHtml($element->createdBy->name1); ?> - <?= $this->printHtml($element->createdAt->format('Y-m-d H:i')); ?></div>
|
||||
<span class="vC tag <?= $this->printHtml($color); ?>"><?= $this->getHtml('S' . $element->getStatus()); ?></span>
|
||||
</div>
|
||||
|
||||
<?php if ($element->getDescription() !== '') : ?>
|
||||
<?php if ($element->description !== '') : ?>
|
||||
<div class="inner">
|
||||
<blockquote>
|
||||
<?= $this->printHtml($element->getDescription()); ?>
|
||||
<?= $this->printHtml($element->description); ?>
|
||||
</blockquote>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
|
@ -99,7 +99,7 @@ echo $this->getData('nav')->render(); ?>
|
|||
<option value="<?= $this->printHtml(\Modules\Tasks\Models\TaskStatus::DONE); ?>">Done
|
||||
</select>
|
||||
<tr><td><label for="iReceiver"><?= $this->getHtml('To'); ?></label>
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" value="<?= $this->printHtml($this->request->getHeader()->getAccount()); ?>" placeholder=" Guest">
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" value="<?= $this->printHtml($this->request->header->account); ?>" placeholder=" Guest">
|
||||
<tr><td colspan="2"><label for="iMedia"><?= $this->getHtml('Media'); ?></label>
|
||||
<tr><td><input type="text" id="iMedia" placeholder=" File"><td><button><?= $this->getHtml('Select'); ?></button>
|
||||
<tr><td colspan="2"><label for="iUpload"><?= $this->getHtml('Upload'); ?></label>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user