FAISP/src/main/resources/templates/searchEngine/searchPage.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">&laquo;</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">&raquo;</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">&laquo;</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">&raquo;</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">&laquo;</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">&raquo;</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>