- API 감사 로거 추가 - APITesterAuditLogger 클래스 생성
- 회원가입 링크 수정 - href 속성 추가 - Testbed UI 스타일 추가 - CSS/SASS 코드 업데이트
This commit is contained in:
@@ -10815,6 +10815,124 @@ body.index-page-body {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#testbed-tab {
|
||||
gap: 0;
|
||||
}
|
||||
#testbed-tab #swagger-ui .info {
|
||||
margin: 24px 0;
|
||||
}
|
||||
|
||||
.testbed-app-panel {
|
||||
margin: 8px 0 0;
|
||||
padding: 24px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.testbed-app-panel .testbed-app-panel__head {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px 8px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-panel__title {
|
||||
position: relative;
|
||||
padding-left: 16px;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: #1A1A2E;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-panel__title::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 4px;
|
||||
height: 15px;
|
||||
background: #0049b4;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-panel__desc {
|
||||
font-size: 14px;
|
||||
color: #64748B;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-field {
|
||||
position: relative;
|
||||
max-width: 380px;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-field::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 16px;
|
||||
top: 50%;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
margin-top: -6px;
|
||||
border-right: 2px solid #64748B;
|
||||
border-bottom: 2px solid #64748B;
|
||||
transform: rotate(45deg);
|
||||
pointer-events: none;
|
||||
}
|
||||
.testbed-app-panel #apps {
|
||||
width: 100%;
|
||||
height: 46px;
|
||||
padding: 0 42px 0 16px;
|
||||
font-family: "Spoqa Han Sans Neo", "SpoqaHanSans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
font-size: 14px;
|
||||
color: #1A1A2E;
|
||||
background: #F8FAFC;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 8px;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
cursor: pointer;
|
||||
transition: all 0.15s ease;
|
||||
}
|
||||
.testbed-app-panel #apps:hover:not(:disabled) {
|
||||
border-color: #94A3B8;
|
||||
background: #FFFFFF;
|
||||
}
|
||||
.testbed-app-panel #apps:focus {
|
||||
outline: none;
|
||||
background: #FFFFFF;
|
||||
border-color: #0049b4;
|
||||
box-shadow: 0 0 0 3px rgba(0, 73, 180, 0.14);
|
||||
}
|
||||
.testbed-app-panel #apps:disabled {
|
||||
color: #94A3B8;
|
||||
background: #F8FAFC;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-notice {
|
||||
margin: 16px 0 0;
|
||||
padding: 11px 16px;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: #64748B;
|
||||
background: #EFF6FF;
|
||||
border: 1px solid rgba(0, 73, 180, 0.18);
|
||||
border-left: 3px solid #0049b4;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-notice::before {
|
||||
content: "ⓘ ";
|
||||
color: #0049b4;
|
||||
font-weight: 700;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.testbed-app-panel {
|
||||
padding: 16px;
|
||||
}
|
||||
.testbed-app-panel .testbed-app-field {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.api-overview-card {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -697,6 +697,139 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Testbed 탭: 앱 선택 패널과 Swagger UI 사이 여백 제거
|
||||
#testbed-tab {
|
||||
gap: 0;
|
||||
|
||||
#swagger-ui .info {
|
||||
margin: $spacing-lg 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Testbed 앱 선택 패널 (DJPGPT0001)
|
||||
.testbed-app-panel {
|
||||
margin: $spacing-sm 0 0;
|
||||
padding: $spacing-lg;
|
||||
background: $white;
|
||||
border: 1px solid $border-gray;
|
||||
border-radius: $border-radius-lg;
|
||||
box-shadow: $shadow-sm;
|
||||
|
||||
.testbed-app-panel__head {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
gap: $spacing-xs $spacing-sm;
|
||||
margin-bottom: $spacing-md;
|
||||
}
|
||||
|
||||
.testbed-app-panel__title {
|
||||
position: relative;
|
||||
padding-left: $spacing-md;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-bold;
|
||||
color: $text-dark;
|
||||
letter-spacing: -0.01em;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 4px;
|
||||
height: 15px;
|
||||
background: $primary-blue;
|
||||
border-radius: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.testbed-app-panel__desc {
|
||||
font-size: $font-size-sm;
|
||||
color: $text-gray;
|
||||
}
|
||||
|
||||
.testbed-app-field {
|
||||
position: relative;
|
||||
max-width: 380px;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: $spacing-md;
|
||||
top: 50%;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
margin-top: -6px;
|
||||
border-right: 2px solid $text-gray;
|
||||
border-bottom: 2px solid $text-gray;
|
||||
transform: rotate(45deg);
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
#apps {
|
||||
width: 100%;
|
||||
height: 46px;
|
||||
padding: 0 42px 0 $input-padding-x;
|
||||
font-family: $font-family-primary;
|
||||
font-size: $font-size-sm;
|
||||
color: $text-dark;
|
||||
background: $gray-bg;
|
||||
border: 1px solid $border-gray;
|
||||
border-radius: $border-radius-md;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
cursor: pointer;
|
||||
transition: $transition-fast;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
border-color: $text-light;
|
||||
background: $white;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
background: $white;
|
||||
border-color: $primary-blue;
|
||||
box-shadow: 0 0 0 3px rgba($primary-blue, 0.14);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
color: $text-light;
|
||||
background: $gray-bg;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
.testbed-app-notice {
|
||||
margin: $spacing-md 0 0;
|
||||
padding: 11px $spacing-md;
|
||||
font-size: $font-size-sm;
|
||||
line-height: $line-height-normal;
|
||||
color: $text-gray;
|
||||
background: $light-bg;
|
||||
border: 1px solid rgba($primary-blue, 0.18);
|
||||
border-left: 3px solid $primary-blue;
|
||||
border-radius: $border-radius-sm;
|
||||
|
||||
&::before {
|
||||
content: "ⓘ ";
|
||||
color: $primary-blue;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-md;
|
||||
|
||||
.testbed-app-field {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// API Overview Card (Flat Style)
|
||||
.api-overview-card {
|
||||
background: transparent;
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
<div class="auth-group" sec:authorize="isAnonymous()">
|
||||
<a th:href="@{/login}" class="login-btn login-btn-box">로그인</a>
|
||||
<a href="#" class="btn-signup">회원가입</a>
|
||||
<a th:href="@{/signup}" class="btn-signup">회원가입</a>
|
||||
</div>
|
||||
|
||||
<!-- Logout State (Authenticated) -->
|
||||
|
||||
Reference in New Issue
Block a user