dbms_init...1
This commit is contained in:
parent
4bb3c3ab6b
commit
9b667afc11
@ -26,7 +26,16 @@ class ServiceItemController extends CustomerController
|
|||||||
// $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
|
// $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
protected function initAction(string $action): void
|
||||||
|
{
|
||||||
|
parent::initAction($action);
|
||||||
|
//LINE,IP,SERVER등 추가 FilterOption 셋팅용
|
||||||
|
foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
|
||||||
|
$options = $this->getService()->getServiceItemLinkService($item_type)->getEntities();
|
||||||
|
$this->setFieldRule($item_type, $this->getFormFieldRule($this->getAction(), $item_type));
|
||||||
|
$this->setFilterFieldOption($item_type, $options);
|
||||||
|
}
|
||||||
|
}
|
||||||
public function getService(): ServiceItemService
|
public function getService(): ServiceItemService
|
||||||
{
|
{
|
||||||
if (!$this->_service) {
|
if (!$this->_service) {
|
||||||
@ -51,6 +60,8 @@ class ServiceItemController extends CustomerController
|
|||||||
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
|
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
|
||||||
{
|
{
|
||||||
switch ($this->getAction()) {
|
switch ($this->getAction()) {
|
||||||
|
case 'create_form':
|
||||||
|
case 'modify_form':
|
||||||
case 'index':
|
case 'index':
|
||||||
$result = parent::getResultSuccess($message, $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'popup');
|
$result = parent::getResultSuccess($message, $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'popup');
|
||||||
break;
|
break;
|
||||||
@ -79,19 +90,11 @@ class ServiceItemController extends CustomerController
|
|||||||
}
|
}
|
||||||
//Index,FieldForm관련
|
//Index,FieldForm관련
|
||||||
|
|
||||||
protected function create_form_process(): void
|
//item_type에 따른 item_uid 값 가져오기
|
||||||
{
|
private function setItemUID(ServiceEntity $serviceEntity, array $formDatas): array
|
||||||
//LINE,IP,SERVER등 추가 FilterOption 셋팅용
|
|
||||||
foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
|
|
||||||
$options = $this->getService()->getServiceItemLinkService($item_type)->getEntities();
|
|
||||||
$this->setFilterFieldOption($item_type, $options);
|
|
||||||
}
|
|
||||||
parent::create_form_process();
|
|
||||||
}
|
|
||||||
|
|
||||||
//도메인의 경우 domaininfo에 등록 후 ServiceItemEntity의 item_uid에 넣고 create해야함
|
|
||||||
private function createDomain(ServiceEntity $serviceEntity, array $formDatas): array
|
|
||||||
{
|
{
|
||||||
|
switch ($formDatas['item_type']) {
|
||||||
|
case 'DOMAIN':
|
||||||
//DomainService에 먼저 create후 결과 uid를 item_uid로 전달함
|
//DomainService에 먼저 create후 결과 uid를 item_uid로 전달함
|
||||||
$equipmentEntity = $this->getService()->getServiceItemLinkService($formDatas['item_type'])->create([
|
$equipmentEntity = $this->getService()->getServiceItemLinkService($formDatas['item_type'])->create([
|
||||||
'clientinfo_uid' => $serviceEntity->getClientUID(),
|
'clientinfo_uid' => $serviceEntity->getClientUID(),
|
||||||
@ -99,6 +102,8 @@ class ServiceItemController extends CustomerController
|
|||||||
]);
|
]);
|
||||||
//도메인용 항목의 item_uid로 전달함
|
//도메인용 항목의 item_uid로 전달함
|
||||||
$formDatas['item_uid'] = $equipmentEntity->getPK();
|
$formDatas['item_uid'] = $equipmentEntity->getPK();
|
||||||
|
break;
|
||||||
|
}
|
||||||
return $formDatas;
|
return $formDatas;
|
||||||
}
|
}
|
||||||
protected function create_process(array $formDatas): ServiceItemEntity
|
protected function create_process(array $formDatas): ServiceItemEntity
|
||||||
@ -107,30 +112,8 @@ class ServiceItemController extends CustomerController
|
|||||||
if (!$serviceEntity) {
|
if (!$serviceEntity) {
|
||||||
throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다.");
|
throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다.");
|
||||||
}
|
}
|
||||||
// item_type이 도메인의 경우 domaininfo에 등록 후 ServiceItemEntity의 item_uid에 넣고 create해야함
|
//item_type에 따른 item_uid 값 가져오기 반드시 Validation 전에 정의해야함
|
||||||
if ($formDatas['item_type'] === 'DOMAIN') {
|
$formDatas = $this->setItemUID($serviceEntity, $formDatas);
|
||||||
$formDatas = $this->createDomain($serviceEntity, $formDatas);
|
|
||||||
}
|
|
||||||
return parent::create_process($formDatas);
|
return parent::create_process($formDatas);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function modify_form_process(mixed $entity): mixed
|
|
||||||
{
|
|
||||||
//LINE,IP,SERVER등 추가 FilterOption 셋팅용
|
|
||||||
foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
|
|
||||||
$options = $this->getService()->getServiceItemLinkService($item_type)->getEntities();
|
|
||||||
$this->setFilterFieldOption($item_type, $options);
|
|
||||||
}
|
|
||||||
return parent::modify_form_process($entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function index_process(): array
|
|
||||||
{
|
|
||||||
//LINE,IP,SERVER등 추가 FilterOption 셋팅용
|
|
||||||
foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
|
|
||||||
$options = $this->getService()->getServiceItemLinkService($item_type)->getEntities();
|
|
||||||
$this->setFilterFieldOption($item_type, $options);
|
|
||||||
}
|
|
||||||
return parent::index_process();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -211,6 +211,7 @@ abstract class CommonController extends BaseController
|
|||||||
foreach ($rules as $field => $rule) {
|
foreach ($rules as $field => $rule) {
|
||||||
$validation = $this->setValidation($validation, $field, $rule);
|
$validation = $this->setValidation($validation, $field, $rule);
|
||||||
}
|
}
|
||||||
|
// dd($formDatas);
|
||||||
if (!$validation->run($formDatas)) {
|
if (!$validation->run($formDatas)) {
|
||||||
throw new \Exception("{$this->getService()->getClassName()} 작업 데이터 검증 오류발생\n" . implode(
|
throw new \Exception("{$this->getService()->getClassName()} 작업 데이터 검증 오류발생\n" . implode(
|
||||||
"\n",
|
"\n",
|
||||||
|
|||||||
@ -23,18 +23,20 @@ class ServiceItemHelper extends CustomerHelper
|
|||||||
if (in_array($viewDatas['control']['action'], ['create', 'modify', 'create_form', 'modify_form'])) {
|
if (in_array($viewDatas['control']['action'], ['create', 'modify', 'create_form', 'modify_form'])) {
|
||||||
$extras = (strpos($viewDatas['control']['field_rules'][$field], 'required') !== false) ? ["class" => "form-control", "required" => "", ...$extras] : ["class" => "form-control", ...$extras];
|
$extras = (strpos($viewDatas['control']['field_rules'][$field], 'required') !== false) ? ["class" => "form-control", "required" => "", ...$extras] : ["class" => "form-control", ...$extras];
|
||||||
}
|
}
|
||||||
switch ($viewDatas['item_type']) {
|
$item_type = $viewDatas['item_type'];
|
||||||
|
//Field는 item_uid이지만 , item_tpe에 따라 filter_options가 달라진다.
|
||||||
|
switch ($item_type) {
|
||||||
case 'DOMAIN':
|
case 'DOMAIN':
|
||||||
if (in_array($viewDatas['control']['action'], ['create', 'modify', 'create_form', 'modify_form'])) {
|
if (in_array($viewDatas['control']['action'], ['create', 'modify', 'create_form', 'modify_form'])) {
|
||||||
$form = form_input($field, $value ?? "", ["placeholder" => "예)example.com", ...$extras]);
|
$form = form_input($field, $value ?? "", ["placeholder" => "예)example.com", ...$extras]);
|
||||||
} else {
|
} else {
|
||||||
if (!is_array($viewDatas['control']['filter_optons'][$field])) {
|
if (!is_array($viewDatas['control']['filter_optons'][$item_type])) {
|
||||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
throw new \Exception(__METHOD__ . "에서 {$item_type}의 field_options가 array형태가 아닙니다.");
|
||||||
}
|
}
|
||||||
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
||||||
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
||||||
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $field) . " 선택</option>";
|
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $item_type) . " 선택</option>";
|
||||||
foreach ($viewDatas['control']['filter_optons'][$field] as $key => $filterEntity) {
|
foreach ($viewDatas['control']['filter_optons'][$item_type] as $key => $filterEntity) {
|
||||||
$disabled = in_array($filterEntity->getStatus(), [DomainEntity::STATUS_OCCUPIED, DomainEntity::STATUS_FORBIDDEN]) ? 'disabled="disabled"' : '';
|
$disabled = in_array($filterEntity->getStatus(), [DomainEntity::STATUS_OCCUPIED, DomainEntity::STATUS_FORBIDDEN]) ? 'disabled="disabled"' : '';
|
||||||
$selected = ($value === $key) ? 'selected="selected"' : '';
|
$selected = ($value === $key) ? 'selected="selected"' : '';
|
||||||
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
||||||
@ -42,6 +44,7 @@ class ServiceItemHelper extends CustomerHelper
|
|||||||
$form_temps[] = '</select>';
|
$form_temps[] = '</select>';
|
||||||
$form = implode("", $form_temps);
|
$form = implode("", $form_temps);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case "LINE":
|
case "LINE":
|
||||||
case "SERVER":
|
case "SERVER":
|
||||||
case "CPU":
|
case "CPU":
|
||||||
@ -49,13 +52,14 @@ class ServiceItemHelper extends CustomerHelper
|
|||||||
case "STORAGE":
|
case "STORAGE":
|
||||||
case "SOFTWARE":
|
case "SOFTWARE":
|
||||||
case "DEFENCE":
|
case "DEFENCE":
|
||||||
if (!is_array($viewDatas['control']['filter_optons'][$field])) {
|
// dd($viewDatas['control']['filter_optons']);
|
||||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
if (!is_array($viewDatas['control']['filter_optons'][$item_type])) {
|
||||||
|
throw new \Exception(__METHOD__ . "에서 {$item_type}의 field_options가 array형태가 아닙니다.");
|
||||||
}
|
}
|
||||||
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
||||||
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
||||||
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $field) . " 선택</option>";
|
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $item_type) . " 선택</option>";
|
||||||
foreach ($viewDatas['control']['filter_optons'][$field] as $key => $filterEntity) {
|
foreach ($viewDatas['control']['filter_optons'][$item_type] as $key => $filterEntity) {
|
||||||
$disabled = '';
|
$disabled = '';
|
||||||
$selected = ($value === $key) ? 'selected="selected"' : '';
|
$selected = ($value === $key) ? 'selected="selected"' : '';
|
||||||
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
||||||
@ -64,20 +68,19 @@ class ServiceItemHelper extends CustomerHelper
|
|||||||
$form = implode("", $form_temps);
|
$form = implode("", $form_temps);
|
||||||
break;
|
break;
|
||||||
case "IP":
|
case "IP":
|
||||||
if (!is_array($viewDatas['control']['filter_optons'][$field])) {
|
if (!is_array($viewDatas['control']['filter_optons'][$item_type])) {
|
||||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
throw new \Exception(__METHOD__ . "에서 {$item_type}의 field_options가 array형태가 아닙니다.");
|
||||||
}
|
}
|
||||||
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
//CodeIgniter 4의 form_dropdown()은 options 배열로만 값을 받기 때문에, disabled 속성 같은 개별 옵션에 대한 HTML 속성 추가는 기본적으로 지원하지 않습니다.
|
||||||
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
$form_temps = ["<select name=\"{$field}\" class=\"select-field\"" . (isset($extras['onChange']) ? " onChange=\"{$extras['onChange']}\"" : "") . ">"];
|
||||||
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $field) . " 선택</option>";
|
$form_temps[] = "<option value=\"\">" . lang($viewDatas['class_path'] . '.label.' . $item_type) . " 선택</option>";
|
||||||
foreach ($viewDatas['control']['filter_optons'][$field] as $key => $filterEntity) {
|
foreach ($viewDatas['control']['filter_optons'][$item_type] as $key => $filterEntity) {
|
||||||
$disabled = in_array($filterEntity->getStatus(), [IpEntity::STATUS_OCCUPIED, IpEntity::STATUS_FORBIDDEN]) ? 'disabled="disabled"' : '';
|
$disabled = in_array($filterEntity->getStatus(), [IpEntity::STATUS_OCCUPIED, IpEntity::STATUS_FORBIDDEN]) ? 'disabled="disabled"' : '';
|
||||||
$selected = ($value === $key) ? 'selected="selected"' : '';
|
$selected = ($value === $key) ? 'selected="selected"' : '';
|
||||||
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
$form_temps[] = "<option value=\"{$key}\"{$selected} {$disabled}>{$filterEntity->getTitle()}</option>";
|
||||||
}
|
}
|
||||||
$form_temps[] = '</select>';
|
$form_temps[] = '</select>';
|
||||||
$form = implode("", $form_temps);
|
$form = implode("", $form_temps);
|
||||||
//dd($viewDatas['occupied_ips']);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
||||||
@ -92,7 +95,7 @@ class ServiceItemHelper extends CustomerHelper
|
|||||||
}
|
}
|
||||||
switch ($field) {
|
switch ($field) {
|
||||||
case 'item_uid':
|
case 'item_uid':
|
||||||
$form = $this->getFieldFormByItemType($this->getRequest()->getVar('item_type'), $value, $viewDatas, $extras);
|
$form = $this->getFieldFormByItemType($field, $value, $viewDatas, $extras);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
||||||
|
|||||||
@ -40,32 +40,50 @@ abstract class CustomerService extends CommonService
|
|||||||
if (!array_key_exists($key, $this->_equipmentService)) {
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
switch ($key) {
|
switch ($key) {
|
||||||
case 'SERVER':
|
case 'SERVER':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new ServerService();
|
$this->_equipmentService[$key] = new ServerService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'CPU':
|
case 'CPU':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new CpuService();
|
$this->_equipmentService[$key] = new CpuService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'RAM':
|
case 'RAM':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new RamService();
|
$this->_equipmentService[$key] = new RamService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'STORAGE':
|
case 'STORAGE':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new StorageService();
|
$this->_equipmentService[$key] = new StorageService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'LINE':
|
case 'LINE':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new LineService();
|
$this->_equipmentService[$key] = new LineService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'IP':
|
case 'IP':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
// $this->_equipmentService[$key] = new ServiceItemIpService();
|
// $this->_equipmentService[$key] = new ServiceItemIpService();
|
||||||
$this->_equipmentService[$key] = new IpService();
|
$this->_equipmentService[$key] = new IpService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'DEFENCE':
|
case 'DEFENCE':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new DefenceService();
|
$this->_equipmentService[$key] = new DefenceService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'SOFTWARE':
|
case 'SOFTWARE':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new SoftwareService();
|
$this->_equipmentService[$key] = new SoftwareService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'DOMAIN':
|
case 'DOMAIN':
|
||||||
|
if (!array_key_exists($key, $this->_equipmentService)) {
|
||||||
$this->_equipmentService[$key] = new DomainService();
|
$this->_equipmentService[$key] = new DomainService();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new \Exception(__FUNCTION__ . "에서 사용하지않는 Service를 요청하였습니다.: {$key}");
|
throw new \Exception(__FUNCTION__ . "에서 사용하지않는 Service를 요청하였습니다.: {$key}");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user