jhleem / egov star

이다솜 이다솜 2022-02-16 @60

[20220216 이다솜] 수정 코밋
Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleUpdt.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleUpdt.jsp (revision 59) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleUpdt.jsp (revision 60) @@ -43,36 +43,10 @@ <script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <title>${pageTitle }<spring:message code="title.update" /></title> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jquery.js' />"></script> --%> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jqueryui.js' />"></script> --%> <validator:javascript formName="articleVO" staticJavascript="false" xhtml="true" cdata="false" /> <script type="text/javascript"> $(function() { - $("#ntceBgnde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); - $("#ntceEndde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); fn_egov_init(); }); @@ -182,11 +156,7 @@ <!-- 글 내용 --> <c:set var="title"><spring:message code="comCopBbs.articleVO.updt.nttCn" /></c:set> <li><strong class="title">${title}</strong> - <div class="input_wrap"> -<!-- <div class="text_show"> --> -<%-- <label for="nttCn">${title} ${inputTxt }해주세요</label> --%> -<%-- <form:textarea class="textArea width100p height400" path="nttCn" title="내용을 입력해주세요"></form:textarea> --%> -<!-- </div> --> + <div class="input_wrap"> <div class="text_show"> <textarea id="nttCn" name="nttCn" title="내용 입력" > <c:if test="${not empty articleVO.nttCn}">${articleVO.nttCn}</c:if> @@ -222,6 +192,22 @@ </div> </div> </li> + <!--게시기간--> + <li><strong class="title">게시기간</strong> + <div class="input_wrap"> + <div class="date_wrap"> + <div class="date"> + <input type="text" class="width120 inputText datepicker" id="ntceBgnde" name="ntceBgnde" value="${articleVO.ntceBgnde}" placeholder="0000-00-00"> + <label for="ntceBgnde" class="btn_sq_l"><span class="icon-cal"></span></label> + </div> + <em>~</em> + <div class="date"> + <input type="text" class="width120 inputText datepicker" id="ntceEndde" name="ntceEndde" value="${articleVO.ntceEndde}" placeholder="0000-00-00"> + <label for="ntceEndde" class="btn_sq_l"><span class="icon-cal"></span></label> + </div> + </div> + </div> + </li> <c:if test="${boardMasterVO.fileAtchPosblAt == 'Y'}"> <li> <strong class="board_label">첨부파일</strong> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleReply.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleReply.jsp (revision 59) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleReply.jsp (revision 60) @@ -25,46 +25,29 @@ <%@ 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" %> -<%@ taglib prefix="ckeditor" uri="http://ckeditor.com" %> +<c:set var="reBbsId" value="${fn:replace(boardMasterVO.bbsId, \"BBSMSTR_\", \"\")}" /> <c:set var="pageTitle"><spring:message code="comCopBbs.articleVO.title"/></c:set> -<%-- <link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> --%> -<%-- <link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/cmm/jqueryui.css' />"> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/fms/EgovMultiFile.js'/>" ></script> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/fms/EgovMultiFiles.js'/>" ></script> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/utl/EgovCmmUtl.js'/>" ></script> --%> -<script type="text/javascript" src="<c:url value="/validator.do"/>"></script> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jquery.js' />"></script> --%> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jqueryui.js' />"></script> --%> +<!-- 에디터 관련 추가 CSS, Javascript 추가 --> +<jsp:useBean id="today" class="java.util.Date" /> +<fmt:formatDate value="${today}" pattern="yyyyMMddHHmm" var="nowDate" scope="application"/> +<!-- Include Editor style. --> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_editor.pkgd.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_style.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/font-awesome/css/font-awesome.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/codemirror/lib/codemirror.css'><c:param name="dt" value="${nowDate}"/></c:url>" /> +<!-- Include Editor JS files. --> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor.pkgd.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/languages/ko.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor_script_custom.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/codemirror.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/xml.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<!-- 에디터 관련 추가 CSS, Javascript 종료 --> -<c:set var="reBbsId" value="${fn:replace(boardMasterVO.bbsId, \"BBSMSTR_\", \"\")}" /> +<script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <validator:javascript formName="articleVO" staticJavascript="false" xhtml="true" cdata="false"/> <script type="text/javascript"> $(function() { - $("#ntceBgnde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); - $("#ntceEndde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); fn_egov_init(); }); @@ -79,8 +62,13 @@ * 답글저장처리화면 ******************************************************** */ function fn_egov_reply_article(form){ - CKEDITOR.instances.nttCn.updateElement(); - //input item Client-Side validate + // 개인정보입력 체크. + if (!fnPrivacyCheck(form.nttSj.value)) { // 제목 + return false; + } + if (!fnPrivacyCheck(form.nttCn.value)) { // 내용 + return false; + } if (!validateArticleVO(form)) { return false; } else { @@ -133,104 +121,117 @@ <!-- javascript warning tag --> <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> -<form:form commandName="articleVO" action="${pageContext.request.contextPath}/cop/bbs/${reBbsId }/replyArticle.do" method="post" onSubmit="fn_egov_reply_article(document.forms[0]); return false;" enctype="multipart/form-data"> - <div class="wTableFrm"> - <!-- 타이틀 --> - <h2>${pageTitle} <spring:message code="title.create" /></h2><!-- 게시글 답글 등록--> - - <!-- 등록폼 --> - <table class="wTable" summary="<spring:message code="common.summary.list" arguments="${pageTitle}" />"> - <caption>${pageTitle } <spring:message code="title.create" /></caption> - <colgroup> - <col style="width: 20%;"> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - </colgroup> - <tbody> +<form:form commandName="articleVO" action="${pageContext.request.contextPath}/cop/bbs/${reBbsId }/replyArticle.do" method="post" onSubmit="fn_egov_reply_article(document.forms[0]); return false;" enctype="multipart/form-data"> + <div class="inner"> + <div class="board_write"> + <ul> <!-- 입력 --> <c:set var="inputTxt"><spring:message code="input.input" /></c:set> <!-- 글 제목, 제목 Bold여부 --> <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.nttSj"/> </c:set> - <tr> - <th scope="col" class="must"><label for="nttSj">${title}</label></th> - <td class="left"> - <input name="nttSj" type="text" size="70" maxlength="70" title="${title} ${inputTxt}" value="RE: <c:out value='${result.nttSj}'/>"> - <div><form:errors path="nttSj" cssClass="error" /></div> - </td> - <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.sjBoldAt"/> </c:set> - <th><label for="sjBoldAt">${title}</label></th> - <td class="left"> - <form:checkbox path="sjBoldAt" value="Y"/> - <div><form:errors path="sjBoldAt" cssClass="error" /></div> - </td> - </tr> - <!-- 글 내용 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.nttCn"/> </c:set> - <tr> - <th scope="col" class="must"><label for="nttCn">${title } </label></th> - <td class="nopd" colspan="3"> - <form:textarea path="nttCn" title="${title} ${inputTxt}" cols="300" rows="20" /> - <ckeditor:replace replace="nttCn" basePath="${pageContext.request.contextPath}/html/egovframework/com/cmm/utl/ckeditor/" /> - <div><form:errors path="nttCn" cssClass="error" /></div> - </td> - </tr> - + <li class="must"><strong class="title">${title }</strong> + <div class="input_wrap"> + <div class="text_show"> + <label for="nttSj">제목을 입력해주세요</label> + <input type="text" class="inputText width100p" name="nttSj" title="${title} ${inputTxt}" value="RE: <c:out value='${result.nttSj}'/>"/> + <div><form:errors path="nttSj" cssClass="error" /></div> + </div> + </div> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.sjBoldAt"/> </c:set> + <div class="input_option"> + <div class="checkbox"> + <div class="check"> + <form:checkbox path="sjBoldAt" value="Y"/> + <div><form:errors path="sjBoldAt" cssClass="error" /></div> + <label for="sjBoldAt">${title }</label> + </div> + </div> + </div> + </li> + <!--내용--> + <li class="must"><strong class="title">내용</strong> + <div class="input_wrap"> + <div class="text_show"> + <textarea id="nttCn" name="nttCn" title="내용 입력" > + <c:if test="${not empty articleVO.nttCn}">${articleVO.nttCn}</c:if> + </textarea> + </div> + </div> + </li> <!-- 공지신청 여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.noticeAt"/> </c:set> - <tr> - <th><label for="noticeAt">${title}</label></th> - <td class="left" colspan="3"> - <form:checkbox path="noticeAt" value="Y"/> - <div><form:errors path="noticeAt" cssClass="error" /></div> - </td> - </tr> - + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.noticeAt"/> </c:set> + <li><strong class="title">${title}</strong> + <div class="input_wrap"> + <div class="checkbox"> + <div class="check"> + <form:checkbox path="noticeAt" value="Y"/> + <div><form:errors path="noticeAt" cssClass="error" /></div> + <label for="noticeAt">${title}</label> + </div> + </div> + </div> + </li> <!-- 익명등록 여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.anonymousAt"/> </c:set> - <tr> - <th><label for="anonymousAt">${title}</label></th> - <td class="left" colspan="3"> - <form:checkbox path="anonymousAt" value="Y"/> - <div><form:errors path="anonymousAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 유효기간 설정 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.reply.ntceDe"/> </c:set> - <tr> - <th><label for="ntceBgnde">${title} </label></th> - <td class="left" colspan="3"> - <form:input path="ntceBgnde" title="${title} ${inputTxt}" size="70" maxlength="70" style="width:70px;"/> - &nbsp;~&nbsp;<form:input path="ntceEndde" title="${title} ${inputTxt}" size="70" maxlength="70" style="width:70px;"/> - <div><form:errors path="ntceBgnde" cssClass="error" /></div> - <div><form:errors path="ntceEndde" cssClass="error" /></div> - </td> - </tr> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.anonymousAt"/> </c:set> + <li><strong class="title">${title }</strong> + <div class="input_wrap"> + <div class="checkbox"> + <div class="check"> + <form:checkbox path="anonymousAt" value="Y"/> + <div><form:errors path="anonymousAt" cssClass="error" /></div> + <label for="anonymousAt">${title}</label> + </div> + </div> + </div> + </li> + <!--게시기간--> + <li><strong class="title">게시기간</strong> + <div class="input_wrap"> + <div class="date_wrap"> + <div class="date"> + <input type="text" class="width120 inputText datepicker" id="ntceBgnde" name="ntceBgnde" placeholder="0000-00-00"> + <label for="ntceBgnde" class="btn_sq_l"><span class="icon-cal"></span></label> + </div> + <em>~</em> + <div class="date"> + <input type="text" class="width120 inputText datepicker" id="ntceEndde" name="ntceEndde" placeholder="0000-00-00"> + <label for="ntceEndde" class="btn_sq_l"><span class="icon-cal"></span></label> + </div> + </div> + </div> + </li> <c:if test="${boardMasterVO.fileAtchPosblAt == 'Y'}"> - <!-- 첨부파일 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.atchFile"/></c:set><!-- 첨부파일 --> - <tr> - <th><label for="file_1">${title}</label> </th> - <td class="nopd" colspan="3"> - <input name="file_1" id="egovComFileUploader" type="file" title="<spring:message code="comCopBbs.articleVO.regist.atchFile"/>" multiple/><!-- 첨부파일 --> - <div id="egovComFileList"></div> - </td> - </tr> + <li> + <strong class="board_label">첨부파일</strong> + <div class="file_up"> + <div> + <input name="file_1" id="egovComFileUploader" type="file" class="blind userUpload" title="<spring:message code="comCopBbs.articleVO.regist.atchFile"/>" multiple/><!-- 첨부파일 --> + <input type="hidden" id="atchFileId" name="atchFileId" value="" /> + <label for="egovComFileUploader" class="inputFile" title="업로드 할 파일을 선택해주세요">파일업로드<span class="icon-file"></span></label> + </div> + <em class="exp filenote">※ 파일당 10MB까지 첨부 가능합니다.</em> + <ul class="file_list" id="egovComFileList"> + </ul> + </div> + </li> </c:if> - - </tbody> - </table> - + </ul> + </div> <!-- 하단 버튼 --> - <div class="btn"> - <input type="submit" class="s_submit" value="<spring:message code="button.create" />" title="<spring:message code="button.create" /> <spring:message code="input.button" />" /><!-- 등록 --> - <input type="button" class="s_submit" value="<spring:message code="button.list" />" title="<spring:message code="button.list" /> <spring:message code="input.button" />" onclick="fn_egov_inqire_articlelist(); return false;" /><!-- 등록 --> - </div><div style="clear:both;"></div> + <div class="bottom_wrap between"> + <div class="left"> + <button type="button" class="btn_l bg_basic" onClick="fn_egov_inqire_articlelist(); return false;" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></button><!-- 목록 --> + </div> + <div class="right"> + <button type="submit" class="btn_l bg_basic" value="<spring:message code="button.create" />" title="<spring:message code="button.create" /> <spring:message code="input.button" />"><spring:message code="button.create" /></button><!-- 등록 --> + </div> + </div> </div> <input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/> + <input name="searchKeyword" type="hidden" value="${searchVO.searchKeyword}" /> + <input name="searchCondition" type="hidden" value="${searchVO.searchCondition}" /> <input type="hidden" name="bbsTyCode" value="<c:out value='${boardMasterVO.bbsTyCode}'/>" /> <input type="hidden" name="replyPosblAt" value="<c:out value='${boardMasterVO.replyPosblAt}'/>" /> <input type="hidden" name="fileAtchPosblAt" value="<c:out value='${boardMasterVO.fileAtchPosblAt}'/>" /> @@ -246,13 +247,40 @@ <input name="cmd" type="hidden" value="<c:out value='save'/>"> </form:form> -<!-- 첨부파일 업로드 가능화일 설정 Start..--> +<!-- 첨부파일 업로드 가능화일 설정 Start..--> <script type="text/javascript"> -var maxFileNum = document.getElementById('atchPosblFileNumber').value; -if(maxFileNum==null || maxFileNum==""){ - maxFileNum = 3; -} -var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), maxFileNum ); -multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) ); -</script> +$(function() { + var atchPosblFileNumber = $('#atchPosblFileNumber').val(); + var atchPosblFileSize = $('#atchPosblFileSize').val(); + var options = { + fileListDivId : 'egovComFileList', + inputFileId : 'egovComFileUploader', + hiddenFileName : 'atchFileId', + txtAreaId : 'nttCn', + authorType : 'user', + maxSize: atchPosblFileNumber, + fileMaxSize: atchPosblFileSize + } + $('#nttCn').initEditor(options); + + /* 비밀글 설정시 비밀번호입력창 show */ + var $pwDiv = $('#pwDiv'); + $pwDiv.hide(function() { + if ($pwDiv.hasClass('blind')) { + $pwDiv.removeClass('blind'); + } + }); + $('#secretAt').on('change', function() { + var isChecked = $(this).is(":checked"); + + if (isChecked) { + $pwDiv.show(); + $('#password').focus(); + } else { + $pwDiv.hide(); + } + }); +}); + +</script> <!-- 첨부파일 업로드 가능화일 설정 End.--> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleRegist.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleRegist.jsp (revision 59) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleRegist.jsp (revision 60) @@ -1,85 +1,60 @@ <% - /** - * @Class Name : EgovArticleRegist.jsp - * @Description : EgovArticleRegist 화면 - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2009.02.01 박정규 최초 생성 - * 2016.06.13 김연호 표준프레임워크 v3.6 개선 - * 2018.06.05 신용호 CK Editor V4.9.2 Upgrade - * - * @author 공통서비스팀 - * @since 2009.02.01 - * @version 1.0 - * @see - * - */ + /** + * @Class Name : EgovArticleRegist.jsp + * @Description : EgovArticleRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 박정규 최초 생성 + * 2016.06.13 김연호 표준프레임워크 v3.6 개선 + * 2018.06.05 신용호 CK Editor V4.9.2 Upgrade + * + * @author 공통서비스팀 + * @since 2009.02.01 + * @version 1.0 + * @see + * + */ %> -<%@ page language="java" contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> -<%@ 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" %> -<c:set var="pageTitle"><spring:message code="comCopBbs.articleVO.title"/></c:set> - -<%-- <link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> --%> -<%-- <link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/cmm/jqueryui.css' />"> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/fms/EgovMultiFile.js'/>" ></script> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/fms/EgovMultiFiles.js'/>" ></script> --%> -<%-- <script type="text/javascript" src="<c:url value='/js/egovframework/com/cmm/utl/EgovCmmUtl.js'/>" ></script> --%> -<script type="text/javascript" src="<c:url value='/html/egovframework/com/cmm/utl/ckeditor/ckeditor.js?t=B37D54V'/>" ></script> -<script type="text/javascript" src="<c:url value="/validator.do"/>"></script> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jquery.js' />"></script> --%> -<%-- <script src="<c:url value='/js/egovframework/com/cmm/jqueryui.js' />"></script> --%> +<%@ page language="java" contentType="text/html; charset=UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ 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"%> <c:set var="reBbsId" value="${fn:replace(boardMasterVO.bbsId, \"BBSMSTR_\", \"\")}" /> +<c:set var="pageTitle"><spring:message code="comCopBbs.articleVO.title" /></c:set> +<!-- 에디터 관련 추가 CSS, Javascript 추가 --> +<jsp:useBean id="today" class="java.util.Date" /> +<fmt:formatDate value="${today}" pattern="yyyyMMddHHmm" var="nowDate" scope="application"/> +<!-- Include Editor style. --> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_editor.pkgd.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_style.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/font-awesome/css/font-awesome.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/codemirror/lib/codemirror.css'><c:param name="dt" value="${nowDate}"/></c:url>" /> +<!-- Include Editor JS files. --> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor.pkgd.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/languages/ko.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor_script_custom.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/codemirror.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/xml.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<!-- 에디터 관련 추가 CSS, Javascript 종료 --> + +<script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <validator:javascript formName="articleVO" staticJavascript="false" xhtml="true" cdata="false"/> -<script type="text/javascript"> +<script type="text/javascript"> $(function() { - $("#ntceBgnde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); - $("#ntceEndde").datepicker({ - dateFormat:'yy-mm-dd' - , showOn: 'button' - , buttonImage: '<c:url value='/images/egovframework/com/cmm/icon/bu_icon_carlendar.gif'/>' - , buttonImageOnly: true - , showMonthAfterYear: true - , showOtherMonths: true - , selectOtherMonths: true - , changeMonth: true // 월선택 select box 표시 (기본은 false) - , changeYear: true // 년선택 selectbox 표시 (기본은 false) - , showButtonPanel: true // 하단 today, done 버튼기능 추가 표시 (기본은 false) - }); fn_egov_init(); }); - /* ******************************************************** * 초기화 ******************************************************** */ function fn_egov_init(){ - //filebrowserUploadUrl: '${pageContext.request.contextPath}/utl/wed/insertImage.do', // 파일 업로드를 처리 할 경로 설정. - var ckeditor_config = { - //filebrowserImageUploadUrl: '${pageContext.request.contextPath}/utl/wed/insertImageCk.do', // 파일 업로드를 처리 할 경로 설정. - filebrowserImageUploadUrl: '${pageContext.request.contextPath}/ckUploadImage', // 파일 업로드를 처리 할 경로 설정(CK필터). - }; - CKEDITOR.replace('nttCn',ckeditor_config); - // 첫 입력란에 포커스 document.getElementById("articleVO").nttSj.focus(); } @@ -87,24 +62,23 @@ * 저장처리화면 ******************************************************** */ function fn_egov_regist_article(form) { - CKEDITOR.instances.nttCn.updateElement(); + + // 개인정보입력 체크. + if (!fnPrivacyCheck(form.nttSj.value)) { // 제목 + return false; + } + if (!fnPrivacyCheck(form.nttCn.value)) { // 내용 + return false; + } + //input item Client-Side validate if (!validateArticleVO(form)) { return false; } else { + var validateForm = document.getElementById("articleVO"); - //비밀글은 제목 진하게 할 수 없음. - //비밀글은 익명게시 불가. //비밀글은 공지게시 불가. if (validateForm.secretAt.checked) { - if (validateForm.sjBoldAt.checked) { - alert("<spring:message code="comCopBbs.articleVO.secretBold" />"); - return; - } - if (validateForm.anonymousAt.checked) { - alert("<spring:message code="comCopBbs.articleVO.secretAnonymous" />"); - return; - } if (validateForm.noticeAt.checked) { alert("<spring:message code="comCopBbs.articleVO.secretNotice" />"); return; @@ -143,10 +117,18 @@ } if (confirm("<spring:message code="common.regist.msg" />")) { + form.action = "<c:url value='/cop/bbs/${reBbsId}/insertArticle.do'/>"; form.submit(); } } } +/* ******************************************************** + * 목록 으로 가기 + ******************************************************** */ +function fn_egov_inqire_articlelist() { + articleVO.action = "<c:url value='/cop/bbs/${reBbsId}/selectArticleList.do'/>"; + articleVO.submit(); +} </script> <!-- javascript warning tag --> @@ -154,63 +136,76 @@ <form:form commandName="articleVO" action="${pageContext.request.contextPath}/cop/bbs/${reBbsId }/insertArticle.do" method="post" onSubmit="fn_egov_regist_article(document.forms[0]); return false;" enctype="multipart/form-data"> <div class="inner"> - <!-- 타이틀 --> - <h2>${pageTitle} <spring:message code="title.create" /></h2><!-- 게시글 등록 --> - <div class="board_write"> <ul> - <!--제목--> - <li class="must"><strong class="title">제목</strong> + <!-- 입력 --> + <c:set var="inputTxt"><spring:message code="input.input" /></c:set> + <!-- 글 제목, 제목 Bold여부 --> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.nttSj"/> </c:set> + <li class="must"><strong class="title">${title }</strong> <div class="input_wrap"> <div class="text_show"> - <label for="title">제목을 입력해주세요</label> - <input type="text" class="inputText width100p" title="제목을 입력해주세요" id="title" > + <label for="nttSj">제목을 입력해주세요</label> + <form:input path="nttSj" class="inputText width100p" title="${title} ${inputTxt}" /> + <div><form:errors path="nttSj" cssClass="error" /></div> </div> </div> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.sjBoldAt"/> </c:set> <div class="input_option"> <div class="checkbox"> <div class="check"> - <input id="sjBoldAt1" name="sjBoldAt" type="checkbox" value="Y"> - <label for="sjBoldAt1">제목진하게</label> + <form:checkbox path="sjBoldAt" value="Y"/> + <div><form:errors path="sjBoldAt" cssClass="error" /></div> + <label for="sjBoldAt">${title }</label> </div> </div> </div> </li> <!--내용--> - <li><strong class="title">내용</strong> + <li class="must"><strong class="title">내용</strong> <div class="input_wrap"> - <textarea class="textArea width100p height400" id="text" title="내용을 입력해주세요"></textarea> + <div class="text_show"> + <textarea id="nttCn" name="nttCn" title="내용 입력" > + <c:if test="${not empty articleVO.nttCn}">${articleVO.nttCn}</c:if> + </textarea> + </div> </div> </li> - <!--공지등록--> - <li><strong class="title">공지등록</strong> + <!-- 공지신청 여부 --> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.noticeAt"/> </c:set> + <li><strong class="title">${title}</strong> <div class="input_wrap"> <div class="checkbox"> <div class="check"> - <input id="rhdwlremdfhr" name="rhdwlremdfhr" type="checkbox" value="Y"> - <label for="rhdwlremdfhr">공지등록</label> + <form:checkbox path="noticeAt" value="Y"/> + <div><form:errors path="noticeAt" cssClass="error" /></div> + <label for="noticeAt">${title}</label> </div> </div> </div> </li> - <!--비밀글--> - <li><strong class="title">비밀글</strong> + <!-- 비밀글 여부 --> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.secretAt"/> </c:set> + <li><strong class="title">${title }</strong> <div class="input_wrap"> <div class="checkbox"> <div class="check"> - <input id="qlalfrmf" name="qlalfrmf" type="checkbox" value="Y"> - <label for="qlalfrmf">비밀글</label> + <form:checkbox path="secretAt" value="Y"/> + <div><form:errors path="secretAt" cssClass="error" /></div> + <label for="secretAt">${title}</label> </div> </div> </div> </li> - <!--익명등록--> - <li><strong class="title">익명등록</strong> + <!-- 익명등록 여부 --> + <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.anonymousAt"/> </c:set> + <li><strong class="title">${title }</strong> <div class="input_wrap"> <div class="checkbox"> <div class="check"> - <input id="dlraudemdfhr" name="dlraudemdfhr" type="checkbox" value="Y"> - <label for="dlraudemdfhr">익명등록</label> + <form:checkbox path="anonymousAt" value="Y"/> + <div><form:errors path="anonymousAt" cssClass="error" /></div> + <label for="anonymousAt">${title}</label> </div> </div> </div> @@ -220,13 +215,13 @@ <div class="input_wrap"> <div class="date_wrap"> <div class="date"> - <input type="text" class="width120 inputText" id="date1" placeholder="0000-00-00"> - <label for="date1"><button class="btn_sq_l"><span class="icon-cal"></span></button></label> + <input type="text" class="width120 inputText datepicker" id="ntceBgnde" name="ntceBgnde" placeholder="0000-00-00"> + <label for="ntceBgnde"><span class="icon-cal"></span></label> </div> <em>~</em> <div class="date"> - <input type="text" class="width120 inputText" id="date2" placeholder="0000-00-00"> - <label for="date2"><button class="btn_sq_l"><span class="icon-cal"></span></button></label> + <input type="text" class="width120 inputText datepicker" id="ntceEndde" name="ntceEndde" placeholder="0000-00-00"> + <label for="ntceEndde"<span class="icon-cal"></span></label> </div> </div> </div> @@ -245,156 +240,84 @@ </div> </div> </li> - <!--이미지 첨부파일--> - <li><strong class="title">첨부파일</strong> - <div class="input_wrap file_up"> - <input type="file" class="inputFile" id="img-upload" title="파일첨부"> - <label class="btn_m bg_basic btn_file_up" for="img-upload" title="업로드 할 파일을 선택해주세요">파일업로드<span class="icon-file-up"></span></label> - </div> - <div class="file_list img_type"> - <div class="file_box bg_box"> <img src="/images/user/sample_writer.jpg" alt=""> - <p class="blind">파일명입니다</p> - <div class="btn_wrap"> - <button title="[파일명입니다]다운" class="btn_inner" value="삭제"><span class="icon-file-down"></span></button> - <button title="[파일명입니다]삭제" class="btn_inner" value="삭제"><span class="icon-delete"></span></button> + + <c:if test="${boardMasterVO.fileAtchPosblAt == 'Y'}"> + <li> + <strong class="board_label">첨부파일</strong> + <div class="file_up"> + <div> + <input name="file_1" id="egovComFileUploader" type="file" class="blind userUpload" title="<spring:message code="comCopBbs.articleVO.regist.atchFile"/>" multiple/><!-- 첨부파일 --> + <input type="hidden" id="atchFileId" name="atchFileId" value="" /> + <label for="egovComFileUploader" class="inputFile" title="업로드 할 파일을 선택해주세요">파일업로드<span class="icon-file"></span></label> </div> + <em class="exp filenote">※ 파일당 10MB까지 첨부 가능합니다.</em> + <ul class="file_list" id="egovComFileList"> + </ul> </div> - </div> - </li> + </li> + </c:if> </ul> </div> <!-- 하단 버튼 --> <div class="bottom_wrap between"> <div class="left"> - <button class="btn_l bg_basic" onClick="location.href='<c:url value='/cop/bbs/selectArticleList.do' />?bbsId=${boardMasterVO.bbsId}'" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></button><!-- 목록 --> + <button type="button" class="btn_l bg_basic" onClick="fn_egov_inqire_articlelist(); return false;" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></button><!-- 목록 --> </div> <div class="right"> <button type="submit" class="btn_l bg_basic" value="<spring:message code="button.create" />" title="<spring:message code="button.create" /> <spring:message code="input.button" />"><spring:message code="button.create" /></button><!-- 등록 --> </div> </div> - <!-- 다솜 ver --> - - <!-- 등록폼 --> - <table class="wTable" summary="<spring:message code="common.summary.list" arguments="${pageTitle}" />"> - <caption>${pageTitle } <spring:message code="title.create" /></caption> - <colgroup> - <col style="width: 20%;"> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - </colgroup> - <tbody> - <!-- 입력 --> - <c:set var="inputTxt"><spring:message code="input.input" /></c:set> - <!-- 글 제목, 제목 Bold여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.nttSj"/> </c:set> - <tr> - <th scope="row" class="must"><label for="nttSj">${title}</label></th> - <td class="left"> - <form:input path="nttSj" title="${title} ${inputTxt}" size="70" maxlength="70" /> - <div><form:errors path="nttSj" cssClass="error" /></div> - </td> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.sjBoldAt"/> </c:set> - <th><label for="sjBoldAt">${title}</label></th> - <td class="left"> - <form:checkbox path="sjBoldAt" value="Y"/> - <div><form:errors path="sjBoldAt" cssClass="error" /></div> - </td> - </tr> - <!-- 글 내용 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.nttCn"/> </c:set> - <tr> - <th scope="row" class="must"><label for="nttCn">${title }</label></th> - <td class="nopd" colspan="3"> - <form:textarea path="nttCn" title="${title} ${inputTxt}" cols="300" rows="20" /> - <div><form:errors path="nttCn" cssClass="error" /></div> - </td> - </tr> - - <!-- 공지신청 여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.noticeAt"/> </c:set> - <tr> - <th scope="row"><label for="noticeAt">${title}</label></th> - <td class="left" colspan="3"> - <form:checkbox path="noticeAt" value="Y"/> - <div><form:errors path="noticeAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 비밀글 여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.secretAt"/> </c:set> - <tr> - <th scope="row"><label for="secretAt">${title}</label></th> - <td class="left" colspan="3"> - <form:checkbox path="secretAt" value="Y"/> - <div><form:errors path="secretAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 익명등록 여부 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.anonymousAt"/> </c:set> - <tr> - <th scope="row"><label for="anonymousAt">${title}</label></th> - <td class="left" colspan="3"> - <form:checkbox path="anonymousAt" value="Y"/> - <div><form:errors path="anonymousAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 유효기간 설정 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.ntceDe"/> </c:set> - <tr> - <th scope="row"><label for="ntceBgnde">${title} </label></th> - <td class="left" colspan="3"> - <form:input path="ntceBgnde" title="${title} ${inputTxt}" size="70" maxlength="70" style="width:70px;" readonly="true" /> - &nbsp;~&nbsp;<form:input path="ntceEndde" title="${title} ${inputTxt}" size="70" maxlength="70" style="width:70px;" readonly="true" /> - <div><form:errors path="ntceBgnde" cssClass="error" /></div> - <div><form:errors path="ntceEndde" cssClass="error" /></div> - </td> - </tr> - - <c:if test="${boardMasterVO.fileAtchPosblAt == 'Y'}"> - <!-- 첨부파일 --> - <c:set var="title"><spring:message code="comCopBbs.articleVO.regist.atchFile"/></c:set> - <tr> - <th scope="row"><label for="file_1">${title}</label> </th> - <td class="nopd" colspan="3"> - <input name="file_1" id="egovComFileUploader" type="file" title="<spring:message code="comCopBbs.articleVO.regist.atchFile"/>" multiple/><!-- 첨부파일 --> - <div id="egovComFileList"></div> - </td> - </tr> - </c:if> - </tbody> - </table> - - <div class="btn"> - <input type="submit" class="s_submit" value="<spring:message code="button.create" />" title="<spring:message code="button.create" /> <spring:message code="input.button" />" /><!-- 등록 --> - <span class="btn_s"><a href="<c:url value='/cop/bbs/selectArticleList.do' />?bbsId=${boardMasterVO.bbsId}" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></a></span><!-- 목록 --> - </div> - + <input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>"/> + <input name="searchKeyword" type="hidden" value="${searchVO.searchKeyword}" /> + <input name="searchCondition" type="hidden" value="${searchVO.searchCondition}" /> + <input type="hidden" name="bbsTyCode" value="<c:out value='${boardMasterVO.bbsTyCode}'/>" /> + <input type="hidden" name="replyPosblAt" value="<c:out value='${boardMasterVO.replyPosblAt}'/>" /> + <input type="hidden" name="fileAtchPosblAt" value="<c:out value='${boardMasterVO.fileAtchPosblAt}'/>" /> + <input type="hidden" id="atchPosblFileNumber" name="atchPosblFileNumber" value="<c:out value='${boardMasterVO.atchPosblFileNumber}'/>" /> + <input type="hidden" name="atchPosblFileSize" value="<c:out value='${boardMasterVO.atchPosblFileSize}'/>" /> + <input type="hidden" name="blogId" value="<c:out value='${searchVO.blogId}'/>" /> + <input type="hidden" name="blogAt" value="<c:out value='${articleVO.blogAt}'/>"/> + <input type="hidden" name="cmd" value="<c:out value='save'/>"> + <input type="hidden" name="bbsId" value="<c:out value='${articleVO.bbsId}'/>"> </div> - - <input type="hidden" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>"/> - <input type="hidden" name="bbsTyCode" value="<c:out value='${boardMasterVO.bbsTyCode}'/>" /> - <input type="hidden" name="replyPosblAt" value="<c:out value='${boardMasterVO.replyPosblAt}'/>" /> - <input type="hidden" name="fileAtchPosblAt" value="<c:out value='${boardMasterVO.fileAtchPosblAt}'/>" /> - <input type="hidden" id="atchPosblFileNumber" name="atchPosblFileNumber" value="<c:out value='${boardMasterVO.atchPosblFileNumber}'/>" /> - <input type="hidden" name="atchPosblFileSize" value="<c:out value='${boardMasterVO.atchPosblFileSize}'/>" /> - <input type="hidden" name="blogId" value="<c:out value='${searchVO.blogId}'/>" /> - <input type="hidden" name="blogAt" value="<c:out value='${articleVO.blogAt}'/>"/> - <input type="hidden" name="cmd" value="<c:out value='save'/>"> - <input type="hidden" name="bbsId" value="<c:out value='${articleVO.bbsId}'/>"> </form:form> <!-- 첨부파일 업로드 가능화일 설정 Start..--> <script type="text/javascript"> -var maxFileNum = document.getElementById('atchPosblFileNumber').value; -if(maxFileNum==null || maxFileNum==""){ - maxFileNum = 3; -} -var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), maxFileNum ); -multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) ); -</script> +$(function() { + var atchPosblFileNumber = $('#atchPosblFileNumber').val(); + var atchPosblFileSize = $('#atchPosblFileSize').val(); + var options = { + fileListDivId : 'egovComFileList', + inputFileId : 'egovComFileUploader', + hiddenFileName : 'atchFileId', + txtAreaId : 'nttCn', + authorType : 'user', + maxSize: atchPosblFileNumber, + fileMaxSize: atchPosblFileSize + } + $('#nttCn').initEditor(options); + + /* 비밀글 설정시 비밀번호입력창 show */ + var $pwDiv = $('#pwDiv'); + $pwDiv.hide(function() { + if ($pwDiv.hasClass('blind')) { + $pwDiv.removeClass('blind'); + } + }); + $('#secretAt').on('change', function() { + var isChecked = $(this).is(":checked"); + + if (isChecked) { + $pwDiv.show(); + $('#password').focus(); + } else { + $pwDiv.hide(); + } + }); +}); + +</script> <!-- 첨부파일 업로드 가능화일 설정 End.-->
Add a comment
List