Compare commits
12 Commits
a40e21abfa
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
3c798ae912 | |
|
|
10550330c9 | |
|
|
933497b766 | |
|
|
6f69b0079d | |
|
|
ddef8f6a47 | |
|
|
6a84246489 | |
|
|
f55363c0b2 | |
|
|
737b0bcf9d | |
|
|
d04f9ce6dd | |
|
|
2aece8230f | |
|
|
9e2106248e | |
|
|
d3db1a264d |
|
|
@ -35,3 +35,4 @@ out/
|
|||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
.vs/
|
||||
|
|
|
|||
12
build.gradle
12
build.gradle
|
|
@ -6,7 +6,7 @@ plugins {
|
|||
|
||||
group = 'com.dbnt'
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
sourceCompatibility = '11'
|
||||
sourceCompatibility = '1.8'
|
||||
|
||||
configurations {
|
||||
compileOnly {
|
||||
|
|
@ -26,21 +26,15 @@ dependencies {
|
|||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
|
||||
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '2.5.3'
|
||||
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:2.5.3'
|
||||
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
|
||||
// implementation 'io.jsonwebtoken:jjwt:0.9.1'
|
||||
|
||||
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.4'
|
||||
implementation 'org.mariadb.jdbc:mariadb-java-client:2.7.4'
|
||||
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
|
||||
|
||||
implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4'
|
||||
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.5.6'
|
||||
testImplementation 'org.springframework.security:spring-security-test:5.5.1'
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
|
|
@ -274,7 +274,11 @@ public class BoardService {
|
|||
private String calculationSize(double fileSize){
|
||||
String[] units = {"bytes", "KB", "MB", "GB", "TB", "PB"};
|
||||
double unitSelector = Math.floor(Math.log(fileSize)/Math.log(1024));
|
||||
if(fileSize>0){
|
||||
return Math.round((fileSize/Math.pow(1024, unitSelector))*100)/100d+" "+units[(int)unitSelector];
|
||||
}else{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public List<BoardLog> selectBoardLogList(BoardLog boardLog) {
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ spring.thymeleaf.cache=false
|
|||
|
||||
#mariaDB & log4jdbc
|
||||
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
spring.datasource.url=ENC(aqLYKJgbP9cnsnvdR27iHExQ6dhwLVin81SAYNE31Rzfl5HC2PsFSxF5xPTfQypC5jk0TEDpBGIDCTPq6W43KZ+g8wrsw4k3PcwxrAhFVNjLInxh4+Xv4BjcqCiIRfMIx/OnjQK1kwVF9/OZauLFdQ==)
|
||||
spring.datasource.username=ENC(A7iDWZCu8csd0mm0UjqQKA==)
|
||||
spring.datasource.password=ENC(u4iVHinHq1HOrewYzuMUdlqbpagxmR0/)
|
||||
#spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/kcgFileManager?characterEncoding=UTF-8&serverTimezone=UTC
|
||||
spring.datasource.url=ENC(yjSB3S7x1Gq0ir51/Fb3j1IX6b5uS6BfuPh1Wq1rRcrTCOBfldjTV39VSbRqGk+Z1/HGkGQK9JPFyjHEqu3P8nBbqLbu6GIgrbe2gmx2O9e0Ut3Sb4lG/ox144z6YQ9rpQMImi8xJ/JyNF9qlD6jkg==)
|
||||
spring.datasource.username=ENC(9GbdvLyouOcP1EPo+5FO/A==)
|
||||
spring.datasource.password=ENC(k09thSYoBJ2rLkhORLahdJBiVd58slqN)
|
||||
#spring.datasource.url=jdbc:log4jdbc:mariadb://118.219.150.34:50504/kcgFileManager?characterEncoding=UTF-8&serverTimezone=UTC
|
||||
#spring.datasource.username=root
|
||||
#spring.datasource.password=kcg211228
|
||||
#spring.datasource.password=dbnt0928!
|
||||
|
||||
#jpa
|
||||
spring.jpa.show-sql=true
|
||||
|
|
|
|||
|
|
@ -1,19 +1,13 @@
|
|||
/*로그인 폼*/
|
||||
.form-signin{
|
||||
width: 100%;
|
||||
max-width: 330px;
|
||||
padding: 15px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
z-index: 200;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
.centerDiv{
|
||||
max-height: fit-content;
|
||||
}
|
||||
|
||||
/*스크롤기능 있지만 안보이게*/
|
||||
body::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*사이드바 카테고리 트리*/
|
||||
.btn-toggle:hover, .btn-toggle:focus {
|
||||
color: rgba(0, 0, 0, .85);
|
||||
|
|
@ -49,3 +43,12 @@
|
|||
transform: translate(-50%, -50%);
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#list-group-line{
|
||||
padding-bottom: 52vh;
|
||||
}
|
||||
|
||||
/*@media (max-width:1199px)*/
|
||||
/* .sidebar {*/
|
||||
/* left: -300px;*/
|
||||
/* }*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
/*로그인 폼*/
|
||||
.form-signin{
|
||||
width: 100%;
|
||||
max-width: 330px;
|
||||
padding: 15px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
z-index: 200;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
header{
|
||||
z-index:300;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
body{
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/*스크롤기능 있지만 안보이게*/
|
||||
body::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#logo{
|
||||
z-index:300;
|
||||
}
|
||||
|
||||
footer{
|
||||
z-index:200;
|
||||
}
|
||||
|
||||
#img02{
|
||||
transition: all 1s ease-out;
|
||||
z-index:100;
|
||||
}
|
||||
|
||||
#img02:hover{
|
||||
transform: scale(1.1, 1.1);
|
||||
transition: all 1s ease-out;
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ $(function(){
|
|||
language: "ko"
|
||||
});
|
||||
})
|
||||
|
||||
$(document).on('click', '.userInfoTr', function (){
|
||||
$(".userInfoCheckBox").prop('checked', false);
|
||||
const target = $(this).find(".userInfoCheckBox")[0];
|
||||
|
|
@ -188,6 +189,7 @@ function getUserInfo(userSeq){
|
|||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#userContent").empty().append(html)
|
||||
$("#userInfoModal").modal('show')
|
||||
},
|
||||
error:function(){
|
||||
|
||||
|
|
@ -204,6 +206,7 @@ function getCategoryRole(userSeq){
|
|||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#userContent").empty().append(html)
|
||||
$("#userInfoModal").modal('show')
|
||||
},
|
||||
error:function(){
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-4">
|
||||
<div class="col-xl-4">
|
||||
<h5 class="mx-2"><i class="bi bi-square-fill"></i><span> 저장공간</span></h5>
|
||||
<th:block th:each="diskInfo:${diskInfoList}">
|
||||
<div class="row justify-content-center py-3 m-2 border rounded">
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
</div>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="col-xl-8">
|
||||
<h5 class="mx-2"><i class="bi bi-square-fill"></i><span> 전체 이력</span></h5>
|
||||
<div class="row p-3 mx-2 border rounded">
|
||||
<div class="col-12">
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div class="col-12 card text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-7">
|
||||
<div class="col-12">
|
||||
<form method="get" th:action="@{/admin/userMgt}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between">
|
||||
|
|
@ -138,22 +138,7 @@
|
|||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-success" value="사용자 생성" data-bs-toggle="modal" data-bs-target="#userInfoModal">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="infoTab" data-bs-toggle="tab" type="button" role="tab">개인정보</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="categoryTab" data-bs-toggle="tab" type="button" role="tab">권한</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content border border-top-0" id="userContent">
|
||||
<div class="py-5">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<input type="button" class="btn btn-success" value="사용자 생성" data-bs-toggle="modal" data-bs-target="#userInsertModal">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -163,17 +148,17 @@
|
|||
</div>
|
||||
</main>
|
||||
|
||||
<div class="modal fade" id="userInfoModal" tabindex="-1" aria-labelledby="userInfoModalLabel" aria-hidden="true">
|
||||
<div class="modal fade" id="userInsertModal" tabindex="-1" aria-labelledby="userInsertModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-content ">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="userInfoModalLabel">사용자 생성</h5>
|
||||
<h5 class="modal-title" id="userInsertModalLabel">사용자 생성</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
|
||||
<div class="mb-3 row">
|
||||
<label for="userId" class="col-sm-4 col-form-label">아이디</label>
|
||||
<label for="userId" class="col-sm-4 col-form-label text-center">아이디</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="userId" name="userId" autocomplete="off">
|
||||
</div>
|
||||
|
|
@ -182,28 +167,28 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="password" class="col-sm-4 col-form-label">비밀번호</label>
|
||||
<label for="password" class="col-sm-4 col-form-label text-center">비밀번호</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="password" class="form-control" id="password" name="password">
|
||||
</div>
|
||||
<div class="col-sm-auto form-text mx-auto">
|
||||
8~16자 사이의 알파벳, 숫자 조합을 입력해주세요.
|
||||
8~16자 사이의 알파벳, 숫자, 특수문자 조합을 입력해주세요.
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="passwordConfirm" class="col-sm-4 col-form-label">비밀번호 확인</label>
|
||||
<label for="passwordConfirm" class="col-sm-4 col-form-label text-center">비밀번호 확인</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="password" class="form-control" id="passwordConfirm">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-sm-4 col-form-label">이름</label>
|
||||
<label for="name" class="col-sm-4 col-form-label text-center">이름</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="name" name="name" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="department" class="col-sm-4 col-form-label">부서</label>
|
||||
<label for="department" class="col-sm-4 col-form-label text-center">부서</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="department" name="department">
|
||||
<th:block th:each="commonCode:${session.departmentList}">
|
||||
|
|
@ -213,7 +198,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="position" class="col-sm-4 col-form-label">직급</label>
|
||||
<label for="position" class="col-sm-4 col-form-label text-center">직급</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="position" name="position">
|
||||
<th:block th:each="commonCode:${session.positionList}">
|
||||
|
|
@ -239,5 +224,31 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="userInfoModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="staticBackdropLabel">사용자 정보 수정</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs" id="userTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="infoTab" data-bs-toggle="tab" type="button" role="tab">개인정보</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="categoryTab" data-bs-toggle="tab" type="button" role="tab">권한</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content border border-top-0" id="userContent">
|
||||
<div class="py-5">
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-7">
|
||||
<div class="col-xl-7">
|
||||
<!--검색 form-->
|
||||
<form method="get" th:action="@{/board/contentList}">
|
||||
<input type="hidden" name="categorySeq" id="categorySeq" th:value="${searchParams.categorySeq}">
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<div class="col-xl-5">
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="contentTab" data-bs-toggle="tab" data-bs-target="#contentDiv" type="button" role="tab">내용</button>
|
||||
|
|
@ -150,12 +150,12 @@
|
|||
<div class="tab-content border border-top-0" id="boardDiv">
|
||||
<div class="tab-pane fade show active" id="contentDiv" role="tabpanel" aria-labelledby="contentTab">
|
||||
<div class="py-5 text-center">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="logDiv" role="tabpanel" aria-labelledby="logTab">
|
||||
<div class="py-5 text-center">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-7">
|
||||
<div class="col-l-7">
|
||||
<div class="card">
|
||||
<div class="card-body row">
|
||||
<div class="col-10">
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<div class="col-l-5">
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="contentTab" data-bs-toggle="tab" data-bs-target="#contentDiv" type="button" role="tab">내용</button>
|
||||
|
|
|
|||
|
|
@ -90,12 +90,12 @@
|
|||
<div class="tab-content border border-top-0" id="boardDiv">
|
||||
<div class="tab-pane fade show active" id="contentDiv" role="tabpanel" aria-labelledby="contentTab">
|
||||
<div class="py-5 text-center">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="logDiv" role="tabpanel" aria-labelledby="logTab">
|
||||
<div class="py-5 text-center">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
|
||||
<header th:fragment="headerFragment" class="d-flex flex-wrap justify-content-center py-1 px-3 border-bottom">
|
||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-dark text-decoration-none">
|
||||
<img th:src="@{/img/logo.png}" alt="logo" title="logo">
|
||||
<img id="logo" th:src="@{/img/logo.png}" alt="logo" title="logo">
|
||||
<!--<span class="fs-4">해양경찰청 파일관리 시스템</span>-->
|
||||
</a>
|
||||
<ul class="nav nav-pills" sec:authorize="isAuthenticated()">
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<html lang="ko"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5" xmlns="http://www.w3.org/1999/html">
|
||||
<div class="mx-3 pt-3" th:fragment="leftMenuFragment">
|
||||
<div id="list-group-line" class="mx-3 pt-3" th:fragment="leftMenuFragment">
|
||||
<div sec:authorize="hasRole('ROLE_ADMIN')">
|
||||
<div class="list-group py-2">
|
||||
<!--<a href="/admin/categoryMgt" class="list-group-item list-group-item-action">게시판 분류 관리</a>-->
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
</ul>
|
||||
<div class="tab-content border border-top-0" id="userContent">
|
||||
<div class="py-5">
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -51,10 +51,10 @@
|
|||
<header th:replace="fragments/header :: headerFragment"></header>
|
||||
<div class="h-100" sec:authorize="isAnonymous()" layout:fragment="content"></div>
|
||||
<div sec:authorize="isAuthenticated()" class="row mx-0">
|
||||
<div class="col-2 centerDiv border-end">
|
||||
<div class="sidebar col-2 d-lg-block d-none centerDiv border-end">
|
||||
<div th:replace="fragments/leftMenu :: leftMenuFragment"></div>
|
||||
</div>
|
||||
<div class="col-10 centerDiv">
|
||||
<div class="col-12 col-lg-10 centerDiv">
|
||||
<div layout:fragment="content"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2,29 +2,29 @@
|
|||
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<div layout:fragment="content" class="h-100">
|
||||
<div id="carouselExampleFade" class="carousel slide carousel-fade" data-bs-ride="carousel" style="z-index: 100">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img th:src="@{/img/img01.jpg}" class="w-100" alt="배경1">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img th:src="@{/img/img02.jpg}" class="w-100" alt="배경2">
|
||||
</div>
|
||||
<!--<div class="carousel-item">
|
||||
<img th:src="@{/img/img03.jpg}"class="d-block w-100" alt="...">
|
||||
</div>-->
|
||||
</div>
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Previous</span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Next</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="form-signin text-center mt-5 rounded bg-white">
|
||||
<th:block layout:fragment="css">
|
||||
<link rel="stylesheet" th:href="@{/css/login/login.css}">
|
||||
</th:block>
|
||||
<div layout:fragment="content"><img id="img02" th:src="@{/img/img02.jpg}" class="w-100 h-100" alt="배경2">
|
||||
<!-- <div id="carouselExampleFade" class="carousel slide carousel-fade" data-bs-ride="carousel" style="z-index: 100">-->
|
||||
<!-- <div class="carousel-inner">-->
|
||||
<!-- <div class="carousel-item active">-->
|
||||
<!-- <img th:src="@{/img/img01.jpg}" class="w-100" alt="배경1">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="carousel-item">-->
|
||||
<!-- <img th:src="@{/img/img02.jpg}" class="w-100" alt="배경2">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="prev">-->
|
||||
<!-- <span class="carousel-control-prev-icon" aria-hidden="true"></span>-->
|
||||
<!-- <span class="visually-hidden">Previous</span>-->
|
||||
<!-- </button>-->
|
||||
<!-- <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="next">-->
|
||||
<!-- <span class="carousel-control-next-icon" aria-hidden="true"></span>-->
|
||||
<!-- <span class="visually-hidden">Next</span>-->
|
||||
<!-- </button>-->
|
||||
<!-- </div>-->
|
||||
<div id="form-signin" class="form-signin text-center bg-white">
|
||||
<!-- Security config의 loginPage("url")와 action url과 동일하게 작성-->
|
||||
<form action="/user/login" method="post">
|
||||
<!-- Spring Security가 적용되면 POST 방식으로 보내는 모든 데이터는 csrf 토큰 값이 필요 -->
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
<!-- 파라미터명을 변경하고 싶을 경우 config class formlogin()에서 .usernameParameter("") 명시 -->
|
||||
|
||||
<!--<img class="mb-4" th:src="@{/img/}" alt="" width="72" height="57">-->
|
||||
<h1 class="h3 mb-3 fw-normal">로그인</h1>
|
||||
<h1 class="h3 fw-normal mt-2">로그인</h1>
|
||||
<div class="form-floating py-2">
|
||||
<input type="text" class="form-control" id="username" name="username" placeholder="아이디">
|
||||
<label for="username">아이디</label>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-7">
|
||||
<div class="col-xl-7">
|
||||
<!--검색 form-->
|
||||
<form method="get" th:action="@{/info/modifyRequestList}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
|
|
@ -149,9 +149,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5">
|
||||
<div class="col-xl-5">
|
||||
<div class="card" id="requestDetailDiv">
|
||||
<h3 class="p-5">왼쪽 목록에서 선택해주세요.</h3>
|
||||
<h3 class="p-5">목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue