공통게시판
parent
f627a03d83
commit
3eb76f75df
|
|
@ -4,10 +4,6 @@ import lombok.Getter;
|
|||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Transient;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
|
|
@ -22,4 +18,4 @@ public class FileInfo {
|
|||
public String getFullName(){
|
||||
return getOrigNm()+"."+getFileExtn();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ public class PublicBoardController {
|
|||
ModelAndView mav = new ModelAndView("publicBoard/notice/noticePage");
|
||||
publicBoard.setQueryInfo();
|
||||
publicBoard.setPublicType("PLB001");
|
||||
if(loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())){
|
||||
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
||||
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
}
|
||||
|
|
@ -38,79 +38,149 @@ public class PublicBoardController {
|
|||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/boardPage")
|
||||
public ModelAndView boardPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
||||
ModelAndView mav = new ModelAndView("publicBoard/board/boardPage");
|
||||
publicBoard.setQueryInfo();
|
||||
publicBoard.setPublicType("PLB002");
|
||||
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
||||
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
}
|
||||
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
||||
mav.addObject("boardList", publicBoardService.selectContentList(publicBoard));
|
||||
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
||||
publicBoard.setPaginationInfo();
|
||||
mav.addObject("searchParams", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/referencePage")
|
||||
public ModelAndView referencePage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
||||
ModelAndView mav = new ModelAndView("publicBoard/reference/referencePage");
|
||||
publicBoard.setQueryInfo();
|
||||
publicBoard.setPublicType("PLB003");
|
||||
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
||||
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
}
|
||||
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
||||
mav.addObject("referenceList", publicBoardService.selectContentList(publicBoard));
|
||||
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
||||
publicBoard.setPaginationInfo();
|
||||
mav.addObject("searchParams", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/qnaPage")
|
||||
public ModelAndView qnaPage(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
||||
ModelAndView mav = new ModelAndView("publicBoard/qna/qnaPage");
|
||||
publicBoard.setQueryInfo();
|
||||
publicBoard.setPublicType("PLB004");
|
||||
if (loginUser.getUserRole().contains(Role.SUB_ADMIN.getValue())) {
|
||||
publicBoard.setDownOrganCdList(loginUser.getDownOrganCdList());
|
||||
mav.addObject("mgtOrganList", loginUser.getDownOrganCdList());
|
||||
}
|
||||
publicBoard.setUpOrganCdList(loginUser.getUpOrganCdList());
|
||||
mav.addObject("qnaList", publicBoardService.selectContentList(publicBoard));
|
||||
publicBoard.setContentCnt(publicBoardService.selectContentListCnt(publicBoard));
|
||||
publicBoard.setPaginationInfo();
|
||||
mav.addObject("searchParams", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/editModal")
|
||||
public ModelAndView editModal(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard){
|
||||
public ModelAndView editModal(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard) {
|
||||
ModelAndView mav = null;
|
||||
switch (publicBoard.getPublicType()){
|
||||
switch (publicBoard.getPublicType()) {
|
||||
case "PLB001": // 공지사항
|
||||
mav = new ModelAndView("publicBoard/notice/noticeEditModal");
|
||||
if(publicBoard.getPublicKey()!=null){
|
||||
if (publicBoard.getPublicKey() != null) {
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
}
|
||||
break;
|
||||
case "PLB002": // 공용게시판
|
||||
mav = new ModelAndView("publicBoard/board/boardEditModal");
|
||||
if (publicBoard.getPublicKey() != null) {
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
}
|
||||
break;
|
||||
case "PLB003": // 자료실
|
||||
mav = new ModelAndView("publicBoard/reference/referenceEditModal");
|
||||
if (publicBoard.getPublicKey() != null) {
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
}
|
||||
break;
|
||||
case "PLB004": // Q&A
|
||||
break;
|
||||
mav = new ModelAndView("publicBoard/qna/qnaEditModal");
|
||||
if (publicBoard.getPublicKey() != null) {
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(publicBoard.getPublicKey()==null){
|
||||
publicBoard.setWrtOrgan(loginUser.getOgCd());
|
||||
publicBoard.setWrtPart(loginUser.getOfcCd());
|
||||
publicBoard.setWrtUserSeq(loginUser.getUserSeq());
|
||||
publicBoard.setWrtUserNm(loginUser.getUserNm());
|
||||
publicBoard.setWrtDt(LocalDateTime.now());
|
||||
if (publicBoard.getPublicKey() == null) {
|
||||
publicBoard.setWrtOrgan(loginUser.getOgCd());
|
||||
publicBoard.setWrtPart(loginUser.getOfcCd());
|
||||
publicBoard.setWrtUserSeq(loginUser.getUserSeq());
|
||||
publicBoard.setWrtUserNm(loginUser.getUserNm());
|
||||
publicBoard.setWrtDt(LocalDateTime.now());
|
||||
}
|
||||
mav.addObject("info", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
mav.addObject("info", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/viewModal")
|
||||
public ModelAndView viewModal(@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard){
|
||||
ModelAndView mav = null;
|
||||
switch (publicBoard.getPublicType()){
|
||||
case "PLB001": // 공지사항
|
||||
mav = new ModelAndView("publicBoard/notice/noticeViewModal");
|
||||
break;
|
||||
case "PLB002": // 공용게시판
|
||||
break;
|
||||
case "PLB003": // 자료실
|
||||
break;
|
||||
case "PLB004": // Q&A
|
||||
break;
|
||||
|
||||
@GetMapping("/viewModal")
|
||||
public ModelAndView viewModal (@AuthenticationPrincipal UserInfo loginUser, PublicBoard publicBoard){
|
||||
ModelAndView mav = null;
|
||||
switch (publicBoard.getPublicType()) {
|
||||
case "PLB001": // 공지사항
|
||||
mav = new ModelAndView("publicBoard/notice/noticeViewModal");
|
||||
break;
|
||||
case "PLB002": // 공용게시판
|
||||
mav = new ModelAndView("publicBoard/board/boardViewModal");
|
||||
break;
|
||||
case "PLB003": // 자료실
|
||||
mav = new ModelAndView("publicBoard/reference/referenceViewModal");
|
||||
break;
|
||||
case "PLB004": // Q&A
|
||||
mav = new ModelAndView("publicBoard/qna/qnaViewModal");
|
||||
break;
|
||||
}
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||
mav.addObject("info", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
publicBoard = publicBoardService.selectPublicBoard(publicBoard.getPublicKey());
|
||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||
mav.addObject("info", publicBoard);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/saveContent")
|
||||
public Integer saveContent(PublicBoard publicBoard,
|
||||
MultipartHttpServletRequest request,
|
||||
@RequestParam(value = "fileSeq", required = false) List<Integer> deleteFileSeq){
|
||||
publicBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
|
||||
return publicBoardService.saveContent(publicBoard, deleteFileSeq);
|
||||
}
|
||||
@PostMapping("/saveComment")
|
||||
public ModelAndView saveComment(@AuthenticationPrincipal UserInfo loginUser, PublicComment comment){
|
||||
comment.setWrtOrgan(loginUser.getOgCd());
|
||||
comment.setWrtPart(loginUser.getOfcCd());
|
||||
comment.setWrtUserSeq(loginUser.getUserSeq());
|
||||
comment.setWrtUserNm(loginUser.getUserNm());
|
||||
comment.setWrtDt(LocalDateTime.now());
|
||||
publicBoardService.saveComment(comment);
|
||||
ModelAndView mav = new ModelAndView("publicBoard/commentDiv");
|
||||
mav.addObject("comment", comment);
|
||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||
return mav;
|
||||
}
|
||||
@PostMapping("/saveContent")
|
||||
public Integer saveContent (PublicBoard publicBoard,
|
||||
MultipartHttpServletRequest request,
|
||||
@RequestParam(value = "fileSeq", required = false) List < Integer > deleteFileSeq){
|
||||
publicBoard.setMultipartFileList(request.getMultiFileMap().get("uploadFiles"));
|
||||
return publicBoardService.saveContent(publicBoard, deleteFileSeq);
|
||||
}
|
||||
@PostMapping("/saveComment")
|
||||
public ModelAndView saveComment (@AuthenticationPrincipal UserInfo loginUser, PublicComment comment){
|
||||
comment.setWrtOrgan(loginUser.getOgCd());
|
||||
comment.setWrtPart(loginUser.getOfcCd());
|
||||
comment.setWrtUserSeq(loginUser.getUserSeq());
|
||||
comment.setWrtUserNm(loginUser.getUserNm());
|
||||
comment.setWrtDt(LocalDateTime.now());
|
||||
publicBoardService.saveComment(comment);
|
||||
ModelAndView mav = new ModelAndView("publicBoard/commentDiv");
|
||||
mav.addObject("comment", comment);
|
||||
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/deleteComment")
|
||||
@ResponseBody
|
||||
public void deleteComment(@RequestBody PublicComment comment){
|
||||
publicBoardService.deleteComment(comment.getPublicKey(), comment.getCommentKey());
|
||||
@PostMapping("/deleteComment")
|
||||
@ResponseBody
|
||||
public void deleteComment (@RequestBody PublicComment comment){
|
||||
publicBoardService.deleteComment(comment.getPublicKey(), comment.getCommentKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import com.dbnt.faisp.publicBoard.mapper.PublicBoardMapper;
|
|||
import com.dbnt.faisp.publicBoard.model.PublicBoard;
|
||||
import com.dbnt.faisp.publicBoard.model.PublicComment;
|
||||
import com.dbnt.faisp.publicBoard.model.PublicFile;
|
||||
import com.dbnt.faisp.publicBoard.repository.PublicCommentRepository;
|
||||
import com.dbnt.faisp.publicBoard.repository.PublicBoardRepository;
|
||||
import com.dbnt.faisp.publicBoard.repository.PublicCommentRepository;
|
||||
import com.dbnt.faisp.publicBoard.repository.PublicFileRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -107,4 +107,4 @@ public class PublicBoardService extends BaseService {
|
|||
public FileInfo selectPublicFile(Integer publicKey, Integer fileSeq){
|
||||
return publicFileRepository.findById(new PublicFile.PublicFileId(publicKey, fileSeq)).orElse(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<ul class="nav nav-pills">
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark"><i class="bi bi-bell-fill"></i></a></li>
|
||||
<li class="nav-item"><a href="/publicBoard/noticePage" class="nav-link p-1 link-dark">공지사항</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">게시판</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">자료실</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">Q&A</a></li>
|
||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">마이페이지</a></li>
|
||||
<li class="nav-item"><a href="/publicBoard/boardPage" class="nav-link p-1 link-dark">게시판</a></li>
|
||||
<li class="nav-item"><a href="/publicBoard/referencePage" class="nav-link p-1 link-dark">자료실</a></li>
|
||||
<li class="nav-item"><a href="/publicBoard/qnaPage" class="nav-link p-1 link-dark">Q&A</a></li>
|
||||
<li class="nav-item"><a href="/user/myInfo" class="nav-link p-1 link-dark">마이페이지</a></li>
|
||||
<li class="nav-item"><a href="/logout" class="nav-link p-1 link-dark">로그아웃</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@
|
|||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{layout/layout}">
|
||||
<th:block layout:fragment="script">
|
||||
<!--<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/plan.js}"></script>-->
|
||||
<script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script>
|
||||
<script type="text/javascript" th:src="@{/js/publicBoard/qna.js}"></script>
|
||||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main class="pt-3">
|
||||
<h4>Q&A</h4>
|
||||
<h4>QnA</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
|
|
@ -25,8 +26,8 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<!--<div class="row justify-content-end">
|
||||
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
|
|
@ -37,32 +38,16 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">
|
||||
</div>
|
||||
<div class="col-auto" th:if="${accessAuth eq 'ACC003'}">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="planState">
|
||||
<option value="">상태 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.planState}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm" name="dateSelector">
|
||||
<option value="">조건선택</option>
|
||||
<option value="planDt" th:selected="${searchParams.dateSelector eq 'planDt'}">시행일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -76,37 +61,30 @@
|
|||
<tr>
|
||||
<th></th>
|
||||
<th>제목</th>
|
||||
<th>시행일자</th>
|
||||
<th>관서</th>
|
||||
<th>부서</th>
|
||||
<th>작성자</th>
|
||||
<th>작성일시</th>
|
||||
<th>첨부파일</th>
|
||||
<th>상태</th>
|
||||
<th>댓글</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--<tr class="planTr" th:each="plan:${planList}">
|
||||
<input type="hidden" class="planKey" th:value="${plan.planKey}">
|
||||
<tr class="planTr" th:each="qna:${qnaList}">
|
||||
<input type="hidden" class="planKey" th:value="${qna.publicKey}">
|
||||
<td><input type="checkbox" class="trChkBox"></td>
|
||||
<td th:text="${plan.contentTitle}"></td>
|
||||
<td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>
|
||||
<td th:text="${qna.title}"></td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<td th:if="${plan.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<td th:if="${qna.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<td th:if="${plan.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
<td th:if="${qna.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
<td th:text="${plan.wrtUserNm}"></td>
|
||||
<td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td>
|
||||
<td th:if="${plan.planState eq 'DST001'}">임시저장</td>
|
||||
<td th:if="${plan.planState eq 'DST002'}">결재대기</td>
|
||||
<td th:if="${plan.planState eq 'DST003'}">계장반려</td>
|
||||
<td th:if="${plan.planState eq 'DST004'}">계장결재</td>
|
||||
<td th:if="${plan.planState eq 'DST005'}">부장반려</td>
|
||||
<td th:if="${plan.planState eq 'DST006'}">부장결재</td>
|
||||
</tr>-->
|
||||
<td th:text="${qna.wrtUserNm}"></td>
|
||||
<td th:text="${#temporals.format(qna.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<td th:text="${qna.fileCnt eq null?'파일 없음':#strings.concat(qna.fileCnt,' 건')}"></td>
|
||||
<td th:text="${qna.commentCnt eq null?'0':qna.commentCnt}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -138,7 +116,7 @@
|
|||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-success" value="등록" id="addNoticeBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<input type="button" class="btn btn-success" value="등록" id="addQnaBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -150,19 +128,186 @@
|
|||
</div>
|
||||
</main>
|
||||
|
||||
<div class="modal fade" id="noticeEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeEditModalLabel" aria-hidden="true">
|
||||
<div class="modal fade" id="editModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="editModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="noticeEditContent">
|
||||
<div class="modal-content" id="editContent">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="noticeViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeViewModalLabel" aria-hidden="true">
|
||||
<div class="modal fade" id="viewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="viewModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content" id="noticeViewContent">
|
||||
<div class="modal-content" id="viewContent">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
</html>
|
||||
<!--<!DOCTYPE html>-->
|
||||
<!--<html lang="ko" xmlns:th="http://www.thymeleaf.org"-->
|
||||
<!-- xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"-->
|
||||
<!-- xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"-->
|
||||
<!-- layout:decorate="~{layout/layout}">-->
|
||||
<!--<th:block layout:fragment="script">-->
|
||||
<!-- <!–<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affairPlan.js}"></script>–>-->
|
||||
<!--</th:block>-->
|
||||
<!--<div layout:fragment="content">-->
|
||||
<!-- <main class="pt-3">-->
|
||||
<!-- <h4>Q&A</h4>-->
|
||||
<!-- <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>-->
|
||||
<!-- <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>-->
|
||||
<!-- <div class="row mx-0">-->
|
||||
<!-- <div class="col-12 card text-center">-->
|
||||
<!-- <div class="card-body">-->
|
||||
<!-- <form method="get" th:action="@{/fpiMgt/monthPlanPage}">-->
|
||||
<!-- <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">-->
|
||||
<!-- <div class="row justify-content-between pe-3 py-1">-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <select class="form-select" name="rowCnt" id="rowCnt">-->
|
||||
<!-- <th:block th:each="num : ${#numbers.sequence(1,5)}">-->
|
||||
<!-- <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <!–<div class="row justify-content-end">-->
|
||||
<!-- <div class="col-auto" th:if="${accessAuth eq 'ACC003'}">-->
|
||||
<!-- <select class="form-select form-select-sm" name="wrtOrgan">-->
|
||||
<!-- <option value="">관서 선택</option>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OG')}">-->
|
||||
<!-- <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">-->
|
||||
<!-- <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto" th:if="${accessAuth eq 'ACC003'}">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <select class="form-select form-select-sm" name="planState">-->
|
||||
<!-- <option value="">상태 선택</option>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('DST')}">-->
|
||||
<!-- <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.planState}"></option>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-4">-->
|
||||
<!-- <div class="input-group w-auto input-daterange" id="dateSelectorDiv">-->
|
||||
<!-- <select class="form-select form-select-sm" name="dateSelector">-->
|
||||
<!-- <option value="">조건선택</option>-->
|
||||
<!-- <option value="planDt" th:selected="${searchParams.dateSelector eq 'planDt'}">시행일</option>-->
|
||||
<!-- <option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">작성일</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">-->
|
||||
<!-- <input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">-->
|
||||
<!-- </div>–>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </form>-->
|
||||
<!-- <div class="row justify-content-start">-->
|
||||
<!-- <div class="col-12">-->
|
||||
<!-- <div class="card">-->
|
||||
<!-- <div class="card-body">-->
|
||||
<!-- <div class="row">-->
|
||||
<!-- <table class="table table-hover">-->
|
||||
<!-- <thead>-->
|
||||
<!-- <tr>-->
|
||||
<!-- <th></th>-->
|
||||
<!-- <th>제목</th>-->
|
||||
<!-- <th>관서</th>-->
|
||||
<!-- <th>부서</th>-->
|
||||
<!-- <th>작성자</th>-->
|
||||
<!-- <th>작성일시</th>-->
|
||||
<!-- <th>첨부파일</th>-->
|
||||
<!-- <th>댓글</th>-->
|
||||
<!-- </tr>-->
|
||||
<!-- </thead>-->
|
||||
<!-- <tbody>-->
|
||||
<!-- <!–<tr class="planTr" th:each="plan:${planList}">-->
|
||||
<!-- <input type="hidden" class="planKey" th:value="${plan.planKey}">-->
|
||||
<!-- <td><input type="checkbox" class="trChkBox"></td>-->
|
||||
<!-- <td th:text="${plan.contentTitle}"></td>-->
|
||||
<!-- <td th:text="${#temporals.format(plan.planDt, 'yyyy-MM-dd')}"></td>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OG')}">-->
|
||||
<!-- <td th:if="${plan.wrtOrgan eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:each="commonCode:${session.commonCode.get('OFC')}">-->
|
||||
<!-- <td th:if="${plan.wrtPart eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <td th:text="${plan.wrtUserNm}"></td>-->
|
||||
<!-- <td th:text="${#temporals.format(plan.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>-->
|
||||
<!-- <td th:text="${plan.fileCnt eq null?'파일 없음':#strings.concat(plan.fileCnt,' 건')}"></td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST001'}">임시저장</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST002'}">결재대기</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST003'}">계장반려</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST004'}">계장결재</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST005'}">부장반려</td>-->
|
||||
<!-- <td th:if="${plan.planState eq 'DST006'}">부장결재</td>-->
|
||||
<!-- </tr>–>-->
|
||||
<!-- </tbody>-->
|
||||
<!-- </table>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="row justify-content-between">-->
|
||||
<!-- <div class="col-auto"></div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <nav aria-label="Page navigation">-->
|
||||
<!-- <ul class="pagination">-->
|
||||
<!-- <th:block th:if="${searchParams.pageIndex>3}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">-->
|
||||
<!-- <a class="page-link" href="#" aria-label="Previous">-->
|
||||
<!-- <span aria-hidden="true">«</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">-->
|
||||
<!-- <a class="page-link" href="#" th:text="${num}"></a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- <th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">-->
|
||||
<!-- <li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">-->
|
||||
<!-- <a class="page-link" href="#" aria-label="Next">-->
|
||||
<!-- <span aria-hidden="true">»</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </th:block>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </nav>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-auto">-->
|
||||
<!-- <input type="button" class="btn btn-success" value="등록" id="addqnaBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </main>-->
|
||||
|
||||
<!-- <div class="modal fade" id="qnaEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeEditModalLabel" aria-hidden="true">-->
|
||||
<!-- <div class="modal-dialog modal-xl modal-dialog-scrollable">-->
|
||||
<!-- <div class="modal-content" id="noticeEditContent">-->
|
||||
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="modal fade" id="noticeViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="noticeViewModalLabel" aria-hidden="true">-->
|
||||
<!-- <div class="modal-dialog modal-xl modal-dialog-scrollable">-->
|
||||
<!-- <div class="modal-content" id="noticeViewContent">-->
|
||||
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
<!--</html>-->
|
||||
Loading…
Reference in New Issue