mirror of
https://github.com/Karaka-Management/oms-Organization.git
synced 2026-02-16 16:28:41 +00:00
bug fixes
This commit is contained in:
parent
97d19d1f49
commit
876f897c0e
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user