Compare commits
No commits in common. "6f69b0079ddfafba685ce4998bc5baad8c18fc75" and "6a842464898ff6b13520e1e1f0752cd77e03b3a3" have entirely different histories.
6f69b0079d
...
6a84246489
|
|
@ -35,4 +35,3 @@ out/
|
|||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
.vs/
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ plugins {
|
|||
|
||||
group = 'com.dbnt'
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
sourceCompatibility = '1.8'
|
||||
sourceCompatibility = '11'
|
||||
|
||||
configurations {
|
||||
compileOnly {
|
||||
|
|
|
|||
|
|
@ -274,11 +274,7 @@ 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 "";
|
||||
}
|
||||
return Math.round((fileSize/Math.pow(1024, unitSelector))*100)/100d+" "+units[(int)unitSelector];
|
||||
}
|
||||
|
||||
public List<BoardLog> selectBoardLogList(BoardLog boardLog) {
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ spring.thymeleaf.cache=false
|
|||
|
||||
#mariaDB & log4jdbc
|
||||
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||
spring.datasource.url=ENC(dyWhZaWHoSfJZtAIG3H42B36VasUlkpnnXQ7K1DFIoY+BxgbHAwf9mFSfxoZfn4zU+6uc2n4hK05vDAG2u/oARiQfDZU/y3ATZ8KldP14suXeRHFfnryNGPzEdPzd9Pjd3/HvYOplF+5+B2yUVGawg==)
|
||||
spring.datasource.username=ENC(+BM/jvdOdi0MtWj44u1nxA==)
|
||||
spring.datasource.password=ENC(njSsOMalmaUC2YKT4jm2GyYSNXc0hZs4)
|
||||
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.username=root
|
||||
#spring.datasource.password=kcg211228
|
||||
|
|
|
|||
|
|
@ -1,13 +1,19 @@
|
|||
/*로그인 폼*/
|
||||
.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);
|
||||
|
|
@ -42,13 +48,4 @@ body::-webkit-scrollbar {
|
|||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#list-group-line{
|
||||
padding-bottom: 52vh;
|
||||
}
|
||||
|
||||
/*@media (max-width:1199px)*/
|
||||
/* .sidebar {*/
|
||||
/* left: -300px;*/
|
||||
/* }*/
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
/*로그인 폼*/
|
||||
.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;
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-xl-4">
|
||||
<div class="col-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-xl-8">
|
||||
<div class="col-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-xl-7">
|
||||
<div class="col-7">
|
||||
<form method="get" th:action="@{/admin/userMgt}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between">
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-5">
|
||||
<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>
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
</ul>
|
||||
<div class="tab-content border border-top-0" id="userContent">
|
||||
<div class="py-5">
|
||||
<h3>목록에서 선택해주세요.</h3>
|
||||
<h3>왼쪽 목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -164,7 +164,7 @@
|
|||
</main>
|
||||
|
||||
<div class="modal fade" id="userInfoModal" tabindex="-1" aria-labelledby="userInfoModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="userInfoModalLabel">사용자 생성</h5>
|
||||
|
|
@ -173,7 +173,7 @@
|
|||
<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 text-center">아이디</label>
|
||||
<label for="userId" class="col-sm-4 col-form-label">아이디</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="userId" name="userId" autocomplete="off">
|
||||
</div>
|
||||
|
|
@ -182,28 +182,28 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="password" class="col-sm-4 col-form-label text-center">비밀번호</label>
|
||||
<label for="password" class="col-sm-4 col-form-label">비밀번호</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 text-center">비밀번호 확인</label>
|
||||
<label for="passwordConfirm" class="col-sm-4 col-form-label">비밀번호 확인</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 text-center">이름</label>
|
||||
<label for="name" class="col-sm-4 col-form-label">이름</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 text-center">부서</label>
|
||||
<label for="department" class="col-sm-4 col-form-label">부서</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="department" name="department">
|
||||
<th:block th:each="commonCode:${session.departmentList}">
|
||||
|
|
@ -213,7 +213,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="position" class="col-sm-4 col-form-label text-center">직급</label>
|
||||
<label for="position" class="col-sm-4 col-form-label">직급</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-select" id="position" name="position">
|
||||
<th:block th:each="commonCode:${session.positionList}">
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<div class="col-12 card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-xl-7">
|
||||
<div class="col-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-xl-5">
|
||||
<div class="col-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-l-7">
|
||||
<div class="col-7">
|
||||
<div class="card">
|
||||
<div class="card-body row">
|
||||
<div class="col-10">
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-l-5">
|
||||
<div class="col-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 id="logo" th:src="@{/img/logo.png}" alt="logo" title="logo">
|
||||
<img 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 id="list-group-line" class="mx-3 pt-3" th:fragment="leftMenuFragment">
|
||||
<div 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>-->
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
<li class="mb-1">
|
||||
<button class="btn btn-toggle align-items-center rounded collapsed"
|
||||
data-bs-toggle="collapse" aria-expanded="false"
|
||||
th:data-categoryseq="${depth1.categorySeq}"
|
||||
th:data-bs-target="'#collapse'+${depth1.categorySeq}" th:text="${depth1.categoryName}">
|
||||
th:data-categoryseq="${depth1.categorySeq}"
|
||||
th:data-bs-target="'#collapse'+${depth1.categorySeq}" th:text="${depth1.categoryName}">
|
||||
</button>
|
||||
<div class="collapse ps-3" th:id="|collapse${depth1.categorySeq}|">
|
||||
<ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
|
||||
|
|
|
|||
|
|
@ -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,7 +51,7 @@
|
|||
<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="sidebar col-2 centerDiv border-end">
|
||||
<div class="col-2 centerDiv border-end">
|
||||
<div th:replace="fragments/leftMenu :: leftMenuFragment"></div>
|
||||
</div>
|
||||
<div class="col-10 centerDiv">
|
||||
|
|
|
|||
|
|
@ -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}">
|
||||
<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">
|
||||
<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">
|
||||
<!-- 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 fw-normal mt-2">로그인</h1>
|
||||
<h1 class="h3 mb-3 fw-normal">로그인</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-xl-7">
|
||||
<div class="col-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-xl-5">
|
||||
<div class="col-5">
|
||||
<div class="card" id="requestDetailDiv">
|
||||
<h3 class="p-5">목록에서 선택해주세요.</h3>
|
||||
<h3 class="p-5">왼쪽 목록에서 선택해주세요.</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue