마이페이지 이용자 관리 , 인증키 관리 반응형으로 수정
This commit is contained in:
@@ -2996,6 +2996,10 @@ body.design-survey-active .global-header {
|
||||
transform: translateY(-2px);
|
||||
color: #fff;
|
||||
}
|
||||
.btn-action-primary.md {
|
||||
font-size: 14px;
|
||||
padding: 11px 45px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.btn-action-primary {
|
||||
font-size: 15px;
|
||||
@@ -15558,6 +15562,19 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
background: none;
|
||||
font-family: "Spoqa Han Sans Neo", "Noto Sans KR", sans-serif;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.step1-wrap .s1-title,
|
||||
.step1-wrap .s2-title,
|
||||
.step1-wrap .s3-title,
|
||||
.step2-wrap .s1-title,
|
||||
.step2-wrap .s2-title,
|
||||
.step2-wrap .s3-title,
|
||||
.step3-wrap .s1-title,
|
||||
.step3-wrap .s2-title,
|
||||
.step3-wrap .s3-title {
|
||||
font-size: 23px !important;
|
||||
}
|
||||
}
|
||||
.step1-wrap .s1-progress-card,
|
||||
.step2-wrap .s1-progress-card,
|
||||
.step3-wrap .s1-progress-card {
|
||||
@@ -15648,6 +15665,20 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
flex-shrink: 0;
|
||||
color: #b0bec5;
|
||||
}
|
||||
.step1-wrap .s1-step-circle img,
|
||||
.step2-wrap .s1-step-circle img,
|
||||
.step3-wrap .s1-step-circle img {
|
||||
display: block;
|
||||
object-fit: contain;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.step1-wrap .s1-step-circle img,
|
||||
.step2-wrap .s1-step-circle img,
|
||||
.step3-wrap .s1-step-circle img {
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.step1-wrap .s1-step-circle,
|
||||
.step2-wrap .s1-step-circle,
|
||||
@@ -15674,16 +15705,16 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
.step1-wrap .s1-step-svg,
|
||||
.step2-wrap .s1-step-svg,
|
||||
.step3-wrap .s1-step-svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
}
|
||||
@media (max-width: 480px) {
|
||||
.step1-wrap .s1-step-svg,
|
||||
.step2-wrap .s1-step-svg,
|
||||
.step3-wrap .s1-step-svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
width: 18px !important;
|
||||
height: 18px !important;
|
||||
}
|
||||
}
|
||||
.step1-wrap .s1-step-num,
|
||||
@@ -16149,6 +16180,7 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
.step2-wrap .s2-category-carousel-container {
|
||||
gap: 6px;
|
||||
margin-bottom: 16px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
}
|
||||
.step2-wrap .s2-category-list-wrapper {
|
||||
@@ -16365,7 +16397,7 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0px 8px 12px rgba(194, 194, 194, 0.4);
|
||||
background: linear-gradient(to bottom, #50caff, #2088ff);
|
||||
border-color: transparent;
|
||||
border: none;
|
||||
}
|
||||
.step2-wrap .s2-api-card:hover .s2-api-card-badge, .step2-wrap .s2-api-card:focus .s2-api-card-badge {
|
||||
background-color: #d8f0ff;
|
||||
@@ -18246,10 +18278,19 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
margin: 40px auto 100px;
|
||||
font-family: "Spoqa Han Sans Neo", "Noto Sans CJK KR", sans-serif;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-management-layout {
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
margin: 20px auto 50px;
|
||||
padding: 0 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-management-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.app-management-header {
|
||||
@@ -18258,6 +18299,14 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
align-items: center;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-management-header {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.app-management-header h2 {
|
||||
font-size: 20px !important;
|
||||
}
|
||||
}
|
||||
.app-management-header h2 {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
@@ -18306,6 +18355,15 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
color: inherit;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-figma {
|
||||
height: auto;
|
||||
padding: 16px;
|
||||
border-radius: 12px;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
}
|
||||
}
|
||||
.app-card-figma:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0px 6px 15px rgba(192, 192, 192, 0.35);
|
||||
@@ -18322,6 +18380,13 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-icon-box {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
}
|
||||
.app-card-icon-box img,
|
||||
.app-card-icon-box svg {
|
||||
width: 46px;
|
||||
@@ -18329,6 +18394,13 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-icon-box img,
|
||||
.app-card-icon-box svg {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-info {
|
||||
flex: 1;
|
||||
@@ -18337,6 +18409,11 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
gap: 10px;
|
||||
min-width: 0;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-info {
|
||||
gap: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-header {
|
||||
display: flex;
|
||||
@@ -18353,6 +18430,11 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-title {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-badge-container {
|
||||
display: flex;
|
||||
@@ -18376,6 +18458,10 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
background: #fdf4d4;
|
||||
color: #ef9546;
|
||||
}
|
||||
.app-card-badge.badge-requested {
|
||||
background: #ffebeb;
|
||||
color: #f43f5e;
|
||||
}
|
||||
.app-card-badge.badge-approved {
|
||||
background: #1b4ab7;
|
||||
color: #ffffff;
|
||||
@@ -18395,6 +18481,11 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-desc {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-footer-row {
|
||||
display: flex;
|
||||
@@ -18403,6 +18494,13 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-footer-row {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-expected-date {
|
||||
font-size: 14px;
|
||||
@@ -18411,6 +18509,12 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
flex-shrink: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.app-card-expected-date {
|
||||
margin-left: 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-expected-date {
|
||||
font-size: 12px;
|
||||
@@ -21534,7 +21638,7 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
font-weight: 700;
|
||||
height: 39px;
|
||||
height: 55px;
|
||||
width: 120px;
|
||||
border-radius: 10px;
|
||||
font-size: 14px;
|
||||
@@ -21594,11 +21698,9 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
}
|
||||
}
|
||||
.user-management-container {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: 48px 0;
|
||||
margin-bottom: 40px;
|
||||
min-height: 750px;
|
||||
min-height: 650px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-management-container {
|
||||
@@ -21674,14 +21776,6 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
padding: 0 29px;
|
||||
gap: 10px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-management-container .board-table--user-list .board-table-header,
|
||||
.user-management-container .board-table--user-list .board-table-row {
|
||||
display: flex;
|
||||
padding: 15px;
|
||||
min-width: auto;
|
||||
}
|
||||
}
|
||||
.user-management-container .board-table--user-list .header-cell,
|
||||
.user-management-container .board-table--user-list .row-cell {
|
||||
padding: 0;
|
||||
@@ -22016,150 +22110,111 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
display: contents;
|
||||
}
|
||||
.user-management-container .table-controls .total-count {
|
||||
order: 1;
|
||||
text-align: left;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
padding-bottom: 6px;
|
||||
border-bottom: 1.5px solid #212529;
|
||||
order: 1 !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
width: 100% !important;
|
||||
text-align: left !important;
|
||||
font-size: 16px !important;
|
||||
color: #000000 !important;
|
||||
padding-bottom: 6px !important;
|
||||
border-bottom: 1.5px solid #212529 !important;
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.user-management-container .table-controls .total-count strong {
|
||||
color: #0049b4;
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
color: #0049b4 !important;
|
||||
font-weight: 700 !important;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
.user-management-container .table-controls .search-box {
|
||||
order: 4;
|
||||
width: 100%;
|
||||
order: 2 !important;
|
||||
width: 100% !important;
|
||||
margin-top: 10px !important;
|
||||
}
|
||||
.user-management-container .table-controls .search-box .btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 44px;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
width: 100% !important;
|
||||
height: 44px !important;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.user-management-container .list-table {
|
||||
order: 2;
|
||||
.user-management-container .board-table--user-list {
|
||||
order: 3 !important;
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
.user-management-container .board-table--user-list .board-table-header {
|
||||
display: none !important;
|
||||
}
|
||||
.user-management-container .board-table--user-list .board-table-row {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
align-items: flex-start !important;
|
||||
height: auto !important;
|
||||
padding: 20px 15px !important;
|
||||
gap: 12px !important;
|
||||
border-bottom: 1px solid #e2e8f0 !important;
|
||||
background: #FFFFFF;
|
||||
border-radius: 12px;
|
||||
overflow: visible;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 40px;
|
||||
padding: 0 8px;
|
||||
background: #3BA4ED;
|
||||
border-radius: 8px 8px 0 0;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #FFFFFF;
|
||||
padding: 0 4px;
|
||||
justify-content: center;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(1) {
|
||||
display: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(2) {
|
||||
width: 60px !important;
|
||||
min-width: 60px;
|
||||
flex: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(3) {
|
||||
flex: 1 !important;
|
||||
min-width: 80px;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(4) {
|
||||
width: 39px !important;
|
||||
min-width: 39px;
|
||||
flex: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(5) {
|
||||
width: 61px !important;
|
||||
min-width: 61px;
|
||||
flex: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-header .header-cell:nth-child(6) {
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell {
|
||||
display: flex !important;
|
||||
width: 40px !important;
|
||||
min-width: 40px;
|
||||
flex: none;
|
||||
justify-content: flex-start !important;
|
||||
width: 100% !important;
|
||||
font-size: 14px !important;
|
||||
color: #212529 !important;
|
||||
padding: 0 !important;
|
||||
white-space: normal !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell::before {
|
||||
content: attr(data-label) !important;
|
||||
display: inline-block !important;
|
||||
font-weight: 500 !important;
|
||||
color: #64748b !important;
|
||||
margin-right: 15px !important;
|
||||
min-width: 70px !important;
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
height: 40px;
|
||||
padding: 0 8px;
|
||||
gap: 0;
|
||||
position: relative;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell[data-label=NO] {
|
||||
display: none !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row:nth-child(even) {
|
||||
background-color: #EDF5FD;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell[data-label=성명] {
|
||||
font-size: 16px !important;
|
||||
font-weight: 600 !important;
|
||||
color: #0f172a !important;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row:nth-child(odd) {
|
||||
background-color: #FFFFFF;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell[data-label=성명]::before {
|
||||
display: none !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row:hover {
|
||||
background-color: rgba(0, 73, 180, 0.08);
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell {
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
color: #212529;
|
||||
padding: 0 4px;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell::before {
|
||||
display: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(1) {
|
||||
display: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(2) {
|
||||
width: 60px !important;
|
||||
min-width: 60px;
|
||||
flex: none;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(2) a {
|
||||
color: #212529;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell[data-label=성명] a {
|
||||
color: #0f172a !important;
|
||||
font-weight: 600 !important;
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(3) {
|
||||
flex: 1 !important;
|
||||
min-width: 80px;
|
||||
justify-content: flex-start;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell[data-label=성명] a:hover {
|
||||
color: #2a69de !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(4) {
|
||||
width: 39px !important;
|
||||
min-width: 39px;
|
||||
flex: none;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell.row-actions {
|
||||
margin-top: 0;
|
||||
padding-top: 0 !important;
|
||||
border-top: none;
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(5) {
|
||||
width: 61px !important;
|
||||
min-width: 61px;
|
||||
flex: none;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell.row-actions.has-actions {
|
||||
margin-top: 8px;
|
||||
padding-top: 12px !important;
|
||||
border-top: 1px dashed #e2e8f0;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-cell:nth-child(6), .user-management-container .list-table .list-table-row .row-cell.row-actions {
|
||||
display: flex !important;
|
||||
width: 40px !important;
|
||||
min-width: 40px;
|
||||
flex: none;
|
||||
justify-content: center;
|
||||
overflow: visible;
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell.row-actions::before {
|
||||
display: none !important;
|
||||
}
|
||||
.user-management-container .list-table .list-table-row .row-actions {
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell.row-actions .actions-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
.user-management-container .board-table--user-list .board-table-row .row-cell.row-actions .actions-mobile {
|
||||
display: flex !important;
|
||||
}
|
||||
.user-management-container .user-empty-state {
|
||||
@@ -22175,7 +22230,7 @@ input[type=checkbox]:checked + .custom-checkbox {
|
||||
font-size: 14px;
|
||||
}
|
||||
.user-management-container .pagination {
|
||||
order: 3;
|
||||
order: 4 !important;
|
||||
gap: 13px;
|
||||
padding: 24px 0;
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -598,6 +598,11 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&.md {
|
||||
font-size: 14px;
|
||||
padding: 11px 45px;
|
||||
}
|
||||
|
||||
|
||||
@include respond-to('sm') {
|
||||
font-size: 15px;
|
||||
|
||||
@@ -255,11 +255,19 @@
|
||||
max-width: 1200px;
|
||||
margin: 40px auto 100px;
|
||||
font-family: 'Spoqa Han Sans Neo', 'Noto Sans CJK KR', sans-serif;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
margin: 20px auto 50px;
|
||||
padding: 0 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-management-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.app-management-header {
|
||||
@@ -268,6 +276,14 @@
|
||||
align-items: center;
|
||||
margin-bottom: 24px;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
margin-bottom: 16px;
|
||||
|
||||
h2 {
|
||||
font-size: 20px !important;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
@@ -318,6 +334,14 @@
|
||||
color: inherit;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
height: auto;
|
||||
padding: 16px;
|
||||
border-radius: 12px;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0px 6px 15px rgba(192, 192, 192, 0.35);
|
||||
@@ -335,12 +359,23 @@
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,6 +385,10 @@
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
min-width: 0;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
gap: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-header {
|
||||
@@ -366,6 +405,10 @@
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-badge-container {
|
||||
@@ -391,6 +434,11 @@
|
||||
color: #ef9546;
|
||||
}
|
||||
|
||||
&.badge-requested {
|
||||
background: #ffebeb;
|
||||
color: #f43f5e;
|
||||
}
|
||||
|
||||
&.badge-approved {
|
||||
background: #1b4ab7;
|
||||
color: #ffffff;
|
||||
@@ -411,6 +459,10 @@
|
||||
text-overflow: ellipsis;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-footer-row {
|
||||
@@ -419,6 +471,12 @@
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-expected-date {
|
||||
@@ -427,7 +485,13 @@
|
||||
margin-left: 16px;
|
||||
flex-shrink: 0;
|
||||
white-space: nowrap;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
margin-left: 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-card-expected-date {
|
||||
font-size: 12px;
|
||||
color: #64748b;
|
||||
|
||||
@@ -2938,6 +2938,10 @@ input[type="checkbox"]:checked+.custom-checkbox {
|
||||
border: none;
|
||||
background: none;
|
||||
font-family: 'Spoqa Han Sans Neo', 'Noto Sans KR', sans-serif;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: 23px !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ── 진행 단계 카드 ──
|
||||
@@ -3015,6 +3019,16 @@ input[type="checkbox"]:checked+.custom-checkbox {
|
||||
flex-shrink: 0;
|
||||
color: #b0bec5; // SVG currentColor 비활성 색상
|
||||
|
||||
img {
|
||||
display: block;
|
||||
object-fit: contain;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
@@ -3032,13 +3046,13 @@ input[type="checkbox"]:checked+.custom-checkbox {
|
||||
flex-shrink: 0;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
width: 18px !important;
|
||||
height: 18px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3467,6 +3481,7 @@ input[type="checkbox"]:checked+.custom-checkbox {
|
||||
@media (max-width: 768px) {
|
||||
gap: 6px;
|
||||
margin-bottom: 16px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3707,7 +3722,7 @@ input[type="checkbox"]:checked+.custom-checkbox {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0px 8px 12px rgba(194, 194, 194, 0.4);
|
||||
background: linear-gradient(to bottom, #50caff, #2088ff);
|
||||
border-color: transparent;
|
||||
border: none;
|
||||
|
||||
.s2-api-card-badge {
|
||||
background-color: #d8f0ff;
|
||||
|
||||
@@ -9,11 +9,9 @@
|
||||
|
||||
// User Management Container (List Page)
|
||||
.user-management-container {
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
padding: $spacing-3xl 0;
|
||||
margin-bottom: $spacing-2xl;
|
||||
min-height: 750px; // Ensure the footer doesn't float when content is short
|
||||
min-height: 650px; // Ensure the footer doesn't float when content is short
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-lg $spacing-md;
|
||||
@@ -109,12 +107,6 @@
|
||||
grid-template-columns: 24px 112px 1fr 100px 100px 287px;
|
||||
padding: 0 29px; // Match standard board-table padding
|
||||
gap: 10px;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
display: flex;
|
||||
padding: 15px;
|
||||
min-width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.header-cell,
|
||||
@@ -505,201 +497,137 @@
|
||||
display: contents;
|
||||
|
||||
.total-count {
|
||||
order: 1;
|
||||
text-align: left;
|
||||
font-size: 16px;
|
||||
color: $black;
|
||||
padding-bottom: 6px;
|
||||
border-bottom: 1.5px solid #212529;
|
||||
order: 1 !important;
|
||||
display: flex !important;
|
||||
align-items: center !important;
|
||||
width: 100% !important;
|
||||
text-align: left !important;
|
||||
font-size: 16px !important;
|
||||
color: $black !important;
|
||||
padding-bottom: 6px !important;
|
||||
border-bottom: 1.5px solid #212529 !important;
|
||||
margin-bottom: 0 !important;
|
||||
|
||||
strong {
|
||||
color: #0049b4;
|
||||
font-weight: $font-weight-bold;
|
||||
font-size: 16px;
|
||||
color: #0049b4 !important;
|
||||
font-weight: $font-weight-bold !important;
|
||||
font-size: 16px !important;
|
||||
}
|
||||
}
|
||||
|
||||
// 이용자 추가 버튼 - 테이블 아래로 이동
|
||||
// 이용자 추가 버튼 (검색창 위치와 동일하게 총건수 바로 아래에 노출하도록 순서 조정)
|
||||
.search-box {
|
||||
order: 4;
|
||||
width: 100%;
|
||||
order: 2 !important;
|
||||
width: 100% !important;
|
||||
margin-top: 10px !important;
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 44px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// List Table - 모바일 디자인 (코너 라운드 적용)
|
||||
.list-table {
|
||||
order: 2;
|
||||
background: $white;
|
||||
border-radius: $border-radius-lg;
|
||||
overflow: visible; // dropdown이 보이도록 변경
|
||||
|
||||
// Header - 모바일에서 표시 (Figma: 40px 높이, #3BA4ED 배경)
|
||||
.list-table-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 40px;
|
||||
padding: 0 8px;
|
||||
background: #3BA4ED;
|
||||
border-radius: $border-radius-md $border-radius-md 0 0;
|
||||
|
||||
.header-cell {
|
||||
font-size: 14px;
|
||||
font-weight: $font-weight-bold;
|
||||
color: $white;
|
||||
padding: 0 4px;
|
||||
justify-content: center;
|
||||
|
||||
// NO 컬럼 - 모바일에서 숨김
|
||||
&:nth-child(1) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// 성명 컬럼 - 60px
|
||||
&:nth-child(2) {
|
||||
width: 60px !important;
|
||||
min-width: 60px;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// 이메일 아이디 컬럼 - flex 1
|
||||
&:nth-child(3) {
|
||||
flex: 1 !important;
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
// 권한 컬럼 - 39px
|
||||
&:nth-child(4) {
|
||||
width: 39px !important;
|
||||
min-width: 39px;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// 계정상태 컬럼 - 61px
|
||||
&:nth-child(5) {
|
||||
width: 61px !important;
|
||||
min-width: 61px;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// 설정 컬럼 - 모바일에서 표시 (40px)
|
||||
&:nth-child(6) {
|
||||
display: flex !important;
|
||||
width: 40px !important;
|
||||
min-width: 40px;
|
||||
flex: none;
|
||||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
width: 100% !important;
|
||||
height: 44px !important;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Body
|
||||
.list-table-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// List Table - 모바일 디자인 (Q&A 세로 카드형 레이아웃 적용)
|
||||
.board-table--user-list {
|
||||
order: 3 !important;
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
overflow: visible;
|
||||
|
||||
.board-table-header {
|
||||
display: none !important; // 헤더는 모바일에서 숨김
|
||||
}
|
||||
|
||||
// Row - 모바일 디자인 (Figma: 40px 높이)
|
||||
.list-table-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
height: 40px;
|
||||
padding: 0 8px;
|
||||
gap: 0;
|
||||
position: relative; // dropdown positioning
|
||||
|
||||
// 짝수/홀수 배경색
|
||||
&:nth-child(even) {
|
||||
background-color: #EDF5FD;
|
||||
}
|
||||
|
||||
&:nth-child(odd) {
|
||||
background-color: $white;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: rgba($primary-blue, 0.08);
|
||||
}
|
||||
.board-table-row {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
align-items: flex-start !important;
|
||||
height: auto !important;
|
||||
padding: 20px 15px !important;
|
||||
gap: 12px !important;
|
||||
border-bottom: 1px solid #e2e8f0 !important;
|
||||
background: $white;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.row-cell {
|
||||
font-size: 13px;
|
||||
font-weight: $font-weight-regular;
|
||||
color: #212529;
|
||||
padding: 0 4px;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: flex !important;
|
||||
justify-content: flex-start !important;
|
||||
width: 100% !important;
|
||||
font-size: 14px !important;
|
||||
color: #212529 !important;
|
||||
padding: 0 !important;
|
||||
white-space: normal !important;
|
||||
|
||||
// data-label 숨김
|
||||
&::before {
|
||||
display: none;
|
||||
content: attr(data-label) !important;
|
||||
display: inline-block !important;
|
||||
font-weight: 500 !important;
|
||||
color: #64748b !important;
|
||||
margin-right: 15px !important;
|
||||
min-width: 70px !important;
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
|
||||
// NO 컬럼 - 모바일에서 숨김
|
||||
&:nth-child(1) {
|
||||
display: none;
|
||||
// NO 컬럼 - 모바일 숨김
|
||||
&[data-label="NO"] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
// 성명 컬럼 - 60px
|
||||
&:nth-child(2) {
|
||||
width: 60px !important;
|
||||
min-width: 60px;
|
||||
flex: none;
|
||||
// 성명 컬럼 - 제목처럼 크게 노출 (라벨 제거)
|
||||
&[data-label="성명"] {
|
||||
font-size: 16px !important;
|
||||
font-weight: 600 !important;
|
||||
color: #0f172a !important;
|
||||
margin-bottom: 4px;
|
||||
|
||||
&::before {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #212529;
|
||||
color: #0f172a !important;
|
||||
font-weight: 600 !important;
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
|
||||
&:hover {
|
||||
color: #2a69de !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 이메일 아이디 컬럼 - flex 1
|
||||
&:nth-child(3) {
|
||||
flex: 1 !important;
|
||||
min-width: 80px;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
// 권한 컬럼 - 39px
|
||||
&:nth-child(4) {
|
||||
width: 39px !important;
|
||||
min-width: 39px;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// 계정상태 컬럼 - 61px
|
||||
&:nth-child(5) {
|
||||
width: 61px !important;
|
||||
min-width: 61px;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
// 설정 컬럼 (row-actions) - 모바일에서 표시 (40px)
|
||||
&:nth-child(6),
|
||||
// 설정 버튼 배치 (액션이 있을 때만 경계점선 표시)
|
||||
&.row-actions {
|
||||
display: flex !important;
|
||||
width: 40px !important;
|
||||
min-width: 40px;
|
||||
flex: none;
|
||||
justify-content: center;
|
||||
overflow: visible;
|
||||
}
|
||||
margin-top: 0;
|
||||
padding-top: 0 !important;
|
||||
border-top: none;
|
||||
justify-content: flex-end !important;
|
||||
|
||||
&.has-actions {
|
||||
margin-top: 8px;
|
||||
padding-top: 12px !important;
|
||||
border-top: 1px dashed #e2e8f0;
|
||||
}
|
||||
|
||||
// row-actions 클래스 표시
|
||||
.row-actions {
|
||||
&::before {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.actions-desktop {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.actions-mobile {
|
||||
display: flex !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Empty State - 모바일 조정
|
||||
.user-empty-state {
|
||||
@@ -718,9 +646,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Pagination - 모바일 디자인 (테이블 다음, 버튼 이전)
|
||||
// Pagination - 모바일 디자인 (테이블 다음)
|
||||
.pagination {
|
||||
order: 3;
|
||||
order: 4 !important;
|
||||
gap: 13px;
|
||||
padding: $spacing-lg 0;
|
||||
|
||||
|
||||
@@ -11,208 +11,8 @@
|
||||
</div>
|
||||
</section>
|
||||
<th:block layout:fragment="contentFragment">
|
||||
<style>
|
||||
/* App Card Figma Styles */
|
||||
.app-management-layout {
|
||||
display: flex;
|
||||
gap: 36px;
|
||||
max-width: 1200px;
|
||||
margin: 40px auto 100px;
|
||||
font-family: 'Spoqa Han Sans Neo', 'Noto Sans CJK KR', sans-serif;
|
||||
}
|
||||
|
||||
.app-management-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.app-management-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.app-management-header h2 {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.btn-app-create-figma {
|
||||
background-color: #2a69de;
|
||||
color: #ffffff;
|
||||
border-radius: 7px;
|
||||
padding: 0 20px;
|
||||
width: 122px;
|
||||
height: 35px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.btn-app-create-figma:hover {
|
||||
background-color: #1b4ab7;
|
||||
}
|
||||
|
||||
.app-list-container-figma {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.app-card-figma {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
height: 107px;
|
||||
padding: 20px 31px 20px 17px;
|
||||
background: #ffffff;
|
||||
border: 1px solid #dfdfdf;
|
||||
border-radius: 20px;
|
||||
box-shadow: 0px 4px 5.45px rgba(192, 192, 192, 0.25);
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.app-card-figma:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0px 6px 15px rgba(192, 192, 192, 0.35);
|
||||
}
|
||||
|
||||
.app-card-icon-box {
|
||||
width: 68px;
|
||||
height: 67px;
|
||||
background: #f9f9f9;
|
||||
border: 1px solid #dee3e7;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.app-card-icon-box img,
|
||||
.app-card-icon-box svg {
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.app-card-info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.app-card-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.app-card-title {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #000;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.app-card-badge {
|
||||
height: 20px;
|
||||
border-radius: 5px;
|
||||
padding: 0 8px;
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.app-card-badge.status-pending {
|
||||
background: #fdf4d4;
|
||||
color: #ef9546;
|
||||
}
|
||||
|
||||
.app-card-badge.status-approved {
|
||||
background: #1b4ab7;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.app-card-badge.status-inactive {
|
||||
background: #f3f4f6;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
.app-card-desc {
|
||||
font-size: 14px;
|
||||
color: #64748b;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.app-card-footer-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.app-card-expected-date {
|
||||
font-size: 14px;
|
||||
color: #64748b;
|
||||
margin-left: 16px;
|
||||
flex-shrink: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.app-list-empty-figma {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 60px 0;
|
||||
background: #ffffff;
|
||||
border: 1px solid #dfdfdf;
|
||||
border-radius: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.app-list-empty-figma h3 {
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
margin: 16px 0 8px;
|
||||
}
|
||||
|
||||
.app-list-empty-figma p {
|
||||
font-size: 14px;
|
||||
color: #64748b;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="signup-guide-v2">
|
||||
<div class="service-main app-management-layout">
|
||||
<div class="service-main container" style="padding-top: 70px;">
|
||||
|
||||
<!-- Sidebar -->
|
||||
<th:block th:replace="~{fragment/djbank/service_sidebar :: sidebar('apiKey')}"></th:block>
|
||||
@@ -223,7 +23,7 @@
|
||||
<div class="app-management-header">
|
||||
<h2>인증 키 관리</h2>
|
||||
<div sec:authorize="hasRole('ROLE_API_KEY_REQUEST')">
|
||||
<button type="button" class="btn-app-create-figma" id="requestApiKey">
|
||||
<button type="button" class="btn-action-primary md" id="requestApiKey">
|
||||
앱 생성
|
||||
</button>
|
||||
</div>
|
||||
@@ -255,7 +55,8 @@
|
||||
<!-- App Name -->
|
||||
<h3 class="app-card-title" th:text="${request.clientName}">앱 이름</h3>
|
||||
<!-- Status Badge -->
|
||||
<span class="app-card-badge status-pending"
|
||||
<span class="app-card-badge"
|
||||
th:classappend="${request.approval != null and request.approval.approvalStatus != null and request.approval.approvalStatus.toString() == 'REQUESTED' ? 'badge-requested' : 'badge-pending'}"
|
||||
th:text="${request.approval != null and request.approval.approvalStatus != null ? request.approval.approvalStatus.description : '승인대기'}">
|
||||
승인대기
|
||||
</span>
|
||||
@@ -266,11 +67,16 @@
|
||||
th:text="${request.appDescription != null ? request.appDescription : '설명 없음'}">
|
||||
앱 설명이 여기에 표시됩니다.
|
||||
</p>
|
||||
<!-- Expected date or placeholder to keep structure aligned -->
|
||||
<span class="app-card-expected-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>
|
||||
<span class="app-card-expected-date"
|
||||
th:unless="${request.approval != null and request.approval.expectEndDate != null and #strings.length(request.approval.expectEndDate) >= 8}">
|
||||
예상 완료일 : -
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@@ -300,7 +106,7 @@
|
||||
<h3 class="app-card-title" th:text="${apikey.clientname}">앱 이름</h3>
|
||||
<!-- Status Badge -->
|
||||
<span class="app-card-badge"
|
||||
th:classappend="${apikey.appstatus == '1' ? 'status-approved' : apikey.appstatus == '0' ? 'status-inactive' : 'status-pending'}"
|
||||
th:classappend="${apikey.appstatus == '1' ? 'badge-approved' : apikey.appstatus == '0' ? 'badge-inactive' : 'badge-pending'}"
|
||||
th:text="${apikey.appstatus == '1' ? '승인' : apikey.appstatus == '0' ? '비활성화' : '승인대기'}">
|
||||
승인
|
||||
</span>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<th:block layout:fragment="contentFragment">
|
||||
<div class="signup-guide-v2 figma-register-wrapper">
|
||||
<div class="service-main app-management-layout">
|
||||
<div class="service-main container" style="padding-top: 70px;">
|
||||
|
||||
<!-- Sidebar -->
|
||||
<th:block th:replace="~{fragment/djbank/service_sidebar :: sidebar('apiKey')}"></th:block>
|
||||
@@ -29,10 +29,19 @@
|
||||
<!-- Progress Steps Card -->
|
||||
<div class="s1-progress-card">
|
||||
<div class="s1-steps">
|
||||
<!-- Step 1 Active: 앱 정보 입력 -->
|
||||
<!-- Step 1 Active: 앱 정보 입력 (document icon) -->
|
||||
<div class="s1-step s1-step--active">
|
||||
<div class="s1-step-circle">
|
||||
<img th:src="@{/img/apikey_step1.png}" alt="앱 정보 입력" width="36" height="36">
|
||||
<svg class="s1-step-svg" width="26" height="26" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="3" y="5" width="18" height="14" rx="2" stroke="currentColor" stroke-width="1.8" />
|
||||
<line x1="7" y1="9" x2="17" y2="9" stroke="currentColor" stroke-width="1.8"
|
||||
stroke-linecap="round" />
|
||||
<line x1="7" y1="12" x2="14" y2="12" stroke="currentColor" stroke-width="1.8"
|
||||
stroke-linecap="round" />
|
||||
<line x1="7" y1="15" x2="11" y2="15" stroke="currentColor" stroke-width="1.8"
|
||||
stroke-linecap="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<span class="s1-step-num">1단계</span>
|
||||
<span class="s1-step-name">앱 정보 입력</span>
|
||||
@@ -40,10 +49,16 @@
|
||||
|
||||
<div class="s1-step-line"></div>
|
||||
|
||||
<!-- Step 2: API 선택 -->
|
||||
<!-- Step 2: API 선택 (chain link icon) -->
|
||||
<div class="s1-step">
|
||||
<div class="s1-step-circle">
|
||||
<img th:src="@{/img/apikey_step2.png}" alt="API 선택" width="36" height="36">
|
||||
<svg class="s1-step-svg" width="26" height="26" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" stroke="currentColor"
|
||||
stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" stroke="currentColor"
|
||||
stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<span class="s1-step-num">2단계</span>
|
||||
<span class="s1-step-name">API 선택</span>
|
||||
@@ -51,10 +66,22 @@
|
||||
|
||||
<div class="s1-step-line"></div>
|
||||
|
||||
<!-- Step 3: 앱 생성 완료 -->
|
||||
<!-- Step 3: 앱 생성 완료 (rocket icon) -->
|
||||
<div class="s1-step">
|
||||
<div class="s1-step-circle">
|
||||
<img th:src="@{/img/apikey_step3.png}" alt="앱 생성 완료" width="36" height="36">
|
||||
<svg class="s1-step-svg" width="26" height="26" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"
|
||||
stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path
|
||||
d="M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"
|
||||
stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" stroke="currentColor" stroke-width="1.6"
|
||||
stroke-linecap="round" stroke-linejoin="round" />
|
||||
<path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" stroke="currentColor" stroke-width="1.6"
|
||||
stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
</div>
|
||||
<span class="s1-step-num">3단계</span>
|
||||
<span class="s1-step-name">앱 생성 완료</span>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<!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}">
|
||||
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">
|
||||
<section layout:fragment="title">
|
||||
<div class="page-title-banner">
|
||||
<img th:src="@{/img/img_title_bg.png}" class="title-image">
|
||||
<h1>앱관리</h1>
|
||||
</div>
|
||||
</section>
|
||||
<th:block layout:fragment="contentFragment">
|
||||
</section>
|
||||
<th:block layout:fragment="contentFragment">
|
||||
<div class="signup-guide-v2 figma-register-wrapper">
|
||||
<div class="service-main app-management-layout">
|
||||
<div class="service-main container">
|
||||
|
||||
<!-- Left Sidebar (Service Sidebar) -->
|
||||
<th:block th:replace="~{fragment/djbank/service_sidebar :: sidebar('apiKey')}"></th:block>
|
||||
@@ -92,7 +92,8 @@
|
||||
</div>
|
||||
|
||||
<!-- API 선택 공용 모듈 -->
|
||||
<th:block th:replace="~{fragment/api_selector :: apiSelector(${apiServices}, ${apiKeyRegistration.selectedApis}, '/myapikey/register/step2', '/myapikey/register/step2/save')}"/>
|
||||
<th:block
|
||||
th:replace="~{fragment/api_selector :: apiSelector(${apiServices}, ${apiKeyRegistration.selectedApis}, '/myapikey/register/step2', '/myapikey/register/step2/save')}" />
|
||||
|
||||
<!-- Bottom Navigation Actions -->
|
||||
<div class="s2-actions">
|
||||
@@ -108,11 +109,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
</th:block>
|
||||
|
||||
<!-- 화면 전체 오버레이/플로팅은 body 직속(pagePopups)으로 렌더 → wrapper transform·overflow 영향 없이 뷰포트 기준 중앙 정렬 -->
|
||||
<section layout:fragment="pagePopups">
|
||||
<th:block th:replace="~{fragment/api_selector :: apiSelectorPopups}"/>
|
||||
</section>
|
||||
<!-- 화면 전체 오버레이/플로팅은 body 직속(pagePopups)으로 렌더 → wrapper transform·overflow 영향 없이 뷰포트 기준 중앙 정렬 -->
|
||||
<section layout:fragment="pagePopups">
|
||||
<th:block th:replace="~{fragment/api_selector :: apiSelectorPopups}" />
|
||||
</section>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -5,7 +5,7 @@
|
||||
<body>
|
||||
|
||||
<th:block layout:fragment="contentFragment">
|
||||
<div class="service-main" style="padding-top: 40px;">
|
||||
<div class="container service-main" style="padding-top: 70px;">
|
||||
<!-- Sidebar -->
|
||||
<th:block th:replace="~{fragment/djbank/service_sidebar :: sidebar('users')}"></th:block>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<section class="service-content">
|
||||
|
||||
|
||||
<section class="user-management-container" style="padding-top: 0;">
|
||||
<section class="user-management-container">
|
||||
|
||||
<!-- App List Title Section -->
|
||||
<div class="table-controls">
|
||||
@@ -59,7 +59,7 @@
|
||||
<div class="row-cell" data-label="계정상태" th:text="${user.userStatus.getDescription()}">
|
||||
활성
|
||||
</div>
|
||||
<div class="row-cell row-actions">
|
||||
<div class="row-cell row-actions" th:classappend="${user.roleCode != null and user.id != currentUserId} ? 'has-actions'">
|
||||
<!-- Current User -->
|
||||
<span class="user-current-badge" th:if="${user.id == currentUserId}">
|
||||
<i class="fas fa-user-check"></i> 현재 사용자
|
||||
|
||||
Reference in New Issue
Block a user