dbms_init...1
This commit is contained in:
parent
b292ca2f6b
commit
7f099e35e5
@ -45,7 +45,7 @@ class IpController extends EquipmentController
|
||||
protected function index_process(): array
|
||||
{
|
||||
$fields = [
|
||||
'fields' => ['lineinfo_uid', $this->getService()->getModel()->getTitleField(), 'price', 'status', 'updated_at'],
|
||||
'fields' => ['lineinfo_uid', $this->getService()->getModel()->getTitleField(), 'status', 'updated_at'],
|
||||
];
|
||||
$this->init('index', $fields);
|
||||
return parent::index_process();
|
||||
|
||||
@ -38,7 +38,7 @@ class PartController extends EquipmentController
|
||||
protected function index_process(): array
|
||||
{
|
||||
$fields = [
|
||||
'fields' => ['clientinfo_uid', 'type', $this->getService()->getModel()->getTitleField(), 'capacity', 'price', 'status', 'description'],
|
||||
'fields' => ['clientinfo_uid', 'type', $this->getService()->getModel()->getTitleField(), 'price', 'status', 'description'],
|
||||
];
|
||||
$this->init('index', $fields);
|
||||
$this->modal_type = 'modal_iframe';
|
||||
|
||||
@ -20,6 +20,8 @@ class ServerController extends EquipmentController
|
||||
$this->class_path = $this->getService()->getClassPath();
|
||||
$this->title = lang("{$this->getService()->getClassPath()}.title");
|
||||
$this->helper = $this->getHelper();
|
||||
$this->individualStylesheets = ['server_partinfo.css'];;
|
||||
$this->individualScripts = ['server_partinfo.js'];
|
||||
}
|
||||
public function getService(): ServerService
|
||||
{
|
||||
@ -47,10 +49,14 @@ class ServerController extends EquipmentController
|
||||
protected function getFormFieldOption(string $field, array $options = []): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'partinfo_uid':
|
||||
case 'cpu_partinfo_uid':
|
||||
$options[$field] = $this->getPartService()->getFormFieldOption($field);
|
||||
break;
|
||||
case 'ram_partinfo_uid':
|
||||
$options[$field] = $this->getPartService()->getFormFieldOption($field);
|
||||
break;
|
||||
case 'disk_partinfo_uid':
|
||||
$options[$field] = $this->getPartService()->getFormFieldOption($field);
|
||||
// echo $this->getUserModel()->getLastQuery();
|
||||
// dd($options);
|
||||
break;
|
||||
default:
|
||||
$options = parent::getFormFieldOption($field, $options);
|
||||
|
||||
@ -36,6 +36,8 @@ abstract class CommonController extends BaseController
|
||||
$this->myAuthName = $this->getMyAuth()->getNameByAuthInfo();
|
||||
$this->myAuthUID = $this->getMyAuth()->getUIDByAuthInfo();
|
||||
}
|
||||
$this->individualStylesheets = [];
|
||||
$this->individualScripts = [];
|
||||
}
|
||||
final public function __get($name)
|
||||
{
|
||||
|
||||
@ -4,13 +4,13 @@
|
||||
"settings": {
|
||||
"width": 4000,
|
||||
"height": 4000,
|
||||
"scrollTop": -656.9025,
|
||||
"scrollLeft": -537.9629,
|
||||
"zoomLevel": 0.76,
|
||||
"scrollTop": -1173.8117,
|
||||
"scrollLeft": -1956.3985,
|
||||
"zoomLevel": 0.97,
|
||||
"show": 511,
|
||||
"database": 4,
|
||||
"databaseName": "",
|
||||
"canvasType": "@dineug/erd-editor/builtin-schema-sql",
|
||||
"canvasType": "ERD",
|
||||
"language": 1,
|
||||
"tableNameCase": 4,
|
||||
"columnNameCase": 2,
|
||||
@ -77,7 +77,8 @@
|
||||
"hEYDIiEFtsN5gxqTmDYC7",
|
||||
"dzvA2g0z62LPmClZ32wPE",
|
||||
"Trklw7votg2N3SEwtuiuX",
|
||||
"STHM-pzaTO72SEkIGYTCA"
|
||||
"STHM-pzaTO72SEkIGYTCA",
|
||||
"nqdOCB_VJIeTtmlv33rcm"
|
||||
],
|
||||
"indexIds": [],
|
||||
"memoIds": []
|
||||
@ -376,6 +377,7 @@
|
||||
"comment": "회선 정보",
|
||||
"columnIds": [
|
||||
"7B0zaLoZnOoMNW8OHZlrQ",
|
||||
"Ue1gt0C4DyjOQswV8LxkE",
|
||||
"oc5quhO8E3mqrBZKbIy_G",
|
||||
"lZQAY89JoyOHoTQEHeS1Y",
|
||||
"fiQBfXvw-4tj42PuGiDAk",
|
||||
@ -389,6 +391,7 @@
|
||||
"7B0zaLoZnOoMNW8OHZlrQ",
|
||||
"XQE8sY3pDLC2iy95uc9Ir",
|
||||
"dkwDt8XZjnu1Hq3vX4Wta",
|
||||
"Ue1gt0C4DyjOQswV8LxkE",
|
||||
"oc5quhO8E3mqrBZKbIy_G",
|
||||
"lZQAY89JoyOHoTQEHeS1Y",
|
||||
"fiQBfXvw-4tj42PuGiDAk",
|
||||
@ -408,7 +411,7 @@
|
||||
"color": ""
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747033197608,
|
||||
"updateAt": 1747198684209,
|
||||
"createAt": 1745819764138
|
||||
}
|
||||
},
|
||||
@ -420,7 +423,6 @@
|
||||
"Id0h8QbOdlhPj9P1zTm5o",
|
||||
"f7_MGvRjkwL1xkCWrAgDR",
|
||||
"6qd6rcTkraI_AbHcVbp6T",
|
||||
"0ONL4QLQRyZ32MBJ7TN7u",
|
||||
"nDoaVrEhO8hLuHbgZV4il",
|
||||
"Vm1-FnoJLcJ0GRnTp0vnn",
|
||||
"R-UjmO-S2UeQdddVNwH5M"
|
||||
@ -447,7 +449,7 @@
|
||||
"color": ""
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747033204342,
|
||||
"updateAt": 1747199283990,
|
||||
"createAt": 1745819764138
|
||||
}
|
||||
},
|
||||
@ -983,7 +985,6 @@
|
||||
"ha72QbBWfvyRymsyFBov8",
|
||||
"-Vr-igaSkx5zEcVp0oUGN",
|
||||
"DC7TvFFpBT7vY0UKKHt-W",
|
||||
"kXkNsvdbXOcI-DslovgVa",
|
||||
"cg9Jr22ykbciJUTruf5fu",
|
||||
"dr0UoY8ebsS-TjcPyP4is",
|
||||
"GnoGvT4HaG9kp-BvwZ4FQ",
|
||||
@ -1014,7 +1015,7 @@
|
||||
"color": ""
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747118821379,
|
||||
"updateAt": 1747198081255,
|
||||
"createAt": 1746783410914
|
||||
}
|
||||
},
|
||||
@ -6566,6 +6567,26 @@
|
||||
"updateAt": 1747124839902,
|
||||
"createAt": 1747124839902
|
||||
}
|
||||
},
|
||||
"Ue1gt0C4DyjOQswV8LxkE": {
|
||||
"id": "Ue1gt0C4DyjOQswV8LxkE",
|
||||
"tableId": "doERb3lIVeBW_D0NtNYX8",
|
||||
"name": "clientinfo_uid",
|
||||
"comment": "소유자",
|
||||
"dataType": "INT",
|
||||
"default": "",
|
||||
"options": 0,
|
||||
"ui": {
|
||||
"keys": 2,
|
||||
"widthName": 73,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 60,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747198771670,
|
||||
"createAt": 1747198681287
|
||||
}
|
||||
}
|
||||
},
|
||||
"relationshipEntities": {
|
||||
@ -6830,7 +6851,7 @@
|
||||
"tableId": "ZLEpY5EjuZV21718zf-Y1",
|
||||
"columnIds": [],
|
||||
"x": 2213.123,
|
||||
"y": 1536.6199,
|
||||
"y": 1524.6199,
|
||||
"direction": 1
|
||||
},
|
||||
"end": {
|
||||
@ -6886,7 +6907,7 @@
|
||||
"7B0zaLoZnOoMNW8OHZlrQ"
|
||||
],
|
||||
"x": 2205.6162,
|
||||
"y": 1202.5589,
|
||||
"y": 1288.5589,
|
||||
"direction": 1
|
||||
},
|
||||
"end": {
|
||||
@ -7025,8 +7046,8 @@
|
||||
"columnIds": [
|
||||
"7B0zaLoZnOoMNW8OHZlrQ"
|
||||
],
|
||||
"x": 2457.1162,
|
||||
"y": 1338.5589,
|
||||
"x": 2462.6162,
|
||||
"y": 1362.5589,
|
||||
"direction": 8
|
||||
},
|
||||
"end": {
|
||||
@ -7110,7 +7131,7 @@
|
||||
"Jh6e_-9QYe1Tqve0PE3kT"
|
||||
],
|
||||
"x": 2736.1253,
|
||||
"y": 2722.5239,
|
||||
"y": 2710.5239,
|
||||
"direction": 2
|
||||
},
|
||||
"end": {
|
||||
@ -7194,7 +7215,7 @@
|
||||
"Jh6e_-9QYe1Tqve0PE3kT"
|
||||
],
|
||||
"x": 2223.1253,
|
||||
"y": 2722.5239,
|
||||
"y": 2784.5239,
|
||||
"direction": 1
|
||||
},
|
||||
"end": {
|
||||
@ -7390,7 +7411,7 @@
|
||||
"_AcWUYKzNJd-V0fRHq8Cx"
|
||||
],
|
||||
"x": 1701.0947,
|
||||
"y": 968.1356,
|
||||
"y": 1048.1356,
|
||||
"direction": 2
|
||||
},
|
||||
"end": {
|
||||
@ -7418,7 +7439,7 @@
|
||||
"_AcWUYKzNJd-V0fRHq8Cx"
|
||||
],
|
||||
"x": 1701.0947,
|
||||
"y": 1048.1356,
|
||||
"y": 1128.1356,
|
||||
"direction": 2
|
||||
},
|
||||
"end": {
|
||||
@ -7445,23 +7466,51 @@
|
||||
"columnIds": [
|
||||
"_AcWUYKzNJd-V0fRHq8Cx"
|
||||
],
|
||||
"x": 1701.0947,
|
||||
"y": 1128.1356,
|
||||
"direction": 2
|
||||
"x": 1435.5947,
|
||||
"y": 1168.1356,
|
||||
"direction": 8
|
||||
},
|
||||
"end": {
|
||||
"tableId": "RMhrLs7bOaopKmKt9YKHQ",
|
||||
"columnIds": [
|
||||
"ha72QbBWfvyRymsyFBov8"
|
||||
],
|
||||
"x": 2479.6253,
|
||||
"y": 2562.5239,
|
||||
"direction": 4
|
||||
"x": 2223.1253,
|
||||
"y": 2636.5239,
|
||||
"direction": 1
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747118545120,
|
||||
"createAt": 1747118545120
|
||||
}
|
||||
},
|
||||
"nqdOCB_VJIeTtmlv33rcm": {
|
||||
"id": "nqdOCB_VJIeTtmlv33rcm",
|
||||
"identification": false,
|
||||
"relationshipType": 16,
|
||||
"startRelationshipType": 1,
|
||||
"start": {
|
||||
"tableId": "6ajvOCaGuXU9pzV0Y9jEi",
|
||||
"columnIds": [
|
||||
"_AcWUYKzNJd-V0fRHq8Cx"
|
||||
],
|
||||
"x": 1701.0947,
|
||||
"y": 968.1356,
|
||||
"direction": 2
|
||||
},
|
||||
"end": {
|
||||
"tableId": "doERb3lIVeBW_D0NtNYX8",
|
||||
"columnIds": [
|
||||
"Ue1gt0C4DyjOQswV8LxkE"
|
||||
],
|
||||
"x": 2205.6162,
|
||||
"y": 1140.5589,
|
||||
"direction": 1
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1747198681287,
|
||||
"createAt": 1747198681287
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexEntities": {},
|
||||
|
||||
@ -8,9 +8,4 @@ class AccountEntity extends CustomerEntity
|
||||
{
|
||||
const PK = AccountModel::PK;
|
||||
const TITLE = AccountModel::TITLE;
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->attributes['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,12 +8,6 @@ class ClientEntity extends CustomerEntity
|
||||
{
|
||||
const PK = ClientModel::PK;
|
||||
const TITLE = ClientModel::TITLE;
|
||||
|
||||
|
||||
public function getClient()
|
||||
{
|
||||
return $this->attributes[self::PK];
|
||||
}
|
||||
public function getRole(): string
|
||||
{
|
||||
return $this->attributes['role'];
|
||||
|
||||
@ -8,9 +8,4 @@ class CouponEntity extends CustomerEntity
|
||||
{
|
||||
const PK = CouponModel::PK;
|
||||
const TITLE = CouponModel::TITLE;
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->attributes['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ abstract class CustomerEntity extends CommonEntity
|
||||
parent::__construct($data);
|
||||
}
|
||||
|
||||
public function getClient()
|
||||
final public function getClient()
|
||||
{
|
||||
return $this->attributes['clientinfo_uid'];
|
||||
}
|
||||
|
||||
@ -8,9 +8,4 @@ class PointEntity extends CustomerEntity
|
||||
{
|
||||
const PK = PointModel::PK;
|
||||
const TITLE = PointModel::TITLE;
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->attributes['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,9 +8,4 @@ class ServiceEntity extends CustomerEntity
|
||||
{
|
||||
const PK = ServiceModel::PK;
|
||||
const TITLE = ServiceModel::TITLE;
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->attributes['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,9 +8,4 @@ class IpEntity extends EquipmentEntity
|
||||
{
|
||||
const PK = IpModel::PK;
|
||||
const TITLE = IpModel::TITLE;
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->attributes['amount'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,8 +13,4 @@ class LineEntity extends EquipmentEntity
|
||||
{
|
||||
return $this->attributes['bandwith'];
|
||||
}
|
||||
public function getPrice()
|
||||
{
|
||||
return $this->attributes['price'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,4 +13,34 @@ class ServerHelper extends EquipmentHelper
|
||||
parent::__construct($request);
|
||||
$this->setTitleField(field: ServerModel::TITLE);
|
||||
}
|
||||
public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
|
||||
{
|
||||
if (in_array($viewDatas['action'], ['create', 'modify'])) {
|
||||
$extras = (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? ["class" => "form-control", "required" => "", ...$extras] : ["class" => "form-control", ...$extras];
|
||||
}
|
||||
switch ($field) {
|
||||
case 'cpu_partinfo_uid':
|
||||
case 'ram_partinfo_uid':
|
||||
case 'disk_partinfo_uid':
|
||||
if (!is_array($viewDatas['field_options'][$field])) {
|
||||
throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다.");
|
||||
}
|
||||
$formOptions = array_merge(
|
||||
["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'],
|
||||
$viewDatas['field_options'][$field]
|
||||
);
|
||||
$extra_class = isset($extras['class']) ? $extras['class'] : "";
|
||||
$form = form_dropdown($field, $formOptions, $value, ['id' => "{$field}_Select", 'class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]);
|
||||
if (in_array($viewDatas['action'], ['create_form', 'modify_form'])) {
|
||||
$form .= "<button type=\"button\" onclick=\"addComponent('{$field}')\">추가</button>";
|
||||
$form .= "<button type=\"button\" onclick=\"removeCheckedComponents('{$field}')\">선택 삭제</button>";
|
||||
$form .= "<div id=\"{$field}_List\"></div>";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$form = parent::getFieldForm($field, $value, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
return $form;
|
||||
} //
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용",
|
||||
"pause" => "사용정지",
|
||||
"pause" => "일시정지",
|
||||
"terminated" => "해지",
|
||||
],
|
||||
];
|
||||
|
||||
@ -7,11 +7,11 @@ return [
|
||||
'title' => "제목",
|
||||
'payment_date' => "결제일",
|
||||
'amount' => "결제금액",
|
||||
'startdate_at' => "시작일",
|
||||
'startdate_at' => "개통일",
|
||||
'enddate_at' => "해지일",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
'created_at' => "신청일",
|
||||
],
|
||||
'DEFAULTS' => [
|
||||
'type' => "hosting",
|
||||
|
||||
@ -4,7 +4,6 @@ return [
|
||||
'label' => [
|
||||
'lineinfo_uid' => '회선정보',
|
||||
'ip' => "IP",
|
||||
'price' => "금액",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
@ -14,7 +13,7 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"pause" => "일시중지",
|
||||
"pause" => "일시정지",
|
||||
"occupied" => "사용중",
|
||||
"forbidden" => "사용금지됨",
|
||||
],
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
return [
|
||||
'title' => "회선정보",
|
||||
'label' => [
|
||||
'clientinfo_uid' => "소유자명",
|
||||
'title' => "제목",
|
||||
'type' => "종류",
|
||||
'price' => "금액",
|
||||
@ -17,11 +18,11 @@ return [
|
||||
"TYPE" => [
|
||||
"general" => "일반",
|
||||
"dedicated" => "전용",
|
||||
"defence" => "빙아",
|
||||
"defence" => "방어",
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"pause" => "사용정지",
|
||||
"termination" => "해지",
|
||||
"pause" => "일시정지",
|
||||
"terminated" => "해지",
|
||||
],
|
||||
];
|
||||
|
||||
@ -9,7 +9,7 @@ return [
|
||||
'price' => "금액",
|
||||
'description' => "설명",
|
||||
'status' => "상태",
|
||||
'manufactur_at' => "제조일",
|
||||
'manufactur_at' => "입고일",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
@ -26,7 +26,8 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"pause" => "수리중",
|
||||
"pause" => "일시정지",
|
||||
"occupied" => "사용중",
|
||||
"terminated" => "해지",
|
||||
],
|
||||
];
|
||||
|
||||
@ -5,11 +5,10 @@ return [
|
||||
'clientinfo_uid' => "소유자명",
|
||||
'type' => "종류",
|
||||
'model' => "모델",
|
||||
'capacity' => "용량/성능",
|
||||
'price' => "금액",
|
||||
'description' => "설명",
|
||||
'status' => "상태",
|
||||
'manufactur_at' => "제조일",
|
||||
'manufactur_at' => "입고일",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
@ -25,7 +24,7 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"pause" => "수리중",
|
||||
"pause" => "일시정지",
|
||||
"occupied" => "사용중",
|
||||
],
|
||||
];
|
||||
|
||||
@ -9,9 +9,12 @@ return [
|
||||
'price' => "금액",
|
||||
'description' => "설명",
|
||||
'status' => "상태",
|
||||
'manufactur_at' => "제조일",
|
||||
'manufactur_at' => "입고일",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
'cpu_partinfo_uid' => "CPU",
|
||||
'ram_partinfo_uid' => "RAM",
|
||||
'disk_partinfo_uid' => "DISK",
|
||||
],
|
||||
'DEFAULTS' => [
|
||||
'type' => 'RacKMount',
|
||||
@ -25,7 +28,7 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"pause" => "수리중",
|
||||
"pause" => "일시정지",
|
||||
"occupied" => "사용중",
|
||||
],
|
||||
];
|
||||
|
||||
@ -23,6 +23,6 @@ return [
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용가능",
|
||||
"occupied" => "사용중",
|
||||
"pause" => "일시정지",
|
||||
],
|
||||
];
|
||||
|
||||
@ -15,7 +15,6 @@ class IpModel extends EquipmentModel
|
||||
protected $allowedFields = [
|
||||
"lineinfo_uid",
|
||||
"ip",
|
||||
"price",
|
||||
"status",
|
||||
"updated_at"
|
||||
];
|
||||
@ -30,7 +29,6 @@ class IpModel extends EquipmentModel
|
||||
}
|
||||
switch ($field) {
|
||||
case "lineinfo_uid":
|
||||
case "price":
|
||||
$rule = "required|numeric";
|
||||
break;
|
||||
case "ip":
|
||||
|
||||
@ -13,6 +13,7 @@ class LineModel extends EquipmentModel
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = LineEntity::class;
|
||||
protected $allowedFields = [
|
||||
"clientinfo_uid",
|
||||
"type",
|
||||
"title",
|
||||
"bandwith",
|
||||
@ -30,6 +31,9 @@ class LineModel extends EquipmentModel
|
||||
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
|
||||
}
|
||||
switch ($field) {
|
||||
case "clientinfo_uid":
|
||||
$rule = "if_exist|permit_empty|numeric";
|
||||
break;
|
||||
case "price":
|
||||
$rule = "required|numeric";
|
||||
break;
|
||||
|
||||
@ -34,7 +34,7 @@ class NetworkModel extends EquipmentModel
|
||||
}
|
||||
switch ($field) {
|
||||
case "clientinfo_uid":
|
||||
$rule = "if_exist|numeric";
|
||||
$rule = "if_exist|permit_empty|numeric";
|
||||
break;
|
||||
case "price":
|
||||
$rule = "required|numeric";
|
||||
|
||||
@ -14,14 +14,12 @@ class PartModel extends EquipmentModel
|
||||
protected $returnType = PartEntity::class;
|
||||
protected $allowedFields = [
|
||||
"clientinfo_uid",
|
||||
"code",
|
||||
"type",
|
||||
"model",
|
||||
"manufactur_at",
|
||||
"capacity",
|
||||
"price",
|
||||
"status",
|
||||
"description",
|
||||
"manufactur_at",
|
||||
"status",
|
||||
"updated_at"
|
||||
];
|
||||
public function __construct()
|
||||
@ -35,13 +33,11 @@ class PartModel extends EquipmentModel
|
||||
}
|
||||
switch ($field) {
|
||||
case "clientinfo_uid":
|
||||
$rule = "if_exist|numeric";
|
||||
$rule = "if_exist|permit_empty|numeric";
|
||||
break;
|
||||
case "capacity":
|
||||
case "price":
|
||||
$rule = "required|numeric";
|
||||
break;
|
||||
case "code":
|
||||
case "model":
|
||||
$rule = "required|trim|string";
|
||||
break;
|
||||
|
||||
@ -34,7 +34,7 @@ class ServerModel extends EquipmentModel
|
||||
}
|
||||
switch ($field) {
|
||||
case "clientinfo_uid":
|
||||
$rule = "if_exist|numeric";
|
||||
$rule = "if_exist|permit_empty|numeric";
|
||||
break;
|
||||
case "price":
|
||||
$rule = "required|numeric";
|
||||
|
||||
@ -41,7 +41,7 @@ class SoftwareModel extends EquipmentModel
|
||||
$rule = "required|in_list[Windows,Linux,Security,Virus,App]";
|
||||
break;
|
||||
case "status":
|
||||
$rule = "required|in_list[use,occupied]";
|
||||
$rule = "required|in_list[use,pause]";
|
||||
break;
|
||||
case "description":
|
||||
$rule = "if_exist|trim|string";
|
||||
|
||||
@ -57,8 +57,11 @@ abstract class CommonService
|
||||
}
|
||||
return $entity;
|
||||
}
|
||||
final public function getEntities(array $columns = ['*']): array
|
||||
final public function getEntities(mixed $where = null, array $columns = ['*']): array
|
||||
{
|
||||
if ($where) {
|
||||
$this->getModel()->where($where);
|
||||
}
|
||||
// QueryBuilder 객체 가져오기
|
||||
// $builder = $this->getModel()->builder();
|
||||
// $builder->select(implode(',', $columns));;
|
||||
|
||||
@ -30,7 +30,6 @@ class IpService extends EquipmentService
|
||||
return [
|
||||
"lineinfo_uid",
|
||||
"ip",
|
||||
"price",
|
||||
"status",
|
||||
];
|
||||
}
|
||||
|
||||
@ -28,6 +28,7 @@ class LineService extends EquipmentService
|
||||
public function getFields(): array
|
||||
{
|
||||
return [
|
||||
"clientinfo_uid",
|
||||
"type",
|
||||
"title",
|
||||
"bandwith",
|
||||
@ -37,7 +38,7 @@ class LineService extends EquipmentService
|
||||
}
|
||||
public function getFilterFields(): array
|
||||
{
|
||||
return ["type", 'status'];
|
||||
return ["clientinfo_uid", "type", 'status'];
|
||||
}
|
||||
public function getBatchJobFields(): array
|
||||
{
|
||||
|
||||
@ -33,7 +33,6 @@ class PartService extends EquipmentService
|
||||
"type",
|
||||
"model",
|
||||
"manufactur_at",
|
||||
"capacity",
|
||||
"price",
|
||||
"status",
|
||||
"description",
|
||||
@ -47,4 +46,29 @@ class PartService extends EquipmentService
|
||||
{
|
||||
return ['type', 'status'];
|
||||
}
|
||||
public function getFormFieldOption(string $field, array $options = []): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'cpu_partinfo_uid':
|
||||
foreach ($this->getEntities(['type' => 'CPU']) as $entity) {
|
||||
$options[$entity->getPK()] = $entity->getTitle();
|
||||
}
|
||||
break;
|
||||
case 'ram_partinfo_uid':
|
||||
foreach ($this->getEntities(['type' => 'RAM']) as $entity) {
|
||||
$options[$entity->getPK()] = $entity->getTitle();
|
||||
}
|
||||
break;
|
||||
case 'disk_partinfo_uid':
|
||||
foreach ($this->getEntities(['type' => 'DISK']) as $entity) {
|
||||
$options[$entity->getPK()] = $entity->getTitle();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$options = parent::getFormFieldOption($field, $options);
|
||||
break;
|
||||
}
|
||||
// dd($options);
|
||||
return $options;
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ namespace App\Services\Equipment;
|
||||
use App\Entities\Equipment\ServerEntity;
|
||||
use App\Models\Equipment\ServerModel;
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
use App\Services\Equipment\EquipmentService; // Ensure this path is correct and the class exists or create the class if missing
|
||||
use App\Services\Equipment\EquipmentService;
|
||||
|
||||
class ServerService extends EquipmentService
|
||||
{
|
||||
@ -33,6 +33,9 @@ class ServerService extends EquipmentService
|
||||
"code",
|
||||
"type",
|
||||
"model",
|
||||
"cpu_partinfo_uid",
|
||||
"ram_partinfo_uid",
|
||||
"disk_partinfo_uid",
|
||||
"manufactur_at",
|
||||
"price",
|
||||
"status",
|
||||
@ -41,10 +44,10 @@ class ServerService extends EquipmentService
|
||||
}
|
||||
public function getFilterFields(): array
|
||||
{
|
||||
return ["clientinfo_uid", "type", 'status'];
|
||||
return ["clientinfo_uid", "type", 'cpu_partinfo_uid', 'ram_partinfo_uid', 'disk_partinfo_uid', 'status'];
|
||||
}
|
||||
public function getBatchJobFields(): array
|
||||
{
|
||||
return ['type', 'status'];
|
||||
return ["type", 'cpu_partinfo_uid', 'ram_partinfo_uid', 'disk_partinfo_uid', 'status'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,8 +4,14 @@
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<script src="/js/<?= $viewDatas['layout'] ?>/form.js" referrerpolicy="origin"></script>
|
||||
<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<?php foreach ($viewDatas['individualStylesheets'] as $css): ?>
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>/<?= $css ?>" media="screen" rel="stylesheet" type="text/css" />
|
||||
<?php endforeach ?>
|
||||
<?php foreach ($viewDatas['individualScripts'] as $js): ?>
|
||||
<script src="/js/<?= $viewDatas['layout'] ?>/<?= $js ?>" referrerpolicy="origin"></script>
|
||||
<?php endforeach ?>
|
||||
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
|
||||
<div class="action_form">
|
||||
<div class=" action_form">
|
||||
<table class="table table-bordered">
|
||||
<?php foreach ($viewDatas['fields'] as $field): ?>
|
||||
<tr>
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
|
||||
<?= $this->section('content') ?>
|
||||
<div id="container" class="content">
|
||||
<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<script src="/js/<?= $viewDatas['layout'] ?>/form.js" referrerpolicy="origin"></script>
|
||||
<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>
|
||||
<?php foreach ($viewDatas['individualStylesheets'] as $css): ?>
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>/<?= $css ?>" media="screen" rel="stylesheet" type="text/css" />
|
||||
<?php endforeach ?>
|
||||
<?php foreach ($viewDatas['individualScripts'] as $js): ?>
|
||||
<script src="/js/<?= $viewDatas['layout'] ?>/<?= $js ?>" referrerpolicy="origin"></script>
|
||||
<?php endforeach ?>
|
||||
<?= form_open(current_url(), ['id' => 'action_form', ...$viewDatas['forms']['attributes']], $viewDatas['forms']['hiddens']) ?>
|
||||
<div class="action_form">
|
||||
<table class="table table-bordered">
|
||||
|
||||
@ -3,15 +3,9 @@
|
||||
|
||||
<head>
|
||||
<title><?= LAYOUTS[$viewDatas['layout']]['title'] ?></title>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['metas'] as $meta): ?>
|
||||
<?= $meta ?>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['stylesheets'] as $stylesheet): ?>
|
||||
<?= $stylesheet ?>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['javascripts'] as $javascript): ?>
|
||||
<?= $javascript ?>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['metas'] as $meta): ?><?= $meta ?><?php endforeach; ?>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['stylesheets'] as $stylesheet): ?><?= $stylesheet ?><?php endforeach; ?>
|
||||
<?php foreach (LAYOUTS[$viewDatas['layout']]['javascripts'] as $javascript): ?><?= $javascript ?><?php endforeach; ?>
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="/js/<?= $viewDatas['layout'] ?>.js"></script>
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
|
||||
29
public/css/admin/server_partinfo.css
Normal file
29
public/css/admin/server_partinfo.css
Normal file
@ -0,0 +1,29 @@
|
||||
.layer {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 20%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -20%);
|
||||
background: #fff;
|
||||
border: 1px solid #ccc;
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.3);
|
||||
z-index: 1000;
|
||||
}
|
||||
.server_partinfo_item {
|
||||
margin: 5px 0;
|
||||
}
|
||||
.list-container {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.btn {
|
||||
padding: 6px 10px;
|
||||
margin: 5px;
|
||||
background: #007BFF;
|
||||
color: #fff;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn:hover {
|
||||
background: #0056b3;
|
||||
}
|
||||
46
public/js/admin/server_partinfo.js
Normal file
46
public/js/admin/server_partinfo.js
Normal file
@ -0,0 +1,46 @@
|
||||
function openLayer(type) {
|
||||
document.getElementById(type + '_Layer').style.display = 'block';
|
||||
}
|
||||
|
||||
function closeLayer(type) {
|
||||
document.getElementById(type + '_Layer').style.display = 'none';
|
||||
}
|
||||
|
||||
function applyCheckedComponents(type) {
|
||||
const checkboxes = document.querySelectorAll(`#${type}_Layer input[type="checkbox"]:checked`);
|
||||
const listDiv = document.getElementById(`${type}_List`);
|
||||
|
||||
checkboxes.forEach(cb => {
|
||||
// 중복 방지
|
||||
const exists = listDiv.querySelector(`input[type="hidden"][value="${cb.value}"]`);
|
||||
if (exists) return;
|
||||
|
||||
const wrapper = document.createElement('div');
|
||||
wrapper.className = 'server_partinfo_item';
|
||||
|
||||
const checkbox = document.createElement('input');
|
||||
checkbox.type = 'checkbox';
|
||||
checkbox.className = `${type}_checkbox`;
|
||||
|
||||
const hiddenInput = document.createElement('input');
|
||||
hiddenInput.type = 'hidden';
|
||||
hiddenInput.name = `${type}[]`;
|
||||
hiddenInput.value = cb.value;
|
||||
|
||||
const span = document.createElement('span');
|
||||
span.textContent = cb.getAttribute('data-label');
|
||||
|
||||
wrapper.appendChild(checkbox);
|
||||
wrapper.appendChild(hiddenInput);
|
||||
wrapper.appendChild(span);
|
||||
|
||||
listDiv.appendChild(wrapper);
|
||||
});
|
||||
|
||||
closeLayer(type);
|
||||
}
|
||||
|
||||
function removeCheckedComponents(type) {
|
||||
const checkboxes = document.querySelectorAll(`#${type}_List .${type}_checkbox:checked`);
|
||||
checkboxes.forEach(cb => cb.closest('.server_partinfo_item').remove());
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user