From 6ab2ad8b9f8e20ad845cfc1fbdc2643f5078c7e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Wed, 26 Nov 2025 09:40:20 +0900 Subject: [PATCH] dbmsv4 init...1 --- app/Controllers/AbstractCRUDController.php | 28 ++++++-------- app/Controllers/AbstractWebController.php | 4 +- .../Admin/Customer/ClientController.php | 12 +++--- .../Admin/Customer/ServiceController.php | 21 +++++++++++ .../Admin/Equipment/ServerController.php | 6 +++ .../Admin/Equipment/ServerPartController.php | 4 ++ app/Controllers/Auth/AuthController.php | 7 ++-- app/Controllers/CLI/Collector.php | 7 +--- app/Controllers/CommonController.php | 22 ++++------- app/Forms/Equipment/ServerForm.php | 19 ++++++---- app/Helpers/Customer/ServiceHelper.php | 2 - app/Helpers/Equipment/ServerHelper.php | 2 +- app/Views/admin/server/modify_form.php | 37 +++++++++++++++++++ app/Views/cells/server/servicelist.php | 25 ++++++++----- app/Views/cells/serverpart/serverlist.php | 9 ++--- app/Views/cells/serverpart/servicelist.php | 13 +++++++ .../templates/admin/form_content_bottom.php | 1 + 17 files changed, 149 insertions(+), 70 deletions(-) create mode 100644 app/Views/admin/server/modify_form.php create mode 100644 app/Views/cells/serverpart/servicelist.php diff --git a/app/Controllers/AbstractCRUDController.php b/app/Controllers/AbstractCRUDController.php index 9b5062f..d9ac0ec 100644 --- a/app/Controllers/AbstractCRUDController.php +++ b/app/Controllers/AbstractCRUDController.php @@ -38,7 +38,7 @@ abstract class AbstractCRUDController extends AbstractWebController $this->action_init_process($action, $formDatas); $this->addViewDatas('formDatas', $formDatas); return $this->create_form_result_process($action); - } catch (\Exception $e) { + } catch (\Throwable $e) { return $this->action_redirect_process('error', "{$this->getTitle()}에서 생성폼 오류:" . $e->getMessage()); } } @@ -68,9 +68,7 @@ abstract class AbstractCRUDController extends AbstractWebController throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 {$entityClass}만 가능"); } return $this->create_result_process($entity); - } catch (ValidationException $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 생성 검증오류:" . $e->getMessage()); - } catch (\Exception $e) { + } catch (\Throwable $e) { return $this->action_redirect_process('error', "{$this->getTitle()}에서 생성 오류:" . $e->getMessage()); } } @@ -104,10 +102,10 @@ abstract class AbstractCRUDController extends AbstractWebController } $this->addViewDatas('entity', $entity); $action = __FUNCTION__; - $this->action_init_process($action); + $this->action_init_process($action, $entity->toArray()); return $this->modify_form_result_process($action); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정폼 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 수정폼 오류:" . $e->getMessage()); } } @@ -137,10 +135,8 @@ abstract class AbstractCRUDController extends AbstractWebController } $this->addViewDatas('entity', $entity); return $this->modify_result_process($entity); - } catch (ValidationException $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정 검증오류:" . $e->getMessage()); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 수정 오류:" . $e->getMessage()); } } @@ -153,7 +149,7 @@ abstract class AbstractCRUDController extends AbstractWebController protected function delete_result_process(CommonEntity $entity): string|RedirectResponse { - return $this->action_redirect_process('info', "{$this->getTitle()}에서 {$entity->getTitle()} 삭제가 완료되었습니다."); + return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$entity->getTitle()} 삭제가 완료되었습니다."); } final public function delete($uid): RedirectResponse { @@ -165,8 +161,8 @@ abstract class AbstractCRUDController extends AbstractWebController throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 {$entityClass}만 가능"); } return $this->delete_result_process($entity); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 삭제 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 삭제 오류:" . $e->getMessage()); } } @@ -202,8 +198,8 @@ abstract class AbstractCRUDController extends AbstractWebController } $this->addViewDatas('entity', $entity); return $this->view_result_process($action); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 상세보기 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 상세보기 오류:" . $e->getMessage()); } } } diff --git a/app/Controllers/AbstractWebController.php b/app/Controllers/AbstractWebController.php index 52cef09..9aa9d3c 100644 --- a/app/Controllers/AbstractWebController.php +++ b/app/Controllers/AbstractWebController.php @@ -94,10 +94,12 @@ abstract class AbstractWebController extends Controller case 'critical': case 'alert': case 'emergency': + log_message($type, $message); + $result = redirect()->back()->withInput()->with('message', $message); + break; case 'debug': case 'info': case 'notice': - log_message($type, $message); default: $redirect_url = $redirect_url ?? $this->getAuthContext()->popPreviousUrl() ?? implode(DIRECTORY_SEPARATOR, $this->getActionPaths()); $result = redirect()->to($redirect_url)->with('message', $message); diff --git a/app/Controllers/Admin/Customer/ClientController.php b/app/Controllers/Admin/Customer/ClientController.php index b9bcf33..1abf754 100644 --- a/app/Controllers/Admin/Customer/ClientController.php +++ b/app/Controllers/Admin/Customer/ClientController.php @@ -50,7 +50,7 @@ class ClientController extends CustomerController $this->addViewDatas('entity', $entity); helper(['form']); return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate') ?? 'client'); - } catch (\Exception $e) { + } catch (\Throwable $e) { return $e->getMessage(); // return $this->action_redirect_process('error', "{$this->getTitle()}에서 {$uid} 수정폼 오류:" . $e->getMessage()); } @@ -60,11 +60,13 @@ class ClientController extends CustomerController { try { $action = __FUNCTION__; - $this->action_init_process($action); - $this->addViewDatas('entity', $this->service->modify($uid, $this->request->getPost())); + $fields = ['history']; + $this->service->getFormService()->setFormFields($fields); + $this->service->getFormService()->setFormRules($action, $fields); + $this->addViewDatas('entity', $this->service->modify($uid, $this->service->createDTO($this->request->getPost()))); return $this->action_redirect_process('error', "{$this->getTitle()}에서 비고설정이 완료되었습니다."); - } catch (\Exception $e) { - return $e->getMessage(); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 비고 오류:" . $e->getMessage()); } } } diff --git a/app/Controllers/Admin/Customer/ServiceController.php b/app/Controllers/Admin/Customer/ServiceController.php index 9637694..774a6e4 100644 --- a/app/Controllers/Admin/Customer/ServiceController.php +++ b/app/Controllers/Admin/Customer/ServiceController.php @@ -3,6 +3,7 @@ namespace App\Controllers\Admin\Customer; use App\Entities\Customer\ServiceEntity; +use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; @@ -35,4 +36,24 @@ class ServiceController extends CustomerController $formDatas['status'] = STATUS['AVAILABLE']; return $formDatas; } + protected function index_process(string $action): void + { + //서비스별 미납 Count + $this->addViewDatas('unPaids', service('paymentservice')->getUnPaids('serviceinfo_uid')); + parent::index_process($action); + } + + public function history(int $uid): RedirectResponse|string + { + try { + $action = __FUNCTION__; + $fields = ['history']; + $this->service->getFormService()->setFormFields($fields); + $this->service->getFormService()->setFormRules($action, $fields); + $this->addViewDatas('entity', $this->service->modify($uid, $this->service->createDTO($this->request->getPost()))); + return $this->action_redirect_process('error', "{$this->getTitle()}에서 비고설정이 완료되었습니다."); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 비고 오류:" . $e->getMessage()); + } + } } diff --git a/app/Controllers/Admin/Equipment/ServerController.php b/app/Controllers/Admin/Equipment/ServerController.php index 1327838..3cc43ad 100644 --- a/app/Controllers/Admin/Equipment/ServerController.php +++ b/app/Controllers/Admin/Equipment/ServerController.php @@ -3,6 +3,7 @@ namespace App\Controllers\Admin\Equipment; use App\Entities\Equipment\ServerEntity; +use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; @@ -29,4 +30,9 @@ class ServerController extends EquipmentController $formDatas['code'] = sprintf("%d%dXX-M%d", date("y"), ceil((int)date("m") / 3), $this->service->getNextPK()); return $formDatas; } + + protected function modify_form_result_process(string $action): string|RedirectResponse + { + return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate') ?? 'server'); + } } diff --git a/app/Controllers/Admin/Equipment/ServerPartController.php b/app/Controllers/Admin/Equipment/ServerPartController.php index 7c8304a..dcd6cd3 100644 --- a/app/Controllers/Admin/Equipment/ServerPartController.php +++ b/app/Controllers/Admin/Equipment/ServerPartController.php @@ -29,12 +29,16 @@ class ServerPartController extends EquipmentController $formDatas = parent::create_form_process($formDatas); $formDatas['serverinfo_uid'] = $this->request->getVar('serverinfo_uid') ?? throw new \Exception("ServerPart는 반드시 서버정보가 필요합니다."); $formDatas['type'] = $this->request->getVar('type') ?? throw new \Exception("ServerPart는 반드시 파트형식 필요합니다."); + $formDatas['cnt'] = 1; //type : CS,IP이면 월비용 기본처리 switch ($formDatas['type']) { case 'CS': case 'IP': $formDatas['billing'] = PAYMENT['BILLING']['MONTH']; break; + default: + $formDatas['billing'] = PAYMENT['BILLING']['ONETIME']; + break; } return $formDatas; } diff --git a/app/Controllers/Auth/AuthController.php b/app/Controllers/Auth/AuthController.php index b2a8e62..e9ff15b 100644 --- a/app/Controllers/Auth/AuthController.php +++ b/app/Controllers/Auth/AuthController.php @@ -7,7 +7,6 @@ use App\Entities\UserEntity; use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; -use CodeIgniter\Validation\Exceptions\ValidationException; use Psr\Log\LoggerInterface; abstract class AuthController extends AbstractWebController @@ -21,7 +20,7 @@ abstract class AuthController extends AbstractWebController { return 'auth'; } - protected function action_init_process(string $action): void + protected function action_init_process(string $action, array $formDatas = []): void { $this->service->action_init_process($action); parent::action_init_process($action); @@ -39,7 +38,7 @@ abstract class AuthController extends AbstractWebController try { //초기화 $this->action_init_process($action); - } catch (\Exception $e) { + } catch (\Throwable $e) { log_message('error', $e->getMessage()); session()->setFlashdata('message', $e->getMessage()); } @@ -62,7 +61,7 @@ abstract class AuthController extends AbstractWebController // 홈페이지로 리다이렉트 $redirect_url = $this->getAuthContext()->popPreviousUrl() ?? "/"; return redirect()->route($redirect_url)->with('message', MESSAGES['LOGOUT']); - } catch (\Exception $e) { + } catch (\Throwable $e) { log_message("error", $e->getMessage()); return redirect()->back()->withInput()->with('message', "로그아웃 중 오류가 발생했습니다."); } diff --git a/app/Controllers/CLI/Collector.php b/app/Controllers/CLI/Collector.php index 5120fde..0f0cd60 100644 --- a/app/Controllers/CLI/Collector.php +++ b/app/Controllers/CLI/Collector.php @@ -41,17 +41,14 @@ class Collector extends BaseController $success++; $message = "{$trafficEntity->getServerIP()} 트래픽 수집데이터 저장 완료 In: {$entity->getIn()} Kb/s / Out: {$entity->getOut()} Kb/s"; log_message('info', $message); - } catch (ValidationException $e) { - $error++; - log_message('error', "{$trafficEntity->getServerIP()} 트래픽 수집데이터 검증오류:{$e->getMessage()}"); - } catch (\Exception $e) { + } catch (\Throwable $e) { $error++; log_message('error', "{$trafficEntity->getServerIP()} 트래픽 수집데이터 저장 실패:{$e->getMessage()}"); } $total++; } log_message('info', sprintf("성공:%s , 실패:%s , 총:%s 트래픽 수집 작업완료", $success, $error, $total)); - } catch (\Exception $e) { + } catch (\Throwable $e) { log_message('error', "트래픽 수집 작업오류:{$e->getMessage()}"); } } diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php index f34b403..96f961f 100644 --- a/app/Controllers/CommonController.php +++ b/app/Controllers/CommonController.php @@ -73,17 +73,14 @@ abstract class CommonController extends AbstractCRUDController foreach ($uids as $uid) { try { $entities[] = $this->batchjob_process($uid, $formDatas); - } catch (ValidationException $e) { - log_message('error', "{$this->getTitle()}에서 {$uid} 수정 검증오류:" . $e->getMessage()); - $errors[] = $e->getMessage(); - } catch (\Exception $e) { + } catch (\Throwable $e) { log_message('error', "{$this->getTitle()}에서 {$uid} 수정 오류:" . $e->getMessage()); $errors[] = $e->getMessage(); } } return $this->batchjob_result_process($uids, $entities, $errors); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 일괄작업처리 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 일괄수정 오류:" . $e->getMessage()); } } // --- 일괄 삭제 (Batch Job Delete) --- @@ -127,13 +124,13 @@ abstract class CommonController extends AbstractCRUDController foreach ($uids as $uid) { try { $entities[] = $this->batchjob_delete_process($uid); - } catch (\Exception $e) { + } catch (\Throwable $e) { log_message('error', "{$this->getTitle()}에서 {$uid} 삭제 오류:" . $e->getMessage()); $errors[] = $e->getMessage(); } } return $this->batchjob_delete_result_process($uids, $entities, $errors); - } catch (\Exception $e) { + } catch (\Throwable $e) { return $this->action_redirect_process('error', "{$this->getTitle()}에서 일괄삭제 오류:" . $e->getMessage()); } } @@ -230,7 +227,6 @@ abstract class CommonController extends AbstractCRUDController // 현재 URL을 이전 URL 스택에 저장 $this->getAuthContext()->pushCurrentUrl($this->request->getUri()->getPath() . ($this->request->getUri()->getQuery() ? "?" . $this->request->getUri()->getQuery() : "")); $this->addViewDatas('uri', $this->request->getUri()); - // Paging 설정 $page = (int) $this->request->getVar('page') ?: 1; $perpage = (int) $this->request->getVar('perpage') ?: intval(DEFAULTS['INDEX_PERPAGE'] ?? 10); @@ -240,7 +236,6 @@ abstract class CommonController extends AbstractCRUDController $this->index_condition_process($action); $index_totalcount = $this->service->getTotalCount(); $this->addViewDatas('index_totalcount', $index_totalcount); - // Pagination 설정 $this->addViewDatas('index_pagination', $this->pagenation_process($index_totalcount, $page, $perpage)); $this->addViewDatas('index_pagination_options', $this->pagenation_options_process($index_totalcount, $perpage)); @@ -248,7 +243,6 @@ abstract class CommonController extends AbstractCRUDController $this->index_condition_process($action); // 조건절을 다시 호출하여 필터/검색어 유지 $this->service->setLimit($perpage); $this->service->setOffset(($page - 1) * $perpage); - // Entities 처리 $this->addViewDatas('entities', $this->index_entities_process()); helper(['form']); @@ -263,9 +257,7 @@ abstract class CommonController extends AbstractCRUDController return $this->index_result_process($action); } - // --- 문서 다운로드 (Download) --- - protected function downloadByDocumentType(string $document_type, mixed $loaded_data): array { $full_path = WRITEPATH . DIRECTORY_SEPARATOR . "download"; @@ -329,8 +321,8 @@ abstract class CommonController extends AbstractCRUDController $action = __FUNCTION__; $this->action_init_process($action); return $this->download_process($action, $output_type, $uid); - } catch (\Exception $e) { - return $this->action_redirect_process('error', "{$this->getTitle()}에서 오류:" . $e->getMessage()); + } catch (\Throwable $e) { + return $this->action_redirect_process('error', "{$this->getTitle()}에서 Download 오류:" . $e->getMessage()); } } } diff --git a/app/Forms/Equipment/ServerForm.php b/app/Forms/Equipment/ServerForm.php index a3c7d60..c935659 100644 --- a/app/Forms/Equipment/ServerForm.php +++ b/app/Forms/Equipment/ServerForm.php @@ -11,6 +11,10 @@ class ServerForm extends EquipmentForm public function getFormRule(string $action, string $field): string { switch ($field) { + case "switchinfo_uid": + $rule = "permit_empty|numeric"; + $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : ""; + break; case "code": case "title": $rule = "required|trim|string"; @@ -22,13 +26,6 @@ class ServerForm extends EquipmentForm case "status": $rule = "required|trim|string"; break; - case "manufactur_at": - $rule = "required|valid_date"; - break; - case "switch": - $rule = "permit_empty|trim|string"; - $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : ""; - break; case "ip": $rule = "permit_empty|trim|valid_ip[both]"; //ipv4 , ipv6 , both(ipv4,ipv6) $rule .= in_array($action, ["create", "create_form"]) ? "|is_unique[{$this->getAttribute('table')}.{$field}]" : ""; @@ -36,6 +33,9 @@ class ServerForm extends EquipmentForm case "os": $rule = "permit_empty|trim|string"; break; + case "manufactur_at": + $rule = "required|valid_date"; + break; case "format_at": $rule = "permit_empty|valid_date"; break; @@ -89,6 +89,11 @@ class ServerForm extends EquipmentForm $tempOptions[$tempEntity->getTitle()] = $tempEntity->getTitle(); // $options['attributes'][$tempEntity->getPK()] = ['data-role' => implode(DEFAULTS['DELIMITER_ROLE'], $tempEntity->getRole())]; } + if (array_key_exists($field, $formDatas) && $formDatas[$field]) { + if (!array_key_exists($formDatas[$field], $tempOptions)) { + $tempOptions[$formDatas[$field]] = $formDatas[$field]; + } + } $options['options'] = $tempOptions; break; default: diff --git a/app/Helpers/Customer/ServiceHelper.php b/app/Helpers/Customer/ServiceHelper.php index 6544d9e..31c857c 100644 --- a/app/Helpers/Customer/ServiceHelper.php +++ b/app/Helpers/Customer/ServiceHelper.php @@ -41,8 +41,6 @@ class ServiceHelper extends CustomerHelper 'serviceEntity' => $viewDatas['entity'], 'template' => 'servicelist', ]); - // $value = $viewDatas['formOptions'][$field]['options'][$value]; - // $value = "📋{$value}"; break; case 'amount': case 'sale': diff --git a/app/Helpers/Equipment/ServerHelper.php b/app/Helpers/Equipment/ServerHelper.php index 5bc0242..59e4e0b 100644 --- a/app/Helpers/Equipment/ServerHelper.php +++ b/app/Helpers/Equipment/ServerHelper.php @@ -51,7 +51,7 @@ class ServerHelper extends EquipmentHelper case 'part': $value = view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [ 'serverinfo_uid' => $viewDatas['entity']->getPK(), - 'types' => SERVERPART['SERVER_PARTTYPES'], + 'types' => SERVERPART['ALL_PARTTYPES'], 'template' => 'serverlist', ]); break; diff --git a/app/Views/admin/server/modify_form.php b/app/Views/admin/server/modify_form.php new file mode 100644 index 0000000..2e3f08a --- /dev/null +++ b/app/Views/admin/server/modify_form.php @@ -0,0 +1,37 @@ +extend($viewDatas['layout']['layout']) ?> +section('content') ?> +alertTrait(session('message')) : ""; ?> +
+
include("{$viewDatas['layout']['template']}/form_content_top"); ?>
+ + + + + + + + + +
서버정보[getCode() ?>]추가정보
+ + $label): ?> + + + + + +
getFieldLabel($field, $label, $viewDatas) ?> + getFieldForm($field, old($field) ?? ($viewDatas['entity']->$field ?? null), $viewDatas) ?> +
+
+
"btn btn-outline btn-primary")); ?>
+ +
+ $viewDatas['entity']->getPK(), + 'types' => SERVERPART['ALL_PARTTYPES'] + ]) ?> +
+
include("{$viewDatas['layout']['template']}/form_content_bottom"); ?>
+
+endSection() ?> \ No newline at end of file diff --git a/app/Views/cells/server/servicelist.php b/app/Views/cells/server/servicelist.php index d10dccf..ed49f17 100644 --- a/app/Views/cells/server/servicelist.php +++ b/app/Views/cells/server/servicelist.php @@ -1,13 +1,20 @@ - - getCustomTitle(), - $serverCellDatas['helper']->getFieldView('switchinfo_uid', $entity->getSwitchInfoUID(), $serverCellDatas), - $entity->getIP(), - $entity->getOS() - ) ?> - 📋{$value}" ?> + getCustomTitle();; + $serverinfos = []; + $serverinfos[] = $serverCellDatas['helper']->getFieldView('switchinfo_uid', $entity->getSwitchInfoUID(), $serverCellDatas); + $serverinfos[] = $serverCellDatas['helper']->getFieldView('ip', $entity->getIP(), $serverCellDatas); + $serverinfos[] = $serverCellDatas['helper']->getFieldView('os', $entity->getOS(), $serverCellDatas); + $serverinfos[] = view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [ + 'serverinfo_uid' => $entity->getPK(), + 'types' => SERVERPART['SERVICE_PARTTYPES'], + 'template' => 'servicelist', + ]); + $text = $title . " / " . implode(" / ", $serverinfos); + $html = $serverCellDatas['serverPartHelper']->getFieldView('SERVER', "", ['serverEntity' => $entity]) . " / " . implode(" / ", $serverinfos); + ?> + 📋{$html}" ?> ", $temps) ?> \ No newline at end of file diff --git a/app/Views/cells/serverpart/serverlist.php b/app/Views/cells/serverpart/serverlist.php index 470f1e7..ccf01e7 100644 --- a/app/Views/cells/serverpart/serverlist.php +++ b/app/Views/cells/serverpart/serverlist.php @@ -10,10 +10,9 @@ - - $datas): ?> - -📋 $datas): ?> - \ No newline at end of file + + $datas): ?> + +📋 \ No newline at end of file diff --git a/app/Views/cells/serverpart/servicelist.php b/app/Views/cells/serverpart/servicelist.php new file mode 100644 index 0000000..838b24f --- /dev/null +++ b/app/Views/cells/serverpart/servicelist.php @@ -0,0 +1,13 @@ + + + + + + + getFieldView($type, $entity->getPK(), $serverPartCellDatas, ['return' => 'onlyText']) ?> + + + + + $datas): ?> + \ No newline at end of file diff --git a/app/Views/templates/admin/form_content_bottom.php b/app/Views/templates/admin/form_content_bottom.php index e69de29..d2ddc67 100644 --- a/app/Views/templates/admin/form_content_bottom.php +++ b/app/Views/templates/admin/form_content_bottom.php @@ -0,0 +1 @@ + include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_iframe')); ?> \ No newline at end of file