모니터링 코드 엔티티 제거 및 API 선택 모듈 추가:

- MonitoringCode 엔티티, 리포지토리, 복합키 클래스 삭제
- API 선택 공용 모듈 JS 및 HTML 파일 추가 (api_selector)
- 웹훅 개발 가이드 페이지 신규 추가 (webhook-dev-guide)
This commit is contained in:
Rinjae
2026-07-20 19:10:05 +09:00
parent ba00b80bfe
commit 43d915342e
22 changed files with 1400 additions and 1500 deletions
@@ -1,54 +1,79 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/extras/spring-security"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/djbank_title_layout}">
<body>
<section layout:fragment="title">
<div class="page-title-banner">
<img th:src="@{/img/img_title_bg.png}" class="title-image">
<h1>Webhook 수정</h1>
<img th:src="@{/img/img_title_bg.png}" class="title-image">
<h1>Webhook 관리</h1>
</div>
</section>
<th:block layout:fragment="contentFragment">
<section class="webhook-container webhook-register">
<section class="apikey-register-container">
<div class="webhook-steps" th:with="cur=${currentStep}">
<div class="webhook-step" th:classappend="${cur >= 1} ? 'active'">
<span class="step-no">1</span><span class="step-label">기본 정보</span>
</div>
<div class="webhook-step" th:classappend="${cur >= 2} ? 'active'">
<span class="step-no">2</span><span class="step-label">API 선택</span>
</div>
<div class="webhook-step" th:classappend="${cur >= 3} ? 'active'">
<span class="step-no">3</span><span class="step-label">완료</span>
<!-- Title Bar -->
<div class="common-title-bar">
<h2 class="common-title">Webhook 수정</h2>
<span class="common-subtitle">알림 받을 API 구성을 변경해주세요.</span>
</div>
<!-- Progress Indicator -->
<div class="register-progress">
<div class="progress-steps">
<div class="progress-step-item">
<div class="step-icon-wrapper">
<div class="step-icon">
<img th:src="@{/img/apikey_step1.png}" alt="기본 정보" width="36" height="36">
</div>
</div>
<div class="step-label">기본 정보</div>
</div>
<div class="step-dots">
<span></span><span></span><span></span>
</div>
<div class="progress-step-item active">
<div class="step-icon-wrapper">
<div class="step-icon">
<img th:src="@{/img/apikey_step2.png}" alt="API 선택" width="36" height="36">
</div>
</div>
<div class="step-label">API 선택</div>
</div>
<div class="step-dots">
<span></span><span></span><span></span>
</div>
<div class="progress-step-item">
<div class="step-icon-wrapper">
<div class="step-icon">
<img th:src="@{/img/apikey_step3.png}" alt="수정 완료" width="36" height="36">
</div>
</div>
<div class="step-label">수정 완료</div>
</div>
</div>
</div>
<p class="webhook-field-error" th:if="${error}" th:text="${error}"></p>
<form id="modifyStep2Form" method="post" th:action="@{/webhook/modify/step2}">
<p class="field-help">이 Webhook으로 상태 알림을 받을 API를 선택하세요. (1개 이상)</p>
<!-- API 선택 공용 모듈 -->
<th:block th:replace="~{fragment/api_selector :: apiSelector(${apiServices}, ${webhookModification.selectedApis}, '/webhook/modify/step2', '/webhook/modify/step2/save')}"/>
<div class="webhook-api-groups">
<div class="webhook-api-group" th:each="group : ${apiGroups}">
<h3 class="group-name" th:text="${group.groupName}">그룹명</h3>
<div class="webhook-api-list">
<label class="webhook-api-card" th:each="api : ${group.apiGroupApiList}">
<input type="checkbox" name="selectedApis" th:value="${api.apiId}"
th:checked="${selectedApis != null and #lists.contains(selectedApis, api.apiId)}">
<span class="api-name" th:text="${api.apiName}">API 이름</span>
<span class="api-id" th:text="${api.apiId}">API ID</span>
</label>
</div>
</div>
</div>
<!-- Form Actions -->
<div class="form-actions">
<button type="button" id="btnPrevStep" class="btn-submit btn-secondary">
이전
</button>
<button type="submit" form="apiSelectorForm" class="btn-submit btn-primary">
수정 완료
</button>
</div>
<div class="webhook-actions">
<a class="btn-webhook-cancel" th:href="@{/webhook/modify/step1}">이전</a>
<button type="submit" class="btn-webhook-next">수정 완료</button>
</div>
</form>
</section>
</th:block>
</body>