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
<%@ 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 prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ckeditor" uri="http://ckeditor.com"%>
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<title>연도별 교육계획 등록</title>
<link rel="stylesheet" href="/direct/css/font.css">
<link rel="stylesheet" href="/direct/css/reset.css">
<link rel="stylesheet" href="/direct/css/enroll_popup.css">
<link rel="stylesheet" href="/direct/css/file_upload_2.css">
<script src="/direct/js/jquery-1.11.3.min.js"></script>
<script src="/direct/js/jquery-ui.min.js"></script>
<script src="/direct/js/script.js"></script>
<script src="/direct/js/popup_open_2.js"></script>
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javascript" src="/js/audit/audit.common.js"></script>
<%@ taglib prefix="ckeditor" uri="http://ckeditor.com"%>
<script type="text/javaScript" language="javascript">
$( document).ready(function() {
set_file_image(); //파일 이미지 세팅
if("${userCheck.authorCode}" != "ROLE_ADMIN"){
if("${loginVO.id}" != "${eduVO.frstRegisterId}"){
$("input").prop("readonly", true);
$("#autCnTextarea").css("display", "none");
}else{
$("#autCnOut").css("display", "none");
}
}else{
$("#autCnOut").css("display", "none");
}
/* 저장,수정 버튼 클릭시 */
$("#audit_save_btn").click(function (event){
var frm = document.writeForm;
CKEDITOR.instances.autCn.updateElement();
if(frm.autSj.value ==""){
alert("제목은 필수 값입니다.");
return;
}
frm.imsi.value = 'N' ;
$("#audit_update_btn").trigger("click") ;
});
/* 화면에는 숨겨져 있으나 실제 임시저장, 저장, 수정 모두 처리된다. */
$("#audit_update_btn").click(function (event){
event.preventDefault();
var frm = document.writeForm;
if(frm.autSj.value ==""){
alert("제목은 필수 값입니다.");
return;
}
var logCmd = ""; //로그 구분
if($('#pageType').val() == "New"){
logCmd = "eduI" ;
}else if($('#pageType').val() == "Modify"){
logCmd = "eduU" ;
}
setButtonDisableEvent("T") ;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/uss/itsm/edu/EduUpdateAjax.do?logCmd="+logCmd,
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("저장에 실패하였습니다.");
setButtonDisableEvent("F") ;
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}else if(returnData.result =='success'){
if(opener !=null){
opener.location.reload();
}
if($('#imsi').val()=='Y'){
alert("임시 저장되었습니다.");
setButtonDisableEvent("F") ;
}else{
alert("저장되었습니다.");
window.self.close() ;
}
}
}else{
alert("저장에 실패하였습니다.");
setButtonDisableEvent("F") ;
}
},
error: function (e) {
console.log("ERROR : ", e);
setButtonDisableEvent("F") ;
alert("저장에 실패하였습니다.");
}
});
});
/*삭제,취소 버튼 클릭시*/
$("#auth_delete_btn").click(function (event){
if(!confirm("삭제하시겠습니까?")){
return false;
}
event.preventDefault();
var frm = document.writeForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/uss/itsm/edu/EduDeleteAjax.do?logCmd=eduDel",
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("저장에 실패하였습니다.");
setButtonDisableEvent("F") ;
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}else if(returnData.result =='success'){
if(opener !=null){
opener.location.reload();
}
if($('#auth_delete_btn').attr("buttonType") == "Cancel"){
alert("취소되었습니다.");
}else{
alert("삭제되었습니다.");
}
window.self.close() ;
}
}else{
alert("저장에 실패하였습니다.");
setButtonDisableEvent("F") ;
}
},
error: function (e) {
console.log("ERROR : ", e);
setButtonDisableEvent("F") ;
alert("저장에 실패하였습니다.");
}
});
});
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();
});
$(function() {
$('#egovComFileUploader').change(function(e){
var objUpload = $(".file_upload_box");
var files = $("#egovComFileUploader")[0].files;
handleFileUpload(files,objUpload); //파일업로드
});
});
function handleFileUpload(files,obj) //업로드 function
{
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = 50;
if($('.item_file_size').length + files.length + $('#tbody_fiielist').find('tr').length > limitcount ){
//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 ;
}
var pathname = files[i].name;
var ext = pathname.split('.').pop().toLowerCase();
if(".ppt.pptx.xls.pdf.hwp.txt.gif.jpg.jpeg.png.zip".indexOf(ext) != -1 ){
}else{
alert("업로드가 불가능한 확장자 입니다.");
return;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
sendFileToServer(fd, obj, files[i]);
var totalfileSize = 0;
$('.totalfileCount').text($('.upload_file_size').length) ;
$('.upload_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
function sendFileToServer(formData, obj , fileObj)
{
if("${userCheck.authorCode}" != "ROLE_ADMIN"){
if("${loginVO.id}" != "${eduVO.frstRegisterId}"){
alert("글 등록한 계정만 파일첨부 가능합니다.");
return
}
}
formData.append('autId', '${eduVO.autId}'); //데이터 추가
formData.append('autKinds', '${auditItemVO.autKinds}');
formData.append('autFlag', '${auditItemVO.autFlag}');
var uploadURL = "/uss/itsm/edu/EduFileUploadExe.do"; //Upload URL
var extraData ={}; //Extra Data.
var jqXHR=$.ajax({
xhr: function() {
var xhrobj = $.ajaxSettings.xhr();
if (xhrobj.upload) {
xhrobj.upload.addEventListener('progress', function(event) {
var percent = 0;
var position = event.loaded || event.position;
var total = event.total;
if (event.lengthComputable) {
percent = Math.ceil(position / total * 100);
}
}, false);
}
return xhrobj;
},
url: uploadURL,
type: "POST",
dataType:'jsonp',
contentType:false,
processData: false,
cache: false,
data: formData,
async: false,
success: function(returnData , status){
if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
}else if(returnData.result == 'success'){
$('.upload_box_img').hide(); //list 박스 형식 변경
$('.upload_box_text').hide();
$('.uploaded_obj').show();
var list_html = "";
list_html += '<tr class="tr_upload_'+returnData.auditItemVO.autItemId+'">';
list_html += '<td class="file_check">-</td>';
list_html += '<td class="file_title"><img src="'+getfile_img(fileObj.name)+'" alt=""><div class="eva_file_name">'+fileObj.name+'</div></td>';
list_html += '<td class="file_enroll_date">'+getDate()+'</td>';
list_html += '<td class="fileSize">'+getStrFileSize(fileObj.size)+'</td>';
list_html += '<td class="file_del"><img src="/direct/img/upload_delect_img.png" alt="" onclick="delete_item(\''+returnData.auditItemVO.autItemId+'\' , \'tr_upload_\', \ this\); return false;"></td>';
list_html += '<input type="hidden" class="upload_file_size" value="'+fileObj.size+'">';
list_html += '<input type="hidden" name="autItemIds" value="'+returnData.auditItemVO.autItemId+'">';
list_html += '</tr>';
$('#tbody_fiielist').append(list_html);
}
}
});
}
<c:if test="${not empty auditItemFileList}">
$('.upload_box_img').hide();
$('.upload_box_text').hide();
$('.uploaded_obj').show();
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
var fileSize = 0;
$('.item_file_size').each(function(){
fileSize += $(this).find('.fileSize').text()*1 ;
$(this).find('.fileSize').text(getStrFileSize($(this).find('.fileSize').text()*1));
});
$('.totalfileSize').text(getStrFileSize(fileSize)) ;
</c:if>
<c:if test="${empty auditItemFileList}">
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)) ;
}
</c:if>
});
/* 첨부파일 삭제버튼 클릭시 */
function delete_item(itemId , delObject, obj){ //this로 스스로 전송한 객체를 obj로 받는다
if(!confirm("삭제하시겠습니까?")){
return false;
}
event.preventDefault();
$.ajax({
type: "POST",
url: "/uss/itsm/edu/SciTecAuditItemDeleteAjax.do",
data:{ "autItemId" : itemId}, //autItemId가 원래 del이였으나 위 컨트롤러url 변경하면서 autItemId로 변경
dataType:'jsonp',
cache: false,
async: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("삭제에 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
window.self.close() ;
}else if(returnData.result =='success'){
//obj.id = 삭제이미지의 id. tr_+obj.id = tr의 id. 이미지의 id를 이용해 tr의 아이디를 구함
var tr = $("#tr_"+obj.id);
console.log("#obj.id");
console.log(obj.id);
console.log("#tr_"+obj.id);
tr.remove();
$('.'+delObject+itemId).remove();
}
}else{
alert("삭제에 실패하였습니다.");
}
},
error: function (e) {
alert("");
alert("삭제에 실패하였습니다.");
setButtonDisableEvent("F") ;
}
});
if($('.upload_file_size').length == 0){
$('.upload_box_img').show();
$('.upload_box_text').show();
$('.uploaded_obj').hide();
}else{
var totalfileSize = 0;
$('.totalfileCount').text($('.upload_file_size').length) ;
$('.upload_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
/* 버튼 이벤트 설정 */
function setButtonDisableEvent(flag){
if(flag == 'T'){
$("#audit_btn_imsi").prop("disabled", true);
$("#audit_save_btn").prop("disabled", true);
$("#auth_delete_btn").prop("disabled", true);
}else{
$("#audit_btn_imsi").prop("disabled", false);
$("#audit_save_btn").prop("disabled", false);
$("#auth_delete_btn").prop("disabled", false);
}
}
/* 첨부파일 다운로드 버튼 클릭시 */
function file_download(){
var checkbox_check = false;;
$('input:checkbox[name="atchFileId"]').each(function(){
if($(this).is(":checked")){
checkbox_check = true;
}
});
if(!checkbox_check){
alert("선택된 항목이 없습니다.");
return false;
}
//다운로드 항목이 1개 일때 기존의 다운로드(알집형식이 아닌)
// if($('input:checkbox[name="atchFileId"]:checked').length < 2){
// $('input:checkbox[name="atchFileId"]').each(function(){
// if($(this).is(":checked")){
// window.open("/cmm/fms/ItsmFileDown.do?atchFileId="+$(this).val()+"&fileSn=0");
// }
// });
// }else{
//다운로드 항목이 2개 이상일때 알집형식으로 다운로드
var checkboxId = Array();
var checkboxCnt = 0;
var checkbox = $(".checkboxClass");
for(i=0; i<checkbox.length; i++){
if(checkbox[i].checked == true){
checkboxId[checkboxCnt] = checkbox[i].value;
checkboxCnt++;
}}
var frm = document.writeForm
window.opener.name="parentPage";
frm.target = "parentPage";
frm.action="/cmm/fms/eduFileDownZip.do?atchFileId="+checkboxId;
frm.submit();
// }
}
function set_file_image(){
/* class^= 는 클래스의 요소마다 */
$("[class^='fileImg_']").each(function(){
$($(this).find("img")).attr("src" , getfile_img($(this).text().trim())) ;
});
}
/* 첨부파일 최상단 체크버튼 클릭시 */
function total_check(object, codeId){
if($(object).is(':checked')){
$('.file_upload_box').find('input[type=checkbox]').prop("checked", true);
}else{
$('.file_upload_box').find('input[type=checkbox]').prop("checked", false);
}
}
/* 첨부파일 단일 다운로드 */
function downItsmFile(atchFileId, fileSn){
window.open("/cmm/fms/ItsmFileDown.do?atchFileId="+atchFileId+"&fileSn=0");
}
</script>
</head>
<body>
<form name="writeForm" method="post" >
<input type="hidden" name="selectedId" />
<input type="hidden" name="autId" value="${eduVO.autId}"/>
<input type="hidden" name="del" value="${eduVO.autId}" />
<input type="hidden" name="autCd" value="${eduVO.autCd}" />
<input type="hidden" name="AutKinds" value="${auditItemVO.autKinds}" />
<input type="hidden" name="autStrPnttm" />
<input type="hidden" name="autEndPnttm" />
<input type="hidden" name="autFlag" />
<input type="hidden" name="autConFlag" value="${eduVO.autConFlag}"/>
<input type="hidden" name="autItemId" value="${result.autItemId}"/>
<input type="hidden" name="pageType" id="pageType" value="${eduVO.pageType}" />
<input type="hidden" name="pageReload" value="Y" /> <!-- 페이지 리로드를 위한 변수 -->
<input type="hidden" name="imsi" />
<input type="hidden" name="clCode" value="${eduVO.clCode}"/><!-- 첨부파일종류 -->
<input type="hidden" name="frstRegistPnttm" value="${eduVO.frstRegistPnttm}"/>
<div class="enroll_popup edu_popup">
<div class="enroll_popup_title">
<img src="/direct/img/enroll_popup_title_bg.png" alt=""> 연도별 교육계획 등록
</div>
<div class="add_edu_plan">
<div class="enroll_input_left">
<ul>
<li>
<div class="enroll_input_title">제  목</div>
<input type="text" class="edu_name" name="autSj" id="autSj" value="<c:out value="${eduVO.autSj}" escapeXml="true" />" placeholder="제목을 입력하세요" maxlength="600">
</li>
<li id="autCnTextarea" >
<textarea name="autCn" id="autCn"><c:out value="${eduVO.autCn}" escapeXml="true" /></textarea>
<ckeditor:replace replace="autCn" basePath="${pageContext.request.contextPath}/html/egovframework/com/cmm/utl/ckeditor/"/>
</li>
<li id="autCnOut">
<c:out value="${eduVO.autCn}" escapeXml="false"></c:out>
</li>
<li>
</li>
<li>
<div class="enroll_input_title input_file_title">첨부파일
<td colspan="3">
<c:if test="${userCheck.authorCode eq 'ROLE_ADMIN' || eduVO.frstRegisterId eq loginVO.id}">
<input name="file_1" id="egovComFileUploader" type="file" /><label for="egovComFileUploader"><img src="/direct/img/add_file_btn.png">파일찾기</label>
<script>
</script>
</c:if>
</td>
</div>
<input type="button" value="다운로드" onclick="file_download(this); return false;" class="file_down">
</li>
</form>
<form>
<li>
<div class="file_upload_box" >
<img class="upload_box_img" src="/direct/img/upload_img.png" alt="">
<div class="upload_box_text" >
<span class="file_upload_text_1">첨부파일 올리기</span>
<span class="file_upload_text_2">(파일을 끌어다 놓으세요)</span>
</div>
<table class="uploaded_obj" >
<thead>
<tr>
<th class="file_check"><input type="checkbox" id="all" onclick="total_check(this);"><label for="all"></label></th>
<th class="file_title">파일명</th>
<th class="file_enroll_date">등록일시</th>
<th class="fileSize">크기</th>
<c:if test="${userCheck.authorCode eq 'ROLE_ADMIN' || eduVO.frstRegisterId eq loginVO.id}">
<th class="file_del">삭제</th>
</c:if>
</tr>
</thead>
<tbody id="tbody_fiielist" >
<c:forEach var="result" items="${auditItemFileList}" varStatus="status">
<tr class="item_file_size" id="tr_${result.autItemId}">
<input type="hidden" class="upload_file_size" value="${result.fileSize}">
<td class="file_check"><input type="checkbox" name="atchFileId" value="${result.atchFileId}" id="file_sort_each_${result.autItemId}" class="checkboxClass">
<label for="file_sort_each_${result.autItemId}"></label></td>
<%-- <td class="file_title fileImg_${result.autItemId}"> --%>
<td class="fileImg_${result.autItemId} file_title">
<img src="/direct/img/enroll_jpg_file.png" alt="">
<a href="javascript:downItsmFile('<c:out value="${result.atchFileId}"/>','0')">
<c:out value="${result.orignlFileNm}"/>
</a>
</td>
<td class="file_enroll_date"><c:out value="${result.frstRegistPnttm}"/></td>
<td class="upload_number fileSize">
<c:out value="${result.fileSize}"/>
</td>
<c:if test="${userCheck.authorCode eq 'ROLE_ADMIN' || eduVO.frstRegisterId eq loginVO.id}">
<td class="file_del"><!-- this를 이용해 스스로를 전송(img는 객체) -->
<img src="/direct/img/upload_delect_img.png" id="${result.autItemId}" alt="" onclick="delete_item('${result.autItemId}' , 'tr_upload_', this); return false;">
</td>
</c:if>
</tr>
</c:forEach>
</tbody>
<div class="file_list uploaded_obj" style="display:none;">
<tbody id="tbody_fiielist">
</tbody>
</div>
<tfoot>
<tr>
<td>최대 <span class="upload_number">50</span>개 | <span class="upload_number">50MB(개당)</span> 제한</td>
<td style="padding-left:266px;"><span class="upload_number totalfileCount"></span>개 | <span class="upload_number totalfileSize">3.75</span></td>
</tr>
</tfoot>
</table>
</div>
</li>
</ul>
</div>
</div>
<div class="upload_btns">
<c:if test="${eduVO.pageType eq 'New'}"> <!-- 이벤트를 2번 타게 되있어서 onclick에 insert_confirm(); return false; 주석처리 -->
<input type="button" class="main1_btn main1_save_btn" buttonType="${eduVO.pageType}" id="audit_save_btn" onclick="" value="등 록 " />
<input type="button" class="main1_btn main1_delete_btn" buttonType="Cancel" id="auth_delete_btn" value="취 소" />
</c:if>
<c:if test="${eduVO.pageType eq 'Imsi'}">
<input type="button" class="main1_btn main1_save_btn" buttonType="${eduVO.pageType}" id="audit_save_btn" onclick="" value="저 장" />
<input type="button" class="main1_btn main1_delete_btn" buttonType="Cancel" id="auth_delete_btn" value="취 소" />
</c:if>
<c:if test="${eduVO.pageType eq 'Modify'}">
<c:if test="${userCheck.authorCode eq 'ROLE_ADMIN' || eduVO.frstRegisterId eq loginVO.id}">
<input type="button" class="main1_btn main1_save_btn" buttonType="${eduVO.pageType}" id="audit_save_btn" onclick="" value="수 정" />
<input type="button" class="main1_btn main1_delete_btn" buttonType="Delete" id="auth_delete_btn" value="삭 제">
</c:if>
</c:if>
<input type="button" class="main1_btn main1_save_imsi_btn" id="audit_update_btn" style="display:none;" />
</div>
</div>
</div>
</form>
</body>
</html>