- 법인 탈퇴 시 민감정보 삭제 로직 추가
eapim-portal CI / build (push) Has been cancelled
eapim-portal Test / test (push) Has been cancelled

- CSS 수정: 폰트 크기 제거 및 스타일 변경 적용
- 예상완료일 요일 계산 로직 추가
This commit is contained in:
Rinjae
2026-06-30 15:38:40 +09:00
parent 8d232734b1
commit a91b56ed11
9 changed files with 157 additions and 6 deletions
@@ -31,4 +31,21 @@ public class ApprovalDTO {
private LocalDateTime createdDate; private LocalDateTime createdDate;
private LocalDateTime approvalDate; private LocalDateTime approvalDate;
private String expectEndDate; //예상완료일 (yyyyMMdd)
/** 예상완료일(yyyyMMdd)의 한글 요일. 값이 없거나 형식이 맞지 않으면 빈 문자열. (예: "토") */
public String getExpectEndDateDayOfWeek() {
if (expectEndDate == null || expectEndDate.length() < 8) {
return "";
}
try {
return java.time.LocalDate
.parse(expectEndDate.substring(0, 8), java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"))
.getDayOfWeek()
.getDisplayName(java.time.format.TextStyle.SHORT, java.util.Locale.KOREAN);
} catch (Exception e) {
return "";
}
}
} }
+53 -1
View File
@@ -11547,7 +11547,6 @@ button.djb-comment-submit:disabled {
background-color: #FFFFFF; background-color: #FFFFFF;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px;
color: #1A1A2E; color: #1A1A2E;
} }
@media (max-width: 768px) { @media (max-width: 768px) {
@@ -13680,7 +13679,26 @@ input[type=checkbox]:checked + .custom-checkbox {
.form-actions-center .btn.btn-danger { .form-actions-center .btn.btn-danger {
display: none; display: none;
} }
.form-actions-center .btn-submit.app-modify-btn,
.form-actions-center .btn.app-modify-btn {
display: none;
}
} }
.app-modify-pc-only-message {
display: none;
margin: 0;
padding: 0 20px 24px;
color: #64748B;
font-size: 14px;
text-align: center;
line-height: 1.5;
}
@media (max-width: 768px) {
.app-modify-pc-only-message {
display: block;
}
}
@media (max-width: 768px) { @media (max-width: 768px) {
.app-management-container { .app-management-container {
padding: 24px 16px; padding: 24px 16px;
@@ -13837,6 +13855,21 @@ input[type=checkbox]:checked + .custom-checkbox {
} }
} }
.app-list-expect-date {
margin-left: auto;
font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 14px;
font-weight: 400;
color: #6e7780;
white-space: nowrap;
flex-shrink: 0;
}
@media (max-width: 768px) {
.app-list-expect-date {
font-size: 12px;
}
}
.app-list-description { .app-list-description {
font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 14px; font-size: 14px;
@@ -13880,6 +13913,25 @@ input[type=checkbox]:checked + .custom-checkbox {
border-radius: 8px; border-radius: 8px;
} }
} }
@media (max-width: 768px) {
.btn-app-create {
display: none;
}
}
.app-create-pc-only-message {
display: none;
margin: 0;
color: #64748B;
font-size: 14px;
text-align: center;
line-height: 1.5;
}
@media (max-width: 768px) {
.app-create-pc-only-message {
display: block;
}
}
.notice-page { .notice-page {
min-height: calc(100vh - 140px); min-height: calc(100vh - 140px);
File diff suppressed because one or more lines are too long
@@ -876,6 +876,26 @@
// 모바일에서는 2개 버튼만 표시되는 경우 (이전, 수정) // 모바일에서는 2개 버튼만 표시되는 경우 (이전, 수정)
display: none; display: none;
} }
// 모바일: 앱 수정 마법사 UI 표현이 어려워 버튼 숨기고 PC 안내 노출
&.app-modify-btn {
display: none;
}
} }
} }
} }
// PC 환경 안내 문구 - 모바일에서만 노출 (앱 수정)
.app-modify-pc-only-message {
display: none;
margin: 0;
padding: 0 20px 24px;
color: $text-gray;
font-size: 14px;
text-align: center;
line-height: 1.5;
@media (max-width: $breakpoint-sm) {
display: block;
}
}
@@ -194,6 +194,22 @@
} }
} }
// Expected Completion Date (pending requests only)
.app-list-expect-date {
margin-left: auto;
font-family: $font-family-primary;
font-size: 14px;
font-weight: $font-weight-regular;
color: #6e7780;
white-space: nowrap;
flex-shrink: 0;
// Figma 모바일: 12px
@include respond-to('sm') {
font-size: 12px;
}
}
// App Description // App Description
.app-list-description { .app-list-description {
font-family: $font-family-primary; font-family: $font-family-primary;
@@ -246,4 +262,23 @@
font-size: 14px; font-size: 14px;
border-radius: 8px; border-radius: 8px;
} }
// 모바일: 앱 생성 마법사 UI 표현이 어려워 버튼 숨기고 PC 안내 노출
@include respond-to('sm') {
display: none;
}
}
// PC 환경 안내 문구 - 모바일에서만 노출
.app-create-pc-only-message {
display: none;
margin: 0;
color: $text-gray;
font-size: 14px;
text-align: center;
line-height: 1.5;
@include respond-to('sm') {
display: block;
}
} }
@@ -479,7 +479,6 @@
background-color: $white; background-color: $white;
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px;
color: $text-dark; color: $text-dark;
// Figma 모바일: 40px 높이, 14px 폰트 // Figma 모바일: 40px 높이, 14px 폰트
@@ -48,6 +48,12 @@
</span> </span>
<!-- App Name --> <!-- App Name -->
<h3 class="app-list-name" th:text="${request.clientName}">앱 이름</h3> <h3 class="app-list-name" th:text="${request.clientName}">앱 이름</h3>
<!-- Expected Completion Date -->
<span class="app-list-expect-date"
th:if="${request.approval != null and request.approval.expectEndDate != null and #strings.length(request.approval.expectEndDate) >= 8}"
th:text="|예상 완료일 : ${#strings.substring(request.approval.expectEndDate,4,6)}월 ${#strings.substring(request.approval.expectEndDate,6,8)}일 (${request.approval.expectEndDateDayOfWeek})|">
예상 완료일 : 05월 30일 (토)
</span>
</div> </div>
<!-- App Description --> <!-- App Description -->
<p class="app-list-description" <p class="app-list-description"
@@ -116,6 +122,9 @@
<button type="button" class="btn-app-create" id="requestApiKey"> <button type="button" class="btn-app-create" id="requestApiKey">
앱 생성 앱 생성
</button> </button>
<p class="app-create-pc-only-message">
앱 생성은 PC 환경에서 이용해 주세요.
</p>
</div> </div>
</section> </section>
@@ -72,7 +72,8 @@
</div> </div>
</div> </div>
<!-- Callback URL --> <!-- Callback URL (주석 처리) -->
<!--/*
<div class="info-row"> <div class="info-row">
<label class="info-label">Callback URL</label> <label class="info-label">Callback URL</label>
<div class="info-value"> <div class="info-value">
@@ -81,6 +82,7 @@
</div> </div>
</div> </div>
</div> </div>
*/-->
<!-- IP Whitelist --> <!-- IP Whitelist -->
<div class="info-row"> <div class="info-row">
@@ -120,6 +122,18 @@
</div> </div>
</div> </div>
<!-- Expected Completion Date (if set by admin) -->
<div class="info-row"
th:if="${appRequest.approval != null and appRequest.approval.expectEndDate != null and #strings.length(appRequest.approval.expectEndDate) >= 8}">
<label class="info-label">예상 완료일</label>
<div class="info-value">
<div class="info-value-box"
th:text="|${#strings.substring(appRequest.approval.expectEndDate,0,4)}.${#strings.substring(appRequest.approval.expectEndDate,4,6)}.${#strings.substring(appRequest.approval.expectEndDate,6,8)} (${appRequest.approval.expectEndDateDayOfWeek})|">
2025.05.30 (토)
</div>
</div>
</div>
<!-- Approval Date (if approved) --> <!-- Approval Date (if approved) -->
<div class="info-row" th:if="${appRequest.approval != null and appRequest.approval.approvalDate != null}"> <div class="info-row" th:if="${appRequest.approval != null and appRequest.approval.approvalDate != null}">
<label class="info-label">승인일시</label> <label class="info-label">승인일시</label>
@@ -96,7 +96,8 @@
</div> </div>
</div> </div>
<!-- Callback URL --> <!-- Callback URL (주석 처리) -->
<!--/*
<div class="info-row"> <div class="info-row">
<label class="info-label">Callback URL</label> <label class="info-label">Callback URL</label>
<div class="info-value"> <div class="info-value">
@@ -105,6 +106,7 @@
</div> </div>
</div> </div>
</div> </div>
*/-->
<!-- IP Whitelist --> <!-- IP Whitelist -->
<div class="info-row"> <div class="info-row">
@@ -159,11 +161,14 @@
인증키 삭제 인증키 삭제
</button> </button>
<a sec:authorize="hasRole('ROLE_API_KEY_REQUEST')" <a sec:authorize="hasRole('ROLE_API_KEY_REQUEST')"
class="btn btn-submit btn-primary" class="btn btn-submit btn-primary app-modify-btn"
th:href="@{/myapikey/modify/step1(clientId=${apiKey.clientid})}"> th:href="@{/myapikey/modify/step1(clientId=${apiKey.clientid})}">
수정 수정
</a> </a>
</div> </div>
<p class="app-modify-pc-only-message" sec:authorize="hasRole('ROLE_API_KEY_REQUEST')">
앱 수정은 PC 환경에서 이용해 주세요.
</p>
</section> </section>