549 lines
18 KiB
Plaintext
549 lines
18 KiB
Plaintext
<%--
|
|
Class Name : EgovNoticeInqire.jsp
|
|
Description : 게시물 조회 화면
|
|
Modification Information
|
|
|
|
수정일 수정자 수정내용
|
|
---------- -------- ---------------------------
|
|
2009.03.23 이삼섭 최초 생성
|
|
2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
|
|
2011.08.31 JJY 경량환경 버전 생성
|
|
2013.05.23 이기하 상세보기 오류수정
|
|
|
|
author : 공통서비스 개발팀 이삼섭
|
|
since : 2009.03.23
|
|
--%>
|
|
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
|
|
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>
|
|
<%
|
|
pageContext.setAttribute("crlf", "\r\n");
|
|
%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="ko">
|
|
<script type="text/javascript" src="<c:url value='/js/EgovBBSMng.js' />"></script>
|
|
<script type="text/javascript">
|
|
function fn_egov_select_noticeList(pageNo) {
|
|
document.searchForm.action = "<c:url value='/cop/bbs/selectBoardList.do'/>";
|
|
document.searchForm.submit();
|
|
}
|
|
|
|
function fn_egov_useY_notice() {
|
|
if (confirm('사용 처리 하시겠습니까?')) {
|
|
document.frm.action = "<c:url value='/cop/bbs/updateBoardArticleUseY.do'/>";
|
|
document.frm.submit();
|
|
}
|
|
}
|
|
|
|
function fn_egov_delete_notice() {
|
|
if (confirm('미사용 처리 하시겠습니까?')) {
|
|
document.frm.action = "<c:url value='/cop/bbs/deleteBoardArticle.do'/>";
|
|
document.frm.submit();
|
|
}
|
|
}
|
|
|
|
function fn_egov_moveUpdt_notice() {
|
|
document.searchForm.action = "<c:url value='/cop/bbs/forUpdateBoardArticle.do'/>";
|
|
document.searchForm.method = "get";
|
|
document.searchForm.submit();
|
|
}
|
|
|
|
function fn_egov_addReply() {
|
|
document.frm.action = "<c:url value='/cop/bbs/addReplyBoardArticle.do'/>";
|
|
document.frm.submit();
|
|
}
|
|
|
|
/*
|
|
window.onpageshow = function(event) {
|
|
if ( event.persisted || (window.performance && window.performance.navigation.type == 2)) {
|
|
alert('j BFCahe로부터 복원됨');
|
|
console.log('j BFCahe로부터 복원됨');
|
|
} else {
|
|
alert('j 새로 열린 페이지');
|
|
console.log('j 새로 열린 페이지');
|
|
}
|
|
}
|
|
*/
|
|
</script>
|
|
|
|
<!-- 댓글 작성 스크립트 -->
|
|
<c:if test="${brdMstrVO.addYn == 'Y'}">
|
|
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
|
|
<validator:javascript formName="articleComment" staticJavascript="false" xhtml="true" cdata="false" />
|
|
<script type="text/javascript">
|
|
// 댓글 등록
|
|
function fn_egov_insert_commentList() {
|
|
var form = document.getElementById("articleCommentVO");
|
|
if (!validateArticleComment(form)) {
|
|
return;
|
|
}
|
|
|
|
//금지어 확인
|
|
var prohibitCheck = false;
|
|
var prohibitForm = document.getElementById("prohibitForm");
|
|
prohibitForm.checkProhibitCn.value = form.commentCn.value;
|
|
var data = new FormData(prohibitForm);
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/uss/ion/cnf/prohiCheckAjax.do",
|
|
async:false,
|
|
data: data,
|
|
dataType:'json',
|
|
processData: false,
|
|
contentType: false,
|
|
cache: false,
|
|
timeout: 600000,
|
|
success: function (returnData, status) {
|
|
if(status == 'success'){
|
|
if(returnData.result == 'fail'){
|
|
}else if(returnData.result == 'auth_fail'){
|
|
}else if(returnData.result =='success'){
|
|
if(null != returnData.prohibitVO.prohibitCn){
|
|
alert( returnData.prohibitVO.prohibitCn + " 단어는 금지어로 등록되어 있는 단어입니다." );
|
|
prohibitCheck = true;
|
|
}
|
|
}
|
|
}else{
|
|
//alert("등록에 실패하였습니다.");
|
|
}
|
|
},
|
|
error: function (e) {
|
|
//alert("등록에 실패하였습니다.");
|
|
}
|
|
});
|
|
|
|
if(prohibitCheck){
|
|
return;
|
|
}
|
|
|
|
|
|
if (confirm('<spring:message code="common.regist.msg" />')) {
|
|
form.submit();
|
|
}
|
|
}
|
|
|
|
// 댓글 수정
|
|
function fn_egov_updt_commentList(){
|
|
var form = document.getElementById("articleCommentVO");
|
|
if (!validateArticleComment(form)) {
|
|
return;
|
|
}
|
|
|
|
//금지어 확인
|
|
var prohibitCheck = false;
|
|
var prohibitForm = document.getElementById("prohibitForm");
|
|
prohibitForm.checkProhibitCn.value = form.commentCn.value;
|
|
var data = new FormData(prohibitForm);
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/uss/ion/cnf/prohiCheckAjax.do",
|
|
async:false,
|
|
data: data,
|
|
dataType:'json',
|
|
processData: false,
|
|
contentType: false,
|
|
cache: false,
|
|
timeout: 600000,
|
|
success: function (returnData, status) {
|
|
if(status == 'success'){
|
|
if(returnData.result == 'fail'){
|
|
}else if(returnData.result == 'auth_fail'){
|
|
}else if(returnData.result =='success'){
|
|
if(null != returnData.prohibitVO.prohibitCn){
|
|
alert( returnData.prohibitVO.prohibitCn + " 단어는 금지어로 등록되어 있는 단어입니다." );
|
|
prohibitCheck = true;
|
|
}
|
|
}
|
|
}else{
|
|
//alert("등록에 실패하였습니다.");
|
|
}
|
|
},
|
|
error: function (e) {
|
|
//alert("등록에 실패하였습니다.");
|
|
}
|
|
});
|
|
|
|
if(prohibitCheck){
|
|
return;
|
|
}
|
|
|
|
if (confirm('<spring:message code="common.update.msg" />')) {
|
|
form.modified.value = "true";
|
|
form.action = "<c:url value='/cop/cmt/updateArticleComment.do'/>";
|
|
form.submit();
|
|
}
|
|
}
|
|
|
|
// 댓글 수정 화면
|
|
function fn_egov_selectCommentForupdt(commentNo) {
|
|
|
|
var form = document.getElementById("articleCommentVO");
|
|
|
|
//form.subPageIndex.value = pageNo;
|
|
|
|
form.commentNo.value = commentNo;
|
|
form.action = "<c:url value='/cop/bbs/selectBoardArticle.do'/>";
|
|
form.submit();
|
|
}
|
|
|
|
// 댓글 삭제
|
|
function fn_egov_deleteCommentList(commentNo) {
|
|
|
|
var form = document.getElementById("articleCommentVO");
|
|
|
|
if (confirm('<spring:message code="common.delete.msg" />')) {
|
|
form.modified.value = "true";
|
|
form.commentNo.value = commentNo;
|
|
form.action = "<c:url value='/cop/cmt/deleteArticleComment.do'/>";
|
|
form.submit();
|
|
}
|
|
}
|
|
|
|
/* 댓글페이징 */
|
|
function fn_egov_select_commentList(pageNo) {
|
|
|
|
var form = document.getElementById("articleCommentVO");
|
|
|
|
form.subPageIndex.value = pageNo;
|
|
form.commentNo.value = '';
|
|
form.action = "<c:url value='/cop/bbs/selectBoardArticle.do'/>";
|
|
form.submit();
|
|
}
|
|
</script>
|
|
</c:if>
|
|
<!-- //댓글 작성 스크립트 -->
|
|
<title><c:out value='${result.bbsNm}' /> - 글 조회</title>
|
|
</head>
|
|
<body>
|
|
<!-- cont -->
|
|
<div class="cont_wrap">
|
|
<div class="box">
|
|
|
|
<!-- cont_tit -->
|
|
<div class="cont_tit">
|
|
<h2><c:out value='${result.bbsNm}' /> - 글 상세 (<c:out value='${brdMstrVO.menuNm}' />)</h2>
|
|
<ul class="cont_nav">
|
|
<li class="home"><a href="/"><i></i></a></li>
|
|
<li>
|
|
<p>게시판관리</p>
|
|
</li>
|
|
<li>
|
|
<p>게시판관리</p>
|
|
</li>
|
|
<li>
|
|
<p><c:out value='${result.bbsNm}' /> 목록</p>
|
|
</li>
|
|
<li><span class="cur_nav"><c:out value='${result.bbsNm}' /> 상세</span></li>
|
|
</ul>
|
|
</div>
|
|
<!-- //cont_tit -->
|
|
|
|
<form:form commandName="searchForm" name="searchForm" method="get" action="<c:url value='/cop/bbs/selectBoardList.do'/>">
|
|
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>" />
|
|
<input name="searchCnd" type="hidden" value="<c:out value='${searchVO.searchCnd}'/>" />
|
|
<input name="searchWrd" type="hidden" value="<c:out value='${searchVO.searchWrd}'/>" />
|
|
<input name="bbsId" type="hidden" value="<c:out value='${result.bbsId}'/>" />
|
|
<input name="nttId" type="hidden" value="<c:out value='${result.nttId}'/>" />
|
|
</form:form>
|
|
|
|
|
|
|
|
<div class="cont">
|
|
<form name="frm" method="post" action="<c:url value='/cop/bbs/selectBoardList.do'/>">
|
|
<input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>">
|
|
<input type="hidden" name="searchCnd" value="<c:out value='${searchVO.searchCnd}'/>" />
|
|
<input type="hidden" name="searchWrd" value="<c:out value='${searchVO.searchWrd}'/>" />
|
|
<input type="hidden" name="bbsId" value="<c:out value='${result.bbsId}'/>">
|
|
<input type="hidden" name="nttId" value="<c:out value='${result.nttId}'/>">
|
|
<input type="hidden" name="parnts" value="<c:out value='${result.parnts}'/>">
|
|
<input type="hidden" name="sortOrdr" value="<c:out value='${result.sortOrdr}'/>">
|
|
<input type="hidden" name="replyLc" value="<c:out value='${result.replyLc}'/>">
|
|
<input type="hidden" name="nttSj" value="<c:out value='${result.nttSj}'/>">
|
|
<!-- list_상세 -->
|
|
<div class="tbType02 col-table data-table left">
|
|
<table>
|
|
<colgroup>
|
|
<col style="width: 20%">
|
|
<col style="width: 80%">
|
|
</colgroup>
|
|
|
|
<tbody>
|
|
<tr>
|
|
<th>
|
|
<c:out value="${brdMstrVO.bbsTyCode eq 'BBST07' ? '항목' : brdMstrVO.menuNo eq '9510000' ? '질문' : '제목'}" />
|
|
</th>
|
|
<td>
|
|
<c:out value="${result.nttSj}" />
|
|
</td>
|
|
</tr>
|
|
<c:if test="${'9650000' eq brdMstrVO.menuNo }">
|
|
<tr>
|
|
<th>URL</th>
|
|
<td>
|
|
<c:out value="${result.linkUrl}" />
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<tr>
|
|
<th>
|
|
<c:out value='${brdMstrVO.menuNo eq "9510000" ? "답변" : "내용"}' />
|
|
</th>
|
|
<td>
|
|
<div id="bbs_cn">
|
|
<c:out value="${fn:replace(result.nttCn , crlf , '<br/>')}" escapeXml="false" />
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<c:if test="${'BBST07' eq brdMstrVO.bbsTyCode }"><!-- 사전정보공표 -->
|
|
<tr>
|
|
<th>주기</th>
|
|
<td><c:out value="${result.pubPeriod}" /></td>
|
|
</tr>
|
|
<tr>
|
|
<th>시기</th>
|
|
<td><c:out value="${result.pubTime}" /></td>
|
|
</tr>
|
|
<tr>
|
|
<th>방법(링크)</th>
|
|
<td>
|
|
<c:if test="${!empty result.pubLinkTxt }">
|
|
(<c:out value='${result.pubLinkTxt}' /> 게시판)
|
|
</c:if>
|
|
<c:out value="${result.pubLink}" />
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
|
|
<c:if test="${'BBST08' eq brdMstrVO.bbsTyCode }"><!-- 인재채용 -->
|
|
<tr>
|
|
<th>모집기간</th>
|
|
<td><c:out value="${fn:substring(result.ntceBgnde,0,4)}-${fn:substring(result.ntceBgnde,4,6)}-${fn:substring(result.ntceBgnde,6,8)}" />
|
|
~ <c:out value="${fn:substring(result.ntceEndde,0,4)}-${fn:substring(result.ntceEndde,4,6)}-${fn:substring(result.ntceEndde,6,8)}" /></td>
|
|
</tr>
|
|
<tr>
|
|
<th>모집상태</th>
|
|
<td><c:out value="${result.seCdTxt}" /></td>
|
|
</tr>
|
|
</c:if>
|
|
|
|
<tr>
|
|
<th>작성자</th>
|
|
<td>
|
|
<span class="privateInfo"><c:out value="${result.frstRegisterNm}" /></span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>담당부서</th>
|
|
<td><c:out value="${result.pubLoc}" /></td>
|
|
</tr>
|
|
<tr>
|
|
<th>등록시간</th>
|
|
<td>
|
|
<c:out value="${result.frstRegisterPnttm}" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>조회수</th>
|
|
<td>
|
|
<c:out value="${result.inqireCo}" />
|
|
</td>
|
|
</tr>
|
|
<%-- <c:if test="${brdMstrVO.ipYn == 'Y'}">
|
|
<tr>
|
|
<th>등록자 IP</th>
|
|
<td>
|
|
<c:out value="${result.ntcrIp}" />
|
|
</td>
|
|
</tr>
|
|
</c:if> --%>
|
|
<c:if test="${brdMstrVO.bbsTyCode == 'BBST05' || brdMstrVO.bbsTyCode == 'BBST06'}">
|
|
<tr>
|
|
<th>첨부이미지</th>
|
|
<td>
|
|
<c:import url="/cmm/fms/selectImageFileInfs.do" charEncoding="utf-8">
|
|
<c:param name="atchFileId" value="${result.atchFileId}" />
|
|
</c:import>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${not empty result.atchFileId}">
|
|
<tr>
|
|
<th>첨부파일 목록</th>
|
|
<td>
|
|
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
|
|
<c:param name="param_atchFileId" value="${result.atchFileId}" />
|
|
<c:param name="pdf_view" value="Y" />
|
|
</c:import>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<!-- 링크 -->
|
|
<c:if test="${brdMstrVO.linkUrlYn == 'Y'}">
|
|
<tr>
|
|
<th>링크URL</th>
|
|
<td colspan="10"><c:out value="${result.linkUrl}" /></td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- //list_상세 -->
|
|
|
|
<!-- btn_wrap -->
|
|
<div class="btn_wrap btn_layout01">
|
|
<div class="area_left">
|
|
<c:choose>
|
|
<c:when test="${result.useAt == 'N' }">
|
|
<button class="btn btn_text btn_46 red_border btnType02" onclick="javascript:fn_egov_useY_notice(); return false;">사용처리</button>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<button class="btn btn_text btn_46 red_border btnType04" onclick="javascript:fn_egov_delete_notice(); return false;">삭 제</button>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</div>
|
|
<div class="area_right">
|
|
<c:if test="${brdMstrVO.replyPosblAt != 'N'}">
|
|
<button class="btn btn_text btn_46 subgray_border btnType04" onclick="javascript:fn_egov_addReply(); return false;">답 글</button>
|
|
</c:if>
|
|
<button class="btn btn_text btn_46 blue_fill btnType06" onclick="javascript:fn_egov_moveUpdt_notice(); return false;">수 정</button>
|
|
<button class="btn btn_text btn_46 gray_fill btnType03" onclick="javascript:fn_egov_select_noticeList(); return false;">목 록</button>
|
|
</div>
|
|
</div>
|
|
<!-- //btn_wrap -->
|
|
|
|
<!-- 이전글·다음글 -->
|
|
<div class="list_ctl col-table data-table mt60">
|
|
<table class="tbType02">
|
|
<colgroup>
|
|
<col style="width: 20%;">
|
|
<col style="width: 80%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<c:choose>
|
|
<c:when test="${empty prevNttIdNSj}">
|
|
<th>이전글</th>
|
|
<td>
|
|
이전글이 없습니다.
|
|
</td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var="prevNttId" value="${fn:split(prevNttIdNSj, '|')[0]}" />
|
|
<c:set var="prevNttSj" value="${fn:split(prevNttIdNSj, '|')[1]}" />
|
|
<c:set var="prevNttDt" value="${fn:split(prevNttIdNSj, '|')[2]}" />
|
|
|
|
<th>이전글</th>
|
|
<td>
|
|
<a href="<c:url value='/cop/bbs/selectBoardArticle.do'/>?bbsId=<c:out value='${result.bbsId}'/>&nttId=<c:out value='${prevNttId}'/>">
|
|
<c:out value="${prevNttSj}" />
|
|
</a>
|
|
</td>
|
|
<c:out value='${prevNttDt}' />
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tr>
|
|
<tr>
|
|
<c:choose>
|
|
<c:when test="${empty nextNttIdNSj}">
|
|
<th>다음글</th>
|
|
<td>
|
|
다음글이 없습니다.
|
|
</td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var="nextNttId" value="${fn:split(nextNttIdNSj, '|')[0]}" />
|
|
<c:set var="nextNttSj" value="${fn:split(nextNttIdNSj, '|')[1]}" />
|
|
<c:set var="nextNttDt" value="${fn:split(nextNttIdNSj, '|')[2]}" />
|
|
|
|
<th>다음글</th>
|
|
<td>
|
|
<a href="<c:url value='/cop/bbs/selectBoardArticle.do'/>?bbsId=<c:out value='${result.bbsId}'/>&nttId=<c:out value='${nextNttId}'/>">
|
|
<c:out value="${nextNttSj}" />
|
|
</a>
|
|
</td>
|
|
<c:out value='${nextNttDt}' />
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- //이전글·다음글 -->
|
|
</form>
|
|
<!-- 댓글 -->
|
|
<c:if test="${brdMstrVO.addYn == 'Y'}">
|
|
<c:import url="/cop/cmt/selectArticleCommentList.do" charEncoding="utf-8">
|
|
<c:param name="siteId" value="${brdMstrVO.siteId}" />
|
|
</c:import>
|
|
</c:if>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<%-- <div class="updown_bbs setListTitle_wrap setting_list_wrap">
|
|
<table><!-- div class="up_bbs" -->
|
|
<tr>
|
|
<c:choose>
|
|
<c:when test="${empty nextNttIdNSj}">
|
|
<th>이전글</th>
|
|
<td class="setListnbTitle"><span class="setListTitle">이전글이 없습니다.</span></td>
|
|
<td><span class="dateCmmt"></span></td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var="nextNttId" value="${fn:split(nextNttIdNSj, '|')[0]}" />
|
|
<c:set var="nextNttSj" value="${fn:split(nextNttIdNSj, '|')[1]}" />
|
|
<c:set var="nextNttDt" value="${fn:split(nextNttIdNSj, '|')[2]}" />
|
|
<th>이전글</th>
|
|
<td class="setListnbTitle">
|
|
<span class="setListTitle">
|
|
<a href="<c:url value='/cop/bbs/selectBoardArticle.do'/>?bbsId=<c:out value='${result.bbsId}'/>&nttId=<c:out value='${nextNttId}'/>">
|
|
<c:out value="${nextNttSj}" />
|
|
</a>
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="dateCmmt" style="width:120%;"><c:out value='${nextNttDt}' /></span>
|
|
</td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tr>
|
|
<tr>
|
|
<c:choose>
|
|
<c:when test="${empty prevNttIdNSj}">
|
|
<th>다음글</th> <!-- span class="down_arrow" -->
|
|
<td class="setListnbTitle"><span class="setListTitle">다음글이 없습니다.</span></td>
|
|
<td><span class="dateCmmt"></span></td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var="prevNttId" value="${fn:split(prevNttIdNSj, '|')[0]}" />
|
|
<c:set var="prevNttSj" value="${fn:split(prevNttIdNSj, '|')[1]}" />
|
|
<c:set var="prevNttDt" value="${fn:split(prevNttIdNSj, '|')[2]}" />
|
|
<th>다음글</th>
|
|
<td class="setListnbTitle">
|
|
<span class="setListTitle">
|
|
<a href="<c:url value='/cop/bbs/selectBoardArticle.do'/>?bbsId=<c:out value='${result.bbsId}'/>&nttId=<c:out value='${prevNttId}'/>">
|
|
<c:out value="${prevNttSj}" />
|
|
</a>
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="dateCmmt" style="width:120%;"><c:out value='${prevNttDt}' /></span>
|
|
</td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tr>
|
|
</table>
|
|
</div> --%>
|
|
</div>
|
|
</div>
|
|
<!-- //cont -->
|
|
</body>
|
|
</html>
|