dbms_init...1

This commit is contained in:
최준흠 2025-05-27 10:34:53 +09:00
parent 28d084871d
commit 4f7a047fb5
59 changed files with 752 additions and 308 deletions

View File

@ -106,38 +106,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob_delete', 'ServiceController::batchjob_delete'); $routes->post('batchjob_delete', 'ServiceController::batchjob_delete');
$routes->get('download/(:alpha)', 'ServiceController::download/$1'); $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('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->group('line', ['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('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->group('cpu', ['namespace' => 'App\Controllers\Admin\Equipment\Link'], function ($routes) {
$routes->get('/', 'CpuController::index', []); $routes->get('/', 'CpuController::index', []);
$routes->get('create', 'CpuController::create_form'); $routes->get('create', 'CpuController::create_form');

View File

@ -3,95 +3,15 @@
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment;
use App\Controllers\Admin\AdminController; 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\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
abstract class EquipmentController extends AdminController 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) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {
parent::initController($request, $response, $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관련 //Index,FieldForm관련
} }

View File

@ -0,0 +1,57 @@
<?php
namespace App\Controllers\Admin\Equipment\Link;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Link\DefenceHelper;
use App\Services\Equipment\Link\DefenceService;
use App\Services\Equipment\Part\DefenceService as PartService;
class DefenceController extends LinkController
{
protected ?PartService $_partService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->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();
}
}

View File

@ -0,0 +1,57 @@
<?php
namespace App\Controllers\Admin\Equipment\Link;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Link\DomainHelper;
use App\Services\Equipment\Link\DomainService;
use App\Services\Equipment\Part\DomainService as PartService;
class DomainController extends LinkController
{
protected ?PartService $_partService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->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();
}
}

View File

@ -0,0 +1,57 @@
<?php
namespace App\Controllers\Admin\Equipment\Link;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Link\IpHelper;
use App\Services\Equipment\Link\IpService;
use App\Services\Equipment\Part\IpService as PartService;
class IpController extends LinkController
{
protected ?PartService $_partService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->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();
}
}

View File

@ -0,0 +1,57 @@
<?php
namespace App\Controllers\Admin\Equipment\Link;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Link\LineHelper;
use App\Services\Equipment\Link\LineService;
use App\Services\Equipment\Part\LineService as PartService;
class LineController extends LinkController
{
protected ?PartService $_partService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->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();
}
}

View File

@ -9,12 +9,22 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Services\Equipment\ServerService;
abstract class LinkController extends EquipmentController abstract class LinkController extends EquipmentController
{ {
private ?ServerService $_serverService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {
parent::initController($request, $response, $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; abstract public function getPartService(): mixed;
protected function setOrderByForList() protected function setOrderByForList()
@ -41,6 +51,14 @@ abstract class LinkController extends EquipmentController
protected function getFormFieldOption(string $field, array $options): array protected function getFormFieldOption(string $field, array $options): array
{ {
switch ($field) { 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 'cpuinfo_uid':
case 'raminfo_uid': case 'raminfo_uid':
case 'diskinfo_uid': case 'diskinfo_uid':

View File

@ -0,0 +1,57 @@
<?php
namespace App\Controllers\Admin\Equipment\Link;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Link\SoftwareHelper;
use App\Services\Equipment\Link\SoftwareService;
use App\Services\Equipment\Part\SoftwareService as PartService;
class SoftwareController extends LinkController
{
protected ?PartService $_partService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->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();
}
}

View File

@ -1,15 +1,15 @@
<?php <?php
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment\Part;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\DefenceHelper; use App\Helpers\Equipment\Part\DefenceHelper;
use App\Services\Equipment\DefenceService; use App\Services\Equipment\Part\DefenceService;
class DefenceController extends EquipmentController class DefenceController extends PartController
{ {
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {

View File

@ -1,15 +1,15 @@
<?php <?php
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment\Part;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\IpHelper; use App\Helpers\Equipment\Part\IpHelper;
use App\Services\Equipment\IpService; use App\Services\Equipment\Part\IpService;
class IpController extends EquipmentController class IpController extends PartController
{ {
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {

View File

@ -1,18 +1,18 @@
<?php <?php
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment\Part;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Entities\Equipment\LineEntity; use App\Entities\Equipment\Part\LineEntity;
use App\Helpers\Equipment\LineHelper; use App\Helpers\Equipment\Part\LineHelper;
use App\Services\Equipment\LineService; use App\Services\Equipment\Part\LineService;
use App\Services\Equipment\IpService; use App\Services\Equipment\Part\IpService;
use App\Entities\Equipment\IpEntity; use App\Entities\Equipment\Part\IpEntity;
class LineController extends EquipmentController class LineController extends PartController
{ {
private ?IpService $_ipService = null; private ?IpService $_ipService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)

View File

@ -1,16 +1,16 @@
<?php <?php
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment\Part;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\SoftwareHelper; use App\Helpers\Equipment\Part\SoftwareHelper;
use App\Services\Equipment\SoftwareService; use App\Services\Equipment\Part\SoftwareService;
class SoftwareController extends EquipmentController class SoftwareController extends PartController
{ {
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {

View File

@ -2,22 +2,28 @@
namespace App\Controllers\Admin\Equipment; namespace App\Controllers\Admin\Equipment;
use App\Helpers\Equipment\ServerHelper;
use App\Services\Equipment\Link\CpuService;
use App\Services\Equipment\Link\DiskService;
use App\Services\Equipment\Link\RamService;
use App\Services\Equipment\ServerService;
use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Services\Customer\ClientService;
use App\Helpers\Equipment\ServerHelper;
use App\Services\Equipment\ServerService;
use App\Services\Equipment\Link\CpuService;
use App\Services\Equipment\Link\RamService;
use App\Services\Equipment\Link\DiskService;
use App\Services\Equipment\Link\LINEService;
use App\Services\Equipment\Link\IpService;
use App\Services\Equipment\Link\DefenceService;
use App\Services\Equipment\Link\SoftwareService;
use App\Services\Equipment\Link\DomainService;
class ServerController extends EquipmentController class ServerController extends EquipmentController
{ {
private ?CpuService $_cpuService = null; private ?ClientService $_clientService = null;
private ?RamService $_ramService = null; private $_adapterService = [];
private ?DiskService $_diskService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {
parent::initController($request, $response, $logger); parent::initController($request, $response, $logger);
@ -41,26 +47,69 @@ class ServerController extends EquipmentController
} }
return $this->_helper; return $this->_helper;
} }
final public function getCpuService(): CpuService final public function getClientService(): ClientService
{ {
if (!$this->_cpuService) { if (!$this->_clientService) {
$this->_cpuService = new CpuService($this->request); $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) { if (!array_key_exists($key, $this->_adapterService)) {
$this->_ramService = new RamService($this->request); 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) { switch ($field) {
$this->_diskService = new DiskService($this->request); 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 protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
{ {
@ -83,11 +132,12 @@ class ServerController extends EquipmentController
]; ];
$this->init('index', $fields); $this->init('index', $fields);
// $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임 // $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임
$this->adapterFields = ['LINE', 'IP', 'CPU', 'RAM', 'DISK', 'DEFENCE', 'SOFTWARE', 'DOMAIN'];
$entities = []; $entities = [];
foreach (parent::index_process() as $entity) { foreach (parent::index_process() as $entity) {
$entity->setPartEntities("CPU", $this->getCpuService()->getAdapterEntities($entity)); foreach ($this->adapterFields as $field) {
$entity->setPartEntities("RAM", $this->getRamService()->getAdapterEntities($entity)); $entity->setPartEntities($field, $this->getAdapterService($field)->getAdapterEntities($entity));
$entity->setPartEntities("DISK", $this->getDiskService()->getAdapterEntities($entity)); }
$entities[] = $entity; $entities[] = $entity;
} }
return $entities; return $entities;

View File

@ -4,9 +4,9 @@
"settings": { "settings": {
"width": 4000, "width": 4000,
"height": 4000, "height": 4000,
"scrollTop": -2838.7381, "scrollTop": -2807.42,
"scrollLeft": -1765.3486, "scrollLeft": -1213.1454,
"zoomLevel": 0.82, "zoomLevel": 0.79,
"show": 511, "show": 511,
"database": 4, "database": 4,
"databaseName": "", "databaseName": "",

View File

@ -1,11 +0,0 @@
<?php
namespace App\Entities\Equipment;
use App\Models\Equipment\DefenceModel;
class DefenceEntity extends EquipmentEntity
{
const PK = DefenceModel::PK;
const TITLE = DefenceModel::TITLE;
}

View File

@ -1,11 +0,0 @@
<?php
namespace App\Entities\Equipment;
use App\Models\Equipment\DomainModel;
class DomainEntity extends EquipmentEntity
{
const PK = DomainModel::PK;
const TITLE = DomainModel::TITLE;
}

View File

@ -1,11 +0,0 @@
<?php
namespace App\Entities\Equipment;
use App\Models\Equipment\IpModel;
class IpEntity extends EquipmentEntity
{
const PK = IpModel::PK;
const TITLE = IpModel::TITLE;
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Entities\Equipment\Part;
use App\Models\Equipment\Part\DefenceModel;
class DefenceEntity extends PartEntity
{
const PK = DefenceModel::PK;
const TITLE = DefenceModel::TITLE;
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Entities\Equipment\Part;
use App\Models\Equipment\Part\DomainModel;
class DomainEntity extends PartEntity
{
const PK = DomainModel::PK;
const TITLE = DomainModel::TITLE;
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Entities\Equipment\Part;
use App\Models\Equipment\Part\IpModel;
class IpEntity extends PartEntity
{
const PK = IpModel::PK;
const TITLE = IpModel::TITLE;
}

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Entities\Equipment; namespace App\Entities\Equipment\Part;
use App\Models\Equipment\LineModel; use App\Models\Equipment\Part\LineModel;
class LineEntity extends EquipmentEntity class LineEntity extends PartEntity
{ {
const PK = LineModel::PK; const PK = LineModel::PK;
const TITLE = LineModel::TITLE; const TITLE = LineModel::TITLE;

View File

@ -0,0 +1,11 @@
<?php
namespace App\Entities\Equipment\Part;
use App\Models\Equipment\Part\SoftwareModel;
class SoftwareEntity extends PartEntity
{
const PK = SoftwareModel::PK;
const TITLE = SoftwareModel::TITLE;
}

View File

@ -1,11 +0,0 @@
<?php
namespace App\Entities\Equipment;
use App\Models\Equipment\SoftwareModel;
class SoftwareEntity extends EquipmentEntity
{
const PK = SoftwareModel::PK;
const TITLE = SoftwareModel::TITLE;
}

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Helpers\Equipment; namespace App\Helpers\Equipment\Part;
use App\Models\Equipment\DefenceModel; use App\Models\Equipment\Part\DefenceModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class DefenceHelper extends EquipmentHelper class DefenceHelper extends PartHelper
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -0,0 +1,16 @@
<?php
namespace App\Helpers\Equipment\Part;
use App\Models\Equipment\Part\DomainModel;
use CodeIgniter\HTTP\IncomingRequest;
class DomainHelper extends PartHelper
{
protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null)
{
parent::__construct($request);
$this->setTitleField(field: DomainModel::TITLE);
}
}

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Helpers\Equipment; namespace App\Helpers\Equipment\Part;
use App\Models\Equipment\IpModel; use App\Models\Equipment\Part\IpModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class IpHelper extends EquipmentHelper class IpHelper extends PartHelper
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Helpers\Equipment; namespace App\Helpers\Equipment\Part;
use App\Models\Equipment\LineModel; use App\Models\Equipment\Part\LineModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class LineHelper extends EquipmentHelper class LineHelper extends PartHelper
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -1,11 +1,11 @@
<?php <?php
namespace App\Helpers\Equipment; namespace App\Helpers\Equipment\Part;
use App\Models\Equipment\SoftwareModel; use App\Models\Equipment\Part\SoftwareModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class SoftwareHelper extends EquipmentHelper class SoftwareHelper extends PartHelper
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -13,6 +13,25 @@ class ServerHelper extends EquipmentHelper
parent::__construct($request); parent::__construct($request);
$this->setTitleField(field: ServerModel::TITLE); $this->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 // public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
// { // {
// if (in_array($viewDatas['action'], ['create', 'modify'])) { // if (in_array($viewDatas['action'], ['create', 'modify'])) {
@ -40,9 +59,14 @@ class ServerHelper extends EquipmentHelper
{ {
$value = $viewDatas['entity']->$field ?? ""; $value = $viewDatas['entity']->$field ?? "";
switch ($field) { switch ($field) {
case "LINE":
case "IP":
case "CPU": case "CPU":
case "RAM": case "RAM":
case "DISK": case "DISK":
case "DEFENCE":
case "SOFTWARE":
case "DOMAIN":
$temps = []; $temps = [];
foreach ($viewDatas['entity']->getPartEntities($field) as $partEntity) { foreach ($viewDatas['entity']->getPartEntities($field) as $partEntity) {
$temps[] = "<div>" . $partEntity->getTitle() . "</div>"; $temps[] = "<div>" . $partEntity->getTitle() . "</div>";

View File

@ -0,0 +1,17 @@
<?php
return [
'title' => "Domain정보",
'label' => [
'domain' => "도메인",
'price' => "금액",
'description' => "설명",
'status' => "상태",
'updated_at' => "수정일",
'created_at' => "작성일",
],
"STATUS" => [
'default' => "사용가능",
"pause" => "일시정지",
"occupied" => "사용중",
],
];

View File

@ -11,9 +11,14 @@ return [
'status' => "상태", 'status' => "상태",
'updated_at' => "수정일", 'updated_at' => "수정일",
'created_at' => "작성일", 'created_at' => "작성일",
'LINE' => "회선",
'IP' => "IP",
'CPU' => "CPU", 'CPU' => "CPU",
'RAM' => "RAM", 'RAM' => "RAM",
'DISK' => "DISK", 'DISK' => "DISK",
'DEFENCE' => "방어",
'SOFTWARE' => "소프트웨어",
'DOMAIN' => "도메인",
], ],
'DEFAULTS' => [ 'DEFAULTS' => [
'type' => 'RacKMount', 'type' => 'RacKMount',

View File

@ -12,8 +12,32 @@ class CpuModel extends PartModel
protected $table = self::TABLE; protected $table = self::TABLE;
protected $primaryKey = self::PK; protected $primaryKey = self::PK;
protected $returnType = CpuEntity::class; protected $returnType = CpuEntity::class;
protected $allowedFields = [
"model",
"price",
"status",
"updated_at"
];
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
} }
final public function getFieldRule(string $action, string $field): string
{
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
case "model":
$rule = "required|trim|string";
break;
case "price":
$rule = "required|numeric";
break;
default:
$rule = parent::getFieldRule($action, $field);
break;
}
return $rule;
}
} }

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Models\Equipment; namespace App\Models\Equipment\Part;
use App\Entities\Equipment\DefenceEntity; use App\Entities\Equipment\Part\DefenceEntity;
class DefenceModel extends EquipmentModel class DefenceModel extends PartModel
{ {
const TABLE = "defenceinfo"; const TABLE = "defenceinfo";
const PK = "uid"; const PK = "uid";

View File

@ -12,8 +12,32 @@ class DiskModel extends PartModel
protected $table = self::TABLE; protected $table = self::TABLE;
protected $primaryKey = self::PK; protected $primaryKey = self::PK;
protected $returnType = DiskEntity::class; protected $returnType = DiskEntity::class;
protected $allowedFields = [
"model",
"price",
"status",
"updated_at"
];
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
} }
final public function getFieldRule(string $action, string $field): string
{
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
case "model":
$rule = "required|trim|string";
break;
case "price":
$rule = "required|numeric";
break;
default:
$rule = parent::getFieldRule($action, $field);
break;
}
return $rule;
}
} }

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Models\Equipment; namespace App\Models\Equipment\Part;
use App\Entities\Equipment\DomainEntity; use App\Entities\Equipment\Part\DomainEntity;
class DomainModel extends EquipmentModel class DomainModel extends PartModel
{ {
const TABLE = "lineinfo"; const TABLE = "lineinfo";
const PK = "uid"; const PK = "uid";

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Models\Equipment; namespace App\Models\Equipment\Part;
use App\Entities\Equipment\IpEntity; use App\Entities\Equipment\Part\IpEntity;
class IpModel extends EquipmentModel class IpModel extends PartModel
{ {
const TABLE = "ipinfo"; const TABLE = "ipinfo";
const PK = "uid"; const PK = "uid";

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Models\Equipment; namespace App\Models\Equipment\Part;
use App\Entities\Equipment\LineEntity; use App\Entities\Equipment\Part\LineEntity;
class LineModel extends EquipmentModel class LineModel extends PartModel
{ {
const TABLE = "lineinfo"; const TABLE = "lineinfo";
const PK = "uid"; const PK = "uid";

View File

@ -6,32 +6,8 @@ use App\Models\Equipment\EquipmentModel;
abstract class PartModel extends EquipmentModel abstract class PartModel extends EquipmentModel
{ {
protected $allowedFields = [
"model",
"price",
"status",
"updated_at"
];
protected function __construct() protected function __construct()
{ {
parent::__construct(); parent::__construct();
} }
final public function getFieldRule(string $action, string $field): string
{
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
case "model":
$rule = "required|trim|string";
break;
case "price":
$rule = "required|numeric";
break;
default:
$rule = parent::getFieldRule($action, $field);
break;
}
return $rule;
}
} }

View File

@ -13,8 +13,32 @@ class RamModel extends PartModel
protected $primaryKey = self::PK; protected $primaryKey = self::PK;
protected $returnType = RamEntity::class; protected $returnType = RamEntity::class;
protected $allowedFields = [
"model",
"price",
"status",
"updated_at"
];
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
} }
final public function getFieldRule(string $action, string $field): string
{
if (is_array($field)) {
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
}
switch ($field) {
case "model":
$rule = "required|trim|string";
break;
case "price":
$rule = "required|numeric";
break;
default:
$rule = parent::getFieldRule($action, $field);
break;
}
return $rule;
}
} }

View File

@ -1,10 +1,10 @@
<?php <?php
namespace App\Models\Equipment; namespace App\Models\Equipment\Part;
use App\Entities\Equipment\SoftwareEntity; use App\Entities\Equipment\Part\SoftwareEntity;
class SoftwareModel extends EquipmentModel class SoftwareModel extends PartModel
{ {
const TABLE = "softwareinfo"; const TABLE = "softwareinfo";
const PK = "uid"; const PK = "uid";

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\DefenceEntity; use App\Entities\Equipment\Link\DefenceEntity;
use App\Models\Equipment\Link\DefenceModel; use App\Models\Equipment\Link\DefenceModel;
use App\Services\Equipment\DefenceService as AdapterService; use App\Services\Equipment\Part\DefenceService as AdapterService;
class DefenceService extends LinkService class DefenceService extends LinkService
{ {

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\DomainEntity; use App\Entities\Equipment\Link\DomainEntity;
use App\Models\Equipment\Link\DomainModel; use App\Models\Equipment\Link\DomainModel;
use App\Services\Equipment\DomainService as AdapterService; use App\Services\Equipment\Part\DomainService as AdapterService;
class DomainService extends LinkService class DomainService extends LinkService
{ {

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\IpEntity; use App\Entities\Equipment\Link\IpEntity;
use App\Models\Equipment\Link\IpModel; use App\Models\Equipment\Link\IpModel;
use App\Services\Equipment\IpService as AdapterService; use App\Services\Equipment\Part\IpService as AdapterService;
class IpService extends LinkService class IpService extends LinkService
{ {

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\LineEntity; use App\Entities\Equipment\Link\LineEntity;
use App\Models\Equipment\Link\LineModel; use App\Models\Equipment\Link\LineModel;
use App\Services\Equipment\LineService as AdapterService; use App\Services\Equipment\Part\LineService as AdapterService;
class LineService extends LinkService class LineService extends LinkService
{ {

View File

@ -6,7 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest;
use App\Entities\Equipment\Link\SoftwareEntity; use App\Entities\Equipment\Link\SoftwareEntity;
use App\Models\Equipment\Link\SoftwareModel; use App\Models\Equipment\Link\SoftwareModel;
use App\Services\Equipment\SoftwareService as AdapterService; use App\Services\Equipment\Part\SoftwareService as AdapterService;
class SoftwareService extends LinkService class SoftwareService extends LinkService
{ {

View File

@ -17,7 +17,7 @@ class CpuService extends PartService
} }
public function getModelClass(): CpuModel public function getModelClass(): CpuModel
{ {
return new CpuModel; return new CpuModel();
} }
public function getEntityClass(): CpuEntity public function getEntityClass(): CpuEntity
{ {
@ -27,4 +27,20 @@ class CpuService extends PartService
{ {
return new LinkService($this->request); return new LinkService($this->request);
} }
final public function getFields(): array
{
return [
"model",
"price",
"status",
];
}
final public function getFilterFields(): array
{
return ['status'];
}
final public function getBatchJobFields(): array
{
return ['status'];
}
} }

View File

@ -1,13 +1,12 @@
<?php <?php
namespace App\Services\Equipment; namespace App\Services\Equipment\Part;
use App\Entities\Equipment\DefenceEntity; use App\Entities\Equipment\Part\DefenceEntity;
use App\Models\Equipment\DefenceModel; use App\Models\Equipment\Part\DefenceModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
use App\Services\Equipment\EquipmentService;
class DefenceService extends EquipmentService class DefenceService extends PartService
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -17,7 +17,7 @@ class DiskService extends PartService
} }
public function getModelClass(): DiskModel public function getModelClass(): DiskModel
{ {
return new DiskModel; return new DiskModel();
} }
public function getEntityClass(): DiskEntity public function getEntityClass(): DiskEntity
{ {
@ -27,4 +27,20 @@ class DiskService extends PartService
{ {
return new LinkService($this->request); return new LinkService($this->request);
} }
final public function getFields(): array
{
return [
"model",
"price",
"status",
];
}
final public function getFilterFields(): array
{
return ['status'];
}
final public function getBatchJobFields(): array
{
return ['status'];
}
} }

View File

@ -1,12 +1,12 @@
<?php <?php
namespace App\Services\Equipment; namespace App\Services\Equipment\Part;
use App\Entities\Equipment\DomainEntity; use App\Entities\Equipment\Part\DomainEntity;
use App\Models\Equipment\DomainModel; use App\Models\Equipment\Part\DomainModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class DomainService extends EquipmentService class DomainService extends PartService
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -1,12 +1,12 @@
<?php <?php
namespace App\Services\Equipment; namespace App\Services\Equipment\Part;
use App\Entities\Equipment\IpEntity; use App\Entities\Equipment\Part\IpEntity;
use App\Models\Equipment\IpModel; use App\Models\Equipment\Part\IpModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class IpService extends EquipmentService class IpService extends PartService
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -1,12 +1,12 @@
<?php <?php
namespace App\Services\Equipment; namespace App\Services\Equipment\Part;
use App\Entities\Equipment\LineEntity; use App\Entities\Equipment\Part\LineEntity;
use App\Models\Equipment\LineModel; use App\Models\Equipment\Part\LineModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class LineService extends EquipmentService class LineService extends PartService
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -12,20 +12,4 @@ abstract class PartService extends EquipmentService
parent::__construct($request); parent::__construct($request);
$this->addClassName('Part'); $this->addClassName('Part');
} }
final public function getFields(): array
{
return [
"model",
"price",
"status",
];
}
final public function getFilterFields(): array
{
return ['status'];
}
final public function getBatchJobFields(): array
{
return ['status'];
}
} }

View File

@ -27,4 +27,20 @@ class RamService extends PartService
{ {
return new LinkService($this->request); return new LinkService($this->request);
} }
final public function getFields(): array
{
return [
"model",
"price",
"status",
];
}
final public function getFilterFields(): array
{
return ['status'];
}
final public function getBatchJobFields(): array
{
return ['status'];
}
} }

View File

@ -1,12 +1,12 @@
<?php <?php
namespace App\Services\Equipment; namespace App\Services\Equipment\Part;
use App\Entities\Equipment\SoftwareEntity; use App\Entities\Equipment\Part\SoftwareEntity;
use App\Models\Equipment\SoftwareModel; use App\Models\Equipment\Part\SoftwareModel;
use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\IncomingRequest;
class SoftwareService extends EquipmentService class SoftwareService extends PartService
{ {
protected ?IncomingRequest $request = null; protected ?IncomingRequest $request = null;
public function __construct(?IncomingRequest $request = null) public function __construct(?IncomingRequest $request = null)

View File

@ -44,14 +44,14 @@
<td colspan="8"> <td colspan="8">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-hover table-striped">
<tr> <tr>
<td><?= $viewDatas['helper']->getFieldView('LINE', $viewDatas) ?></td> <?php foreach ($viewDatas['adapterFields'] as $field): ?>
<td><?= $viewDatas['helper']->getFieldView('IP', $viewDatas) ?></td> <th data-rtc-resizable="<?= $field ?>"><?= $viewDatas['helper']->getFieldLabel($field, $viewDatas) ?></th>
<td><?= $viewDatas['helper']->getFieldView('CPU', $viewDatas) ?></td> <?php endforeach ?>
<td><?= $viewDatas['helper']->getFieldView('RAM', $viewDatas) ?></td> </tr>
<td><?= $viewDatas['helper']->getFieldView('DISK', $viewDatas) ?></td> <tr>
<td><?= $viewDatas['helper']->getFieldView('DEFENCE', $viewDatas) ?></td> <?php foreach ($viewDatas['adapterFields'] as $field): ?>
<td><?= $viewDatas['helper']->getFieldView('SOFTWARE', $viewDatas) ?></td> <td><?= $viewDatas['helper']->getFieldView($field, $viewDatas) ?></td>
<td><?= $viewDatas['helper']->getFieldView('DOMAIN', $viewDatas) ?></td> <?php endforeach ?>
</tr> </tr>
</table> </table>
</td> </td>