dbms_init...1
This commit is contained in:
parent
3828dc90e3
commit
00998fd39c
@ -134,6 +134,19 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
$routes->group('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
$routes->group('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
||||||
|
$routes->group('code', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
||||||
|
$routes->get('/', 'CodeController::index', []);
|
||||||
|
$routes->get('create', 'CodeController::create_form');
|
||||||
|
$routes->post('create', 'CodeController::create');
|
||||||
|
$routes->get('modify/(:alphanum)', 'CodeController::modify_form/$1');
|
||||||
|
$routes->post('modify/(:alphanum)', 'CodeController::modify/$1');
|
||||||
|
$routes->get('view/(:alphanum)', 'CodeController::view/$1');
|
||||||
|
$routes->get('delete/(:alphanum)', 'CodeController::delete/$1');
|
||||||
|
$routes->get('toggle/(:alphanum)/(:any)', 'CodeController::toggle/$1/$2');
|
||||||
|
$routes->post('batchjob', 'CodeController::batchjob');
|
||||||
|
$routes->post('batchjob_delete', 'CodeController::batchjob_delete');
|
||||||
|
$routes->get('download/(:alpha)', 'CodeController::download/$1');
|
||||||
|
});
|
||||||
$routes->group('server', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
$routes->group('server', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
||||||
$routes->get('/', 'ServerController::index', []);
|
$routes->get('/', 'ServerController::index', []);
|
||||||
$routes->get('create', 'ServerController::create_form');
|
$routes->get('create', 'ServerController::create_form');
|
||||||
|
|||||||
@ -2,11 +2,12 @@
|
|||||||
|
|
||||||
namespace App\Controllers\Admin\Customer;
|
namespace App\Controllers\Admin\Customer;
|
||||||
|
|
||||||
|
use App\Entities\Equipment\CodeEntity;
|
||||||
use App\Helpers\Customer\ServiceHelper;
|
use App\Helpers\Customer\ServiceHelper;
|
||||||
|
use App\Services\Customer\ServiceItemService;
|
||||||
use App\Services\Customer\ServiceService;
|
use App\Services\Customer\ServiceService;
|
||||||
|
|
||||||
use App\Services\Customer\ServiceItemService;
|
use App\Services\Equipment\CodeService;
|
||||||
|
|
||||||
use CodeIgniter\HTTP\RedirectResponse;
|
use CodeIgniter\HTTP\RedirectResponse;
|
||||||
use CodeIgniter\HTTP\RequestInterface;
|
use CodeIgniter\HTTP\RequestInterface;
|
||||||
use CodeIgniter\HTTP\ResponseInterface;
|
use CodeIgniter\HTTP\ResponseInterface;
|
||||||
@ -15,6 +16,7 @@ use Psr\Log\LoggerInterface;
|
|||||||
class ServiceController extends CustomerController
|
class ServiceController extends CustomerController
|
||||||
{
|
{
|
||||||
private ?ServiceItemService $_serviceItemService = null;
|
private ?ServiceItemService $_serviceItemService = null;
|
||||||
|
private ?CodeService $_codeService = 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);
|
||||||
@ -38,6 +40,13 @@ class ServiceController extends CustomerController
|
|||||||
}
|
}
|
||||||
return $this->_helper;
|
return $this->_helper;
|
||||||
}
|
}
|
||||||
|
public function getCodeService(): CodeService
|
||||||
|
{
|
||||||
|
if (!$this->_codeService) {
|
||||||
|
$this->_codeService = new CodeService($this->request);
|
||||||
|
}
|
||||||
|
return $this->_codeService;
|
||||||
|
}
|
||||||
public function getServiceItemService(): ServiceItemService
|
public function getServiceItemService(): ServiceItemService
|
||||||
{
|
{
|
||||||
if (!$this->_serviceItemService) {
|
if (!$this->_serviceItemService) {
|
||||||
@ -53,6 +62,11 @@ class ServiceController extends CustomerController
|
|||||||
$options[$entity->getPK()] = $entity->getTitle();
|
$options[$entity->getPK()] = $entity->getTitle();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'code':
|
||||||
|
foreach ($this->getCodeService()->getEntities() as $entity) {
|
||||||
|
$options[$entity->getPK()] = $entity->getTitle();
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'SERVER':
|
case 'SERVER':
|
||||||
case 'CPU':
|
case 'CPU':
|
||||||
case 'RAM':
|
case 'RAM':
|
||||||
@ -72,15 +86,9 @@ class ServiceController extends CustomerController
|
|||||||
}
|
}
|
||||||
return $options;
|
return $options;
|
||||||
}
|
}
|
||||||
//Index,FieldForm관련
|
|
||||||
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
|
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
|
||||||
{
|
{
|
||||||
switch ($this->getAction()) {
|
switch ($this->getAction()) {
|
||||||
case 'create':
|
|
||||||
case 'modify':
|
|
||||||
$this->getMyLogService()->save($this->getService(), __FUNCTION__, $this->getMyAuth(), $message);
|
|
||||||
$result = $this->view($this->entity->getPK());
|
|
||||||
break;
|
|
||||||
case 'index':
|
case 'index':
|
||||||
$this->control = $this->getControlDatas();
|
$this->control = $this->getControlDatas();
|
||||||
$this->getHelper()->setViewDatas($this->getViewDatas());
|
$this->getHelper()->setViewDatas($this->getViewDatas());
|
||||||
@ -93,6 +101,30 @@ class ServiceController extends CustomerController
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
//Index,FieldForm관련
|
//Index,FieldForm관련
|
||||||
|
private function setCodeStatus(string $code, string $status): void
|
||||||
|
{
|
||||||
|
//coded의 경우 사용가능/사용중으로 설정작업
|
||||||
|
$codeEntity = $this->getCodeService()->getEntity($code);
|
||||||
|
if (!$codeEntity) {
|
||||||
|
throw new \Exception("{$code}에 대한 서버코드정보를 찾을수 없습니다.");
|
||||||
|
}
|
||||||
|
$codeEntity = $this->getCodeService()->setStatus($codeEntity, $status);
|
||||||
|
if (!$codeEntity) {
|
||||||
|
throw new \Exception("{$code}에 대한 {$status} 상태설정에 실패하였습니다.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
protected function create_process(array $formDatas): mixed
|
||||||
|
{
|
||||||
|
//coded의 경우 서비스중으로 설정작업
|
||||||
|
$this->setCodeStatus($formDatas['code'], CodeEntity::STATUS_OCCUPIED);
|
||||||
|
return parent::create_process($formDatas);
|
||||||
|
}
|
||||||
|
protected function delete_process(mixed $entity): mixed
|
||||||
|
{
|
||||||
|
//coded의 경우 사용가능으로 설정작업
|
||||||
|
$this->setCodeStatus($entity->getCode(), CodeEntity::STATUS_AVAILABLE);
|
||||||
|
return parent::delete_process($entity);
|
||||||
|
}
|
||||||
protected function index_process(): array
|
protected function index_process(): array
|
||||||
{
|
{
|
||||||
//추가 Field작업 처리
|
//추가 Field작업 처리
|
||||||
|
|||||||
@ -60,8 +60,10 @@ class ServiceItemController extends CustomerController
|
|||||||
if (!$item_type) {
|
if (!$item_type) {
|
||||||
throw new \Exception(__FUNCTION__ . "에서 item_type이 지정되지 않았습니다.");
|
throw new \Exception(__FUNCTION__ . "에서 item_type이 지정되지 않았습니다.");
|
||||||
}
|
}
|
||||||
//CustomerController에서 선언된 getFormFieldOption사용 됨
|
//$item_type(CPU,RAM,STORAGE등)에 따라 선언된 getFormFieldOption사용 됨
|
||||||
$options = parent::getFormFieldOption($item_type, $options);
|
foreach ($this->getEquipmentService($item_type)->getEntities() as $entity) {
|
||||||
|
$options[$entity->getPK()] = $entity->getTitle();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$options = parent::getFormFieldOption($field, $options);
|
$options = parent::getFormFieldOption($field, $options);
|
||||||
@ -69,20 +71,6 @@ class ServiceItemController extends CustomerController
|
|||||||
}
|
}
|
||||||
return $options;
|
return $options;
|
||||||
}
|
}
|
||||||
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
|
|
||||||
{
|
|
||||||
switch ($this->getAction()) {
|
|
||||||
case 'index':
|
|
||||||
$this->control = $this->getControlDatas();
|
|
||||||
$this->getHelper()->setViewDatas($this->getViewDatas());
|
|
||||||
$result = view($this->view_path . 'popup' . DIRECTORY_SEPARATOR . $this->getAction(), ['viewDatas' => $this->getViewDatas()]);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$result = parent::getResultSuccess($message);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
//Index,FieldForm관련
|
//Index,FieldForm관련
|
||||||
protected function create_process(array $formDatas): mixed
|
protected function create_process(array $formDatas): mixed
|
||||||
{
|
{
|
||||||
|
|||||||
44
app/Controllers/Admin/Equipment/CodeController.php
Normal file
44
app/Controllers/Admin/Equipment/CodeController.php
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controllers\Admin\Equipment;
|
||||||
|
|
||||||
|
use CodeIgniter\HTTP\RequestInterface;
|
||||||
|
use CodeIgniter\HTTP\ResponseInterface;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
|
use App\Helpers\Equipment\CodeHelper;
|
||||||
|
use App\Services\Equipment\CodeService;
|
||||||
|
|
||||||
|
class CodeController extends EquipmentController
|
||||||
|
{
|
||||||
|
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(): CodeService
|
||||||
|
{
|
||||||
|
if (!$this->_service) {
|
||||||
|
$this->_service = new CodeService($this->request);
|
||||||
|
}
|
||||||
|
return $this->_service;
|
||||||
|
}
|
||||||
|
public function getHelper(): CodeHelper
|
||||||
|
{
|
||||||
|
if (!$this->_helper) {
|
||||||
|
$this->_helper = new CodeHelper($this->request);
|
||||||
|
}
|
||||||
|
return $this->_helper;
|
||||||
|
}
|
||||||
|
//Index,FieldForm관련
|
||||||
|
protected function setOrderByForList(): void
|
||||||
|
{
|
||||||
|
//OrderBy 처리
|
||||||
|
$this->getService()->getModel()->orderBy('code', 'ASC', false);
|
||||||
|
parent::setOrderByForList();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -245,11 +245,14 @@ abstract class CommonController extends BaseController
|
|||||||
case 'index':
|
case 'index':
|
||||||
case 'view':
|
case 'view':
|
||||||
case 'download':
|
case 'download':
|
||||||
|
$this->view_template = $this->view_path . $this->getAction();
|
||||||
|
$actionFrameType = $this->request->getVar('ActionFrameType');
|
||||||
|
if ($actionFrameType) {
|
||||||
|
$this->view_template = $this->view_path . $actionFrameType . DIRECTORY_SEPARATOR . $this->getAction();
|
||||||
|
}
|
||||||
$this->control = $this->getControlDatas();
|
$this->control = $this->getControlDatas();
|
||||||
$this->getHelper()->setViewDatas($this->getViewDatas());
|
$this->getHelper()->setViewDatas($this->getViewDatas());
|
||||||
$result = view($this->view_path . $this->getAction(), [
|
$result = view($this->view_template, ['viewDatas' => $this->getViewDatas()]);
|
||||||
'viewDatas' => $this->getViewDatas()
|
|
||||||
]);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$result = redirect()->to($this->getMyAuth()->popPreviousUrl())->with('error', $message);
|
$result = redirect()->to($this->getMyAuth()->popPreviousUrl())->with('error', $message);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -4,13 +4,13 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"width": 3000,
|
"width": 3000,
|
||||||
"height": 3000,
|
"height": 3000,
|
||||||
"scrollTop": -1395.0309,
|
"scrollTop": -988.0309,
|
||||||
"scrollLeft": -515.7816,
|
"scrollLeft": -1051.8446,
|
||||||
"zoomLevel": 0.76,
|
"zoomLevel": 0.76,
|
||||||
"show": 511,
|
"show": 511,
|
||||||
"database": 4,
|
"database": 4,
|
||||||
"databaseName": "",
|
"databaseName": "",
|
||||||
"canvasType": "@dineug/erd-editor/builtin-schema-sql",
|
"canvasType": "ERD",
|
||||||
"language": 1,
|
"language": 1,
|
||||||
"tableNameCase": 4,
|
"tableNameCase": 4,
|
||||||
"columnNameCase": 2,
|
"columnNameCase": 2,
|
||||||
@ -51,7 +51,8 @@
|
|||||||
"B8haiEbPc1lRBWTv1g25G",
|
"B8haiEbPc1lRBWTv1g25G",
|
||||||
"isiA_oaJNIm3F4nYJuLJ1",
|
"isiA_oaJNIm3F4nYJuLJ1",
|
||||||
"0WXrjcyXXGeoAVM2VB8s2",
|
"0WXrjcyXXGeoAVM2VB8s2",
|
||||||
"eLGlqJ4z_woGP6CLZEuUr"
|
"eLGlqJ4z_woGP6CLZEuUr",
|
||||||
|
"JoMB-mb6p6NoHpiAvjD2y"
|
||||||
],
|
],
|
||||||
"relationshipIds": [
|
"relationshipIds": [
|
||||||
"gAVYXWnBSnCw-0ieO4Mil",
|
"gAVYXWnBSnCw-0ieO4Mil",
|
||||||
@ -67,7 +68,8 @@
|
|||||||
"Wma86GpS3BhikEaHSamgX",
|
"Wma86GpS3BhikEaHSamgX",
|
||||||
"I80TuGxKm3tXIO_EO2PSm",
|
"I80TuGxKm3tXIO_EO2PSm",
|
||||||
"o8yw46vm30cC7wl9cRMdo",
|
"o8yw46vm30cC7wl9cRMdo",
|
||||||
"ocWjncqwtYkP02mw4A0-8"
|
"ocWjncqwtYkP02mw4A0-8",
|
||||||
|
"6oBuPqT-ikPI7X8a05Trv"
|
||||||
],
|
],
|
||||||
"indexIds": [],
|
"indexIds": [],
|
||||||
"memoIds": []
|
"memoIds": []
|
||||||
@ -799,7 +801,7 @@
|
|||||||
"uuDbJDSDQLey7Km1W9hlJ",
|
"uuDbJDSDQLey7Km1W9hlJ",
|
||||||
"Gb6fmS40Q3wvnvD1HMTqR",
|
"Gb6fmS40Q3wvnvD1HMTqR",
|
||||||
"_UFwKNcesG423815BIYBi",
|
"_UFwKNcesG423815BIYBi",
|
||||||
"RpyPtXKwtu3XFr5BM61TA",
|
"O7aGU_LJxCO1NeNVWbB-J",
|
||||||
"FJtEzmrQUsMMbrWbzr8IR",
|
"FJtEzmrQUsMMbrWbzr8IR",
|
||||||
"hQ5EOPiUpDbVpWQwawtw4",
|
"hQ5EOPiUpDbVpWQwawtw4",
|
||||||
"9o7wfPp7WK2nZoxkDZ9Y1",
|
"9o7wfPp7WK2nZoxkDZ9Y1",
|
||||||
@ -825,6 +827,7 @@
|
|||||||
"uuDbJDSDQLey7Km1W9hlJ",
|
"uuDbJDSDQLey7Km1W9hlJ",
|
||||||
"Gb6fmS40Q3wvnvD1HMTqR",
|
"Gb6fmS40Q3wvnvD1HMTqR",
|
||||||
"_UFwKNcesG423815BIYBi",
|
"_UFwKNcesG423815BIYBi",
|
||||||
|
"O7aGU_LJxCO1NeNVWbB-J",
|
||||||
"RpyPtXKwtu3XFr5BM61TA",
|
"RpyPtXKwtu3XFr5BM61TA",
|
||||||
"FJtEzmrQUsMMbrWbzr8IR",
|
"FJtEzmrQUsMMbrWbzr8IR",
|
||||||
"hQ5EOPiUpDbVpWQwawtw4",
|
"hQ5EOPiUpDbVpWQwawtw4",
|
||||||
@ -844,7 +847,7 @@
|
|||||||
"color": ""
|
"color": ""
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"updateAt": 1749517812138,
|
"updateAt": 1749529381866,
|
||||||
"createAt": 1748485662214
|
"createAt": 1748485662214
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -969,6 +972,36 @@
|
|||||||
"updateAt": 1749520763447,
|
"updateAt": 1749520763447,
|
||||||
"createAt": 1749520593335
|
"createAt": 1749520593335
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"JoMB-mb6p6NoHpiAvjD2y": {
|
||||||
|
"id": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "codeinfo",
|
||||||
|
"comment": "코드표",
|
||||||
|
"columnIds": [
|
||||||
|
"FMB1Pw8d7ED0xlrEAdVok",
|
||||||
|
"G1UKbUmdA5cmhcVHaqrTj",
|
||||||
|
"UIl3k8fn-kPZvaWKIMtKY",
|
||||||
|
"4TGBpdAErYnDel4snI9A5"
|
||||||
|
],
|
||||||
|
"seqColumnIds": [
|
||||||
|
"WsOgvUtYTLLdAhcZUJZFQ",
|
||||||
|
"FMB1Pw8d7ED0xlrEAdVok",
|
||||||
|
"G1UKbUmdA5cmhcVHaqrTj",
|
||||||
|
"UIl3k8fn-kPZvaWKIMtKY",
|
||||||
|
"4TGBpdAErYnDel4snI9A5"
|
||||||
|
],
|
||||||
|
"ui": {
|
||||||
|
"x": 1695.8469,
|
||||||
|
"y": 1219.7775,
|
||||||
|
"zIndex": 2508,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"color": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527271778,
|
||||||
|
"createAt": 1749526993705
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tableColumnEntities": {
|
"tableColumnEntities": {
|
||||||
@ -6559,7 +6592,7 @@
|
|||||||
"comment": "서비스명",
|
"comment": "서비스명",
|
||||||
"dataType": "VARCHAR(255)",
|
"dataType": "VARCHAR(255)",
|
||||||
"default": "",
|
"default": "",
|
||||||
"options": 8,
|
"options": 12,
|
||||||
"ui": {
|
"ui": {
|
||||||
"keys": 0,
|
"keys": 0,
|
||||||
"widthName": 60,
|
"widthName": 60,
|
||||||
@ -6568,7 +6601,7 @@
|
|||||||
"widthDefault": 60
|
"widthDefault": 60
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"updateAt": 1749435003173,
|
"updateAt": 1749526904029,
|
||||||
"createAt": 1749434957365
|
"createAt": 1749434957365
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -6771,6 +6804,126 @@
|
|||||||
"updateAt": 1749520739979,
|
"updateAt": 1749520739979,
|
||||||
"createAt": 1749520727362
|
"createAt": 1749520727362
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"WsOgvUtYTLLdAhcZUJZFQ": {
|
||||||
|
"id": "WsOgvUtYTLLdAhcZUJZFQ",
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "uid",
|
||||||
|
"comment": "",
|
||||||
|
"dataType": "INT",
|
||||||
|
"default": "",
|
||||||
|
"options": 15,
|
||||||
|
"ui": {
|
||||||
|
"keys": 1,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 60,
|
||||||
|
"widthDefault": 60
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527175180,
|
||||||
|
"createAt": 1749527110532
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"G1UKbUmdA5cmhcVHaqrTj": {
|
||||||
|
"id": "G1UKbUmdA5cmhcVHaqrTj",
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "status",
|
||||||
|
"comment": "",
|
||||||
|
"dataType": "VARCHAR(20)",
|
||||||
|
"default": "'default'",
|
||||||
|
"options": 8,
|
||||||
|
"ui": {
|
||||||
|
"keys": 0,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 75,
|
||||||
|
"widthDefault": 60
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527110533,
|
||||||
|
"createAt": 1749527110533
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"UIl3k8fn-kPZvaWKIMtKY": {
|
||||||
|
"id": "UIl3k8fn-kPZvaWKIMtKY",
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "updated_at",
|
||||||
|
"comment": "",
|
||||||
|
"dataType": "TIMESTAMP",
|
||||||
|
"default": "",
|
||||||
|
"options": 0,
|
||||||
|
"ui": {
|
||||||
|
"keys": 0,
|
||||||
|
"widthName": 62,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 65,
|
||||||
|
"widthDefault": 60
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527110533,
|
||||||
|
"createAt": 1749527110533
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4TGBpdAErYnDel4snI9A5": {
|
||||||
|
"id": "4TGBpdAErYnDel4snI9A5",
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "created_at",
|
||||||
|
"comment": "",
|
||||||
|
"dataType": "TIMESTAMP",
|
||||||
|
"default": "CURRENT_TIMESTAMP",
|
||||||
|
"options": 8,
|
||||||
|
"ui": {
|
||||||
|
"keys": 0,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 65,
|
||||||
|
"widthDefault": 122
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527110533,
|
||||||
|
"createAt": 1749527110533
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"FMB1Pw8d7ED0xlrEAdVok": {
|
||||||
|
"id": "FMB1Pw8d7ED0xlrEAdVok",
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"name": "code",
|
||||||
|
"comment": "서버코드",
|
||||||
|
"dataType": "VARCHAR(20)",
|
||||||
|
"default": "",
|
||||||
|
"options": 14,
|
||||||
|
"ui": {
|
||||||
|
"keys": 1,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 75,
|
||||||
|
"widthDefault": 60
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527292426,
|
||||||
|
"createAt": 1749527129380
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"O7aGU_LJxCO1NeNVWbB-J": {
|
||||||
|
"id": "O7aGU_LJxCO1NeNVWbB-J",
|
||||||
|
"tableId": "B8haiEbPc1lRBWTv1g25G",
|
||||||
|
"name": "code",
|
||||||
|
"comment": "서버코드",
|
||||||
|
"dataType": "VARCHAR(20)",
|
||||||
|
"default": "",
|
||||||
|
"options": 8,
|
||||||
|
"ui": {
|
||||||
|
"keys": 2,
|
||||||
|
"widthName": 60,
|
||||||
|
"widthComment": 60,
|
||||||
|
"widthDataType": 75,
|
||||||
|
"widthDefault": 60
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749529387909,
|
||||||
|
"createAt": 1749527376195
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relationshipEntities": {
|
"relationshipEntities": {
|
||||||
@ -7046,7 +7199,7 @@
|
|||||||
"NzxkmndrTbH7xb6fbnGV7"
|
"NzxkmndrTbH7xb6fbnGV7"
|
||||||
],
|
],
|
||||||
"x": 1454.3741,
|
"x": 1454.3741,
|
||||||
"y": 1132.673,
|
"y": 1098.0063333333333,
|
||||||
"direction": 2
|
"direction": 2
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
@ -7130,7 +7283,7 @@
|
|||||||
"f1hR1JRFHBHwiJSSX34gw"
|
"f1hR1JRFHBHwiJSSX34gw"
|
||||||
],
|
],
|
||||||
"x": 1454.3741,
|
"x": 1454.3741,
|
||||||
"y": 1340.673,
|
"y": 1236.673,
|
||||||
"direction": 2
|
"direction": 2
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
@ -7165,6 +7318,34 @@
|
|||||||
"updateAt": 1749520727362,
|
"updateAt": 1749520727362,
|
||||||
"createAt": 1749520727362
|
"createAt": 1749520727362
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"6oBuPqT-ikPI7X8a05Trv": {
|
||||||
|
"id": "6oBuPqT-ikPI7X8a05Trv",
|
||||||
|
"identification": false,
|
||||||
|
"relationshipType": 16,
|
||||||
|
"startRelationshipType": 2,
|
||||||
|
"start": {
|
||||||
|
"tableId": "JoMB-mb6p6NoHpiAvjD2y",
|
||||||
|
"columnIds": [
|
||||||
|
"FMB1Pw8d7ED0xlrEAdVok"
|
||||||
|
],
|
||||||
|
"x": 1695.8469,
|
||||||
|
"y": 1295.7775,
|
||||||
|
"direction": 1
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"tableId": "B8haiEbPc1lRBWTv1g25G",
|
||||||
|
"columnIds": [
|
||||||
|
"O7aGU_LJxCO1NeNVWbB-J"
|
||||||
|
],
|
||||||
|
"x": 1454.3741,
|
||||||
|
"y": 1375.3396666666667,
|
||||||
|
"direction": 2
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"updateAt": 1749527376196,
|
||||||
|
"createAt": 1749527376196
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexEntities": {},
|
"indexEntities": {},
|
||||||
|
|||||||
@ -12,6 +12,10 @@ class ServiceEntity extends CustomerEntity
|
|||||||
{
|
{
|
||||||
return intval($this->attributes['ownerinfo_uid']);
|
return intval($this->attributes['ownerinfo_uid']);
|
||||||
}
|
}
|
||||||
|
final public function getCode(): string
|
||||||
|
{
|
||||||
|
return $this->attributes['code'];
|
||||||
|
}
|
||||||
public function getItemEntities(string $type): array
|
public function getItemEntities(string $type): array
|
||||||
{
|
{
|
||||||
return $this->attributes[$type] ?? [];
|
return $this->attributes[$type] ?? [];
|
||||||
|
|||||||
13
app/Entities/Equipment/CodeEntity.php
Normal file
13
app/Entities/Equipment/CodeEntity.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Entities\Equipment;
|
||||||
|
|
||||||
|
use App\Models\Equipment\CodeModel;
|
||||||
|
|
||||||
|
class CodeEntity extends EquipmentEntity
|
||||||
|
{
|
||||||
|
const PK = CodeModel::PK;
|
||||||
|
const TITLE = CodeModel::TITLE;
|
||||||
|
const STATUS_AVAILABLE = "default";
|
||||||
|
const STATUS_OCCUPIED = "occupied";
|
||||||
|
}
|
||||||
@ -265,27 +265,14 @@ class CommonHelper
|
|||||||
if (!is_array($viewDatas['control']['filter_optons'][$field])) {
|
if (!is_array($viewDatas['control']['filter_optons'][$field])) {
|
||||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
||||||
}
|
}
|
||||||
//codeigniter 함수사용시
|
|
||||||
$formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'];
|
$formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'];
|
||||||
foreach ($viewDatas['control']['filter_optons'][$field] as $key => $label) {
|
foreach ($viewDatas['control']['filter_optons'][$field] as $key => $label) {
|
||||||
$formOptions[$key] = $label;
|
$formOptions[$key] = $label;
|
||||||
}
|
}
|
||||||
$form = form_dropdown($field, $formOptions, $value, $extras);
|
$extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field';
|
||||||
//* $form = form_dropdown($field, $formOptions, $value, $extras); --> form_dropdown사용시 form_dropdown() 함수 내부에서 htmlspecialchars()가 실행되어 javascript에서는 "로 바뀌어 javascript가 실행되 않는 문제발생
|
$form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
|
||||||
//직접작성 함수사용시
|
|
||||||
// $onChange= isset($extras["onChange"]) ? " onChange=\"{$extras["onChange"]}\"":"";
|
|
||||||
// $forms = [
|
|
||||||
// "<select name=\"{$field}\"{$onChange}>",
|
|
||||||
// "<option value=\"\">". lang($viewDatas['class_path'] . '.label.' . $field) . " 선택</option>"
|
|
||||||
// ];
|
|
||||||
// foreach ($viewDatas['control']['filter_optons'][$field] as $key => $label) {
|
|
||||||
// $isSelected = ($key == $value) ? ' selected="selected"' : '';
|
|
||||||
// $forms[] = "<option value=\"{$key}\"{$isSelected}>{$label}</option>";
|
|
||||||
// }
|
|
||||||
// $forms[]="</select>";
|
|
||||||
// $form = implode("",$forms);
|
|
||||||
} else {
|
} else {
|
||||||
$form = form_input($field, $value ?? "", ["autocomplete" => $field, ...$extras]);
|
$form = form_input($field, $value ?? "", ["autocomplete" => $field, $extras]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -316,6 +303,11 @@ class CommonHelper
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (in_array($field, $viewDatas['control']['filter_fields'])) {
|
if (in_array($field, $viewDatas['control']['filter_fields'])) {
|
||||||
|
if (env('app.debug.filter_options')) {
|
||||||
|
echo "field=>" . $field . ",value=>" . $value . "<br>";
|
||||||
|
echo var_dump($viewDatas['control']['filter_optons'][$field]) . "<br>";
|
||||||
|
// echo var_dump($viewDatas['entity']) . "<br>";
|
||||||
|
}
|
||||||
$extras["onChange"] = sprintf(
|
$extras["onChange"] = sprintf(
|
||||||
"document.location.href='%s/toggle/%s/%s?%s='+this.options[this.selectedIndex].value",
|
"document.location.href='%s/toggle/%s/%s?%s='+this.options[this.selectedIndex].value",
|
||||||
current_url(),
|
current_url(),
|
||||||
@ -323,7 +315,7 @@ class CommonHelper
|
|||||||
$field,
|
$field,
|
||||||
$field
|
$field
|
||||||
);
|
);
|
||||||
$value = $this->getFieldForm($field, $viewDatas['entity']->$field, $viewDatas, $extras);
|
$value = $this->getFieldForm($field, $value, $viewDatas, $extras);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,9 +18,43 @@ class ClientHelper extends CustomerHelper
|
|||||||
$value = $viewDatas['entity']->$field;
|
$value = $viewDatas['entity']->$field;
|
||||||
switch ($field) {
|
switch ($field) {
|
||||||
case 'account_balance':
|
case 'account_balance':
|
||||||
|
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras];
|
||||||
|
$value = form_label(
|
||||||
|
number_format(intval($value)),
|
||||||
|
'index',
|
||||||
|
[
|
||||||
|
"data-src" => "/admin/customer/account?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionFrameType=popup",
|
||||||
|
"data-bs-toggle" => "modal",
|
||||||
|
"data-bs-target" => "#index_action_form",
|
||||||
|
...$extras
|
||||||
|
]
|
||||||
|
);
|
||||||
|
break;
|
||||||
case 'coupon_balance':
|
case 'coupon_balance':
|
||||||
|
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras];
|
||||||
|
$value = form_label(
|
||||||
|
number_format(intval($value)),
|
||||||
|
'index',
|
||||||
|
[
|
||||||
|
"data-src" => "/admin/customer/coupon?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionFrameType=popup",
|
||||||
|
"data-bs-toggle" => "modal",
|
||||||
|
"data-bs-target" => "#index_action_form",
|
||||||
|
...$extras
|
||||||
|
]
|
||||||
|
);
|
||||||
|
break;
|
||||||
case 'point_balance':
|
case 'point_balance':
|
||||||
$value = number_format(intval($value));
|
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras];
|
||||||
|
$value = form_label(
|
||||||
|
number_format(intval($value)),
|
||||||
|
'index',
|
||||||
|
[
|
||||||
|
"data-src" => "/admin/customer/point?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionFrameType=popup",
|
||||||
|
"data-bs-toggle" => "modal",
|
||||||
|
"data-bs-target" => "#index_action_form",
|
||||||
|
...$extras
|
||||||
|
]
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$value = parent::getFieldView($field, $viewDatas, $extras);
|
$value = parent::getFieldView($field, $viewDatas, $extras);
|
||||||
|
|||||||
@ -31,7 +31,7 @@ class ServiceHelper extends CustomerHelper
|
|||||||
ICONS['SETUP'],
|
ICONS['SETUP'],
|
||||||
$field,
|
$field,
|
||||||
[
|
[
|
||||||
"data-src" => "/admin/customer/serviceitem?serviceinfo_uid={$viewDatas['entity']->getPK()}&item_type={$field}",
|
"data-src" => "/admin/customer/serviceitem?serviceinfo_uid={$viewDatas['entity']->getPK()}&item_type={$field}&ActionFrameType=popup",
|
||||||
"data-bs-toggle" => "modal",
|
"data-bs-toggle" => "modal",
|
||||||
"data-bs-target" => "#index_action_form",
|
"data-bs-target" => "#index_action_form",
|
||||||
...$extras
|
...$extras
|
||||||
@ -57,7 +57,7 @@ class ServiceHelper extends CustomerHelper
|
|||||||
case "SOFTWARE":
|
case "SOFTWARE":
|
||||||
case "DEFENCE":
|
case "DEFENCE":
|
||||||
case "DOMAIN":
|
case "DOMAIN":
|
||||||
$temps = ["<ol>"];
|
$temps = ["<ul>"];
|
||||||
foreach ($viewDatas['entity']->getItemEntities($field) as $itemEntity) {
|
foreach ($viewDatas['entity']->getItemEntities($field) as $itemEntity) {
|
||||||
$temps[] = sprintf(
|
$temps[] = sprintf(
|
||||||
"<li title=\"%s\">%s %s %s</li>",
|
"<li title=\"%s\">%s %s %s</li>",
|
||||||
@ -67,7 +67,7 @@ class ServiceHelper extends CustomerHelper
|
|||||||
$itemEntity->getView_Sale()
|
$itemEntity->getView_Sale()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$temps[] = "</ol>";
|
$temps[] = "</ul>";
|
||||||
$value = implode("", $temps);
|
$value = implode("", $temps);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
16
app/Helpers/Equipment/CodeHelper.php
Normal file
16
app/Helpers/Equipment/CodeHelper.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Helpers\Equipment;
|
||||||
|
|
||||||
|
use App\Models\Equipment\CodeModel;
|
||||||
|
use CodeIgniter\HTTP\IncomingRequest;
|
||||||
|
|
||||||
|
class CodeHelper extends EquipmentHelper
|
||||||
|
{
|
||||||
|
protected ?IncomingRequest $request = null;
|
||||||
|
public function __construct(?IncomingRequest $request = null)
|
||||||
|
{
|
||||||
|
parent::__construct($request);
|
||||||
|
$this->setTitleField(field: CodeModel::TITLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,6 +9,7 @@ return [
|
|||||||
'status' => "입/출금",
|
'status' => "입/출금",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default',
|
'status' => 'default',
|
||||||
|
|||||||
@ -12,6 +12,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'role' => "user",
|
'role' => "user",
|
||||||
@ -26,5 +27,6 @@ return [
|
|||||||
'default' => "사용",
|
'default' => "사용",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"terminated" => "해지",
|
"terminated" => "해지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "추가/사용",
|
'status' => "추가/사용",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "입/출금",
|
'status' => "입/출금",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
|
|||||||
@ -16,6 +16,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "신청일",
|
'created_at' => "신청일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
'SERVER' => "서버",
|
'SERVER' => "서버",
|
||||||
'LINE' => "회선",
|
'LINE' => "회선",
|
||||||
'IP' => "IP",
|
'IP' => "IP",
|
||||||
@ -40,21 +41,6 @@ return [
|
|||||||
"default" => "치바",
|
"default" => "치바",
|
||||||
"tokyo" => "도쿄",
|
"tokyo" => "도쿄",
|
||||||
],
|
],
|
||||||
"CODE" => [
|
|
||||||
"JPN130" => "JPN130",
|
|
||||||
"JPN140" => "JPN140",
|
|
||||||
"JPN138" => "JPN138",
|
|
||||||
"R45P20" => "R45P20",
|
|
||||||
"X1508C" => "X1508C",
|
|
||||||
"X1508D" => "X1508D",
|
|
||||||
"X2001A" => "X2001A",
|
|
||||||
"X2001B" => "X2001B",
|
|
||||||
"X2001C" => "X2001C",
|
|
||||||
"X2001D" => "X2001D",
|
|
||||||
"X2001E" => "X2001E",
|
|
||||||
"P2404I510" => "P2404I510",
|
|
||||||
"P2404I710" => "P2404I710",
|
|
||||||
],
|
|
||||||
"TYPE" => [
|
"TYPE" => [
|
||||||
"default" => "일반",
|
"default" => "일반",
|
||||||
"defence" => "방어",
|
"defence" => "방어",
|
||||||
@ -62,7 +48,7 @@ return [
|
|||||||
"alternative" => "대체",
|
"alternative" => "대체",
|
||||||
"test" => "테스트",
|
"test" => "테스트",
|
||||||
"VPN" => "VPN",
|
"VPN" => "VPN",
|
||||||
"own" => "자사용",
|
"ours" => "자사용",
|
||||||
"colocation" => "코로케이션",
|
"colocation" => "코로케이션",
|
||||||
],
|
],
|
||||||
"RAID" => [
|
"RAID" => [
|
||||||
@ -76,5 +62,6 @@ return [
|
|||||||
'default' => "사용중",
|
'default' => "사용중",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"terminated" => "해지",
|
"terminated" => "해지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -15,6 +15,7 @@ return [
|
|||||||
],
|
],
|
||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용중",
|
'default' => "사용중",
|
||||||
|
"pause" => "일시정지",
|
||||||
'delete' => "삭제",
|
'delete' => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -13,6 +13,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "신청일",
|
'created_at' => "신청일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'item_type' => "server",
|
'item_type' => "server",
|
||||||
@ -40,5 +41,6 @@ return [
|
|||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
'reservation' => "설치예약",
|
'reservation' => "설치예약",
|
||||||
"terminated" => "해지",
|
"terminated" => "해지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
18
app/Language/en/Equipment/Code.php
Normal file
18
app/Language/en/Equipment/Code.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
return [
|
||||||
|
'title' => "서버장비정보",
|
||||||
|
'label' => [
|
||||||
|
'code' => "코드",
|
||||||
|
'updated_at' => "수정일",
|
||||||
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
|
],
|
||||||
|
'DEFAULTS' => [
|
||||||
|
'status' => 'default',
|
||||||
|
],
|
||||||
|
"STATUS" => [
|
||||||
|
'default' => "사용가능",
|
||||||
|
'occupied' => "서비스중",
|
||||||
|
"deleete" => "삭제",
|
||||||
|
],
|
||||||
|
];
|
||||||
@ -10,10 +10,12 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"occupied" => "사용중",
|
"occupied" => "사용중",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
@ -15,5 +16,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -11,6 +11,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'type' => 'VPC-CS',
|
'type' => 'VPC-CS',
|
||||||
@ -24,5 +25,6 @@ return [
|
|||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"occupied" => "사용중",
|
"occupied" => "사용중",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
@ -17,5 +18,6 @@ return [
|
|||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"occupied" => "사용중",
|
"occupied" => "사용중",
|
||||||
"forbidden" => "사용금지됨",
|
"forbidden" => "사용금지됨",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -11,6 +11,7 @@ return [
|
|||||||
'start_at' => "개통일",
|
'start_at' => "개통일",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'type' => 'default',
|
'type' => 'default',
|
||||||
@ -25,5 +26,6 @@ return [
|
|||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"terminated" => "해지",
|
"terminated" => "해지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
@ -15,5 +16,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -9,6 +9,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'type' => 'Windows',
|
'type' => 'Windows',
|
||||||
@ -24,5 +25,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
@ -15,5 +16,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -8,6 +8,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default',
|
'status' => 'default',
|
||||||
@ -15,6 +16,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용가능",
|
'default' => "사용가능",
|
||||||
"pause" => "일시정지",
|
"pause" => "일시정지",
|
||||||
"occupied" => "사용중",
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -11,6 +11,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'status' => 'default'
|
'status' => 'default'
|
||||||
@ -18,5 +19,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "완료",
|
'default' => "완료",
|
||||||
"fail" => "실패",
|
"fail" => "실패",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -13,6 +13,7 @@ return [
|
|||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
'deleted_at' => "삭제일",
|
||||||
],
|
],
|
||||||
'DEFAULTS' => [
|
'DEFAULTS' => [
|
||||||
'role' => "manager",
|
'role' => "manager",
|
||||||
@ -28,5 +29,6 @@ return [
|
|||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
'default' => "사용",
|
'default' => "사용",
|
||||||
"pause" => "사용정지",
|
"pause" => "사용정지",
|
||||||
|
"delete" => "삭제",
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
61
app/Models/Equipment/CodeModel.php
Normal file
61
app/Models/Equipment/CodeModel.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Equipment;
|
||||||
|
|
||||||
|
use App\Entities\Equipment\CodeEntity;
|
||||||
|
|
||||||
|
class CodeModel extends EquipmentModel
|
||||||
|
{
|
||||||
|
const TABLE = "codeinfo";
|
||||||
|
const PK = "code";
|
||||||
|
const TITLE = "code";
|
||||||
|
protected $table = self::TABLE;
|
||||||
|
protected $primaryKey = self::PK;
|
||||||
|
protected $useAutoIncrement = false;
|
||||||
|
protected $returnType = CodeEntity::class;
|
||||||
|
protected $allowedFields = [
|
||||||
|
"code",
|
||||||
|
"status",
|
||||||
|
"updated_at"
|
||||||
|
];
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function getFormFieldRule(string $action, string $field): string
|
||||||
|
{
|
||||||
|
if (is_array($field)) {
|
||||||
|
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
|
||||||
|
}
|
||||||
|
switch ($field) {
|
||||||
|
case $this->getPKField():
|
||||||
|
// 수동입력인 경우
|
||||||
|
if (!$this->useAutoIncrement) {
|
||||||
|
$rule = "required|regex_match[/^[0-9a-zA-Z]/]";
|
||||||
|
$rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->table}.{$field}]" : "";
|
||||||
|
} else {
|
||||||
|
$rule = "required|numeric";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "status":
|
||||||
|
$rule = "required|trim|string";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$rule = parent::getFormFieldRule($action, $field);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $rule;
|
||||||
|
}
|
||||||
|
protected function convertEntityData(string $action, string $field, array $formDatas, mixed $entity): mixed
|
||||||
|
{
|
||||||
|
switch ($field) {
|
||||||
|
case $this->getPKField():
|
||||||
|
$entity->$field = $formDatas[$field];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$entity = parent::convertEntityData($action, $field, $formDatas, $entity);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $entity;
|
||||||
|
}
|
||||||
|
}
|
||||||
49
app/Services/Equipment/CodeService.php
Normal file
49
app/Services/Equipment/CodeService.php
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services\Equipment;
|
||||||
|
|
||||||
|
use App\Entities\Equipment\CodeEntity;
|
||||||
|
use App\Models\Equipment\CodeModel;
|
||||||
|
use CodeIgniter\HTTP\IncomingRequest;
|
||||||
|
use App\Services\Equipment\EquipmentService;
|
||||||
|
|
||||||
|
class CodeService extends EquipmentService
|
||||||
|
{
|
||||||
|
protected ?IncomingRequest $request = null;
|
||||||
|
public function __construct(?IncomingRequest $request = null)
|
||||||
|
{
|
||||||
|
parent::__construct($request);
|
||||||
|
$this->addClassName('Code');
|
||||||
|
}
|
||||||
|
public function getModelClass(): CodeModel
|
||||||
|
{
|
||||||
|
return new CodeModel();
|
||||||
|
}
|
||||||
|
public function getEntityClass(): CodeEntity
|
||||||
|
{
|
||||||
|
return new CodeEntity();
|
||||||
|
}
|
||||||
|
public function getFormFields(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"code",
|
||||||
|
"status",
|
||||||
|
];
|
||||||
|
}
|
||||||
|
public function getFilterFields(): array
|
||||||
|
{
|
||||||
|
return ['status'];
|
||||||
|
}
|
||||||
|
public function getBatchJobFields(): array
|
||||||
|
{
|
||||||
|
return ['status'];
|
||||||
|
}
|
||||||
|
public function getIndexFields(): array
|
||||||
|
{
|
||||||
|
return ['status'];
|
||||||
|
}
|
||||||
|
public function setStatus(CodeEntity $entity, string $status): CodeEntity
|
||||||
|
{
|
||||||
|
return $this->getModel()->modify($entity, ['status' => $status]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -29,6 +29,9 @@
|
|||||||
<div class="accordion-item">
|
<div class="accordion-item">
|
||||||
<a href="/admin/equipment/part/storage"><?= ICONS['SETUP'] ?>저장장치정보</a>
|
<a href="/admin/equipment/part/storage"><?= ICONS['SETUP'] ?>저장장치정보</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<a href="/admin/equipment/code"><?= ICONS['SETUP'] ?>Code정보</a>
|
||||||
|
</div>
|
||||||
<div class="accordion-item">
|
<div class="accordion-item">
|
||||||
<a href="/admin/equipment/server"><?= ICONS['DESKTOP'] ?>Server정보</a>
|
<a href="/admin/equipment/server"><?= ICONS['DESKTOP'] ?>Server정보</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user