2024-08-29 가이드 작업 확인 : 자주하는질문 > 조정신청 게시판 작업

This commit is contained in:
user 2024-08-29 17:43:09 +09:00
parent e4632bc333
commit d0db9fd852
10 changed files with 935 additions and 1 deletions

View File

@ -0,0 +1,14 @@
package seed.com.gtm.dao;
import java.util.List;
import java.util.Map;
public interface FaqBbsDao {
public void boardInsert(Map<String, Object> paramMap);
public List<Map<String,Object>> boardList(Map<String, Object> paramMap);
public Map<String,Object> boardView(Map<String, Object> paramMap);
public void boardUpdate(Map<String, Object> paramMap);
public int boardListCnt(Map<String, Object> paramMap);
public void boardDel(Map<String, Object> paramMap);
public void cntUpdate(Map<String, Object> paramMap);
}

View File

@ -0,0 +1,53 @@
package seed.com.gtm.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class FaqBbsDaoImpl implements FaqBbsDao {
@Autowired
private SqlSession sqlSession;
@Override
public void boardInsert(Map<String, Object> paramMap) {
sqlSession.insert("faqbbs.insert", paramMap);
}
@Override
public List<Map<String, Object>> boardList(Map<String, Object> paramMap) {
List<Map<String, Object>> boardList = sqlSession.selectList("faqbbs.select", paramMap);
return boardList;
}
@Override
public Map<String, Object> boardView(Map<String, Object> paramMap) {
Map<String, Object> boardView = sqlSession.selectOne("faqbbs.selectOne", paramMap);
return boardView;
}
@Override
public void boardUpdate(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.update", paramMap);
}
@Override
public int boardListCnt(Map<String, Object> paramMap) {
return sqlSession.selectOne("faqbbs.selectCnt",paramMap);
}
@Override
public void boardDel(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.delete", paramMap);
}
@Override
public void cntUpdate(Map<String, Object> paramMap) {
sqlSession.update("faqbbs.cntUpdate", paramMap);
}
}

View File

@ -0,0 +1,147 @@
package seed.com.gtm.faqbbs;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/case")
public class faqBoardController {
@Autowired
private faqBpardService service;
public void setSessionMessageRemove(HttpSession session){
session.removeAttribute("url");
session.removeAttribute("message");
session.removeAttribute("opener");
session.removeAttribute("append");
session.removeAttribute("self");
}
@RequestMapping(value="/faqBbs/write.do", method=RequestMethod.POST)
public String faqInsert(HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
paramMap.put("memberId", session.getAttribute("memberId"));
paramMap.put("memberName", session.getAttribute("memberName"));
service.boardInsert(paramMap);
//seed 작업 완료 메시지
this.setSessionMessageRemove(session);
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/faqBbs/list.do?setIdx=" + paramMap.get("setIdx"));
return "/seed/_common/jsp/message";
}
@RequestMapping(value="/faqBbs/write.do", method=RequestMethod.GET)
public String faqBbsWrite(@RequestParam Map<String,Object> paramMap, ModelMap model){
model.addAttribute("setIdx", paramMap.get("setIdx"));
model.addAttribute("searchType", paramMap.get("searchType"));
model.addAttribute("searchTilte", paramMap.get("searchTilte"));
return "/seed/_extra/gtm/faqBbs/write";
}
@RequestMapping("/faqBbs/list.do")
public String faqBbsList(HttpSession session, ModelMap model, @RequestParam Map<String,Object> paramMap, SeedCriteria cri){
//로그인페이지로 튕겨나가지 않게 우선은 임시방편
session.setAttribute("siteIdx", "case");
if(paramMap.get("setIdx").equals("101")){
session.setAttribute("menuName", "조정신청");
}else if(paramMap.get("setIdx").equals("102")){
session.setAttribute("menuName", "절차진행");
}else if(paramMap.get("setIdx").equals("103")){
session.setAttribute("menuName", "절차종료");
}else{
session.setAttribute("menuName", "기타");
}
paramMap.put("pageStart", cri.getPageStart());
paramMap.put("perPageNum", cri.getPerPageNum());
List<Map<String,Object>> bbsList = service.boardList(paramMap);
PageMaker pageMaker = new PageMaker();
pageMaker.setCri(cri);
pageMaker.setTotalCount(service.boardListCnt(paramMap));
model.addAttribute("bbsList", bbsList);
model.addAttribute("pageMaker", pageMaker);
return "/seed/_extra/gtm/faqBbs/list";
}
@RequestMapping("/faqBbs/view.do")
public String faqBbsView(@RequestParam Map<String,Object> paramMap, ModelMap model){
model.addAttribute("bbsView", service.boardView(paramMap));
model.addAttribute("setIdx", paramMap.get("setIdx"));
model.addAttribute("faqSeq", paramMap.get("faqSeq"));
model.addAttribute("searchType", paramMap.get("searchType"));
model.addAttribute("searchTilte", paramMap.get("searchTilte"));
return "/seed/_extra/gtm/faqBbs/view";
}
@RequestMapping(value="/faqBbs/edit.do", method=RequestMethod.GET)
public String faqBbsEdit(@RequestParam Map<String,Object> paramMap, ModelMap model){
model.addAttribute("bbsView", service.boardView(paramMap));
model.addAttribute("setIdx", paramMap.get("setIdx"));
model.addAttribute("faqSeq", paramMap.get("faqSeq"));
model.addAttribute("searchType", paramMap.get("searchType"));
model.addAttribute("searchTilte", paramMap.get("searchTilte"));
return "/seed/_extra/gtm/faqBbs/edit";
}
@RequestMapping(value="/faqBbs/edit.do", method=RequestMethod.POST)
public String faqBbsEdit(HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
paramMap.put("memberId", session.getAttribute("memberId"));
service.boardUpdate(paramMap);
this.setSessionMessageRemove(session);
map.put("message", "common.message.mod");
map.put("url", "/gtm/case/faqBbs/view.do?setIdx=" + paramMap.get("setIdx") +
"&faqSeq=" + paramMap.get("faqSeq") +
"&searchType=" + paramMap.get("searchType") +
"&page=" + paramMap.get("page") +
"&searchTilte=" + paramMap.get("searchTilte")
);
return "/seed/_common/jsp/message";
}
@RequestMapping("/faqBbs/bbsDel.do")
public String faqBbsDel(HttpSession session, @RequestParam Map<String,Object> paramMap, Map<String, Object> map){
service.boardDel(paramMap);
this.setSessionMessageRemove(session);
map.put("message", "common.message.del");
map.put("url", "/gtm/case/faqBbs/list.do?setIdx=" + paramMap.get("setIdx") +
"&searchType=" + paramMap.get("searchType") + "&searchTilte=" + paramMap.get("searchTilte")
);
return "/seed/_common/jsp/message";
}
}

View File

@ -0,0 +1,46 @@
package seed.com.gtm.faqbbs;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import seed.com.gtm.dao.FaqBbsDaoImpl;
@Service
public class faqBpardService {
@Autowired
private FaqBbsDaoImpl dao;
public void boardInsert(Map<String, Object> paramMap){
dao.boardInsert(paramMap);
}
public List<Map<String,Object>> boardList(Map<String, Object> paramMap){
List<Map<String,Object>> boardList = dao.boardList(paramMap);
return boardList;
}
public Map<String,Object> boardView(Map<String, Object> paramMap){
Map<String,Object> boardView = dao.boardView(paramMap);
return boardView;
}
public void boardUpdate(Map<String, Object> paramMap){
dao.boardUpdate(paramMap);
}
public int boardListCnt(Map<String, Object> paramMap){
return dao.boardListCnt(paramMap);
}
public void boardDel(Map<String, Object> paramMap){
dao.boardDel(paramMap);
}
public void cntUpdate(Map<String, Object> paramMap){
dao.cntUpdate(paramMap);
}
}

View File

@ -14,9 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import seed.com.gtm.util.SeedCriteria;
import seed.com.gtm.seedfile.SeedFileService;
import seed.com.gtm.util.PageMaker;
import seed.com.gtm.util.SeedCriteria;
@Controller
@RequestMapping("/gtm/sample")
@ -26,6 +26,20 @@ public class SampleController {
@Autowired
private SeedFileService fileService;
/*
* 작업진행 방법
*
* 1.url을 처리하는 controller 이전
* 2.controller 연관 파일들 이전
* 대략
* DAO
* Service
* Impl
* _SQL.xml
* 3.필요한 DB 테이블 이전
* 4.관련 sequence 이전
* */
/*필요 파일 경로
controller - src/main/java/seed/

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="faqbbs">
<insert id="insert" parameterType="java.util.HashMap">
INSERT INTO C_FAQBBS(
FAQ_SEQ_NUMBER,
FAQ_SETIDX,
FAQ_SUBJ,
FAQ_CONT,
MNGR_RPL_CONT,
VIEW_CNT,
REG_MBER_ID,
REG_MBER_NM,
REG_DATE,
MOD_MBER_ID,
MOD_DATE,
DEL_YN
) VALUES (
SEQ_CASE_FAQBBS.NEXTVAL,
#{setIdx},
#{fagSubj},
#{editorParam_faqCont},
#{editorParam_faqCont},
0,
#{memberId},
#{memberName},
SYSDATE,
#{memberId},
SYSDATE,
'N'
)
</insert>
<select id="select" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT * FROM
(
SELECT ROW_.*, ROWNUM AS RNUM FROM
(
SELECT FAQ_SEQ_NUMBER,
FAQ_SETIDX,
FAQ_SUBJ,
FAQ_CONT,
MNGR_RPL_CONT,
VIEW_CNT,
REG_MBER_ID,
REG_MBER_NM,
REG_DATE,
MOD_MBER_ID,
MOD_DATE
FROM C_FAQBBS
WHERE FAQ_SETIDX = #{setIdx}
AND DEL_YN = 'N'
<if test="searchTilte != null and searchTilte != ''">
<choose>
<when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when>
<when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when>
</choose>
</if>
ORDER BY REG_DATE DESC
) ROW_
)
WHERE RNUM > #{pageStart} AND #{perPageNum} >= ROWNUM
</select>
<select id="selectCnt" parameterType="java.util.HashMap" resultType="int">
SELECT COUNT(*)
FROM C_FAQBBS
WHERE FAQ_SETIDX = #{setIdx}
AND DEL_YN = 'N'
<if test="searchTilte != null and searchTilte != ''">
<choose>
<when test="searchType == 'title'">AND FAQ_SUBJ LIKE '%' || #{searchTilte} || '%'</when>
<when test="searchType == 'content'">AND FAQ_CONT LIKE '%' || #{searchTilte} || '%'</when>
</choose>
</if>
</select>
<select id="selectOne" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT FAQ_SEQ_NUMBER,
FAQ_SETIDX,
FAQ_SUBJ,
dbms_lob.substr(FAQ_CONT, dbms_lob.getlength(FAQ_CONT), 1) AS FAQ_CONT ,
MNGR_RPL_CONT,
VIEW_CNT,
REG_MBER_ID,
REG_MBER_NM,
REG_DATE,
MOD_MBER_ID,
MOD_DATE
FROM C_FAQBBS
WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</select>
<update id="update">
UPDATE C_FAQBBS
SET FAQ_SUBJ = #{fagSubj},
FAQ_CONT = #{editorParam_faqCont},
MOD_MBER_ID = #{memberId},
MOD_DATE = SYSDATE
WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</update>
<delete id="delete">
UPDATE C_FAQBBS
SET DEL_YN = 'Y'
WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</delete>
<delete id="cntUpdate">
UPDATE C_FAQBBS
SET VIEW_CNT = VIEW_CNT+1
WHERE FAQ_SEQ_NUMBER = #{faqSeq}
</delete>
</mapper>

View File

@ -0,0 +1,143 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!doctype html>
<html lang="ko">
<head>
<title>정보 관리</title>
<link href='/css/space.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.contents.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.mediaquery.css' rel='styleGsheet' type='text/css'/>
<link href='/site/ntcc/css/gtmCustom.css' rel='stylesheet' type='text/css'/>
<script src="/editor/webnote.js"></script>
</head>
<body>
<div class="page-title-wrap clear">
<div class="page-title-inner">
<h3 class="page-title">자주하는 질문(조정신청) 수정</h3>
<div class="tooltipBox type01">
<button type="button" class="page-tip">페이지안내</button>
<div class="tooltipText">
<p>자주하는 질문(조정신청)을 수정 할 수 있는 페이지 입니다.</p>
</div>
</div>
</div>
</div>
<form:form name="writeFrm" id="writeFrm" action="" method="post">
<input type="hidden" name="setIdx" value="${param.setIdx}">
<input type="hidden" name="faqSeq" value="${param.faqSeq}">
<input type="hidden" name="searchType" value="${param.searchType}">
<input type="hidden" name="searchTilte" value="${param.searchTilte}">
<fieldset>
<div class="bbs-view-layout">
<div class="bbs-view-item">
<p class="item-title">제목</p>
<div class="item-box">
<input type="text" name="fagSubj" id="fagSubj" value="${bbsView.FAQ_SUBJ }">
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">작성자</p>
<div class="item-box">
<c:out value="${bbsView.REG_MBER_NM }"></c:out>
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">작성일</p>
<div class="item-box">
<c:out value="${bbsView.REG_DATE }"></c:out>
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">내용</p>
<div class="item-box">
<textarea class="bg_essential " maxlength="2000" name="editorParam_faqCont" id="content" title="내용을 입력하세요" style="width:99%; height:300px;" editor="webnote" tools="deny:images,emoticon,special_chars">
${bbsView.FAQ_CONT }
</textarea>
</div>
</div>
</div>
<div class="btn-area">
<button type="submit" class="btn-normal violet mb10">저장</button>
<a href="javascript:history.back()" class="btn-normal lightgray">취소</a>
</div>
</fieldset>
</form:form>
<form action="" method="get" id="moveFrm">
<input type="hidden" name="setIdx" value="${param.setIdx}">
<input type="hidden" name="faqSeq" value="${param.faqSeq}">
<input type="hidden" name="searchType" value="${param.searchType}">
<input type="hidden" name="searchTilte" value="${param.searchTilte}">
<input type="hidden" name="page" id="page" value="${param.page }">
</form>
<script type="text/javascript">
webnote.setConfig({
auto_start: true, //페이지로딩시 페이지에 웹노트 에디터를 자동으로 생성할것인지(true: 자동생성, false: 생성안함)
lang: "ko", //언어셋(lang 디렉토리내에 언어셋.txt 파일이 있어야 함(ex: ko.txt)
base_dir: "/editor", //웹노트 설치디렉토리를 직접 지정
css_url: "/editor/webnote.css", //기본 css 파일을 직접 지정
icon_dir: "/editor/icon", //기본 아이콘 디렉토리를 직접 지정
emoticon_dir: "/editor/emoticon", //기본 이모티콘 디렉토리를 직접 지정
attach_proc: "/common/proc/case/editor/editorFileReg.do", //에디터에 이미지 즉시 업로드를 처리하는 서버스크립트를 직접 지정
delete_proc: "/common/proc/case/editor/editorFileDel.do", //에디터에 즉시 업로드된 이미지 삭제를 처리하는 서버스크립트를 직접 지정(attach_proc 과 같을경우 설정 불필요)
use_blind: true, //팝업메뉴 출력 시 반투명 배경 스크린 사용여부(true:사용(기본), false: 미사용)
allow_dndupload: false, //드래그&드롭을 통한 이미지 파일 업로드 허용 여부
allow_dndresize: false, //드래그&드롭을 통한 에디터 사이즈(높이) 조절 허용 여부
//fonts: ["굴림체","궁서체"], //선택할 수 있는 폰트종류를 직접 정의
//fontsizes: ["9pt","10pt"], //선택할 수 있는 폰트사이즈를 직접 정의(단위포함)
lineheights: ["120%","150%","180%"], //선택할 수 있는 줄간격을 직접 정의(단위포함)
//emoticons: ["Nerd"], //선택할 수 있는 이모티콘들을 직접 정의(png파일은 확장자 생략 가능하며, 그외에는 확장자까지 입력 : PNG, GIF, JPG 만 가능)
//specialchars: ["§","☆"], //선택할 수 있는 특수문자를 직접 정의
code_highlight: true,
fade_popup: true, //팝업 열리기/닫히기 시 fade in/out 기능 적용 여부(사용pc 사용이 낮은경우 false로 )
attach_list_view: false
});
$(window).load(function(){
$("#idx_toolbar_webnote_content_imagecenter").hide();
$("#idx_toolbarcontainer_webnote_content img").each(function(index, item) {
if($(item).attr("class") != "webnote_seperator"){
var event = $(item).attr("onclick");
$(item).wrap("<a href='javascript:;' onclick="+event+">");
$(item).attr("onclick", "");
}
});
});
$(document).ready(function(){
$("#writeFrm").submit(function(){
if($("#fagSubj").val().trim() == ""){
alert("제목을 입력해 주세요.");
$("#fagSubj").focus();
return false;
}
if($("#regMberNm").val().trim() == ""){
alert("작성자를 입력해 주세요.");
$("#regMberNm").focus();
return false;
}
/* if($("#content").val() == ""){
alert("내용을 입력해 주세요.");
$("#content").focus();
return false;
} */
});
});
function moveFrm(){
$("#moveFrm").attr("action", "/gtm/case/faqBbs/view.do");
$("#moveFrm").submit();
}
</script>
</body>
</html>

View File

@ -0,0 +1,147 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!doctype html>
<html lang="ko">
<head>
<title>정보 관리</title>
<link href='/css/space.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.contents.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.mediaquery.css' rel='styleGsheet' type='text/css'/>
<link href='/site/ntcc/css/gtmCustom.css' rel='stylesheet' type='text/css'/>
<script src="/editor/webnote.js"></script>
</head>
<body>
<div class="page-title-wrap clear">
<div class="page-title-inner">
<h3 class="page-title">자주하는 질문(${menuName})</h3>
<div class="tooltipBox type01">
<button type="button" class="page-tip">페이지안내</button>
<div class="tooltipText">
<p>자주하는 질문(${menuName})에 대한 목록 화면 입니다.</p>
</div>
</div>
</div>
<div class="sch-content-wrap clear">
<form name="searchFrm" id="searchFrm" action="" method="get">
<input type="hidden" name="setIdx" value="${param.setIdx}">
<input type="hidden" name="faqSeq" id="faqSeq" value="">
<input type="hidden" name="page" id="page" value="${pageMaker.cri.page}">
<fieldset>
<select name="searchType" id="searchType" class="sch-select" title="자료유형 선택">
<option value="title" <c:if test="${param.searchType == 'title'}">selected="selected"</c:if>>제목</option>
<option value="content" <c:if test="${param.searchType == 'content'}">selected="selected"</c:if>>내용</option>
</select>
<input type="text" name="searchTilte" value="${param.searchTilte}" class="sch-text" title="제목검색">
<button type="button" class="btn-page-sch" title="검색 완료 버튼" onclick="goPage('search', '')">검색</button>
</fieldset>
</form>
</div>
</div>
<div class="form-wrap">
<div class="table-layout br-none">
<table>
<caption>자주하는질문 테이블입니다.</caption>
<colgroup>
<col class="item-mobile-hidden" style="width:5%">
<col class="title">
<col class="item-mobile-hidden" style="width:10%">
</colgroup>
<thead>
<tr>
<th scope="col" class="item-mobile-hidden">번호</th>
<th scope="col">제목</th>
<th scope="col" class="item-mobile-hidden">조회수</th>
</tr>
</thead>
<tbody>
<c:forEach items="${bbsList}" var="list" varStatus="status">
<!-- int cnt = total - ((Integer.parseInt(spage) - 1) * Integer.parseInt(sRow)); -->
<tr>
<td class="item-mobile-hidden"><c:out value="${(pageMaker.totalCount - ((pageMaker.cri.page-1)*pageMaker.cri.perPageNum)) - status.index}"/></td>
<td><a href="javascript:goPage('view', '${list.FAQ_SEQ_NUMBER}');"><c:out value="${list.FAQ_SUBJ}"/></a></td>
<td class="item-mobile-hidden"><c:out value="${list.VIEW_CNT}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div class="change-state-area" style="overflow: hidden;">
<div align="right">
<button type="button" onclick="goPage('write', '')" class="btn-change-state" style="background-color: #5e66ab;">글쓰기</button>
</div>
</div>
</div>
<!-- 페이징 -->
<div class="pagination-container">
<div class="pagination-inner clear">
<div class='pagination-control prev clear'>
<a class='first-btn' href="javascript:goPage('paging', '1')" title="첫페이지"></a>
<c:choose>
<c:when test="${pageMaker.prev}">
<a class='prev-btn' href="javascript:goPage('paging', '${pageMaker.cri.page - 1}')" title="이전페이지"><img src="/img/common/list_navi2.gif" alt="이전 목록으로 이동" /></a>
</c:when>
<c:otherwise>
<a class='prev-btn' href="javascript:goPage('paging', '${pageMaker.cri.page}')" title="이전페이지"><img src="/img/common/list_navi2.gif" alt="이전 목록으로 이동" /></a>
</c:otherwise>
</c:choose>
</div>
<ul class='pagination clear'>
<c:forEach begin="${pageMaker.startPage}" end="${pageMaker.endPage }" var="idx">
<c:choose>
<c:when test="${idx == pageMaker.cri.page }">
<li><a class='on' href="javascript:goPage('paging', '${idx}')" title="현재페이지">${idx}</a></li>
</c:when>
<c:otherwise>
<li><a href="javascript:goPage('paging', '${idx}')" title="${idx}페이지">${idx}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
<div class='pagination-control next clear'>
<c:choose>
<c:when test="${pageMaker.next}">
<a class='next-btn' href="javascript:goPage('paging', '${pageMaker.cri.page + 1}')" title="다음페이지"><img src="/img/common/list_navi3.gif" alt="다음 목록으로 이동" /></a>
</c:when>
<c:otherwise>
<a class='next-btn' href="javascript:goPage('paging', '${pageMaker.cri.page}')" title="다음페이지"><img src="/img/common/list_navi3.gif" alt="다음 목록으로 이동" /></a>
</c:otherwise>
</c:choose>
<a class='last-btn' href="javascript:goPage('paging', '${pageMaker.endPage}')" title="마지막페이지"><img src="/img/common/list_navi4.gif" alt="마지막 목록으로 이동" /></a>
</div>
</div>
</div>
<!-- 페이징 END -->
<script type="text/javascript">
function goPage(type, param){
if(type == 'write'){
$("#searchFrm").attr("action","/gtm/case/faqBbs/write.do");
$("#searchFrm").submit();
}else if(type == 'view'){
$("#faqSeq").val(param);
$("#searchFrm").attr("action","/gtm/case/faqBbs/view.do");
$("#searchFrm").submit();
}
else if(type == 'search'){
$("#page").val("1");
$("#searchFrm").attr("action","/gtm/case/faqBbs/list.do");
$("#searchFrm").submit();
}else if(type == 'paging'){
$("#page").val(param);
$("#searchFrm").attr("action","/gtm/case/faqBbs/list.do");
$("#searchFrm").submit();
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,124 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!doctype html>
<html lang="ko">
<head>
<title>정보 관리</title>
<link href='/css/space.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.contents.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.mediaquery.css' rel='styleGsheet' type='text/css'/>
<link href='/site/ntcc/css/gtmCustom.css' rel='stylesheet' type='text/css'/>
<script src="/editor/webnote.js"></script>
</head>
<body>
<div class="page-title-wrap clear">
<div class="page-title-inner">
<h3 class="page-title">자주하는 질문(조정신청) 상세</h3>
<div class="tooltipBox type01">
<button type="button" class="page-tip">페이지안내</button>
<div class="tooltipText">
<p>자주하는 질문(조정신청) 상세 페이지 입니다.</p>
</div>
</div>
</div>
</div>
<div class="bbs-view-layout">
<div class="bbs-view-item">
<p class="item-title">제목</p>
<div class="item-box">
<c:out value="${bbsView.FAQ_SUBJ }"></c:out>
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">작성자</p>
<div class="item-box">
<c:out value="${bbsView.REG_MBER_NM }"></c:out>
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">작성일</p>
<div class="item-box">
<c:out value="${bbsView.REG_DATE }"></c:out>
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">내용</p>
<div class="item-box">
<textarea class="bg_essential " maxlength="2000" name="editorParam_faqCont" id="content" title="내용을 입력하세요" style="width:99%; height:300px;" editor="webnote" tools="deny:images,emoticon,special_chars">
<c:out value="${bbsView.FAQ_CONT }"></c:out>
</textarea>
</div>
</div>
</div>
<div class="btn-area">
<button type="button" class="btn-normal violet mb10" onclick="moveFunc('del')">삭제</button>
<button type="button" class="btn-normal violet mb10" onclick="moveFunc('edit')">수정</button>
<a href="javascript:moveFunc('list')" class="btn-normal lightgray">목록</a>
</div>
<form action="" method="get" id="moveFrm">
<input type="hidden" name="setIdx" value="${param.setIdx }">
<input type="hidden" name="faqSeq" value="${param.faqSeq}">
<input type="hidden" name="searchType" value="${param.searchType }">
<input type="hidden" name="searchTilte" value="${param.searchTilte }">
<input type="hidden" name="page" id="page" value="${param.page }">
</form>
<script type="text/javascript">
webnote.setConfig({
auto_start: true, //페이지로딩시 페이지에 웹노트 에디터를 자동으로 생성할것인지(true: 자동생성, false: 생성안함)
lang: "ko", //언어셋(lang 디렉토리내에 언어셋.txt 파일이 있어야 함(ex: ko.txt)
base_dir: "/editor", //웹노트 설치디렉토리를 직접 지정
css_url: "/editor/webnote.css", //기본 css 파일을 직접 지정
icon_dir: "/editor/icon", //기본 아이콘 디렉토리를 직접 지정
emoticon_dir: "/editor/emoticon", //기본 이모티콘 디렉토리를 직접 지정
attach_proc: "/common/proc/case/editor/editorFileReg.do", //에디터에 이미지 즉시 업로드를 처리하는 서버스크립트를 직접 지정
delete_proc: "/common/proc/case/editor/editorFileDel.do", //에디터에 즉시 업로드된 이미지 삭제를 처리하는 서버스크립트를 직접 지정(attach_proc 과 같을경우 설정 불필요)
use_blind: true, //팝업메뉴 출력 시 반투명 배경 스크린 사용여부(true:사용(기본), false: 미사용)
allow_dndupload: false, //드래그&드롭을 통한 이미지 파일 업로드 허용 여부
allow_dndresize: false, //드래그&드롭을 통한 에디터 사이즈(높이) 조절 허용 여부
//fonts: ["굴림체","궁서체"], //선택할 수 있는 폰트종류를 직접 정의
//fontsizes: ["9pt","10pt"], //선택할 수 있는 폰트사이즈를 직접 정의(단위포함)
lineheights: ["120%","150%","180%"], //선택할 수 있는 줄간격을 직접 정의(단위포함)
//emoticons: ["Nerd"], //선택할 수 있는 이모티콘들을 직접 정의(png파일은 확장자 생략 가능하며, 그외에는 확장자까지 입력 : PNG, GIF, JPG 만 가능)
//specialchars: ["§","☆"], //선택할 수 있는 특수문자를 직접 정의
code_highlight: true,
fade_popup: true, //팝업 열리기/닫히기 시 fade in/out 기능 적용 여부(사용pc 사용이 낮은경우 false로 )
attach_list_view: false
});
$(window).load(function(){
$("#idx_toolbar_webnote_content_imagecenter").hide();
$("#idx_toolbarcontainer_webnote_content img").each(function(index, item) {
if($(item).attr("class") != "webnote_seperator"){
var event = $(item).attr("onclick");
$(item).wrap("<a href='javascript:;' onclick="+event+">");
$(item).attr("onclick", "");
}
});
});
function moveFunc(type){
if(type == "edit"){
$("#moveFrm").attr("action", "/gtm/case/faqBbs/edit.do");
$("#moveFrm").submit();
}else if(type == "list"){
$("#moveFrm").attr("action", "/gtm/case/faqBbs/list.do");
$("#moveFrm").submit();
}else if(type == "del"){
if(confirm("정말 삭제 하시겠습니까?")){
$("#moveFrm").attr("action", "/gtm/case/faqBbs/bbsDel.do");
$("#moveFrm").submit();
}
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,129 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!doctype html>
<html lang="ko">
<head>
<title>정보 관리</title>
<link href='/css/space.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.contents.css' rel='stylesheet' type='text/css'/>
<link href='/css/seed.mediaquery.css' rel='styleGsheet' type='text/css'/>
<link href='/site/ntcc/css/gtmCustom.css' rel='stylesheet' type='text/css'/>
<script src="/editor/webnote.js"></script>
</head>
<body>
<div class="page-title-wrap clear">
<div class="page-title-inner">
<h3 class="page-title">자주하는 질문(조정신청)</h3>
<div class="tooltipBox type01">
<button type="button" class="page-tip">페이지안내</button>
<div class="tooltipText">
<p>자주하는 질문(조정신청)을 등록 할 수 있는 페이지 입니다.</p>
</div>
</div>
</div>
</div>
<form:form name="writeFrm" id="writeFrm" action="/gtm/case/faqBbs/write.do" method="post">
<input type="hidden" name="setIdx" value="${param.setIdx}">
<fieldset>
<div class="bbs-view-layout">
<div class="bbs-view-item">
<p class="item-title">제목</p>
<div class="item-box">
<input type="text" name="fagSubj" id="fagSubj">
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">작성자</p>
<div class="item-box">
<input type="text" name="regMberNm" id="regMberNm" value="${memberName}">
</div>
</div>
<div class="bbs-view-item">
<p class="item-title">내용</p>
<div class="item-box">
<textarea class="bg_essential " maxlength="2000" name="editorParam_faqCont" id="content" title="내용을 입력하세요" style="width:99%; height:300px;" editor="webnote" tools="deny:images,emoticon,special_chars"></textarea>
</div>
</div>
</div>
<div class="btn-area">
<button type="submit" class="btn-normal violet mb10">저장</button>
<a href="javascript:goList()" class="btn-normal lightgray">목록</a>
</div>
</fieldset>
</form:form>
<form name="paramFrm" id="paramFrm" action="/gtm/case/faqBbs/list.do" method="get">
<input type="hidden" name="setIdx" value="${param.setIdx}">
<input type="hidden" name="searchType" value="${param.searchType}">
<input type="hidden" name="searchTilte" value="${param.searchTilte}">
<input type="hidden" name="page" id="page" value="${param.page}">
</form>
<script type="text/javascript">
webnote.setConfig({
auto_start: true, //페이지로딩시 페이지에 웹노트 에디터를 자동으로 생성할것인지(true: 자동생성, false: 생성안함)
lang: "ko", //언어셋(lang 디렉토리내에 언어셋.txt 파일이 있어야 함(ex: ko.txt)
base_dir: "/editor", //웹노트 설치디렉토리를 직접 지정
css_url: "/editor/webnote.css", //기본 css 파일을 직접 지정
icon_dir: "/editor/icon", //기본 아이콘 디렉토리를 직접 지정
emoticon_dir: "/editor/emoticon", //기본 이모티콘 디렉토리를 직접 지정
attach_proc: "/common/proc/case/editor/editorFileReg.do", //에디터에 이미지 즉시 업로드를 처리하는 서버스크립트를 직접 지정
delete_proc: "/common/proc/case/editor/editorFileDel.do", //에디터에 즉시 업로드된 이미지 삭제를 처리하는 서버스크립트를 직접 지정(attach_proc 과 같을경우 설정 불필요)
use_blind: true, //팝업메뉴 출력 시 반투명 배경 스크린 사용여부(true:사용(기본), false: 미사용)
allow_dndupload: false, //드래그&드롭을 통한 이미지 파일 업로드 허용 여부
allow_dndresize: false, //드래그&드롭을 통한 에디터 사이즈(높이) 조절 허용 여부
//fonts: ["굴림체","궁서체"], //선택할 수 있는 폰트종류를 직접 정의
//fontsizes: ["9pt","10pt"], //선택할 수 있는 폰트사이즈를 직접 정의(단위포함)
lineheights: ["120%","150%","180%"], //선택할 수 있는 줄간격을 직접 정의(단위포함)
//emoticons: ["Nerd"], //선택할 수 있는 이모티콘들을 직접 정의(png파일은 확장자 생략 가능하며, 그외에는 확장자까지 입력 : PNG, GIF, JPG 만 가능)
//specialchars: ["§","☆"], //선택할 수 있는 특수문자를 직접 정의
code_highlight: true,
fade_popup: true, //팝업 열리기/닫히기 시 fade in/out 기능 적용 여부(사용pc 사용이 낮은경우 false로 )
attach_list_view: false
});
$(window).load(function(){
$("#idx_toolbar_webnote_content_imagecenter").hide();
$("#idx_toolbarcontainer_webnote_content img").each(function(index, item) {
if($(item).attr("class") != "webnote_seperator"){
var event = $(item).attr("onclick");
$(item).wrap("<a href='javascript:;' onclick="+event+">");
$(item).attr("onclick", "");
}
});
});
$(document).ready(function(){
$("#writeFrm").submit(function(){
if($("#fagSubj").val().trim() == ""){
alert("제목을 입력해 주세요.");
$("#fagSubj").focus();
return false;
}
if($("#regMberNm").val().trim() == ""){
alert("작성자를 입력해 주세요.");
$("#regMberNm").focus();
return false;
}
/* if($("#content").val() == ""){
alert("내용을 입력해 주세요.");
$("#content").focus();
return false;
} */
});
});
function goList(){
$("#paramFrm").submit();
}
</script>
</body>
</html>