선택 메뉴 유지 동작 수정.

master
강석 최 2023-01-28 13:07:09 +09:00
parent 5a9cfea7e3
commit 30a86f97fe
44 changed files with 187 additions and 150 deletions

View File

@ -138,6 +138,7 @@ public class MenuMgtService {
secondMenu.setOrderStr(orderStr.substring(1,2)); secondMenu.setOrderStr(orderStr.substring(1,2));
thirdMenu.setOrderStr(orderStr.substring(2,3)); thirdMenu.setOrderStr(orderStr.substring(2,3));
thirdMenu.setMenuUrl(accessMenu.getMenuUrl()); thirdMenu.setMenuUrl(accessMenu.getMenuUrl());
thirdMenu.setMenuKey(accessMenu.getMenuKey());
break; break;
} }
} }
@ -159,6 +160,7 @@ public class MenuMgtService {
firstMenu.setOrderStr(orderStr.substring(0,1)); firstMenu.setOrderStr(orderStr.substring(0,1));
secondMenu.setOrderStr(orderStr.substring(1,2)); secondMenu.setOrderStr(orderStr.substring(1,2));
secondMenu.setMenuUrl(accessMenu.getMenuUrl()); secondMenu.setMenuUrl(accessMenu.getMenuUrl());
secondMenu.setMenuKey(accessMenu.getMenuKey());
break; break;
} }
} }

View File

@ -51,7 +51,8 @@
</select> </select>
<select id="selectAccessMenuListWhereUserSeq" resultType="MenuMgt" parameterType="int"> <select id="selectAccessMenuListWhereUserSeq" resultType="MenuMgt" parameterType="int">
select ab.cat1_cd, select ab.menu_key,
ab.cat1_cd,
ab.cat2_cd, ab.cat2_cd,
ab.cat3_cd, ab.cat3_cd,
ab.order_str, ab.order_str,

View File

@ -4,12 +4,7 @@ $(document).ready(function (){
const path = location.pathname; const path = location.pathname;
if(!(path.includes("/login") || path.includes("/dashboard") || if(!(path.includes("/login") || path.includes("/dashboard") ||
path.includes("/publicBoard") || path.includes("/myInfo"))){ path.includes("/publicBoard") || path.includes("/myInfo"))){
$.each($("#leftMenu").find("a"), function (idx, link){ menuOpen($("[data-menukey='"+$("#menuKey").val()+"']").attr("data-parent"))
if(link.href.includes(location.pathname)){
menuOpen($(link).attr("data-parent"))
}
})
} }
}) })
function menuOpen(categoryCd){ function menuOpen(categoryCd){

View File

@ -78,6 +78,7 @@
<thead> <thead>
<tr class="table-secondary"> <tr class="table-secondary">
<th><input type="checkbox" class="allChk"></th> <th><input type="checkbox" class="allChk"></th>
<th>menuKey</th>
<th>대분류</th> <th>대분류</th>
<th>중분류</th> <th>중분류</th>
<th>소분류</th> <th>소분류</th>
@ -99,6 +100,7 @@
<td> <td>
<input type="checkbox" class="menuCheckBox" th:value="${menuMgt.menuKey}"> <input type="checkbox" class="menuCheckBox" th:value="${menuMgt.menuKey}">
</td> </td>
<td th:text="${menuMgt.menuKey}"></td>
<th:block th:if="${menuMgt.cat1RowspanCnt ne 0}" th:each="commonCode:${session.commonCode.get('CAT1')}"> <th:block th:if="${menuMgt.cat1RowspanCnt ne 0}" th:each="commonCode:${session.commonCode.get('CAT1')}">
<th:block th:if="${commonCode.itemCd eq menuMgt.cat1Cd}"> <th:block th:if="${commonCode.itemCd eq menuMgt.cat1Cd}">
<td th:text="${commonCode.itemValue}" th:rowspan="${menuMgt.cat1RowspanCnt}"></td> <td th:text="${commonCode.itemValue}" th:rowspan="${menuMgt.cat1RowspanCnt}"></td>
@ -109,14 +111,11 @@
<td th:text="${commonCode.itemValue}" th:rowspan="${menuMgt.cat2RowspanCnt}"></td> <td th:text="${commonCode.itemValue}" th:rowspan="${menuMgt.cat2RowspanCnt}"></td>
</th:block> </th:block>
</th:block> </th:block>
<th:block th:each="commonCode:${session.commonCode.get('CAT3')}"> <td>
<th:block th:if="${commonCode.itemCd eq menuMgt.cat3Cd}"> <th:block th:each="commonCode:${session.commonCode.get('CAT3')}">
<td th:text="${commonCode.itemValue}"></td> <th:block th:if="${commonCode.itemCd eq menuMgt.cat3Cd}" th:text="${commonCode.itemValue}"></th:block>
</th:block> </th:block>
</th:block> </td>
<th:block th:if="${#strings.isEmpty(menuMgt.cat3Cd)}">
<td></td>
</th:block>
<td th:text="${menuMgt.orderStr}"></td> <td th:text="${menuMgt.orderStr}"></td>
<td th:text="${menuMgt.menuUrl}"></td> <td th:text="${menuMgt.menuUrl}"></td>
<td th:text="${menuMgt.useChk eq 'T'?'O':''}"></td> <td th:text="${menuMgt.useChk eq 'T'?'O':''}"></td>

View File

@ -8,6 +8,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="12">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="6">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="10">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="9">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="8">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="7">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="22">
<h4>업무용 휴대전화 현황</h4> <h4>업무용 휴대전화 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="21">
<h4 th:text="|${equType}-${detailType} 세부현황|"></h4> <h4 th:text="|${equType}-${detailType} 세부현황|"></h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="21">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="24">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="23">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -8,6 +8,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="1">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto"> <div class="col-auto">
<div class="mb-2"> <div class="mb-2">

View File

@ -8,6 +8,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="45">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -11,6 +11,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="42">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -18,6 +18,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="51">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto"> <div class="col-auto">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -13,6 +13,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="41">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -10,6 +10,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="43">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -10,6 +10,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="44">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" th:value="${(searchParams.siType eq 'KRCN'?'16':'17')}">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">
@ -106,7 +107,7 @@
<input type="hidden" class="verNo" th:value="${si.versionNo}"> <input type="hidden" class="verNo" th:value="${si.versionNo}">
<td> <td>
<div th:text="|${si.startPoint}/${si.endPoint}|"></div> <div th:text="|${si.startPoint}/${si.endPoint}|"></div>
<div th:text="|(${si.distanceNm}해리),${si.distanceKm}km)|"></div> <div th:text="|(${si.distanceNm}해리,${si.distanceKm}km)|"></div>
</td> </td>
<td th:text="${si.ownerNm}"></td> <td th:text="${si.ownerNm}"></td>
<td th:text="${si.shipNm}"></td> <td th:text="${si.shipNm}"></td>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="18">
<div class="row justify-content-between"> <div class="row justify-content-between">
<div class="col-auto mb-2"> <div class="col-auto mb-2">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="19">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="13">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -29,7 +29,7 @@
</button> </button>
</th:block> </th:block>
<th:block th:if="${#lists.isEmpty(secondMenu.childList)}"> <th:block th:if="${#lists.isEmpty(secondMenu.childList)}">
<a th:href="@{${secondMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" style="font-size: 14px;" <a th:href="@{${secondMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" style="font-size: 14px;" th:data-menukey="${secondMenu.menuKey}"
th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"></a> th:data-parent="${cat1Code.itemCd}" th:data-category="${cat2Code.itemCd}" th:text="${cat2Code.itemValue}"></a>
</th:block> </th:block>
<div class="collapse ps-3" th:id="|collapse${cat2Code.itemCd}|" > <div class="collapse ps-3" th:id="|collapse${cat2Code.itemCd}|" >
@ -39,12 +39,12 @@
<th:block th:if="${cat3Code.itemCd eq thirdMenu.cat3Cd}"> <th:block th:if="${cat3Code.itemCd eq thirdMenu.cat3Cd}">
<ul class="list-unstyled ps-0"> <ul class="list-unstyled ps-0">
<li> <li>
<a th:href="@{${thirdMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" <a th:href="@{${thirdMenu.menuUrl}}" class="bi bi-dash link-light rounded ps-3 text-decoration-none" th:data-menukey="${thirdMenu.menuKey}"
th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a> th:data-parent="${cat2Code.itemCd}" th:data-category="${cat3Code.itemCd}" th:text="${cat3Code.itemValue}"></a>
</li> </li>
</ul> </ul>
</th:block> </th:block>
</th:block> </th:block>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" th:value="${(searchParams.affairCategory eq 'CAT215'?'30':'33')}">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -10,6 +10,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="39">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="29">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="31">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="34">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="35">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="32">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="36">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -11,6 +11,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="2">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -4,147 +4,148 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/ivsgt/majorStatus.js}"></script> <script type="text/javascript" th:src="@{/js/ivsgt/majorStatus.js}"></script>
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<div class="mb-2"> <input type="hidden" id="menuKey" value="5">
<div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div> <div class="mb-2">
<h5 class="d-inline align-middle"> 주요사건처리현황</h5> <div class="d-inline align-middle"><i class="bi bi-square-fill"></i></div>
</div> <h5 class="d-inline align-middle"> 주요사건처리현황</h5>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> </div>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<div class="row mx-0"> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="col-12 card bg-light text-center"> <div class="row mx-0">
<div class="card-body"> <div class="col-12 card bg-light text-center">
<form method="get" th:action="@{/ivsgt/majorStatusPage}"> <div class="card-body">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <form method="get" th:action="@{/ivsgt/majorStatusPage}">
<div class="row justify-content-between py-1"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="col-auto"> <div class="row justify-content-between py-1">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt"> <div class="col-auto">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> <th:block th:each="num : ${#numbers.sequence(1,5)}">
</th:block> <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</select> </th:block>
</div> </select>
<div class="col-auto"> </div>
<div class="row justify-content-end"> <div class="col-auto">
<div class="col-auto"> <div class="row justify-content-end">
<select class="form-select form-select-sm" name="wrtOrgan"> <div class="col-auto">
<option value="">관서 선택</option> <select class="form-select form-select-sm" name="wrtOrgan">
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <option value="">관서 선택</option>
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
</th:block> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block> </th:block>
</select> </th:block>
</div> </select>
<div class="col-auto"> </div>
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}"> <div class="col-auto">
</div> <input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
<div class="col-auto"> </div>
<input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}"> <div class="col-auto">
</div> <input type="text" class="form-control form-control-sm" placeholder="제목" name="contentTitle" th:value="${searchParams.contentTitle}">
<div class="col-4"> </div>
<div class="input-group w-auto input-daterange" id="dateSelectorDiv"> <div class="col-4">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}"> <div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}"> <input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
</div> <input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th width="5%">순번</th>
<th width="10%">작성일시</th>
<th width="10%">종류</th>
<th>제목</th>
<th>내용</th>
<th width="10%">첨부파일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="tr" th:each="major, cnt:${majorList}">
<input type="hidden" class="majorKey" th:value="${major.majorKey}">
<td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(major.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('MST')}">
<td th:if="${major.majorType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="|${major.contentStatus eq 'DST001'?'[임시]':''}${major.contentTitle}|"></td>
<td th:utext="${major.contentInfo}"></td>
<td th:text="${major.fileCnt eq null?'파일 없음':#strings.concat(major.fileCnt,' 건')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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">&laquo;</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">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<!-- <input type="button" class="btn btn-danger" value="삭제" id="delectMajorBtn">-->
<input type="button" class="btn btn-success" value="등록" id="addMajorBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div> </div>
</div>
</div> </div>
</div> </form>
</main> <div class="row">
<div class="col-12">
<div class="modal fade" id="MajorEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="MajorEditModalLabel" aria-hidden="true"> <div class="card">
<div class="modal-dialog modal-xl modal-dialog-scrollable"> <div class="card-body">
<div class="modal-content" id="editContent"> <div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th width="5%">순번</th>
<th width="10%">작성일시</th>
<th width="10%">종류</th>
<th>제목</th>
<th>내용</th>
<th width="10%">첨부파일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="tr" th:each="major, cnt:${majorList}">
<input type="hidden" class="majorKey" th:value="${major.majorKey}">
<td th:text="${cnt.count}"></td>
<td th:text="${#temporals.format(major.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('MST')}">
<td th:if="${major.majorType eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
<td th:text="|${major.contentStatus eq 'DST001'?'[임시]':''}${major.contentTitle}|"></td>
<td th:utext="${major.contentInfo}"></td>
<td th:text="${major.fileCnt eq null?'파일 없음':#strings.concat(major.fileCnt,' 건')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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">&laquo;</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">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
<div class="col-auto">
<!-- <input type="button" class="btn btn-danger" value="삭제" id="delectMajorBtn">-->
<input type="button" class="btn btn-success" value="등록" id="addMajorBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
</div>
</div>
</div>
</div>
</div> </div>
</div>
</div> </div>
</div>
</div> </div>
<div class="modal fade" id="MajorViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="MajorViewModalLabel" aria-hidden="true"> </main>
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="viewContent">
</div> <div class="modal fade" id="MajorEditModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="MajorEditModalLabel" aria-hidden="true">
</div> <div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="editContent">
</div>
</div> </div>
</div>
<div class="modal fade" id="MajorViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="MajorViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="viewContent">
</div>
</div>
</div>
</div> </div>
</html> </html>

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="48">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="49">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="47">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="46">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -8,6 +8,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="40">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -1,3 +1,4 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org" <html lang="ko" xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
@ -7,6 +8,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="28">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">

View File

@ -7,6 +7,7 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<input type="hidden" id="menuKey" value="50">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between"> <div class="row justify-content-between">