420 lines
24 KiB
HTML
420 lines
24 KiB
HTML
<!DOCTYPE html>
|
|
<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/searchEngine/base.css}"/>
|
|
<link rel="stylesheet" th:href="@{/css/searchEngine/search.css}"/>
|
|
</th:block>
|
|
<th:block layout:fragment="script">
|
|
<script type="text/javascript" th:src="@{/js/searchEngine/prefixfree.min.js}"></script>
|
|
<script type="text/javascript" th:src="@{/js/searchEngine/searchPage.js}"></script>
|
|
</th:block>
|
|
<div layout:fragment="content">
|
|
<main>
|
|
<form method="get" action="/search/searchPage" id="searchForm">
|
|
<div class="headerArea">
|
|
<header id="searchHeader">
|
|
<div class="searchPagetop guideBox">
|
|
<div class="searchBox">
|
|
<input type="hidden" name="pageIndex" id="pageIndexInput" th:value="${searchParams.pageIndex}">
|
|
<input type="hidden" name="activeTab" id="activeTabInput" th:value="${searchParams.activeTab}">
|
|
<input type="hidden" name="wrtOrgan" th:value="${searchParams.wrtOrgan}">
|
|
<input type="hidden" name="wrtUserSeq" th:value="${searchParams.wrtUserSeq}">
|
|
<input type="text" title="입력" id="keywordInput" name="keyword" placeholder="검색어를 입력해주세요." th:value="${searchParams.keyword}"/>
|
|
<a href="#" id="searchBtn">검색</a>
|
|
<div id="autoSearchList" class="autoSearchList">
|
|
|
|
</div>
|
|
<a href="#" class="searchPageBoxBtn">검색옵션</a>
|
|
<div class="sRightBox">
|
|
<span>
|
|
<!--<input id="reSearch" type="checkbox" value="#" />
|
|
<label for="reSearch">결과 내 재검색</label>-->
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
</div>
|
|
<div class="searchPageBox">
|
|
<form>
|
|
<fieldset>
|
|
<legend class="hide">상세검색</legend>
|
|
<ul class="searchWideBox">
|
|
<!--<li>
|
|
<p>정렬</p>
|
|
<input id="btn_chk1" type="radio" checked="checked" name="radio1" value="정확도순" />
|
|
<label for="btn_chk1">정확도순</label>
|
|
<input id="btn_chk2" type="radio" name="radio1" value="최신순" />
|
|
<label for="btn_chk2">최신순</label>
|
|
</li>-->
|
|
<li>
|
|
<p>기간</p>
|
|
<ul>
|
|
<li class="active"><a href="#">전체</a></li>
|
|
<li><a href="#">1일</a></li>
|
|
<li><a href="#">1주</a></li>
|
|
<li><a href="#">1개월</a></li>
|
|
<li><a href="#">3개월</a></li>
|
|
<li><a href="#">1년</a></li>
|
|
</ul>
|
|
<span>
|
|
<span class="tie">
|
|
<label class="hide" for="startDate">시작일</label>
|
|
<input id="startDate" name="startDate" type="date" th:value="${searchParams.startDate}" maxlength="250" class="shortText" />
|
|
</span>
|
|
<b>~</b>
|
|
<span class="tie">
|
|
<label class="hide" for="endDate">종료일</label>
|
|
<input id="endDate" name="endDate" type="date" th:value="${searchParams.endDate}" maxlength="250" class="shortText" />
|
|
</span>
|
|
</span>
|
|
</li>
|
|
<!--<li>
|
|
<p>영역</p>
|
|
<input id="btn_chk3" type="checkbox" checked="checked" value="제목" />
|
|
<label for="btn_chk3">제목</label>
|
|
<input id="btn_chk4" type="checkbox" value="내용" />
|
|
<label for="btn_chk4">내용</label>
|
|
<input id="btn_chk5" type="checkbox" value="첨부파일" />
|
|
<label for="btn_chk5">첨부파일</label>
|
|
</li>-->
|
|
</ul>
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
</form>
|
|
<div class="searchContents">
|
|
<div class="guideBox searchDataBox" id="start_contents">
|
|
<div class="searchDataList">
|
|
<p class="searchDataInfo" th:if="${searchParams.activeTab eq 'all'}">
|
|
검색어 <span class="red bold" th:text="${searchParams.keyword}"></span>에 대한 총<span class="blue bold" th:text="${totalCnt}"></span>의 검색결과를 찾았습니다.
|
|
</p>
|
|
<ul class="searchDataNav">
|
|
<li th:class="${searchParams.activeTab eq 'all'?'active':''}"><a class="searchTabLink" href="#" data-activetab="all">통합검색</a></li>
|
|
<li th:class="${searchParams.activeTab eq 'menu'?'active':''}"><a class="searchTabLink" href="#" data-activetab="menu">메뉴검색</a></li>
|
|
<li th:class="${searchParams.activeTab eq 'board'?'active':''}"><a class="searchTabLink" href="#" data-activetab="board">게시판</a></li>
|
|
<li th:class="${searchParams.activeTab eq 'file'?'active':''}"><a class="searchTabLink" href="#" data-activetab="file">첨부파일</a></li>
|
|
</ul>
|
|
<section class="searchDataListBox" th:if="${searchParams.activeTab eq 'all' or searchParams.activeTab eq 'menu'}">
|
|
<h3>메뉴검색<span th:text="|${menuResult.totalCount}건|"></span></h3>
|
|
<ul class="menuList">
|
|
<th:block th:each="menu:${menuResult.rowList}">
|
|
<li class="menuLink">
|
|
<a href="#" th:text="${menu.menu_nm}"></a>
|
|
<th:block th:if="${menu.menu_key eq 0}">
|
|
<input type="hidden" class="menuUrl" th:value="${menu.menu_url}">
|
|
</th:block>
|
|
<th:block th:if="${menu.menu_key ne 0}">
|
|
<th:block th:each="accessMenu:${accessMenuList}">
|
|
<th:block th:if="${menu.menu_key eq accessMenu.menuKey and !#strings.isEmpty(accessMenu.accessAuth)}">
|
|
<input type="hidden" class="menuUrl" th:value="${menu.menu_url}">
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</li>
|
|
</th:block>
|
|
</ul>
|
|
<div class="optionView" th:if="${searchParams.activeTab eq 'all'}">
|
|
<a href="#" class="plusView searchTabLink" data-activetab="menu">더보기 +</a>
|
|
</div>
|
|
<div class="row justify-content-center" th:if="${searchParams.activeTab eq 'menu'}">
|
|
<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 searchPage" 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 searchPage" 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 searchPage" 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>
|
|
</section>
|
|
<section class="searchDataListBox" th:if="${searchParams.activeTab eq 'all' or searchParams.activeTab eq 'board'}">
|
|
<h3>게시판<span th:text="|${boardResult.totalCount}건|"></span></h3>
|
|
<ul class="boardList">
|
|
<li th:each="board:${boardResult.rowList}">
|
|
<dl class="boardLink">
|
|
<dt>
|
|
<th:block th:if="${board.menu_key eq 0}">
|
|
<input type="hidden" class="refDocKey" th:value="${board.main_key}">
|
|
<input type="hidden" class="menuUrl" value="/publicBoard/findPage">
|
|
</th:block>
|
|
<th:block th:each="accessMenu:${accessMenuList}">
|
|
<th:block th:if="${board.menu_key eq accessMenu.menuKey and !#strings.isEmpty(accessMenu.accessAuth)}">
|
|
<!--메뉴 접근 권한이 있는경우-->
|
|
<th:block th:each="code:${session.commonCode.get('OG')}">
|
|
<th:block th:if="${#strings.equals(#strings.trim(board.wrt_organ), code.itemValue)}">
|
|
<!--관리권한이라면 하위 관서 문서 열람 허용-->
|
|
<th:block th:if="${accessMenu.accessAuth eq 'ACC003'}">
|
|
<th:block th:if="${#lists.contains(downOrganList, code.itemCd)}">
|
|
<input type="hidden" class="refDocKey" th:value="${board.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${accessMenu.accessAuth ne 'ACC003'}">
|
|
<!--조회, 작성 권한-->
|
|
<th:block th:if="${userSeq eq board.wrt_user_seq}">
|
|
<!--본인이 작성한 게시물-->
|
|
<input type="hidden" class="refDocKey" th:value="${board.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
<th:block th:if="${userSeq ne board.wrt_user_seq}">
|
|
<!--본인이 작성한 게시물이 아니라면 -->
|
|
<th:block th:with="readUser=${#strings.listSplit(board.readableuser, ' / ')}">
|
|
<th:block th:if="${#lists.contains(readUser, #strings.toString(userSeq))}">
|
|
<!--열람 허용된 사용자인지 확인-->
|
|
<input type="hidden" class="refDocKey" th:value="${board.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${board.menu_key ne 0}">
|
|
[<th:block th:each="menu:${menuList}">
|
|
<th:block th:if="${menu.menuKey eq board.menu_key}">
|
|
<th:block th:if="${!#strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT3')}">
|
|
<th:block th:if="${menu.cat3Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${!#strings.isEmpty(menu.cat2Cd) and #strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT2')}">
|
|
<th:block th:if="${menu.cat2Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${!#strings.isEmpty(menu.cat1Cd) and #strings.isEmpty(menu.cat2Cd) and #strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT1')}">
|
|
<th:block th:if="${menu.cat1Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>]
|
|
</th:block>
|
|
<a href="#" th:text="${board.title1}"></a>
|
|
<span class="titleDate">
|
|
<th:block th:if="${!#strings.isEmpty(board.wrt_organ)}" th:text="${board.wrt_organ}"></th:block>
|
|
<th:block th:if="${!#strings.isEmpty(board.wrt_part)}" th:text="${board.wrt_part}"></th:block>
|
|
<th:block th:if="${!#strings.isEmpty(board.wrt_user_grd)}" th:text="${board.wrt_user_grd}"></th:block>
|
|
<th:block th:if="${!#strings.isEmpty(board.wrt_user_nm)}" th:text="${board.wrt_user_nm}"></th:block>
|
|
<th:block th:text="${#temporals.format(board.wrt_dt, 'yyyy-MM-dd HH:mm')}"></th:block>
|
|
</span>
|
|
</dt>
|
|
<!--<dt th:if="${!#strings.isEmpty(board.title2)}"><a href="#" th:text="${board.title2}"></a></dt>-->
|
|
<th:block th:if="${!#strings.isEmpty(board.hash_tag)}">
|
|
<dd th:utext="|해시태그: ${board.hash_tag}|"></dd>
|
|
</th:block>
|
|
<!--
|
|
<dd th:if="${!#strings.isEmpty(board.content1)}" th:utext="${board.content1}"></dd>
|
|
<dd th:if="${!#strings.isEmpty(board.content2)}" th:utext="${board.content2}"></dd>
|
|
<dd th:if="${!#strings.isEmpty(board.content3)}" th:utext="${board.content3}"></dd>
|
|
<dd th:if="${!#strings.isEmpty(board.content4)}" th:utext="${board.content4}"></dd>
|
|
<dd th:if="${!#strings.isEmpty(board.content5)}" th:utext="${board.content5}"></dd>
|
|
-->
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
<div class="optionView" th:if="${searchParams.activeTab eq 'all'}">
|
|
<a href="#" class="plusView searchTabLink" data-activetab="board">더보기 +</a>
|
|
</div>
|
|
<div class="row justify-content-center" th:if="${searchParams.activeTab eq 'board'}">
|
|
<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 searchPage" 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 searchPage" 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 searchPage" 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>
|
|
</section>
|
|
<section class="searchDataListBox" th:if="${searchParams.activeTab eq 'all' or searchParams.activeTab eq 'file'}">
|
|
<h3>첨부파일<span th:text="|${fileResult.totalCount}건|"></span></h3>
|
|
<ul class="boardList boardFileList">
|
|
<li th:each="file:${fileResult.rowList}">
|
|
<dl class="boardLink">
|
|
<th:block th:if="${file.menu_key eq 0}">
|
|
<input type="hidden" class="refDocKey" th:value="${file.main_key}">
|
|
<input type="hidden" class="menuUrl" value="/publicBoard/findPage">
|
|
</th:block>
|
|
<th:block th:each="accessMenu:${accessMenuList}">
|
|
<th:block th:if="${file.menu_key eq accessMenu.menuKey and !#strings.isEmpty(accessMenu.accessAuth)}">
|
|
<!--메뉴 접근 권한이 있는경우-->
|
|
<th:block th:if="${accessMenu.accessAuth eq 'ACC003' and #lists.contains(downOrganList, file.wrt_organ)}">
|
|
<!--관리권한이라면 하위 관서 문서 열람 허용-->
|
|
<input type="hidden" class="refDocKey" th:value="${file.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
<th:block th:if="${accessMenu.accessAuth ne 'ACC003'}">
|
|
<!--조회, 작성 권한-->
|
|
<th:block th:if="${userSeq eq file.wrt_user_seq}">
|
|
<!--본인이 작성한 게시물-->
|
|
<input type="hidden" class="refDocKey" th:value="${file.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<!--<th:block th:each="accessMenu:${accessMenuList}">
|
|
<th:block th:if="${file.menu_key eq accessMenu.menuKey and !#strings.isEmpty(accessMenu.accessAuth)}">
|
|
<input type="hidden" class="refDocKey" th:value="${file.main_key}">
|
|
<input type="hidden" class="menuUrl" th:value="${accessMenu.menuUrl}">
|
|
</th:block>
|
|
</th:block>-->
|
|
<th:block th:if="${file.menu_key ne 0}">
|
|
<th:block th:each="menu:${menuList}">
|
|
<th:block th:if="${menu.menuKey eq file.menu_key}">
|
|
[<th:block th:if="${!#strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT3')}">
|
|
<th:block th:if="${menu.cat3Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${!#strings.isEmpty(menu.cat2Cd) and #strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT2')}">
|
|
<th:block th:if="${menu.cat2Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<th:block th:if="${!#strings.isEmpty(menu.cat1Cd) and #strings.isEmpty(menu.cat2Cd) and #strings.isEmpty(menu.cat3Cd)}">
|
|
<th:block th:each="code:${session.commonCode.get('CAT1')}">
|
|
<th:block th:if="${menu.cat1Cd eq code.itemCd}" th:text="${code.itemValue}"></th:block>
|
|
</th:block>
|
|
</th:block>]
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
<dt>
|
|
<a href="#" th:text="${#strings.concat(file.orig_nm, '.', file.file_extn)}"></a>
|
|
<th:block th:if="${file.menu_key eq 0}">
|
|
<a href="#" class="downBtn fileLink" th:data-menukey="${file.menu_key eq null?'0':file.menu_key}" th:data-mainkey="${file.main_key}" th:data-fileseq="${file.file_seq}">내려받기</a>
|
|
</th:block>
|
|
<th:block th:if="${file.menu_key ne 0}">
|
|
<th:block th:each="accessMenu:${accessMenuList}">
|
|
<th:block th:if="${file.menu_key eq accessMenu.menuKey and !#strings.isEmpty(accessMenu.accessAuth)}">
|
|
<!--메뉴 접근 권한이 있는경우-->
|
|
<th:block th:if="${accessMenu.accessAuth eq 'ACC003' and #lists.contains(downOrganList, file.wrt_organ)}">
|
|
<!--관리권한이라면 하위 관서 문서 열람 허용-->
|
|
<a href="#" class="downBtn fileLink" th:data-menukey="${file.menu_key}" th:data-mainkey="${file.main_key}" th:data-fileseq="${file.file_seq}">내려받기</a>
|
|
</th:block>
|
|
<th:block th:if="${accessMenu.accessAuth ne 'ACC003'}">
|
|
<!--조회, 작성 권한-->
|
|
<th:block th:if="${userSeq eq file.wrt_user_seq}">
|
|
<!--본인이 작성한 게시물-->
|
|
<a href="#" class="downBtn fileLink" th:data-menukey="${file.menu_key}" th:data-mainkey="${file.main_key}" th:data-fileseq="${file.file_seq}">내려받기</a>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</dt>
|
|
<dd th:text="${file.file_content}"></dd>
|
|
</dl>
|
|
</li>
|
|
</ul>
|
|
<div class="optionView" th:if="${searchParams.activeTab eq 'all'}">
|
|
<a href="#" class="plusView searchTabLink" data-activetab="file">더보기 +</a>
|
|
</div>
|
|
<div class="row justify-content-center" th:if="${searchParams.activeTab eq 'file'}">
|
|
<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 searchPage" 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 searchPage" 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 searchPage" 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>
|
|
</section>
|
|
</div>
|
|
<div class="popularSearchWord">
|
|
<section>
|
|
<h3>추천검색어</h3>
|
|
<ul class="myWord">
|
|
<th:block th:each="suggest:${suggestList}">
|
|
<li><a th:href="${#strings.concat('/search/searchPage?keyword=', suggest)}" th:text="${suggest}"></a></li>
|
|
</th:block>
|
|
</ul>
|
|
</section>
|
|
<section>
|
|
<h3>인기검색어</h3>
|
|
<ul class="popularWord">
|
|
<th:block th:each="rank,row:${rankList}">
|
|
<li>
|
|
<span th:text="${row.count}"></span>
|
|
<a href="#" th:text="${rank.keyword}"></a>
|
|
<th:block th:switch="${rank.movement}">
|
|
<b th:case="new" class="red">NEW</b>
|
|
<b th:case="0">-</b>
|
|
<th:block th:case="*">
|
|
<th:block th:if="${#strings.contains(rank.movement, '-')}">
|
|
<b class="blue">↓</b>
|
|
</th:block>
|
|
<th:block th:unless="${#strings.contains(rank.movement, '-')}">
|
|
<b class="red">↑</b>
|
|
</th:block>
|
|
</th:block>
|
|
</th:block>
|
|
</li>
|
|
</th:block>
|
|
</ul>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</html> |