File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<%--
Class Name : EgovNoticeRegist.jsp
Description : 게시물 생성 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2009.03.24 이삼섭 최초 생성
2011.08.31 JJY 경량환경 버전 생성
author : 공통서비스 개발팀 이삼섭
since : 2009.03.24
--%>
<%@ 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"%>
<%@ taglib prefix="ckeditor" uri="http://ckeditor.com"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="ko">
<link href="/js/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<!-- <link rel="stylesheet" href="/direct/css/jquery.mCustomScrollbar.css" /> -->
<link rel="stylesheet" href="/direct/css/font.css">
<link rel="stylesheet" href="/direct/css/reset.css">
<link rel="stylesheet" href="/direct/css/nice-select.css">
<link rel="stylesheet" href="/direct/css/enroll_popup.css">
<script type="text/javascript" src="/js/calendar.js"></script>
<%-- <script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> --%>
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/EgovBBSMng.js' />"></script>
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
<script type="text/javascript" src="/js/audit/audit.common.js"></script>
<script src="<c:url value='/js/jquery.js' />"></script>
<validator:javascript formName="board" staticJavascript="false" xhtml="true" cdata="false" />
<!-- <script type="text/javascript" src="/se2/js/service/HuskyEZCreator.js" charset="utf-8"></script> -->
<script type="text/javascript">
$(document).ready(function(){
$('select').niceSelect();
var display = $('#bbsId').val();
if(display == "BBSMSTR_000000000222"){
$('#display').css("display", "none");
$('#display2').css("display", "none");
$('#display3').css("display", "none");
}
$(".option").each(function(i, t) {
var valueA = $(this).data("value");
if (valueA == "red") $(this).addClass("red");
else if (valueA == "blue") $(this).addClass("blue");
else if (valueA == "") $(this).addClass("black");
else $(this).addClass("yew");
})
$(".option").click(function() {
$(".current").removeClass().addClass("current");
var selVaue = $(this).data("value");
$(".current").addClass(selVaue+"_sel").addClass("curr_sel");
})
var objDragAndDrop = $(".file_upload_box");
$(document).on("dragenter",".file_upload_box",function(e){
e.stopPropagation();
e.preventDefault();
$(this).css('border', '2px solid #0B85A1');
});
$(document).on("dragover",".file_upload_box",function(e){
e.stopPropagation();
e.preventDefault();
});
$(document).on("drop",".file_upload_box",function(e){
$(this).css('border', '2px dotted #0B85A1');
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
handleFileUpload(files,objDragAndDrop); //파일업로드
});
$(document).on('dragenter', function (e){
e.stopPropagation();
e.preventDefault();
});
$(document).on('dragover', function (e){
e.stopPropagation();
e.preventDefault();
objDragAndDrop.css('border', '2px dotted #0B85A1');
});
$(document).on('drop', function (e){
e.stopPropagation();
e.preventDefault();
});
});
var _fileIdx = 0;
var _fileForm2 = new Array();
// 첨부파일 드래그앤드랍 핸들러
function handleFileUpload(files,obj) { //업로드 function
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = 50;
if($('#tbody_fiielist').find('tr').length + files.length > limitcount ){
alert("업로드 파일은 최대 50개 입니다.");
return ;
}
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다.");
return;
}
}
for (var i = 0; i < files.length; i++) {
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
// 첨부파일 드래그앤드랍 전송
function sendFileToServer(formData, obj , fileObj, _fileIdx) {
$('.upload_box_img').hide(); //list 박스 형식 변경
$('.upload_box_text').hide();
$('.uploaded_obj').show();
var tt = "";
var list_html = "";
list_html += '<tr class="tr_upload_'+tt+'">';
list_html += '<td class="Namefile"><img src="'+getfile_img(fileObj.name)+'" alt="" style="width:4%;">'+fileObj.name+'</td>';
list_html += '<td class="Datefile">'+getDate()+'</td>';
list_html += '<td class="Sizefile">'+getStrFileSize(fileObj.size)+'</td>';
list_html += '<td class="Delfile" style="text-align:center"><img src="/direct/img/upload_delect_img.png" alt="" onclick="delete_item(this, '+_fileIdx+')" style="width:17%;margin-left:-5px;"></td>';
list_html += '<input type="hidden" class="item_file_size" value="'+fileObj.size+'">';
list_html += '<input type="hidden" name="autItemIds" class="imsi" value="'+tt+'">';
list_html += '</tr>';
$('#tbody_fiielist').append(list_html);
}
/* 드래그앤드랍 파일제거 */
function delete_item(obj, fileIdx){
$(obj).closest("tr").remove();
_fileForm2.forEach(function(fobj, idx) {
if (fobj.name == ("file_" + fileIdx)) _fileForm2[idx] = "";
});
if($('.item_file_size').length == 0){
$('.upload_box_img').show();
$('.upload_box_text').show();
$('.uploaded_obj').hide();
}else{
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
//글 등록
function fn_egov_regist_notice() {
CKEDITOR.instances.nttCn.updateElement();
if (!validateBoard(document.board))
return;
var bbsId = $("#bbsId").val();
document.board.imsi.value = "N";
var url = document.board.bbsId.value;
var data = new FormData(document.board);
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/cop/bbs/insertBoardArticle.do?bbsId="+bbsId,
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
//if(status == 'success') // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.result == 'success'){
alert("저장에 성공했습니다 ")
location.href = "/cop/bbs/selectBoardList.do?bbsId="+url;
//window.self.close();
} else if(returnData.result == 'fail'){
alert("저장에 실패하였습니다.");
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
//글 임시저장
function fn_egov_imsi_notice() {
CKEDITOR.instances.nttCn.updateElement();
if (!validateBoard(document.board))
return;
document.board.imsi.value = "Y";
var url = document.board.bbsId.value;
var data = new FormData(document.board);
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: "/cop/bbs/insertBoardArticle.do",
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
//if(status == 'success') // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if(returnData.result == 'success'){
alert("임시저장에 성공했습니다 ")
location.href = "/cop/bbs/selectBoardList.do?bbsId="+url;
//window.self.close();
} else if(returnData.result == 'fail'){
alert("임시저장에 실패하였습니다.");
}
},
error: function (e) { alert("임시저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
function fn_egov_select_noticeList() {
document.searchForm.action = "<c:url value='/cop/bbs/selectBoardList.do'/>";
document.searchForm.submit();
}
function fn_egov_regist_preview() {
var PCC_window = window.open('', 'PCCV3Window', 'width=850, height=570, resizable=1, scrollbars=yes, status=0, titlebar=0, toolbar=0, left=350, top=50' );
var previewImgs = "";
var i = 0;
$("#DIV_IMG_VIEW").find("img").each(function() {
previewImgs += $(this).get(0).src + "^";
i++;
});
document.board.previewImgs.value = previewImgs;
document.board.action = "<c:url value='/cop/bbs/bbsPreview.do'/>";
document.board.target = "PCCV3Window";
document.board.submit();
}
/* 사용자 첨부파일 목록 삭제 */
function delete_reqFile(obj , fileSn){
if(!confirm("삭제하시겠습니까?")) return false;
$.ajax({
type: "POST",
url: "/cop/bbs/deleteFileList.do",
data:{ "atchFileId" : $("[name=atchFileId]").val(), "fileSn" : fileSn},
dataType:'jsonp',
cache: false,
async: false,
timeout: 600000,
success: function (returnData, status) {
if(returnData.result == 'fail'){
alert("삭제에 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
window.self.close() ;
}else if(returnData.result =='success'){
$(obj).closest("li").remove();
alert("삭제되었습니다.");
}
},
error: function (e) {
alert("삭제에 실패하였습니다.");
}
});
}
var gamsaOpener;
function orgChartPopup(){
gamsaOpener = window.open('', 'gamsaOpener', "width=793, height=500, left=30, top=130","location = no","status= no","toolbars= no");
document.board.method = "post";
document.board.action = "/uss/itsm/orgChart/OrgChartPopup.do";
document.board.target = "gamsaOpener" ;
document.board.submit();
}
function staffInfo(id , name){
var idArray =id.split(',');
var nameArray =name.split(',');
var tempHtml="";
for(var i in idArray){
tempHtml += "<div class='notice_person_box' id='"+idArray[i]+"' name='partIdx' value='"+idArray[i]+"' onclick='staffDel(\""+idArray[i]+"\")'>"
tempHtml += "#"+nameArray[i]+"<input type='button' class='notice_person_del'>"
tempHtml += "<input type='hidden' name='emplyrId' value='"+idArray[i]+"'>"
tempHtml += "</div>"
}
$('.notice_person_wrap').append(tempHtml);
}
function staffDel(id){
$("#"+id).remove();
}
</script>
<title><c:out value='${bdMstr.bbsNm}' /> - 글 등록</title>
<style>
.curr_sel{
position: relative;
padding-left: 10px
}
.black_sel{padding-left:0}
.select {
margin: 400px;
}
.colorDiv {
width: 15px;
height: 15px;
border-radius: 100px;
position: absolute;
}
.list li {
position: relative;
}
.red:after {
content: " ";
width: 14px;
height: 14px;
color: #ff0000;
background-color: #ff0000;
position: absolute;
border-radius: 100px;
top: 14px;
left: 6px;
}
.blue:after {
content: " ";
width: 14px;
height: 14px;
color: #1985ff;
background-color: #1985ff;
position: absolute;
border-radius: 100px;
top: 14px;
left: 6px;
}
.yew:after {
content: " ";
width: 14px;
height: 14px;
color: #ffcc19;
background-color: #ffcc19;
position: absolute;
border-radius: 100px;
top: 14px;
left: 6px;
}
.red_sel:after {
content: " ";
width: 14px;
height: 14px;
color: #ff0000;
background-color: #ff0000;
position: absolute;
border-radius: 100px;
top: 3px;
left: -11px;
}
.blue_sel:after {
content: " ";
width: 14px;
height: 14px;
color: #1985ff;
background-color: #1985ff;
position: absolute;
border-radius: 100px;
top: 3px;
left: -11px;
}
.yew_sel:after {
content: " ";
width: 14px;
height: 14px;
color: #ffcc19;
background-color: #ffcc19;
position: absolute;
border-radius: 100px;
top: 3px;
left: -11px;
}
.option{
padding-left: 25px !important;
}
</style>
</head>
<body>
<div class="cont_area">
<div class="cont_main_title">
<img src="/direct/img/home_icon.png" alt="">
<span id="cnt_cate_list"></span>
 > 글 등록
</div>
<div class="list_wrap setting_list_wrap">
<form:form commandName="searchForm" name="searchForm" method="get" action="">
<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='${searchVO.bbsId}'/>" />
</form:form>
<form:form commandName="board" name="board" id="board" method="post" enctype="multipart/form-data">
<input type="hidden" name="bbsId" id="bbsId" value="<c:out value='${bdMstr.bbsId}'/>" />
<input type="hidden" name="nttId" value="<c:out value='${board.nttId}'/>" />
<input type="hidden" name="atchFileId" value="<c:out value='${board.atchFileId}'/>" />
<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="previewImgs" value="" />
<input type="hidden" name="imsi" value="" />
<table class="NoticeRtable">
<tr>
<th>
<spring:message code="cop.nttSj" var="msgNttSj" />
<span class="star_t"></span>
<c:out value="${msgNttSj}" />
</th>
<td colspan="3">
<form:input path="nttSj" title="${msgNttSj}" />
<form:errors path="nttSj" />
</td>
</tr>
<!-- 글내용 -->
<tr>
<th>
<span class="star_t"></span><spring:message code="cop.nttCn" />
</th>
<td colspan="3">
<form:textarea path="nttCn" class="textarea" cols="500" rows="20" />
<ckeditor:replace replace="nttCn" basePath="${pageContext.request.contextPath}/html/egovframework/com/cmm/utl/ckeditor/" />
<form:errors path="nttCn" />
</td>
</tr>
<!-- 글내용 -->
<c:if test="${not empty board.atchFileId}">
<tr>
<th>첨부파일목록</th>
<td colspan="3">
<c:forEach var="fileVO" items="${FileList}" varStatus="status">
<li>
<c:out value="${fileVO.orignlFileNm}"/>
[<c:out value="${fileVO.fileMg}"/> byte]
<button type="button" style="border:none; vertical-align: middle; background: url(/direct/img/complanint/user_del.png) no-repeat center center;
margin-top: -1px; height: 27px;"
class="file_del_btn" onclick="delete_reqFile(this, '<c:out value="${fileVO.fileSn}"/>');"></button>
</li>
</c:forEach>
</td>
</tr>
</c:if>
<!-- 파일첨부 -->
<c:if test="${bdMstr.fileAtchPosblAt == 'Y'}">
<tr>
<th>
파일첨부
</th>
<td colspan="3" style="height:173px;vertical-align:top;">
<div class="file_upload_box" style="display:;">
<img class="upload_box_img" src="/direct/img/upload_img.png" alt="" style="padding:70px 0;">
<div class="upload_box_text">
<span class="file_upload_text_1">첨부파일 올리기</span>
<span class="file_upload_text_2">(파일을 끌어다 놓으세요)</span>
</div>
<table class="uploaded_obj" style="display:none;">
<thead>
<tr>
<th class="Namefile">파일명</th>
<th class="Datefile">등록일시</th>
<th class="Sizefile">크기</th>
<th class="Delfile">삭제</th>
</tr>
</thead>
</table>
<div class="file_list uploaded_obj" style="display:none;width:102.5%;">
<table style="display:block">
<tbody id="tbody_fiielist" style="display:block">
</tbody>
</table>
</div>
<table class="uploaded_obj" style="display:none;">
<tfoot>
<tr>
<td>최대 <span class="upload_number">50</span>개 | <span class="upload_number">50MB(개당)</span> 제한</td>
<td><span class="upload_number totalfileCount">3</span>개 | <span class="upload_number totalfileSize">3.75</span></td>
</tr>
</tfoot>
</table>
</div>
</td>
</tr>
</c:if>
<!-- 파일첨부 -->
<!-- 공지신청 여부 -->
<c:choose>
<c:when test="${bdMstr.noticeYn == 'Y' }">
<c:set var="title">상단노출</c:set>
<tr>
<th>
<label for="noticeAt">${title}</label>
</th>
<td class="left" colspan="3">
<form:checkbox path="noticeAt" class="cb1" value="Y" style="display: inline-block; width: 20px; height: 20px; border: 1px solid #bcbcbc; cursor: pointer;" />
<form:errors path="noticeAt" cssClass="error" />
<select name="noticeCol" id="noticeCol">
<option value="red">
빨강
</option>
<option value="blue">
파랑
</option>
<option value="yew">
노랑
</option>
<option value="">
선택없음
</option>
</select>
</td>
</tr>
</c:when>
<c:otherwise>
<form:hidden path="noticeAt" value="N" />
</c:otherwise>
</c:choose>
<!-- 공지신청 여부 -->
<!-- 비밀글 여부 -->
<c:choose>
<c:when test="${bdMstr.openYn == 'Y' && bdMstr.bbsTyCode != 'BBST02' && bdMstr.bbsTyCode != 'BBST03'}">
<c:set var="title">게시공지</c:set>
<tr>
<th>
<label for="secretAt">${title}</label>
</th>
<td colspan="3"">
<%-- <form:checkbox path="secretAt" class="cb1" value="Y" style="display: inline-block; width: 20px; height: 20px; border: 1px solid #bcbcbc; cursor: pointer;"/> --%>
<%-- <form:errors path="secretAt" cssClass="error" /> --%>
<input type="radio" name="secretAt" id="cb1" value="N" <c:if test="${board.secretAt != 'Y'}">checked="checked"</c:if>>
<label for="cb1"></label><label for="cb1">공지</label>
<input type="radio" name="secretAt" id="cb2" value="Y" <c:if test="${board.secretAt == 'Y'}">checked="checked"</c:if>>
<label for="cb2"></label><label for="cb2">공지하지 않음</label></li>
</td>
</tr>
</c:when>
<c:otherwise>
<form:hidden path="secretAt" value="N" />
</c:otherwise>
</c:choose>
<!-- 비밀글 여부 끝 -->
<!-- 공지 범위 -->
<c:set var="title">공지범위</c:set>
<tr style="display: " id="display3">
<th>
<label for="secretAt">${title}</label>
</th>
<td colspan="3"">
<input type="radio" name="targetAll" id="all1" value="Y" <c:if test="${board.targetAll != 'N'}">checked="checked"</c:if>>
<label for="all1"></label><label for="all1">전체</label>
<input type="radio" name="targetAll" id="all2" value="N" <c:if test="${board.targetAll == 'N'}">checked="checked"</c:if>>
<label for="all2"></label><label for="all2">공지대상만</label></li>
</td>
</tr>
<!-- 공지 범위 끝 -->
<!-- 공지대상 -->
<c:set var="title">공지대상</c:set>
<tr style="display: " id="display">
<th >
<label for="secretAt">${title}</label>
</th>
<td colspan="3">
<div class="notice_person_wrap">
<c:forEach var="noticeList" items="${noticeList}" varStatus="status">
<div class="notice_person_box" id='${noticeList.noticeId}'>
<c:out value="${noticeList.userNm}"/><input type="button" class="notice_person_del" onclick="staffDel('${noticeList.noticeId}')">
<input type='hidden' name='emplyrId' value='${noticeList.emplyrId}'>
</div>
</c:forEach>
</div>
<input type="button" class="notice_person_serch" value="검색" onclick="orgChartPopup()">
</td>
</tr>
<c:set var="title">메일알림</c:set>
<tr id="display2">
<th>
<div>${title}</div>
</th>
<td colspan="3">
<input type="radio" name="mailYn" id="ccb1" value="Y" <c:if test="${board.mailYn != 'N'}">checked="checked"</c:if> />
<label for="ccb1"></label><label for="ccb1">알림</label>
<input type="radio" name="mailYn" id="ccb2" value="N" <c:if test="${board.mailYn == 'N'}">checked="checked"</c:if>/>
<label for="ccb2"></label><label for="ccb2">알림 없음</label>
<input type="radio" name="mailYn1" style="display: none;" value="N" checked="checked" />
</td>
</tr>
<%-- </c:if> --%>
<!-- 메일알림 -->
</table>
</form:form>
</div>
<div class="setting_btn">
<input type="button" value="목록" class="list_btn" onclick="javascript:fn_egov_select_noticeList(); return false;">
<input type="button" value="임시저장" class="password_change_btn" onclick="javascript:fn_egov_imsi_notice(); return false;">
<input type="button" value="등록" class="edit_btn" onclick="javascript:fn_egov_regist_notice(); return false;">
</div>
</div>
<!-- //content 끝 -->
</body>
</html>