diff --git a/app/Config/Routes.php b/app/Config/Routes.php index bb36cf4..71e5436 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -106,38 +106,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au $routes->post('batchjob_delete', 'ServiceController::batchjob_delete'); $routes->get('download/(:alpha)', 'ServiceController::download/$1'); }); - $routes->group('link', ['namespace' => 'App\Controllers\Admin\Customer\Link'], function ($routes) { - $routes->group('cpu', ['namespace' => 'App\Controllers\Admin\Customer\Link'], function ($routes) { - $routes->get('/', 'CpuController::index', []); - $routes->get('create', 'CpuController::create_form'); - $routes->post('create', 'CpuController::create'); - $routes->get('modify/(:num)', 'CpuController::modify_form/$1'); - $routes->post('modify/(:num)', 'CpuController::modify/$1'); - $routes->get('view/(:num)', 'CpuController::view/$1'); - $routes->get('delete/(:num)', 'CpuController::delete/$1'); - $routes->get('toggle/(:num)/(:any)', 'CpuController::toggle/$1/$2'); - }); - $routes->group('ram', ['namespace' => 'App\Controllers\Admin\Customer\Link'], function ($routes) { - $routes->get('/', 'RamController::index', []); - $routes->get('create', 'RamController::create_form'); - $routes->post('create', 'RamController::create'); - $routes->get('modify/(:num)', 'RamController::modify_form/$1'); - $routes->post('modify/(:num)', 'RamController::modify/$1'); - $routes->get('view/(:num)', 'RamController::view/$1'); - $routes->get('delete/(:num)', 'RamController::delete/$1'); - $routes->get('toggle/(:num)/(:any)', 'RamController::toggle/$1/$2'); - }); - $routes->group('disk', ['namespace' => 'App\Controllers\Admin\Customer\Link'], function ($routes) { - $routes->get('/', 'DiskController::index', []); - $routes->get('create', 'DiskController::create_form'); - $routes->post('create', 'DiskController::create'); - $routes->get('modify/(:num)', 'DiskController::modify_form/$1'); - $routes->post('modify/(:num)', 'DiskController::modify/$1'); - $routes->get('view/(:num)', 'DiskController::view/$1'); - $routes->get('delete/(:num)', 'DiskController::delete/$1'); - $routes->get('toggle/(:num)/(:any)', 'DiskController::toggle/$1/$2'); - }); - }); }); $routes->group('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) { $routes->group('line', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) { @@ -238,6 +206,68 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au }); }); $routes->group('link', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->group('line', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->get('/', 'LineController::index', []); + $routes->get('create', 'LineController::create_form'); + $routes->post('create', 'LineController::create'); + $routes->get('modify/(:num)', 'LineController::modify_form/$1'); + $routes->post('modify/(:num)', 'LineController::modify/$1'); + $routes->get('view/(:num)', 'LineController::view/$1'); + $routes->get('delete/(:num)', 'LineController::delete/$1'); + $routes->get('toggle/(:num)/(:any)', 'LineController::toggle/$1/$2'); + }); + $routes->group('ip', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->get('/', 'IpController::index', []); + $routes->get('create', 'IpController::create_form'); + $routes->post('create', 'IpController::create'); + $routes->get('modify/(:num)', 'IpController::modify_form/$1'); + $routes->post('modify/(:num)', 'IpController::modify/$1'); + $routes->get('view/(:num)', 'IpController::view/$1'); + $routes->get('delete/(:num)', 'IpController::delete/$1'); + $routes->get('toggle/(:num)/(:any)', 'IpController::toggle/$1/$2'); + $routes->post('batchjob', 'IpController::batchjob'); + $routes->post('batchjob_delete', 'IpController::batchjob_delete'); + $routes->get('download/(:alpha)', 'IpController::download/$1'); + }); + $routes->group('defence', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->get('/', 'DefenceController::index', []); + $routes->get('create', 'DefenceController::create_form'); + $routes->post('create', 'DefenceController::create'); + $routes->get('modify/(:num)', 'DefenceController::modify_form/$1'); + $routes->post('modify/(:num)', 'DefenceController::modify/$1'); + $routes->get('view/(:num)', 'DefenceController::view/$1'); + $routes->get('delete/(:num)', 'DefenceController::delete/$1'); + $routes->get('toggle/(:num)/(:any)', 'DefenceController::toggle/$1/$2'); + $routes->post('batchjob', 'DefenceController::batchjob'); + $routes->post('batchjob_delete', 'DefenceController::batchjob_delete'); + $routes->get('download/(:alpha)', 'DefenceController::download/$1'); + }); + $routes->group('software', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->get('/', 'SoftwareController::index', []); + $routes->get('create', 'SoftwareController::create_form'); + $routes->post('create', 'SoftwareController::create'); + $routes->get('modify/(:num)', 'SoftwareController::modify_form/$1'); + $routes->post('modify/(:num)', 'SoftwareController::modify/$1'); + $routes->get('view/(:num)', 'SoftwareController::view/$1'); + $routes->get('delete/(:num)', 'SoftwareController::delete/$1'); + $routes->get('toggle/(:num)/(:any)', 'SoftwareController::toggle/$1/$2'); + $routes->post('batchjob', 'SoftwareController::batchjob'); + $routes->post('batchjob_delete', 'SoftwareController::batchjob_delete'); + $routes->get('download/(:alpha)', 'SoftwareController::download/$1'); + }); + $routes->group('domain', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { + $routes->get('/', 'DomainController::index', []); + $routes->get('create', 'DomainController::create_form'); + $routes->post('create', 'DomainController::create'); + $routes->get('modify/(:num)', 'DomainController::modify_form/$1'); + $routes->post('modify/(:num)', 'DomainController::modify/$1'); + $routes->get('view/(:num)', 'DomainController::view/$1'); + $routes->get('delete/(:num)', 'DomainController::delete/$1'); + $routes->get('toggle/(:num)/(:any)', 'DomainController::toggle/$1/$2'); + $routes->post('batchjob', 'DomainController::batchjob'); + $routes->post('batchjob_delete', 'DomainController::batchjob_delete'); + $routes->get('download/(:alpha)', 'DomainController::download/$1'); + }); $routes->group('cpu', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) { $routes->get('/', 'CpuController::index', []); $routes->get('create', 'CpuController::create_form'); diff --git a/app/Controllers/Admin/Equipment/EquipmentController.php b/app/Controllers/Admin/Equipment/EquipmentController.php index ac46585..30e3416 100644 --- a/app/Controllers/Admin/Equipment/EquipmentController.php +++ b/app/Controllers/Admin/Equipment/EquipmentController.php @@ -3,95 +3,15 @@ namespace App\Controllers\Admin\Equipment; use App\Controllers\Admin\AdminController; -use App\Services\Customer\ClientService; -use App\Services\Customer\ServiceService; -use App\Services\Equipment\LineService; - -use App\Services\Equipment\ServerService; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; abstract class EquipmentController extends AdminController { - private ?ClientService $_clientService = null; - private ?LineService $_lineService = null; - private ?ServerService $_serverService = null; - private ?ServiceService $_serviceService = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); } - final public function getClientService(): ClientService - { - if (!$this->_clientService) { - $this->_clientService = new ClientService($this->request); - } - return $this->_clientService; - } - final public function getServiceService(): ServiceService - { - if (!$this->_serviceService) { - $this->_serviceService = new ServiceService($this->request); - } - return $this->_serviceService; - } - - final public function getLineService(): LineService - { - if (!$this->_lineService) { - $this->_lineService = new LineService($this->request); - } - return $this->_lineService; - } - final public function getServerService(): ServerService - { - if (!$this->_serverService) { - $this->_serverService = new ServerService($this->request); - } - return $this->_serverService; - } - - protected function getFormFieldOption(string $field, array $options): array - { - switch ($field) { - case 'clientinfo_uid': - $temps = []; - foreach ($this->getClientService()->getEntities() as $entity) { - $temps[$entity->getPK()] = $entity->getTitle(); - } - $options[$field] = $temps; - // dd($options); - break; - case 'serviceinfo_uid': - $temps = []; - foreach ($this->getServiceService()->getEntities() as $entity) { - $temps[$entity->getPK()] = $entity->getTitle(); - } - $options[$field] = $temps; - // dd($options); - break; - case 'lineinfo_uid': - $temps = []; - foreach ($this->getLineService()->getEntities() as $entity) { - $temps[$entity->getPK()] = $entity->getTitle(); - } - $options[$field] = $temps; - // dd($options); - break; - case 'serverinfo_uid': - $temps = []; - foreach ($this->getServerService()->getEntities() as $entity) { - $temps[$entity->getPK()] = $entity->getTitle(); - } - $options[$field] = $temps; - // dd($options); - break; - default: - $options = parent::getFormFieldOption($field, $options); - break; - } - return $options; - } //Index,FieldForm관련 } diff --git a/app/Controllers/Admin/Equipment/Link/DefenceController.php b/app/Controllers/Admin/Equipment/Link/DefenceController.php new file mode 100644 index 0000000..6975deb --- /dev/null +++ b/app/Controllers/Admin/Equipment/Link/DefenceController.php @@ -0,0 +1,57 @@ +title = lang("{$this->getService()->getClassName()}.title"); + $this->class_path .= $this->getService()->getClassName(); + $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; + // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; + + } + public function getService(): DefenceService + { + if (!$this->_service) { + $this->_service = new DefenceService($this->request); + } + return $this->_service; + } + public function getHelper(): DefenceHelper + { + if (!$this->_helper) { + $this->_helper = new DefenceHelper($this->request); + } + return $this->_helper; + } + public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService($this->request); + } + return $this->_partService; + } + //Index,FieldForm관련 + + protected function index_process(): array + { + $fields = [ + 'fields' => ['serverinfo_uid', 'defenceinfo_uid'], + ]; + // dd($fields); + $this->init('index', $fields); + return parent::index_process(); + } +} diff --git a/app/Controllers/Admin/Equipment/Link/DomainController.php b/app/Controllers/Admin/Equipment/Link/DomainController.php new file mode 100644 index 0000000..c352dcb --- /dev/null +++ b/app/Controllers/Admin/Equipment/Link/DomainController.php @@ -0,0 +1,57 @@ +title = lang("{$this->getService()->getClassName()}.title"); + $this->class_path .= $this->getService()->getClassName(); + $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; + // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; + + } + public function getService(): DomainService + { + if (!$this->_service) { + $this->_service = new DomainService($this->request); + } + return $this->_service; + } + public function getHelper(): DomainHelper + { + if (!$this->_helper) { + $this->_helper = new DomainHelper($this->request); + } + return $this->_helper; + } + public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService($this->request); + } + return $this->_partService; + } + //Index,FieldForm관련 + + protected function index_process(): array + { + $fields = [ + 'fields' => ['serverinfo_uid', 'domaininfo_uid'], + ]; + // dd($fields); + $this->init('index', $fields); + return parent::index_process(); + } +} diff --git a/app/Controllers/Admin/Equipment/Link/IpController.php b/app/Controllers/Admin/Equipment/Link/IpController.php new file mode 100644 index 0000000..7158b68 --- /dev/null +++ b/app/Controllers/Admin/Equipment/Link/IpController.php @@ -0,0 +1,57 @@ +title = lang("{$this->getService()->getClassName()}.title"); + $this->class_path .= $this->getService()->getClassName(); + $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; + // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; + + } + public function getService(): IpService + { + if (!$this->_service) { + $this->_service = new IpService($this->request); + } + return $this->_service; + } + public function getHelper(): IpHelper + { + if (!$this->_helper) { + $this->_helper = new IpHelper($this->request); + } + return $this->_helper; + } + public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService($this->request); + } + return $this->_partService; + } + //Index,FieldForm관련 + + protected function index_process(): array + { + $fields = [ + 'fields' => ['serverinfo_uid', 'ipinfo_uid'], + ]; + // dd($fields); + $this->init('index', $fields); + return parent::index_process(); + } +} diff --git a/app/Controllers/Admin/Equipment/Link/LineController.php b/app/Controllers/Admin/Equipment/Link/LineController.php new file mode 100644 index 0000000..e92a343 --- /dev/null +++ b/app/Controllers/Admin/Equipment/Link/LineController.php @@ -0,0 +1,57 @@ +title = lang("{$this->getService()->getClassName()}.title"); + $this->class_path .= $this->getService()->getClassName(); + $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; + // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; + + } + public function getService(): LineService + { + if (!$this->_service) { + $this->_service = new LineService($this->request); + } + return $this->_service; + } + public function getHelper(): LineHelper + { + if (!$this->_helper) { + $this->_helper = new LineHelper($this->request); + } + return $this->_helper; + } + public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService($this->request); + } + return $this->_partService; + } + //Index,FieldForm관련 + + protected function index_process(): array + { + $fields = [ + 'fields' => ['serverinfo_uid', 'lineinfo_uid'], + ]; + // dd($fields); + $this->init('index', $fields); + return parent::index_process(); + } +} diff --git a/app/Controllers/Admin/Equipment/Link/LinkController.php b/app/Controllers/Admin/Equipment/Link/LinkController.php index 3998194..2bbe444 100644 --- a/app/Controllers/Admin/Equipment/Link/LinkController.php +++ b/app/Controllers/Admin/Equipment/Link/LinkController.php @@ -9,12 +9,22 @@ use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use App\Services\Equipment\ServerService; + abstract class LinkController extends EquipmentController { + private ?ServerService $_serverService = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); } + final public function getServerService(): ServerService + { + if (!$this->_serverService) { + $this->_serverService = new ServerService($this->request); + } + return $this->_serverService; + } abstract public function getPartService(): mixed; protected function setOrderByForList() @@ -41,6 +51,14 @@ abstract class LinkController extends EquipmentController protected function getFormFieldOption(string $field, array $options): array { switch ($field) { + case 'serverinfo_uid': + $temps = []; + foreach ($this->getServerService()->getEntities() as $entity) { + $temps[$entity->getPK()] = $entity->getTitle(); + } + $options[$field] = $temps; + // dd($options); + break; case 'cpuinfo_uid': case 'raminfo_uid': case 'diskinfo_uid': diff --git a/app/Controllers/Admin/Equipment/Link/SoftwareController.php b/app/Controllers/Admin/Equipment/Link/SoftwareController.php new file mode 100644 index 0000000..843f33f --- /dev/null +++ b/app/Controllers/Admin/Equipment/Link/SoftwareController.php @@ -0,0 +1,57 @@ +title = lang("{$this->getService()->getClassName()}.title"); + $this->class_path .= $this->getService()->getClassName(); + $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; + // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; + + } + public function getService(): SoftwareService + { + if (!$this->_service) { + $this->_service = new SoftwareService($this->request); + } + return $this->_service; + } + public function getHelper(): SoftwareHelper + { + if (!$this->_helper) { + $this->_helper = new SoftwareHelper($this->request); + } + return $this->_helper; + } + public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService($this->request); + } + return $this->_partService; + } + //Index,FieldForm관련 + + protected function index_process(): array + { + $fields = [ + 'fields' => ['serverinfo_uid', 'softwareinfo_uid'], + ]; + // dd($fields); + $this->init('index', $fields); + return parent::index_process(); + } +} diff --git a/app/Controllers/Admin/Equipment/DefenceController.php b/app/Controllers/Admin/Equipment/Part/DefenceController.php similarity index 88% rename from app/Controllers/Admin/Equipment/DefenceController.php rename to app/Controllers/Admin/Equipment/Part/DefenceController.php index 481c013..69cc51a 100644 --- a/app/Controllers/Admin/Equipment/DefenceController.php +++ b/app/Controllers/Admin/Equipment/Part/DefenceController.php @@ -1,15 +1,15 @@ _helper; } - final public function getCpuService(): CpuService + final public function getClientService(): ClientService { - if (!$this->_cpuService) { - $this->_cpuService = new CpuService($this->request); + if (!$this->_clientService) { + $this->_clientService = new ClientService($this->request); } - return $this->_cpuService; + return $this->_clientService; } - final public function getRamService(): RamService + final public function getAdapterService(string $key): mixed { - if (!$this->_ramService) { - $this->_ramService = new RamService($this->request); + if (!array_key_exists($key, $this->_adapterService)) { + switch ($key) { + case 'CPU': + $this->_adapterService[$key] = new CpuService(); + break; + case 'RAM': + $this->_adapterService[$key] = new RamService(); + break; + case 'DISK': + $this->_adapterService[$key] = new DiskService(); + break; + case 'LINE': + $this->_adapterService[$key] = new LineService(); + break; + case 'IP': + $this->_adapterService[$key] = new IpService(); + break; + case 'DEFENCE': + $this->_adapterService[$key] = new DefenceService(); + break; + case 'SOFTWARE': + $this->_adapterService[$key] = new SoftwareService(); + break; + case 'DOMAIN': + $this->_adapterService[$key] = new DomainService(); + break; + default: + throw new \Exception("Unknown adapter service key: {$key}"); + } } - return $this->_ramService; + return $this->_adapterService[$key]; } - final public function getDiskService(): DiskService + protected function getFormFieldOption(string $field, array $options): array { - if (!$this->_diskService) { - $this->_diskService = new DiskService($this->request); + switch ($field) { + case 'clientinfo_uid': + $temps = []; + foreach ($this->getClientService()->getEntities() as $entity) { + $temps[$entity->getPK()] = $entity->getTitle(); + } + $options[$field] = $temps; + break; + case 'lineinfo_uid': + $temps = []; + foreach ($this->getLineService()->getEntities() as $entity) { + $temps[$entity->getPK()] = $entity->getTitle(); + } + $options[$field] = $temps; + break; + default: + $options = parent::getFormFieldOption($field, $options); + break; } - return $this->_diskService; + return $options; } protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string { @@ -83,11 +132,12 @@ class ServerController extends EquipmentController ]; $this->init('index', $fields); // $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임 + $this->adapterFields = ['LINE', 'IP', 'CPU', 'RAM', 'DISK', 'DEFENCE', 'SOFTWARE', 'DOMAIN']; $entities = []; foreach (parent::index_process() as $entity) { - $entity->setPartEntities("CPU", $this->getCpuService()->getAdapterEntities($entity)); - $entity->setPartEntities("RAM", $this->getRamService()->getAdapterEntities($entity)); - $entity->setPartEntities("DISK", $this->getDiskService()->getAdapterEntities($entity)); + foreach ($this->adapterFields as $field) { + $entity->setPartEntities($field, $this->getAdapterService($field)->getAdapterEntities($entity)); + } $entities[] = $entity; } return $entities; diff --git a/app/Database/erp2_1.vuerd.json b/app/Database/erp2_1.vuerd.json index 439420e..060fcf9 100644 --- a/app/Database/erp2_1.vuerd.json +++ b/app/Database/erp2_1.vuerd.json @@ -4,9 +4,9 @@ "settings": { "width": 4000, "height": 4000, - "scrollTop": -2838.7381, - "scrollLeft": -1765.3486, - "zoomLevel": 0.82, + "scrollTop": -2807.42, + "scrollLeft": -1213.1454, + "zoomLevel": 0.79, "show": 511, "database": 4, "databaseName": "", diff --git a/app/Entities/Equipment/DefenceEntity.php b/app/Entities/Equipment/DefenceEntity.php deleted file mode 100644 index 22b0bdb..0000000 --- a/app/Entities/Equipment/DefenceEntity.php +++ /dev/null @@ -1,11 +0,0 @@ -setTitleField(field: DomainModel::TITLE); + } +} diff --git a/app/Helpers/Equipment/IpHelper.php b/app/Helpers/Equipment/Part/IpHelper.php similarity index 70% rename from app/Helpers/Equipment/IpHelper.php rename to app/Helpers/Equipment/Part/IpHelper.php index b1065df..7ff1977 100644 --- a/app/Helpers/Equipment/IpHelper.php +++ b/app/Helpers/Equipment/Part/IpHelper.php @@ -1,11 +1,11 @@ setTitleField(field: ServerModel::TITLE); } + public function getFieldLabel(string $field, array $viewDatas, array $extras = []): string + { + switch ($field) { + case "LINE": + case "IP": + case "CPU": + case "RAM": + case "DISK": + case "DEFENCE": + case "SOFTWARE": + case "DOMAIN": + $label = form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras); + break; + default: + $label = parent::getFieldLabel($field, $viewDatas, $extras); + break; + } + return $label; + } // public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string // { // if (in_array($viewDatas['action'], ['create', 'modify'])) { @@ -40,9 +59,14 @@ class ServerHelper extends EquipmentHelper { $value = $viewDatas['entity']->$field ?? ""; switch ($field) { + case "LINE": + case "IP": case "CPU": case "RAM": case "DISK": + case "DEFENCE": + case "SOFTWARE": + case "DOMAIN": $temps = []; foreach ($viewDatas['entity']->getPartEntities($field) as $partEntity) { $temps[] = "
| = $viewDatas['helper']->getFieldView('LINE', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('IP', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('CPU', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('RAM', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('DISK', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('DEFENCE', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('SOFTWARE', $viewDatas) ?> | -= $viewDatas['helper']->getFieldView('DOMAIN', $viewDatas) ?> | + += $viewDatas['helper']->getFieldLabel($field, $viewDatas) ?> | + +
|---|---|---|---|---|---|---|---|---|
| = $viewDatas['helper']->getFieldView($field, $viewDatas) ?> | +