FAQ 퍼블 적용 작업
This commit is contained in:
parent
4c77981595
commit
a5be071b81
@ -31,6 +31,7 @@ import nlib.cmm.crypto.NlibPasswordEncoder;
|
||||
import nlib.cmm.service.CodeService;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.cmm.service.NotificationVO;
|
||||
import nlib.cmm.service.PagingVO;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.user.service.NlibLoginVO;
|
||||
@ -64,7 +65,7 @@ public class FaqController extends NlibCommonController {
|
||||
) throws Exception {
|
||||
|
||||
|
||||
List<HashMap<String, String>> questionTypeList = codeService.listCodes("FAQ_TYPE_CD");
|
||||
List<Map<String, String>> questionTypeList = codeService.listCodes("NLIB_FAQ_TYPE_CD");
|
||||
model.addAttribute("questionTypeList", questionTypeList);
|
||||
model.addAttribute("searchArticle", searchArticleVO);
|
||||
|
||||
@ -102,6 +103,14 @@ public class FaqController extends NlibCommonController {
|
||||
retMap.put("data", list);
|
||||
retMap.put("itemsCount", totRecordCount);
|
||||
|
||||
PagingVO pageVO = new PagingVO();
|
||||
pageVO.setPagingVO(totRecordCount, searchArticleVO.getPageIndex(), searchArticleVO.getPageSize());
|
||||
retMap.put("pagingPageIndex" , pageVO.getPageIndex());
|
||||
retMap.put("pagingTotRecordCount", pageVO.getTotRecordCount());
|
||||
retMap.put("pagingStartPage" , pageVO.getStartPage());
|
||||
retMap.put("pagingEndPage" , pageVO.getEndPage());
|
||||
retMap.put("pagingLastPage" , pageVO.getLastPage());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
}
|
||||
|
||||
|
||||
@ -34,6 +34,7 @@ import nlib.bbs.service.QnaService;
|
||||
import nlib.cmm.NlibCommonController;
|
||||
import nlib.cmm.service.CodeService;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.cmm.service.PagingVO;
|
||||
import nlib.user.service.NlibLoginVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
@ -123,6 +124,13 @@ public class QnaController extends NlibCommonController {
|
||||
retMap.put("itemsCount", totRecordCount);
|
||||
retMap.put("message", message);
|
||||
|
||||
PagingVO pageVO = new PagingVO();
|
||||
pageVO.setPagingVO(totRecordCount, searchArticleVO.getPageIndex(), searchArticleVO.getPageSize());
|
||||
retMap.put("pagingPageIndex" , pageVO.getPageIndex());
|
||||
retMap.put("pagingTotRecordCount", pageVO.getTotRecordCount());
|
||||
retMap.put("pagingStartPage" , pageVO.getStartPage());
|
||||
retMap.put("pagingEndPage" , pageVO.getEndPage());
|
||||
retMap.put("pagingLastPage" , pageVO.getLastPage());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
}
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
</if>
|
||||
<if test='searchType != null and searchType.equals("C")'>
|
||||
<if test="searchKeyword != null and !searchKeyword.equals('')">
|
||||
AND S.CONTENT LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
AND IFNULL(S.CONTENT,'') LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
</if>
|
||||
</if>
|
||||
AND IFNULL(S.DELETE_YN, 'N') = 'N'
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
</if>
|
||||
<if test='searchType != null and searchType.equals("C")'>
|
||||
<if test="searchKeyword != null and !searchKeyword.equals('')">
|
||||
AND CONCAT(S.CONTENT, S.ANSWER) LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
AND CONCAT(IFNULL(S.CONTENT,''), IFNULL(S.ANSWER,'')) LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
</if>
|
||||
</if>
|
||||
<if test='searchQuestionType != null and !searchQuestionType.equals("")'>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
</if>
|
||||
<if test='searchType != null and searchType.equals("C")'>
|
||||
<if test="searchKeyword != null and !searchKeyword.equals('')">
|
||||
AND CONCAT(S.CONTENT, S.ANSWER) LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
AND CONCAT(IFNULL(S.CONTENT,''), IFNULL(S.ANSWER,'')) LIKE CONCAT('%', #{escapeSearchKeyword}, '%')
|
||||
</if>
|
||||
</if>
|
||||
<if test='searchMbInfoId != null and !searchMbInfoId.equals("")'>
|
||||
|
||||
@ -37,12 +37,12 @@
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
if('${message}' != "null" && '${message}' != "") {
|
||||
// 메시지 표출
|
||||
if(!fn_isEmpty('${message}')) {
|
||||
alert("${message}");
|
||||
}
|
||||
|
||||
|
||||
// 검색 버튼 클릭
|
||||
// 검색 수행 이벤트
|
||||
$("#btnSearch").on("click", function(e) {
|
||||
fn_searchArticle(1);
|
||||
});
|
||||
@ -114,11 +114,13 @@
|
||||
|
||||
// 검색결과
|
||||
if($("#searchKeyword").val() != "") {
|
||||
$("#searchKeywordPrt").text($("#searchKeyword").val());
|
||||
$("#searchKeywordPrt").text("'" + $("#searchKeyword").val() + "'");
|
||||
$("#searchResult").show();
|
||||
$("#cntResult").hide();
|
||||
}
|
||||
else {
|
||||
$("#searchResult").hide();
|
||||
$("#cntResult").show();
|
||||
}
|
||||
|
||||
// 기존 데이터 CLEAR
|
||||
@ -170,18 +172,20 @@
|
||||
<div class="contents-frame inner-center">
|
||||
<div class="list-header">
|
||||
<!-- name="listForm" -->
|
||||
<form name="articleForm" id="articleForm" action="${pageContext.request.contextPath}/bbs/selectAncmntArticle.do" method="post" class="list-search">
|
||||
<form name="articleForm" id="articleForm" method="post" class="list-search" onsubmit="return false;">
|
||||
<fieldset>
|
||||
|
||||
<input type="text" name="pageSize" id="pageSize" value="${searchArticle.pageSize }" />
|
||||
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex }" />
|
||||
<input type="text" name="articleId" id="articleId" title="게시글번호" value="" />
|
||||
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" />
|
||||
<input type="hidden" name="pageSize" id="pageSize" value="${searchArticle.pageSize }" />
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex }" />
|
||||
<input type="hidden" name="articleId" id="articleId" title="게시글번호" value="" />
|
||||
<input type="hidden" name="articleNo" id="articleNo" value="" title="선택글번호" />
|
||||
|
||||
<legend>공지 검색</legend>
|
||||
<div class="left">
|
||||
<div class="total-count"><span class="count">총 <em><span name="itemsCount" id="itemsCount">0</span></em>건</span></div>
|
||||
<div name="searchResult" id="searchResult" class="total-count" style="display: none;"><span class="count" name="searchKeywordPrt" id="searchKeywordPrt"><em>'안내'</em>에 대한 겸색결과는 총 <em><span name="searchItemsCount" id="searchItemsCount">0</span></em>건 입니다.</span></div>
|
||||
<div class="total-count" name="cntResult" id="cntResult"><span class="count">총 <em name="itemsCount" id="itemsCount">0</em>건</span></div>
|
||||
<div class="total-count" style="display: none;" name="searchResult" id="searchResult">
|
||||
<span class="count"><em name="searchKeywordPrt" id="searchKeywordPrt"></em>에 대한 겸색결과는 총 <em name="searchItemsCount" id="searchItemsCount">4</em>건 입니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="list-select type">
|
||||
@ -219,7 +223,6 @@
|
||||
</div>
|
||||
|
||||
<ul id="paging" class="paging"></ul>
|
||||
|
||||
</div>
|
||||
<!-- //contents-frame -->
|
||||
</div>
|
||||
|
||||
@ -31,127 +31,25 @@
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
|
||||
<c:set var="pageTitle">자주하는질문(DB)</c:set>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>${pageTitle}</title>
|
||||
|
||||
<!-- GRID -->
|
||||
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
|
||||
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
|
||||
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
|
||||
<c:set var="pageTitle">FAQ</c:set>
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
//=======================================================
|
||||
// 그리드 생성 환경설정
|
||||
//=======================================================
|
||||
$("#jsGrid").jsGrid({
|
||||
pageSize : $("#pageSize").val(),
|
||||
scrollOffset:0,
|
||||
controller: {
|
||||
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
|
||||
var data = $.Deferred();
|
||||
//======================================
|
||||
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
|
||||
//======================================
|
||||
var reqUrl = "${pageContext.request.contextPath}/bbs/listFaqsAjax.do";
|
||||
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
|
||||
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
|
||||
|
||||
var searchType = $("#searchType").val();
|
||||
var searchKeyword = $("#searchKeyword").val();
|
||||
var searchQuestionType = $("#searchQuestionType").val();
|
||||
|
||||
|
||||
$("#pageIndex").val(pageIndex);
|
||||
|
||||
|
||||
var inputData = {
|
||||
"pageIndex" : pageIndex
|
||||
, "pageSize" : pageSize
|
||||
, "searchType" : searchType
|
||||
, "searchKeyword" : searchKeyword
|
||||
, "searchQuestionType" : searchQuestionType
|
||||
};
|
||||
|
||||
|
||||
//--------------------------------------
|
||||
// 요청 처리
|
||||
//--------------------------------------
|
||||
$.ajax({
|
||||
type: "post",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
url: reqUrl,
|
||||
dataType: "json",
|
||||
data: JSON.stringify(inputData),
|
||||
}).done(function(response){
|
||||
<%
|
||||
// 그리드 데이터 예시 :
|
||||
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
|
||||
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
|
||||
%>
|
||||
var jsonObj = JSON.parse(response);
|
||||
//$("#itemsCount").val(jsonOjb.itemsCount);
|
||||
console.log(jsonObj.itemsCount);
|
||||
|
||||
if(jsonObj.itemsCount == undefined) {
|
||||
$("#itemsCount").text("0");
|
||||
$("#searchItemsCount").text("0");
|
||||
}
|
||||
else {
|
||||
$("#itemsCount").text(jsonObj.itemsCount);
|
||||
$("#searchItemsCount").text(jsonObj.itemsCount);
|
||||
// 메시지 표출
|
||||
if(!fn_isEmpty('${message}')) {
|
||||
alert("${message}");
|
||||
}
|
||||
|
||||
if($("#searchKeyword").val() != "") {
|
||||
$("#searchKeywordPrt").text($("#searchKeyword").val());
|
||||
$("#listResult").hide();
|
||||
$("#searchResult").show();
|
||||
}
|
||||
else {
|
||||
$("#listResult").show();
|
||||
$("#searchResult").hide();
|
||||
}
|
||||
|
||||
data.resolve(jsonObj);
|
||||
});
|
||||
return data.promise();
|
||||
} // loadData
|
||||
},
|
||||
|
||||
rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수
|
||||
|
||||
// 클릭된 행의 자료 객체
|
||||
var getData = args.item;
|
||||
|
||||
// 추출할 컬럼의 데이터 가져오기
|
||||
var articleId = getData["articleId"];
|
||||
var selectedRow = $("#jsGrid").find('table tr.jsgrid-selected-row');
|
||||
|
||||
// 상세 내용 보기
|
||||
fn_viewDetail(articleId, selectedRow);
|
||||
},
|
||||
|
||||
//======================================
|
||||
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
|
||||
//======================================
|
||||
fields: [
|
||||
{ title:"TYPE", name: "faqType" , type: "text", width: 30, align: "left", itemTemplate: function(value, item) {return "Q";}},
|
||||
{ title:"ID", name: "articleId" , type: "text", width: 160, align: "left" },
|
||||
{ title:"유형", name: "questionTypeName" , type: "text", width: 100, align: "left" },
|
||||
{ title:"제목", name: "title" , type: "text", width: 200, align: "left" },
|
||||
{ title:"첨부", name: "attachYn" , type: "text", width: 100, align: "center"}
|
||||
]
|
||||
});
|
||||
|
||||
// 검색 버튼 클릭
|
||||
// 검색 수행 이벤트
|
||||
$("#btnSearch").on("click", function(e) {
|
||||
fn_searchArticle($("#pageSize").val(), 1);
|
||||
fn_searchArticle(1);
|
||||
});
|
||||
$("#searchKeyword").on("keydown", function(e) {
|
||||
if(e.keyCode == 13) {
|
||||
fn_searchArticle(1);
|
||||
}
|
||||
});
|
||||
|
||||
//초기 자료 조회
|
||||
@ -159,11 +57,14 @@
|
||||
|
||||
}); // document ready
|
||||
|
||||
|
||||
// 선택한 글 상세 보기로 이동
|
||||
function fn_viewDetail(articleId, selectedRow) {
|
||||
function fn_viewDetail(qObj, articleId) {
|
||||
|
||||
var $qObj = $(qObj);
|
||||
if($qObj.hasClass('on')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $selectedRow = $(selectedRow);
|
||||
var reqUrl = "${pageContext.request.contextPath}/bbs/selectFaqArticleAjax.do";
|
||||
var inputData = { "articleId" : articleId };
|
||||
|
||||
@ -178,40 +79,101 @@
|
||||
data: JSON.stringify(inputData),
|
||||
}).done(function(response){
|
||||
var jsonObj = JSON.parse(response);
|
||||
$("#jsGrid").find('table tr.answer').remove();
|
||||
var answerHtml = jsonObj.data.answer;
|
||||
|
||||
var answerHtml = "<tr class='answer'><td>A</td><td colspan='4'>" +
|
||||
+ "<br/>" + jsonObj.data.answer;
|
||||
if(jsonObj.data.attachFileCnt > 0) {
|
||||
answerHtml += "<br/>[첨부파일]<br/>";
|
||||
for(var i=0; i<jsonObj.data.attachFileCnt; i++) {
|
||||
answerHtml += "<a href=\"javascript:void(0);\" onclick=\"fn_downloadFile('" +
|
||||
jsonObj.data.attachFiles[i].attachFileId + "', " +
|
||||
jsonObj.data.attachFiles[i].fileSn + ")\">" +
|
||||
jsonObj.data.attachFiles[i].orignlFileNm + " (" +
|
||||
jsonObj.data.attachFiles[i].fileSize + " byte(s))</a><br/>";
|
||||
}
|
||||
}
|
||||
answerHtml += "</td></tr>";
|
||||
$('.list-accordion .answer').html("");
|
||||
$qObj.next(".answer").html(answerHtml);
|
||||
|
||||
$selectedRow.after(answerHtml);
|
||||
// 펼치기
|
||||
$('.list-accordion .answer').stop().slideUp(300);
|
||||
$qObj.next('.answer').stop().slideDown(300);
|
||||
|
||||
$('.list-accordion .question').removeClass('on');
|
||||
$qObj.addClass('on');
|
||||
});
|
||||
|
||||
$("#jsGrid").closest('.ui-jqgrid-bdiv').width($("#jsGrid").closest('.ui-jqgrid-bdiv').width() + 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 그리드 데이터 조회 호출
|
||||
function fn_searchArticle(pageSize, pageIndex) {
|
||||
$("#jsGrid").jsGrid("search"
|
||||
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${searchArticle.pageSize}) ),
|
||||
'pageIndex' : (pageIndex ? pageIndex : fn_getIntValue("pageIndex", ${searchArticle.pageIndex}))
|
||||
}
|
||||
);
|
||||
}
|
||||
function fn_searchArticle(pageIndex) {
|
||||
|
||||
if(fn_isEmpty(pageIndex)) pageIndex = $("#pageIndex").val();
|
||||
if(fn_isEmpty(pageIndex)) pageIndex = "1";
|
||||
$("#pageIndex").val(pageIndex);
|
||||
|
||||
var reqUrl = "${pageContext.request.contextPath}/bbs/listFaqsAjax.do";
|
||||
|
||||
var inputData = {
|
||||
"pageIndex" : $("#pageIndex").val()
|
||||
, "pageSize" : $("#pageSize").val()
|
||||
, "searchType" : $("#searchType").val()
|
||||
, "searchKeyword" : $("#searchKeyword").val()
|
||||
, "searchQuestionType" : $("#searchQuestionType").val()
|
||||
};
|
||||
|
||||
|
||||
//--------------------------------------
|
||||
// 요청 처리
|
||||
//--------------------------------------
|
||||
$.ajax({
|
||||
type: "post",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
url: reqUrl,
|
||||
dataType: "json",
|
||||
data: JSON.stringify(inputData),
|
||||
}).done(function(data) {
|
||||
<%
|
||||
// 그리드 데이터 예시 :
|
||||
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
|
||||
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
|
||||
%>
|
||||
|
||||
var jsonObj = JSON.parse(data);
|
||||
console.log(jsonObj.itemsCount);
|
||||
|
||||
// 건수
|
||||
if(jsonObj.itemsCount == undefined) {
|
||||
$("#itemsCount").text("0");
|
||||
$("#searchItemsCount").text("0");
|
||||
}
|
||||
else {
|
||||
$("#itemsCount").text(jsonObj.itemsCount);
|
||||
$("#searchItemsCount").text(jsonObj.itemsCount);
|
||||
}
|
||||
|
||||
// 검색결과
|
||||
if($("#searchKeyword").val() != "") {
|
||||
$("#searchKeywordPrt").text("'" + $("#searchKeyword").val() + "'");
|
||||
$("#searchResult").show();
|
||||
$("#cntResult").hide();
|
||||
}
|
||||
else {
|
||||
$("#searchResult").hide();
|
||||
$("#cntResult").show();
|
||||
}
|
||||
|
||||
// 기존 데이터 CLEAR
|
||||
$( "ul.list-faq li").remove();
|
||||
|
||||
// 출력
|
||||
$.each(jsonObj.data,function(key,obj) {
|
||||
var li = $(document.createElement('li'));
|
||||
li.attr("articleId", obj.articleId);
|
||||
li.append($('<button type="button"></button>').attr('class', 'question').on("click", function() {
|
||||
fn_viewDetail(this, obj.articleId);
|
||||
}));
|
||||
li.find(".question").append($('<span />').attr("class", "type").html("[" + obj.questionTypeName + "]"));
|
||||
li.find(".question").append($('<span />').html(obj.title));
|
||||
li.append($('<div></div>').attr('class', 'answer').attr('style', 'display: none;'));
|
||||
$( "ul.list-faq").append(li);
|
||||
});
|
||||
pageLoad("fn_searchArticle", jsonObj.pagingPageIndex, jsonObj.pagingTotRecordCount, jsonObj.pagingStartPage, jsonObj.pagingEndPage, jsonObj.pagingLastPage);
|
||||
|
||||
}).fail(function (jqXHR, textStatus, errorThrown) {
|
||||
alert("조회에 실패하였습니다. 관리자에게 문의 바랍니다.");
|
||||
});
|
||||
}
|
||||
|
||||
//파일 다운로드
|
||||
function fn_downloadFile(attachFileId, fileSn) {
|
||||
@ -235,77 +197,102 @@ function fn_downloadFile(attachFileId, fileSn) {
|
||||
|
||||
function fn_changeQuestionType(searchQuestionType) {
|
||||
$("#searchQuestionType").val(searchQuestionType);
|
||||
fn_searchArticle($("#pageSize").val(), 1);
|
||||
$("#searchKeyword").val("");
|
||||
fn_searchArticle(1);
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>${pageTitle }</h1>
|
||||
|
||||
메시지 : ${message}
|
||||
|
||||
<div name="listResult" id="listResult">
|
||||
총 <span name="itemsCount" id="itemsCount"></span>건<br>
|
||||
<!-- FAQ 섹션 -->
|
||||
<div class="location faq">
|
||||
<h2 class="blind">FAQ 섹션영역</h2>
|
||||
<div class="inner">
|
||||
<div class="row-top">
|
||||
<div class="location-box">
|
||||
<ul class="loc">
|
||||
<li>HOME</li>
|
||||
<li>고객지원</li>
|
||||
<li class="on">${pageTitle}</li>
|
||||
</ul>
|
||||
<ul class="tit">
|
||||
<li><span>${pageTitle}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="display:none;" name="searchResult" id="searchResult">
|
||||
'<span name="searchKeywordPrt" id="searchKeywordPrt"></span>' 에 대한 검색결과는 총 <span name="searchItemsCount" id="searchItemsCount"></span>건 입니다.<br>
|
||||
<div class="arr"><img src="/images/icon/icon-join-arr2.png" alt="화살표 아이콘"></div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
<!-- 유형선택 -->
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="javascript:void(0);" onclick="fn_changeQuestionType('')">전체</a></td>
|
||||
<div class="contents row-bottom">
|
||||
<div class="list-box faq-box">
|
||||
<div class="tab">
|
||||
<ul class="tabs">
|
||||
<li><a href="javascript:void(0);" onclick="fn_changeQuestionType('')">전체</a></li>
|
||||
<c:forEach var="qTypeItem" items="${questionTypeList }">
|
||||
<td><a href="javascript:void(0);" onclick="fn_changeQuestionType('${qTypeItem.sCodeId}')">${qTypeItem.sCodeNm}</a></td>
|
||||
<li><a href="javascript:void(0);" onclick="fn_changeQuestionType('${qTypeItem.sCodeId}')">${qTypeItem.sCodeNm}</a></li>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<form name="articleForm" id="articleForm" method="post" action="${pageContext.request.contextPath}/bbs/selectFaqArticle.do">
|
||||
<div class="title">
|
||||
<div class="list-search-wrap list-top">
|
||||
<form name="articleForm" id="articleForm" method="post" onsubmit="return false;">
|
||||
<input type="hidden" name="pageSize" id="pageSize" value="${searchArticle.pageSize }" />
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex }" size="5" maxlength="5" />
|
||||
<input type="hidden" name="articleId" id="articleId" title="게시글번호" value="" readonly />
|
||||
<input type="hidden" name="searchQuestionType" id="searchQuestionType" value="" title="유형코드" />
|
||||
<input type="hidden" name="articleNo" id="articleNo" value="" title="선택글번호" />
|
||||
|
||||
<!-- 검색조건 -->
|
||||
<input type="text" name="pageSize" id="pageSize" value="${searchArticle.pageSize }" />
|
||||
|
||||
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex }" size="5" maxlength="5" />
|
||||
<div class="left">
|
||||
<div class="total-count" name="cntResult" id="cntResult"><span class="count">총 <em name="itemsCount" id="itemsCount">0</em>건</span></div>
|
||||
<div class="total-count" style="display: none;" name="searchResult" id="searchResult">
|
||||
<span class="count"><em name="searchKeywordPrt" id="searchKeywordPrt"></em>에 대한 겸색결과는 총 <em name="searchItemsCount" id="searchItemsCount">4</em>건 입니다.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<div class="list-select type">
|
||||
<label for="searchType">
|
||||
<select name="searchType" id="searchType">
|
||||
<option value="T" <c:if test='${searchArticle.searchType == "T" }'>selected</c:if> >제목</option>
|
||||
<option value="C" <c:if test='${searchArticle.searchType == "C" }'>selected</c:if> >내용</option>
|
||||
</select>
|
||||
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchArticle.searchKeyword }" maxlength="20" />
|
||||
<input type="text" name="articleId" id="articleId" title="게시글번호" value="" readonly />
|
||||
<input type="button" name="btnSearch" id="btnSearch" title="검색" value="검색" />
|
||||
<br/>
|
||||
|
||||
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
|
||||
|
||||
|
||||
<input type="text" name="searchQuestionType" id="searchQuestionType" value="" title="유형코드" readonly />
|
||||
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<div class="list-input">
|
||||
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" placeholder="검색어를 입력하세요" value="${searchArticle.searchKeyword }" maxlength="20" />
|
||||
<label for="btnSearch">
|
||||
<button id="btnSearch" name="btnSearch" type="button">검색</button>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab_content">
|
||||
<div class="tabs_item">
|
||||
|
||||
<div class="list-accordion">
|
||||
<ul class="list-faq">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul id="paging" class="paging"></ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 첨부파일 다운로드용 폼 -->
|
||||
<form name="downloadFileForm" id="downloadFileForm"
|
||||
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
|
||||
method="post">
|
||||
<input type="text" name="bdType" id="bdType" value="FAQ" readonly />
|
||||
<input type="text" name="attachFileId" id="attachFileId" value="" readonly />
|
||||
<input type="text" name="streFileNm" id="streFileNm" value="" readonly />
|
||||
<input type="text" name="fileSn" id="fileSn" value="" readonly />
|
||||
<input type="text" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
||||
|
||||
<input type="hidden" name="bdType" id="bdType" value="FAQ" readonly />
|
||||
<input type="hidden" name="attachFileId" id="attachFileId" value="" readonly />
|
||||
<input type="hidden" name="streFileNm" id="streFileNm" value="" readonly />
|
||||
<input type="hidden" name="fileSn" id="fileSn" value="" readonly />
|
||||
<input type="hidden" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@ -47,6 +47,10 @@
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
if(!fn_isEmpty('${message}')) {
|
||||
alert("${message}");
|
||||
}
|
||||
|
||||
//=======================================================
|
||||
// 그리드 생성 환경설정
|
||||
//=======================================================
|
||||
|
||||
@ -37,10 +37,9 @@
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
if('${message}' != "null" && '${message}' != "") {
|
||||
if(!fn_isEmpty('${message}')) {
|
||||
alert("${message}");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// 목록으로 이동
|
||||
@ -145,21 +144,21 @@ function fn_downloadFile(attachFileId, fileSn) {
|
||||
<form name="articleForm" id="articleForm"
|
||||
action="${pageContext.request.contextPath}/bbs/listAncmnts.do"
|
||||
method="post">
|
||||
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex}" readonly />
|
||||
<input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글개수" value="${searchArticle.pageSize}" readonly />
|
||||
<input type="text" name="searchType" id="searchType" title="검색구분" value="${searchArticle.searchType}" readonly />
|
||||
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchArticle.searchKeyword}" readonly />
|
||||
<input type="text" name="articleId" id="articleId" title="선택글번호" value="${searchArticle.articleId}" readonly />
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${searchArticle.pageIndex}" readonly />
|
||||
<input type="hidden" name="pageSize" id="pageSize" title="목록에 보여줄 글개수" value="${searchArticle.pageSize}" readonly />
|
||||
<input type="hidden" name="searchType" id="searchType" title="검색구분" value="${searchArticle.searchType}" readonly />
|
||||
<input type="hidden" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchArticle.searchKeyword}" readonly />
|
||||
<input type="hidden" name="articleId" id="articleId" title="선택글번호" value="${searchArticle.articleId}" readonly />
|
||||
</form>
|
||||
|
||||
<!-- 첨부파일 다운로드용 폼 -->
|
||||
<form name="downloadFileForm" id="downloadFileForm"
|
||||
action="${pageContext.request.contextPath}/fileupload/downloadAttachFile.do"
|
||||
method="post">
|
||||
<input type="text" name="bdType" id="bdType" value="ANCMNT" readonly />
|
||||
<input type="text" name="attachFileId" id="attachFileId" value="" readonly />
|
||||
<input type="text" name="streFileNm" id="streFileNm" value="" readonly />
|
||||
<input type="text" name="fileSn" id="fileSn" value="" readonly />
|
||||
<input type="text" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
||||
<input type="hidden" name="bdType" id="bdType" value="ANCMNT" readonly />
|
||||
<input type="hidden" name="attachFileId" id="attachFileId" value="" readonly />
|
||||
<input type="hidden" name="streFileNm" id="streFileNm" value="" readonly />
|
||||
<input type="hidden" name="fileSn" id="fileSn" value="" readonly />
|
||||
<input type="hidden" name="orignlFileNm" id="orignlFileNm" value="" readonly />
|
||||
|
||||
</form>
|
||||
@ -40,6 +40,13 @@
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
if(!fn_isEmpty('${message}')) {
|
||||
alert("${message}");
|
||||
}
|
||||
});
|
||||
|
||||
// 목록으로 이동
|
||||
function fn_list() {
|
||||
$("#articleForm").submit();
|
||||
|
||||
@ -27,13 +27,7 @@ function goSearch(){
|
||||
|
||||
function fn_getMemberCard() {
|
||||
|
||||
// 클릭 시, 컨텐츠 로딩되도록 처리 (2021.10.20 DDDDDDDDDD 추가) : 시작
|
||||
$("#NLIB_LAYER_POPUP").addClass("pop-member");
|
||||
$("#NLIB_LAYER_POPUP").load("/userInfo/getMemberQrcode.do");
|
||||
// 클릭 시, 컨텐츠 로딩되도록 처리 (2021.10.20 DDDDDDDDDD 추가) : 종료
|
||||
|
||||
$('.pop-advanced-search').fadeIn();
|
||||
$('html,body').addClass('no-scroll');
|
||||
fn_layerPopWithClass("/userInfo/getMemberQrcodeFormPopup.do", "pop-member");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@ -37,31 +37,32 @@
|
||||
<c:set var="pageTitle">회원증</c:set>
|
||||
|
||||
|
||||
<!-- 회원증 팝업 -->
|
||||
<div class="inner">
|
||||
<div class="row Title">
|
||||
<h3>내 회원증 확인</h3>
|
||||
<p>QR코드를 리더기에 스캔하세요.</p>
|
||||
<h3>회원증</h3>
|
||||
</div>
|
||||
<div class="row card">
|
||||
<div class="title">
|
||||
<p class="name">${loginVO.name}</p>
|
||||
<p class="date">${dateStr}</p>
|
||||
</div>
|
||||
<div class="qr">
|
||||
<p>QR코드를 리더기에 스캔하세요.</p>
|
||||
<img src="${pageContext.request.contextPath}/userInfo/getMemberQrcode.do" alt="QR코드 이미지">
|
||||
</div>
|
||||
<div class="code">
|
||||
<div class="num">
|
||||
<div class="na">회원코드</div>
|
||||
<div class="co">${loginVO.mbInfoId}</div>
|
||||
<div class="pr"><progress id="bar" value="30" max="60"></progress></div>
|
||||
<div class="ti">남은시간<span class="timer">23초</span></div>
|
||||
</div>
|
||||
<div class="qr">
|
||||
<img src="${pageContext.request.contextPath}/userInfo/getMemberQrcode.do" alt="QR코드 이미지">
|
||||
</div>
|
||||
</div>
|
||||
<div class="rolling">
|
||||
<p><marquee>※ 캡쳐한 회원증을 통한 자료대출 및 열람을 불허합니다. ※ 캡쳐한 회원증을 통한 자료대출 및 열람을 불허합니다.</marquee></p>
|
||||
</div>
|
||||
<div class="text">
|
||||
<p>※ 캡쳐한 회원증을 통한 자료대출 및 열람을 불허합니다.</p>
|
||||
</div>
|
||||
<button type="button" class="login-close"></button>
|
||||
<button type="button" class="member-close" onclick="fn_closeLayerPopup()"></button>
|
||||
<div class="innerbg"></div>
|
||||
</div>
|
||||
<div class="Bg"></div>
|
||||
|
||||
@ -1010,8 +1010,8 @@
|
||||
<div class="Bg"></div>
|
||||
</div>
|
||||
|
||||
<!-- 회원증 팝업 -->
|
||||
<div class="pop-member" style="display:none;">
|
||||
<!-- 회원증 팝업 style="display:none; -->
|
||||
<div class="pop-member"">
|
||||
<div class="inner">
|
||||
<div class="row Title">
|
||||
<h3>회원증</h3>
|
||||
|
||||
@ -188,15 +188,6 @@ $(document).ready(function(){
|
||||
$('.pop-change').fadeOut();
|
||||
});
|
||||
|
||||
// 알림 아코디언
|
||||
$('.list-accordion .question').on('click', function() {
|
||||
$('.list-accordion .answer').stop().slideUp(300);
|
||||
$(this).next('.answer').stop().slideDown(300);
|
||||
|
||||
$('.list-accordion .question').removeClass('on');
|
||||
$(this).addClass('on');
|
||||
});
|
||||
|
||||
/* 메인 메뉴 반응형 */
|
||||
jQuery(function($) {
|
||||
$.fn.responsivenav = function(args) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user