bug fixes
Some checks are pending
Image optimization / general_image_workflow (push) Waiting to run
CI / general_module_workflow_php (push) Waiting to run
CI / general_module_workflow_js (push) Waiting to run

This commit is contained in:
Dennis Eichhorn 2024-10-11 19:17:41 +00:00
parent 97d19d1f49
commit 876f897c0e
7 changed files with 298 additions and 66 deletions

View File

@ -104,7 +104,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $attribute['name'] ?? ''); $request->setData('name', $attribute['name'] ?? '');
$request->setData('title', \reset($attribute['l11n'])); $request->setData('content', \reset($attribute['l11n']));
$request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en');
$request->setData('repeatable', $attribute['repeatable'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false);
$request->setData('internal', $attribute['internal'] ?? false); $request->setData('internal', $attribute['internal'] ?? false);
@ -136,9 +136,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $unitAttrType[$attribute['name']]['id']); $request->setData('ref', $unitAttrType[$attribute['name']]['id']);
$module->apiUnitAttributeTypeL11nCreate($request, $response); $module->apiUnitAttributeTypeL11nCreate($request, $response);
} }
@ -181,7 +181,7 @@ final class Installer extends InstallerAbstract
$request->setData('type', $unitAttrType[$attribute['name']]['id']); $request->setData('type', $unitAttrType[$attribute['name']]['id']);
if (isset($value['l11n']) && !empty($value['l11n'])) { if (isset($value['l11n']) && !empty($value['l11n'])) {
$request->setData('title', \reset($value['l11n'])); $request->setData('content', \reset($value['l11n']));
$request->setData('language', \array_keys($value['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($value['l11n'])[0] ?? 'en');
} }
@ -209,9 +209,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('value', $attrValue['id']); $request->setData('ref', $attrValue['id']);
$module->apiUnitAttributeValueL11nCreate($request, $response); $module->apiUnitAttributeValueL11nCreate($request, $response);
} }
@ -246,7 +246,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $attribute['name'] ?? ''); $request->setData('name', $attribute['name'] ?? '');
$request->setData('title', \reset($attribute['l11n'])); $request->setData('content', \reset($attribute['l11n']));
$request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en');
$request->setData('repeatable', $attribute['repeatable'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false);
$request->setData('internal', $attribute['internal'] ?? false); $request->setData('internal', $attribute['internal'] ?? false);
@ -278,9 +278,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $addressAttrType[$attribute['name']]['id']); $request->setData('ref', $addressAttrType[$attribute['name']]['id']);
$module->apiAddressAttributeTypeL11nCreate($request, $response); $module->apiAddressAttributeTypeL11nCreate($request, $response);
} }
@ -323,7 +323,7 @@ final class Installer extends InstallerAbstract
$request->setData('type', $addressAttrType[$attribute['name']]['id']); $request->setData('type', $addressAttrType[$attribute['name']]['id']);
if (isset($value['l11n']) && !empty($value['l11n'])) { if (isset($value['l11n']) && !empty($value['l11n'])) {
$request->setData('title', \reset($value['l11n'])); $request->setData('content', \reset($value['l11n']));
$request->setData('language', \array_keys($value['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($value['l11n'])[0] ?? 'en');
} }
@ -351,9 +351,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('value', $attrValue['id']); $request->setData('ref', $attrValue['id']);
$module->apiAddressAttributeValueL11nCreate($request, $response); $module->apiAddressAttributeValueL11nCreate($request, $response);
} }

View File

@ -185,7 +185,79 @@ return [
], ],
], ],
'^.*/organization/find/unit(\?.*$|$)' => [ '^.*/organization/unit/contact(\?.*|$)' => [
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitContactCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitContactUpdate',
'verb' => RouteVerb::SET,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitContactDelete',
'verb' => RouteVerb::DELETE,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
],
'^.*/organization/unit/address(\?.*|$)' => [
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitAddressCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitAddressUpdate',
'verb' => RouteVerb::SET,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
[
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitAddressDelete',
'verb' => RouteVerb::DELETE,
'csrf' => true,
'active' => true,
'permission' => [
'module' => ApiController::NAME,
'type' => PermissionType::MODIFY,
'state' => PermissionCategory::UNIT,
],
],
],
'^.*/organization/unit/find(\?.*$|$)' => [
[ [
'dest' => '\Modules\Organization\Controller\ApiController:apiUnitFind', 'dest' => '\Modules\Organization\Controller\ApiController:apiUnitFind',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -198,7 +270,7 @@ return [
], ],
], ],
], ],
'^.*/organization/find/department(\?.*$|$)' => [ '^.*/organization/department/find(\?.*$|$)' => [
[ [
'dest' => '\Modules\Organization\Controller\ApiController:apiDepartmentFind', 'dest' => '\Modules\Organization\Controller\ApiController:apiDepartmentFind',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -211,7 +283,7 @@ return [
], ],
], ],
], ],
'^.*/organization/find/position(\?.*$|$)' => [ '^.*/organization/position/find(\?.*$|$)' => [
[ [
'dest' => '\Modules\Organization\Controller\ApiController:apiPositionFind', 'dest' => '\Modules\Organization\Controller\ApiController:apiPositionFind',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,

View File

@ -17,9 +17,7 @@ namespace Modules\Organization\Controller;
use Model\Setting; use Model\Setting;
use Model\SettingMapper; use Model\SettingMapper;
use Modules\Admin\Models\AddressMapper; use Modules\Admin\Models\AddressMapper;
use Modules\Admin\Models\Contact;
use Modules\Admin\Models\ContactMapper; use Modules\Admin\Models\ContactMapper;
use Modules\Admin\Models\ContactType;
use Modules\Admin\Models\SettingsEnum as ModelsSettingsEnum; use Modules\Admin\Models\SettingsEnum as ModelsSettingsEnum;
use Modules\Media\Models\PathSettings; use Modules\Media\Models\PathSettings;
use Modules\Organization\Models\Department; use Modules\Organization\Models\Department;
@ -39,7 +37,6 @@ use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Stdlib\Base\Address;
use phpOMS\Stdlib\Base\NullAddress; use phpOMS\Stdlib\Base\NullAddress;
use phpOMS\System\MimeType; use phpOMS\System\MimeType;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
@ -67,9 +64,9 @@ final class ApiController extends Controller
{ {
$val = []; $val = [];
if (($val['name'] = !$request->hasData('name')) if (($val['name'] = !$request->hasData('name'))
|| ($val['parent'] = ( || ($val['unit'] = (
$request->hasData('parent') $request->hasData('unit')
&& !\is_numeric($request->getData('parent')) && !\is_numeric($request->getData('unit'))
)) ))
|| ($val['status'] = ( || ($val['status'] = (
!$request->hasData('status') !$request->hasData('status')
@ -139,7 +136,7 @@ final class ApiController extends Controller
$unit->descriptionRaw = $request->getDataString('description') ?? $unit->descriptionRaw; $unit->descriptionRaw = $request->getDataString('description') ?? $unit->descriptionRaw;
$unit->description = Markdown::parse($request->getDataString('description') ?? $unit->descriptionRaw); $unit->description = Markdown::parse($request->getDataString('description') ?? $unit->descriptionRaw);
$parent = $request->getDataInt('parent') ?? 0; $parent = $request->getDataInt('unit') ?? 0;
$unit->parent = $parent === 0 ? $unit->parent : new NullUnit($parent); $unit->parent = $parent === 0 ? $unit->parent : new NullUnit($parent);
$unit->status = Status::tryFromValue($request->getDataInt('status')) ?? $unit->status; $unit->status = Status::tryFromValue($request->getDataInt('status')) ?? $unit->status;
@ -314,10 +311,10 @@ final class ApiController extends Controller
$unit->descriptionRaw = $request->getDataString('description') ?? ''; $unit->descriptionRaw = $request->getDataString('description') ?? '';
$unit->description = Markdown::parse($request->getDataString('description') ?? ''); $unit->description = Markdown::parse($request->getDataString('description') ?? '');
$unit->parent = new NullUnit((int) $request->getData('parent')); $unit->parent = new NullUnit((int) $request->getData('unit'));
$unit->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE; $unit->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE;
if ($request->hasData('address')) { if ($request->hasData('address') || $request->hasData('legal')) {
$request->setData('name', $request->getDataString('legal') ?? $request->getDataString('name'), true); $request->setData('name', $request->getDataString('legal') ?? $request->getDataString('name'), true);
$unit->mainAddress = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request); $unit->mainAddress = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request);
} }
@ -325,6 +322,68 @@ final class ApiController extends Controller
return $unit; return $unit;
} }
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiUnitAddressCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
$address = $this->app->moduleManager->get('Admin', 'Api')->createAddressFromRequest($request);
$this->createModel($request->header->account, $address, AddressMapper::class, 'unit_address', $request->getOrigin());
$this->createModelRelation(
$request->header->account,
(int) $request->getData('unit'),
$address->id,
UnitMapper::class, 'address', '', $request->getOrigin()
);
}
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiUnitAddressUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
$this->app->moduleManager->get('Admin', 'Api')->apiAddressUpdate($request);
}
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiUnitAddressDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
$this->app->moduleManager->get('Admin', 'Api')->apiAddressDelete($request);
}
/** /**
* Routing end-point for application behavior. * Routing end-point for application behavior.
* *
@ -382,9 +441,9 @@ final class ApiController extends Controller
{ {
$val = []; $val = [];
if (($val['name'] = !$request->hasData('name')) if (($val['name'] = !$request->hasData('name'))
|| ($val['parent'] = ( || ($val['position'] = (
$request->hasData('parent') $request->hasData('position')
&& !\is_numeric($request->getData('parent')) && !\is_numeric($request->getData('position'))
)) ))
|| ($val['status'] = ( || ($val['status'] = (
!$request->hasData('status') !$request->hasData('status')
@ -475,7 +534,7 @@ final class ApiController extends Controller
$position->descriptionRaw = $request->getDataString('description') ?? $position->descriptionRaw; $position->descriptionRaw = $request->getDataString('description') ?? $position->descriptionRaw;
$position->description = Markdown::parse($request->getDataString('description') ?? $position->descriptionRaw); $position->description = Markdown::parse($request->getDataString('description') ?? $position->descriptionRaw);
$parent = (int) $request->getData('parent'); $parent = (int) $request->getData('position');
$position->parent = empty($parent) ? $position->parent : new NullPosition($parent); $position->parent = empty($parent) ? $position->parent : new NullPosition($parent);
$department = (int) $request->getData('department'); $department = (int) $request->getData('department');
@ -539,7 +598,7 @@ final class ApiController extends Controller
$position->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE; $position->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE;
$position->descriptionRaw = $request->getDataString('description') ?? ''; $position->descriptionRaw = $request->getDataString('description') ?? '';
$position->description = Markdown::parse($request->getDataString('description') ?? ''); $position->description = Markdown::parse($request->getDataString('description') ?? '');
$position->parent = new NullPosition((int) $request->getData('parent')); $position->parent = new NullPosition((int) $request->getData('position'));
$position->department = new NullDepartment((int) $request->getData('department')); $position->department = new NullDepartment((int) $request->getData('department'));
return $position; return $position;
@ -558,9 +617,9 @@ final class ApiController extends Controller
{ {
$val = []; $val = [];
if (($val['name'] = !$request->hasData('name')) if (($val['name'] = !$request->hasData('name'))
|| ($val['parent'] = ( || ($val['department'] = (
$request->hasData('parent') $request->hasData('department')
&& !\is_numeric($request->getData('parent')) && !\is_numeric($request->getData('department'))
)) ))
|| ($val['unit'] = ( || ($val['unit'] = (
!\is_numeric($request->getData('unit')) !\is_numeric($request->getData('unit'))
@ -629,7 +688,7 @@ final class ApiController extends Controller
$department->descriptionRaw = $request->getDataString('description') ?? $department->descriptionRaw; $department->descriptionRaw = $request->getDataString('description') ?? $department->descriptionRaw;
$department->description = Markdown::parse($request->getDataString('description') ?? $department->descriptionRaw); $department->description = Markdown::parse($request->getDataString('description') ?? $department->descriptionRaw);
$parent = (int) $request->getData('parent'); $parent = (int) $request->getData('department');
$department->parent = empty($parent) ? $department->parent : new NullDepartment($parent); $department->parent = empty($parent) ? $department->parent : new NullDepartment($parent);
$department->status = Status::tryFromValue($request->getDataInt('status')) ?? $department->status; $department->status = Status::tryFromValue($request->getDataInt('status')) ?? $department->status;
@ -713,7 +772,7 @@ final class ApiController extends Controller
$department->name = (string) $request->getData('name'); $department->name = (string) $request->getData('name');
$department->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE; $department->status = Status::tryFromValue($request->getDataInt('status')) ?? Status::ACTIVE;
$department->parent = new NullDepartment((int) $request->getData('parent')); $department->parent = new NullDepartment((int) $request->getData('department'));
$department->unit = new NullUnit($request->getDataInt('unit') ?? 1); $department->unit = new NullUnit($request->getDataInt('unit') ?? 1);
$department->descriptionRaw = $request->getDataString('description') ?? ''; $department->descriptionRaw = $request->getDataString('description') ?? '';
$department->description = Markdown::parse($request->getDataString('description') ?? ''); $department->description = Markdown::parse($request->getDataString('description') ?? '');
@ -738,7 +797,7 @@ final class ApiController extends Controller
{ {
/** @var \Modules\Organization\Models\Unit[] $units */ /** @var \Modules\Organization\Models\Unit[] $units */
$units = UnitMapper::getAll() $units = UnitMapper::getAll()
->where('name', '%' . ($request->getDataString('search') ?? '') . '%', 'LIKE') ->where('name', '%' . ($request->getDataString('unit') ?? '') . '%', 'LIKE')
->executeGetArray(); ->executeGetArray();
$response->header->set('Content-Type', MimeType::M_JSON, true); $response->header->set('Content-Type', MimeType::M_JSON, true);
@ -765,7 +824,7 @@ final class ApiController extends Controller
{ {
/** @var \Modules\Organization\Models\Department[] $departments */ /** @var \Modules\Organization\Models\Department[] $departments */
$departments = DepartmentMapper::getAll() $departments = DepartmentMapper::getAll()
->where('name', '%' . ($request->getDataString('search') ?? '') . '%', 'LIKE') ->where('name', '%' . ($request->getDataString('department') ?? '') . '%', 'LIKE')
->executeGetArray(); ->executeGetArray();
$response->header->set('Content-Type', MimeType::M_JSON, true); $response->header->set('Content-Type', MimeType::M_JSON, true);
@ -792,7 +851,7 @@ final class ApiController extends Controller
{ {
/** @var \Modules\Organization\Models\Position[] $positions */ /** @var \Modules\Organization\Models\Position[] $positions */
$positions = PositionMapper::getAll() $positions = PositionMapper::getAll()
->where('name', '%' . ($request->getDataString('search') ?? '') . '%', 'LIKE') ->where('name', '%' . ($request->getDataString('position') ?? '') . '%', 'LIKE')
->executeGetArray(); ->executeGetArray();
$response->header->set('Content-Type', MimeType::M_JSON, true); $response->header->set('Content-Type', MimeType::M_JSON, true);
@ -824,7 +883,7 @@ final class ApiController extends Controller
return; return;
} }
$contact = $this->createUnitContactFromRequest($request); $contact = $this->app->moduleManager->get('Admin', 'Api')->createContactFromRequest($request);
$this->createModel($request->header->account, $contact, ContactMapper::class, 'unit_contact', $request->getOrigin()); $this->createModel($request->header->account, $contact, ContactMapper::class, 'unit_contact', $request->getOrigin());
$this->createModelRelation( $this->createModelRelation(
@ -837,6 +896,42 @@ final class ApiController extends Controller
$this->createStandardCreateResponse($request, $response, $contact); $this->createStandardCreateResponse($request, $response, $contact);
} }
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiUnitContactUpdate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
$this->app->moduleManager->get('Admin', 'Api')->apiContactUpdate($request);
}
/**
* Routing end-point for application behavior.
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiUnitContactDelete(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{
$this->app->moduleManager->get('Admin', 'Api')->apiContactDelete($request);
}
/** /**
* Validate contact element create request * Validate contact element create request
* *
@ -858,24 +953,4 @@ final class ApiController extends Controller
return []; return [];
} }
/**
* Method to create a account element from request.
*
* @param RequestAbstract $request Request
*
* @return Contact
*
* @since 1.0.0
*/
public function createUnitContactFromRequest(RequestAbstract $request) : Contact
{
/** @var Contact $element */
$element = new Contact();
$element->type = ContactType::tryFromValue($request->getDataInt('type')) ?? ContactType::EMAIL;
$element->subtype = $request->getDataInt('subtype') ?? 0;
$element->content = $request->getDataString('content') ?? '';
return $element;
}
} }

View File

@ -39,12 +39,39 @@ echo $this->data['nav']->render(); ?>
<div class="form-group"> <div class="form-group">
<label for="iParent"><?= $this->getHtml('Parent'); ?></label> <label for="iParent"><?= $this->getHtml('Parent'); ?></label>
<?= $this->getData('department-selector')->render('iParent', 'parent', false); ?> <div id="iParentSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/department/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="department"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="iUnit"><?= $this->getHtml('Unit'); ?></label> <label for="iUnit"><?= $this->getHtml('Unit'); ?></label>
<?= $this->getData('unit-selector')->render('iUnit', 'unit', false); ?> <div id="iUnitSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/unit/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="unit"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"
data-required="1"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@ -41,12 +41,38 @@ echo $this->data['nav']->render(); ?>
<div class="form-group"> <div class="form-group">
<label for="iParent"><?= $this->getHtml('Parent'); ?></label> <label for="iParent"><?= $this->getHtml('Parent'); ?></label>
<?= $this->getData('position-selector')->render('iParent', 'parent', false); ?> <div id="iParentSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/position/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="position"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="iDepartment"><?= $this->getHtml('Department'); ?></label> <label for="iDepartment"><?= $this->getHtml('Department'); ?></label>
<?= $this->getData('department-selector')->render('iDepartment', 'department', false); ?> <div id="iDepartmentSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/department/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="department"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@ -39,7 +39,20 @@ echo $this->data['nav']->render(); ?>
<div class="form-group"> <div class="form-group">
<label for="iParent"><?= $this->getHtml('Parent'); ?></label> <label for="iParent"><?= $this->getHtml('Parent'); ?></label>
<?= $this->getData('unit-selector')->render('iParent', 'parent', false); ?> <div id="iParentSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/unit/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="unit"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">

View File

@ -70,7 +70,20 @@ echo $this->data['nav']->render(); ?>
<div class="form-group"> <div class="form-group">
<label for="iParent"><?= $this->getHtml('Parent'); ?></label> <label for="iParent"><?= $this->getHtml('Parent'); ?></label>
<?= $this->getData('unit-selector')->render('iParent', 'parent', false); ?> <div id="iParentSelector" class="smart-input-wrapper" data-src="<?= UriFactory::build('{/api}organization/unit/find?csrf={$CSRF}'); ?>">
<div
data-value=""
data-name="unit"
data-limit="10"
data-container=""
class="input-div"
contenteditable="true"></div>
<template class="input-data-tpl">
<div data-value="" data-tpl-value="/id" data-tpl-text="/name"></div>
</template>
<div class="input-datalist input-datalist-body vh" data-active="true">
</div>
</div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -157,8 +170,14 @@ echo $this->data['nav']->render(); ?>
<?php if (!$isNew) : ?> <?php if (!$isNew) : ?>
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>> <input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
<div class="tab"> <div class="tab">
<?= $this->data['contact-component']->render('unit-contact', 'contacts', $unit->contacts); ?> <?= $this->data['contact-component']->render(
<?= $this->data['address-component']->render('unit-address', 'addresses', $unit->address); ?> 'unit-contact', 'contacts', $unit->contacts,
'unit', $unit->id, '{/api}organization/unit/contact?csrf={$CSRF}'
); ?>
<?= $this->data['address-component']->render(
'unit-address', 'address', $unit->address,
'unit', $unit->id, '{/api}organization/unit/address?csrf={$CSRF}'
); ?>
</div> </div>
<?php endif; ?> <?php endif; ?>
</div> </div>