fix : 방첩활동 중간저장

master
TaehunPark 2023-01-04 09:44:48 +09:00
parent a576faa1cb
commit cb12ee46d0
5 changed files with 106 additions and 52 deletions

View File

@ -114,6 +114,7 @@ public class CounterIntelligenceController {
public ModelAndView ciaSaftyDemandList(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSaftyDemandList");
cia.setDownOrganCdList(loginUser.getDownOrganCdList());
cia.setQueryInfo();
mav.addObject("sdiList", ciService.selectCiaSaftyDemandList(cia));
cia.setContentCnt(ciService.selectCiaSaftyDemandListCnt(cia));
@ -152,4 +153,13 @@ public class CounterIntelligenceController {
ciService.saveSaftyDemand(cia);
return ciKey;
}
@GetMapping("/ciaSaftyDemandViewModal")
public ModelAndView ciaSaftyDemandViewModal(@AuthenticationPrincipal UserInfo loginUser, CounterIntelligenceActivity cia){
ModelAndView mav = new ModelAndView("counterIntelligence/ciaSaftyDemandViewModal");
mav.addObject("lineSeparator", '\n');
mav.addObject("viewUserSeq", loginUser.getUserSeq());
mav.addObject("cia", ciService.selectSaftyDemandInfo(cia));
return mav;
}
}

View File

@ -153,6 +153,10 @@
from counter_intelligence_activity cia,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
@ -171,6 +175,10 @@
from counter_intelligence_activity cia,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
)a
</select>

View File

@ -50,5 +50,21 @@ $(document).on('click', '#saveBtn', function (){
})
$(document).on('click', '.sdiTr', function (){
getCiaSaftyDemandEditModal($(this).find(".ciKey").val());
getCiaSaftyDemandViewModal($(this).find(".ciKey").val());
})
function getCiaSaftyDemandViewModal(ciKey){
$.ajax({
url: '/counterIntelligence/ciaSaftyDemandViewModal',
data: {ciKey: ciKey},
type: 'GET',
dataType:"html",
success: function(html){
$("#ciWorkViewModalBody").empty().append(html)
$("#ciWorkViewModal").modal('show');
},
error:function(){
}
});
}

View File

@ -9,10 +9,10 @@
<main>
<div class="row justify-content-between">
<div class="col-auto">
<h4>방첩공작</h4>
<h4>치안수요 분석결과</h4>
</div>
<div class="col-auto">
<p class="mb-0 mt-2">외사방첩관리 > 방첩공작</p>
<p class="mb-0 mt-2">외사방첩관리 > 방첩활동 > 치안수요 분석결과</p>
</div>
</div>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>

View File

@ -1,62 +1,82 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<div class="modal-header bg-dark">
<h5 class="modal-title text-white">치안수요 등록</h5>
<h5 class="modal-title text-white" id="ciWorkViewModalLabel">방첩공작 열람</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" id="ivsgtEditBody">
<form action="#" method="post" id="ciaSaftyDemandEditForm">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="ciType" value="SDI">
<div class="modal-body" id="ciWorkViewBody">
<input type="hidden" id="ciKey" th:value="${cia.ciKey}">
<ul class="nav nav-tabs" id="userTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="boardTab" data-bs-toggle="tab" data-bs-target="#boardTabPanel" type="button" role="tab" aria-controls="boardTabPanel" aria-selected="true">본문</button>
</li>
<li class="nav-item" role="presentation" th:if="${#lists.size(cia.fileList)>0}">
<button class="nav-link" id="fileTab" data-bs-toggle="tab" data-bs-target="#fileTabPanel" type="button" role="tab" aria-controls="fileTabPanel" aria-selected="false" th:text="${#strings.concat('첨부파일(', #lists.size(cia.fileList), ')')}"></button>
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-2">
<div class="tab-pane fade p-2 show active" id="boardTabPanel" role="tabpanel" tabindex="0">
<div class="row mb-1">
<label for="wrtNm" class="col-sm-1 col-form-label col-form-label-sm text-center">작성자</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자자동입력" readonly>
</div>
<label for="wrtDt" class="col-sm-1 col-form-label col-form-label-sm text-center">작성일시</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" th:value="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}" placeholder="작성일자동입력" readonly>
</div>
<div class="col-sm-9"></div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성일시</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(cia.wrtDt, 'yyyy-MM-dd HH:mm')}"></label>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">작성자</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${cia.wrtUserNm}"></label>
</div>
<hr class="my-1">
<div class="row mb-1">
<label for="contentInfoDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">지역특성</label>
<div class="col-sm-11" id="contentInfoDiv">
<textarea class="form-control form-control-sm" rows="5" cols="30" name="localInfo" th:utext="${cia.saftyDemandInfo.localInfo}"></textarea>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">사건개요</label>
<div class="col-sm-11 form-control-sm" th:utext="${#strings.replace(cia.saftyDemandInfo.localInfo, lineSeparator, '<br>')}"></div>
</div>
<hr class="my-1">
<div class="row mb-1">
<label for="contentInfoDiv" class="col-sm-1 col-form-label col-form-label-sm text-center">예상문제점</label>
<div class="col-sm-11" id="contentInfoDiv">
<textarea class="form-control form-control-sm" rows="5" cols="30" name="outlookProblem" th:utext="${cia.saftyDemandInfo.outlookProblem}"></textarea>
</div>
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">내용</label>
<div class="col-sm-11 form-control-sm" th:utext="${ciWork.content}"></div>
</div>
<hr class="my-1">
<div class="row mb-1">
<label for="fileInputer" class="col-sm-1 col-form-label col-form-label-sm text-center">첨부파일</label>
<div class="col-sm-11" style="min-height: 70px;">
<div class="w-100 h-100 border border-info rounded text-center" id="uploadDiv">
<th:block th:if="${#arrays.isEmpty(cia.fileList)}">
<br>파일을 업로드 해주세요.
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">해시태그</label>
<label class="col-sm-11 col-form-label col-form-label-sm text-start" th:text="${ciWork.hashTags}"></label>
</div>
</div>
<div class="tab-pane fade p-2" id="fileTabPanel" role="tabpanel" tabindex="0">
<div class="row mb-3">
<div class="col-sm-12">
<table class="table table-sm" id="fileTable">
<thead>
<tr>
<th>파일명</th>
<th>사이즈</th>
</tr>
</thead>
<tbody>
<th:block th:if="${#lists.isEmpty(cia.fileList)}">
<tr>
<td colspan="2">파일이 없습니다.</td>
</tr>
</th:block>
<th:block th:unless="${#arrays.isEmpty(cia.fileList)}">
<div class='row-col-6' th:each="file:${cia.fileList}">
<span th:data-fileseq="${file.fileSeq}" th:text="|${file.origNm}.${file.fileExtn} ${file.fileSize}|"></span>
<a href='#' class='uploadedFileDelete text-danger text-decoration-none'>삭제</a>
</div>
<th:block th:unless="${#lists.isEmpty(cia.fileList)}">
<th:block th:each="file:${cia.fileList}">
<tr class="fileInfoTr">
<td>
<a href="#" class="fileDownLink" data-board="ciWork"
th:data-parentkey="${file.ciKey}" th:data-fileseq="${file.fileSeq}"
th:text="|${file.origNm}.${file.fileExtn}|"></a>
</td>
<td th:text="${file.fileSize}"></td>
</tr>
</th:block>
</div>
<input type="file" class="d-none" id="fileInputer" multiple>
</th:block>
</tbody>
</table>
</div>
</div>
</form>
</div>
<div class="modal-footer justify-content-between bg-light">
<div class="col-auto">
</div>
</div>
<div class="modal-footer bg-light">
<th:block th:if="${viewUserSeq eq ciWork.wrtUserSeq}">
<button type="button" class="btn btn-warning" id="editCiWorkBtn" th:data-ciwkey="${cia.ciKey}">수정</button>
</th:block>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
</div>
<div class="col-auto">
<button type="button" class="btn btn-warning" id="saveTempBtn">임시저장</button>
<button type="button" class="btn btn-primary" id="saveBtn">저장</button>
</div>
</div>
</html>