diff --git a/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java index 5d33b7ff..cf5af5c2 100644 --- a/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java +++ b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java @@ -139,7 +139,6 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements NotifyManageVO notifyManageVO = new NotifyManageVO(); - notifyManageVO.setCmmNotifyOrd(veaCmmNotifyOrdGnrService.getNextStringId()); notifyManageVO.setLctrDivCd(lctrDivCd); notifyManageVO.setNotifyCn("["+loginVO.getId()+"] 교육신청을 하였습니다."); String notifyPath = ""; @@ -150,6 +149,7 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements notifyManageVO.setEduAplctOrd(eduAplctOrd); notifyManageVO.setFrstRegisterId(loginVO.getUniqId()); for(NotifyManageVO vo : notifyManageListVO) { + notifyManageVO.setCmmNotifyOrd(veaCmmNotifyOrdGnrService.getNextStringId()); notifyManageVO.setToUserId(vo.getMngUserId()); notifyManageDAO.insertNotifyInfo(notifyManageVO); } diff --git a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/web/ExprnClsrmAplctController.java b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/web/ExprnClsrmAplctController.java index 5d9ac14d..56403dea 100644 --- a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/web/ExprnClsrmAplctController.java +++ b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/web/ExprnClsrmAplctController.java @@ -189,20 +189,6 @@ public class ExprnClsrmAplctController { detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO); model.addAttribute("detailVO", detailVO); - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - - VEPrcsDetailVO info = vEPrcsAplctPrdService.selectPagingList(vEPrcsDetailVO).get(0); - model.addAttribute("info", info); - - //파일 정보 가져오기 - FileVO fileVO_cn = new FileVO(); - fileVO_cn.setAtchFileId(info.getCnAtchFileId()); - List result_cn = fileService.selectFileInfs(fileVO_cn); - model.addAttribute("fileList", result_cn); - model.addAttribute("fileListCnt", result_cn.size()); - - - return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide"; } @@ -560,11 +546,24 @@ public class ExprnClsrmAplctController { if(vEPrcsDetailVO != null) { model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm()); } - if("10".equals(Type) || "20".equals(Type)) { //type1 - 운영신청 + if("10".equals(Type)) { //type1 - 운영신청 //등록일이 과정신청기간에 포함 되는지 확인 - 신청기간에 포함되며 신청 단계의 경우 수정 기능 추가 int cnt = vEEduAplctService.selectCntAplctPrd(vEEduAplctVO); model.addAttribute("cnt", cnt); return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnAplctDashboard"; + }else if("20".equals(Type)) { //운영확정 - 교육신청 안내 공고 + + VEPrcsDetailVO detailVO = new VEPrcsDetailVO(); + detailVO.setLctrDivCd("30"); //저작권 체험교실 구분 값 + detailVO.setPrcsAplctPrdOrd(vEEduAplctVO.getPrcsOrd()); + detailVO.setUseYn("N"); //사용여부 상관없이 조회하기 위한 임시 플래그 값 + detailVO = vEPrcsAplctPrdService.selectDetailByOrd(detailVO); + if(detailVO == null) { //체험교실 시 신청시 신청안내 게시글이 삭제된 경우 최신 신청안내 글 조회 + detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO); + } + model.addAttribute("detailVO", detailVO); + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnConfirmDashboard"; + }else if("40".equals(Type)) { //서류제출 //거래선 파일 정보 가져오기 diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java index 0d8e2f4a..08639bcd 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java @@ -214,6 +214,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { private String prvtMemoCn; //비공개 메모 + private String oprtnAtchFileId; //체험교실 운영지침 안내 파일 ID + public String getEduPrcsOrd() { return eduPrcsOrd; } @@ -1042,6 +1044,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { public void setPrvtMemoCn(String prvtMemoCn) { this.prvtMemoCn = prvtMemoCn; } + public String getOprtnAtchFileId() { + return oprtnAtchFileId; + } + public void setOprtnAtchFileId(String oprtnAtchFileId) { + this.oprtnAtchFileId = oprtnAtchFileId; + } } diff --git a/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnAplctMng/web/OprtnAplctAnncmMngController.java b/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnAplctMng/web/OprtnAplctAnncmMngController.java index 0b526283..c1416245 100644 --- a/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnAplctMng/web/OprtnAplctAnncmMngController.java +++ b/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnAplctMng/web/OprtnAplctAnncmMngController.java @@ -245,7 +245,6 @@ public class OprtnAplctAnncmMngController { List result_cn = fileService.selectFileInfs(fileVO_cn); model.addAttribute("fileList", result_cn); model.addAttribute("fileListCnt", result_cn.size()); - return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail"; } @@ -329,6 +328,12 @@ public class OprtnAplctAnncmMngController { model.addAttribute("fileList_cn", result_cn); model.addAttribute("fileListCnt_cn", result_cn.size()); + FileVO fileVO_oprtn = new FileVO(); + fileVO_oprtn.setAtchFileId(info.getOprtnAtchFileId()); + List result_oprtn = fileService.selectFileInfs(fileVO_oprtn); + model.addAttribute("fileList_oprtn", result_oprtn); + model.addAttribute("fileListCnt_oprtn", result_oprtn.size()); + return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate"; } @@ -370,6 +375,9 @@ public class OprtnAplctAnncmMngController { String cnAtchFileId = ""; cnAtchFileId = vEPrcsDetailVO.getCnAtchFileId(); + + String oprtnAtchFileId = ""; + oprtnAtchFileId = vEPrcsDetailVO.getOprtnAtchFileId(); //DB에서 실제 첨부파일 존재 여부 확인 FileVO fileVO = new FileVO(); @@ -386,6 +394,13 @@ public class OprtnAplctAnncmMngController { cnAtchFileId = ""; } + FileVO oprtnFileVO = new FileVO(); + oprtnFileVO.setAtchFileId(oprtnAtchFileId); + List oprtnResult = fileService.selectFileInfs(oprtnFileVO); + if (oprtnResult.size()<=0) { + oprtnAtchFileId = ""; + } + //step3.파일 처리==================================== //파일 정상 처리 여부와 첨부 파일 정보 @@ -399,16 +414,22 @@ public class OprtnAplctAnncmMngController { int i_limit_size_cn = 100; // file MB String s_file_exts_cn = "jpg|jpeg|png|gif|bmp|pdf|doc|docx|xls|xlsx|ppt|pptx|hwp|txt"; // file exts + int i_file_limit_oprtn = 2; // file count + int i_limit_size_oprtn = 100; // file MB + String s_file_exts_oprtn = "jpg|jpeg|png|gif|bmp|pdf|doc|docx|xls|xlsx|ppt|pptx|hwp|txt"; // file exts final Map files = multiRequest.getFileMap(); Map files_ori = new HashMap(); Map files_cn = new HashMap(); + Map files_oprtn = new HashMap(); files.forEach((k,v) -> { if( k.contains("file_cn") || k.contains("file_temp_cn")) { files_cn.put(k, v); + }else if(k.contains("file_oprtn") || k.contains("file_temp_oprtn")){ + files_oprtn.put(k, v); }else { files_ori.put(k, v); } @@ -467,6 +488,28 @@ public class OprtnAplctAnncmMngController { if ("ERROR".equals(cnAtchFileId)) return modelAndView; + if ("".equals(oprtnAtchFileId)) { + oprtnAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom( + files_oprtn, modelAndView + , "ATCH_" + , s_file_exts_oprtn + , i_limit_size_oprtn + , i_file_limit_oprtn + ); //EXT, MB size and ea + vEPrcsDetailVO.setOprtnAtchFileId(oprtnAtchFileId); + }else { + oprtnAtchFileId = checkFileUtil.fileValCheckNdbUpdateCustom( + files_oprtn, modelAndView + , "ATCH_" + , s_file_exts_oprtn + , i_limit_size_oprtn + , i_file_limit_oprtn + , oprtnAtchFileId + ); //EXT, MB size and ea + } + + if ("ERROR".equals(cnAtchFileId)) return modelAndView; + //step3.파일 처리==================================== @@ -539,16 +582,25 @@ public class OprtnAplctAnncmMngController { int i_file_limit_cn = 50; // file count int i_limit_size_cn = 100; // file MB String s_file_exts_cn = "jpg|jpeg|png|gif|bmp|pdf|doc|docx|xls|xlsx|ppt|pptx|hwp|txt"; // file exts + + int i_file_limit_oprtn = 2; // file count + int i_limit_size_oprtn = 100; // file MB + String s_file_exts_oprtn = "jpg|jpeg|png|gif|bmp|pdf|doc|docx|xls|xlsx|ppt|pptx|hwp|txt"; // file exts + final Map files = multiRequest.getFileMap(); Map files_ori = new HashMap(); Map files_cn = new HashMap(); + Map files_oprtn = new HashMap(); files.forEach((k,v) -> { if( k.contains("file_cn") || k.contains("file_temp_cn")) { files_cn.put(k, v); + }else if(k.contains("file_oprtn") || k.contains("file_temp_oprtn")){ + files_oprtn.put(k, v); }else { files_ori.put(k, v); + } }); @@ -572,6 +624,16 @@ public class OprtnAplctAnncmMngController { if ("ERROR".equals(s_cnAtchFileId)) return modelAndView; + String s_oprtnAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom( + files_oprtn, modelAndView + , "ATCH_" //file_name_prefix + , s_file_exts_oprtn + , i_limit_size_oprtn + , i_file_limit_oprtn + ); //EXT, MB size and ea + + if ("ERROR".equals(s_cnAtchFileId)) return modelAndView; + //step2.파일 처리==================================== @@ -581,6 +643,7 @@ public class OprtnAplctAnncmMngController { String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID vEPrcsDetailVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일 vEPrcsDetailVO.setCnAtchFileId(s_cnAtchFileId); //안내 첨부파일 + vEPrcsDetailVO.setOprtnAtchFileId(s_oprtnAtchFileId); //운영 지침 안내 첨부파일 vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); diff --git a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml index 6791fd2a..d3263cac 100644 --- a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml @@ -79,6 +79,7 @@ ,a.edu_ddln_pnttm AS eduDdlnPnttm ,a.dprtm_nm AS dprtmNm ,a.cn_atch_file_id AS cnAtchFileId + ,a.oprtn_atch_file_id AS oprtnAtchFileId @@ -87,6 +88,7 @@ /* VEPrcsAplctPrdDAO.insert */ INSERT INTO ( + ,oprtn_atch_file_id )VALUES( @@ -119,6 +121,7 @@ ,#cnAtchFileId# ,#prcsCn# + ,#oprtnAtchFileId# ) @@ -242,6 +245,10 @@ , prcs_cn = #prcsCn# + + , oprtn_atch_file_id = #oprtnAtchFileId# + + WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd# @@ -540,7 +547,8 @@ ) AS atchFileNm, a.dprtm_nm AS dprtmNm , - a.cn_atch_file_id AS cnAtchFileId + a.cn_atch_file_id AS cnAtchFileId, + a.oprtn_atch_file_id AS oprtnAtchFileId FROM ve_prcs_aplct_prd a WHERE 1 = 1 @@ -1347,7 +1355,9 @@ a.anncm_cn AS anncmCn, a.popup_cn AS popupCn, a.atch_file_id AS atchFileId, + a.oprtn_atch_file_id AS oprtnAtchFileId, a.title AS title , + a.dprtm_nm AS dprtmNm, (SELECT orignl_file_nm FROM lettnfiledetail WHERE atch_file_id = a.atch_file_id LIMIT 1 @@ -1358,8 +1368,10 @@ AND a.lctr_div_cd=#lctrDivCd# + AND a.use_yn = 'Y' + AND a.prcs_aplct_prd_ord = #prcsAplctPrdOrd# ORDER BY a.strt_pnttm DESC diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail.jsp index 9cd0d28f..61ad80c0 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail.jsp @@ -341,7 +341,7 @@ -

작성자

+

담당부서

@@ -358,6 +358,17 @@ + + +

운영지침 첨부파일

+ + + + + + + + <%--

안내내용

diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg.jsp index fb20f50e..4d001e23 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngReg.jsp @@ -39,6 +39,9 @@ $("#filebutton_cn").on('click', function(){ $("#file_temp_cn").click(); }); + $("#filebutton_oprtn").on('click', function(){ + $("#file_temp_oprtn").click(); + }); //파일첨부관련 설정들=============================================== }); @@ -205,6 +208,10 @@ _fileForm2_cn.forEach(function(obj, idx) { if (obj) data.append("file_cn"+idx, obj.fileObj); }); + + _fileForm2_oprtn.forEach(function(obj, idx) { + if (obj) data.append("file_oprtn"+idx, obj.fileObj); + }); if(confirm("저장하시겠습니까?")){ var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngRegAjax.do"; @@ -712,6 +719,78 @@ + + + +

운영지침 첨부파일

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+

첨부하실 파일을 마우스로 끌어서 넣어주세요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+ + + "> + + "> + + +
+
+ + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate.jsp index 980b81a8..26c5114e 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate.jsp @@ -39,6 +39,9 @@ $("#filebutton_cn").on('click', function(){ $("#file_temp_cn").click(); }); + $("#filebutton_oprtn").on('click', function(){ + $("#file_temp_oprtn").click(); + }); //파일첨부관련 설정들=============================================== @@ -92,30 +95,7 @@ CHECK_NM = false; } - function fncAddUser(){ - var obj = $(".memList:first").clone(true); - /* - var len = $(".memList").length; - $.each(obj.find("input"), function(idx, objInput){ - objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']'); - console.log(objInput.name); - if(objInput.name.indexOf("memGrade") < 0){ - objInput.value = ''; - } - }); - obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2)); - obj.find("tr:last > td").text(""); - */ - $(".memList:last").after(obj); - } - function fncDelUser(){ - if($(".memList").length <= 1){ - alert("담당자은 최소1개가 존재해야합니다."); - }else{ - $(".memList:last").remove(); - } - } function fncSave(){ //ckediter @@ -179,6 +159,10 @@ _fileForm2_cn.forEach(function(obj, idx) { if (obj) data.append("file_cn"+idx, obj.fileObj); }); + + _fileForm2_oprtn.forEach(function(obj, idx) { + if (obj) data.append("file_oprtn"+idx, obj.fileObj); + }); if(confirm("저장하시겠습니까?")){ var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngMdfyAjax.do"; @@ -284,6 +268,7 @@ + @@ -723,6 +708,80 @@ + + + +

필수입력 항목*

+

운영지침 첨부파일

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+

첨부하실 파일을 마우스로 끌어서 넣어주세요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+ + + "> + + "> + + +
+
+ + + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnConfirmDashboard.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnConfirmDashboard.jsp new file mode 100644 index 00000000..05090d24 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnConfirmDashboard.jsp @@ -0,0 +1,55 @@ +<%@ page 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="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="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> + +<% pageContext.setAttribute("replaceChar", "\n"); %> + + + + + + + +
+
+

운영신청 안내

+
+ +
+
+

년 체험교실 운영 지침 안내

+
+

담당부서

+

등록일

+
+
+
+
+ + <%-- + + + --%> + + + + +
+
+
+
+
+ + <%-- --%> +
\ No newline at end of file diff --git a/src/main/webapp/js/web_common_custom.js b/src/main/webapp/js/web_common_custom.js index f9f8ba6f..6cf6b5b8 100644 --- a/src/main/webapp/js/web_common_custom.js +++ b/src/main/webapp/js/web_common_custom.js @@ -76,6 +76,49 @@ $(document).ready(function(){ //공통 js var printPopup ; printPopup= window.open("/offedu/tempPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n"); }); + + + + /*체험교실 안내 > 운영지침 첨부파일 관련*/ + + //파일업로드 드래그앤 드롭 + var objDragAndDropOprtn = $(".upload_area_oprtn"); + $(document).on("dragenter",".upload_area_oprtn",function(e){ + e.stopPropagation(); + e.preventDefault(); + //$(this).css('border', '2px solid #0B85A1'); + }); + $(document).on("dragover",".upload_area_oprtn",function(e){ + e.stopPropagation(); + e.preventDefault(); + }); + $(document).on("drop",".upload_area_oprtn",function(e){ + //$(this).css('border', '2px dotted #0B85A1'); + e.preventDefault(); + var files = e.originalEvent.dataTransfer.files; + handleFileUpload_oprtn(files,objDragAndDropOprtn); //파일업로드 + }); + + drawUploadArea_oprtn(); + $(function(){ //단일 파일업로드 + $('#file_temp_oprtn').change(function(e){ + var objUpload = $(".upload_area_oprtn"); + var files = $('#file_temp_oprtn')[0].files; + handleFileUpload_oprtn(files,objUpload); //파일업로드 + if($("#file_temp_oprtn").length > 0){ + $("#file_temp_oprtn").val(""); //파일지우기 + } + }); + }); + + /*//최대 업로드 파일갯수 화면 노출 세팅 + if($("[name='limitcount']").length>0){ + if($('.limitcount_li').length > 0){ + $('.limitcount_li').text($("[name='limitcount']").val()); + } + + }*/ + }); //목록 정렬 항목 클릭 @@ -704,3 +747,219 @@ function goWebSave(method_parm){ //method_parm :관리자로그 메소드에서 return this.removeClass(pFromClass).addClass(pToClass); }; }(jQuery)); + + +/*체험교실 안내 > 운영지침 첨부파일 관련*/ + +/*파일 드래그앤 드롭*/ +/* 파일등록 */ +var _fileIdx_oprtn = 0; +var _fileForm2_oprtn = new Array(); +function handleFileUpload_oprtn(files,obj) //업로드 function +{ + var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB) + var limitcount = 2 ; + + if($('#tbody_fiielist_oprtn').find('tr').length + files.length > limitcount ){ + alert("업로드 파일은 최대 "+limitcount+"개 입니다."); + 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 fileNm = files[i].name; + if (fileNm != "") { + var ext = fileNm.slice(fileNm.lastIndexOf(".") + 1).toLowerCase(); + var allowedExtensions = ["jpg", "jpeg", "png", "gif", "bmp", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "hwp", "txt"]; + if (!allowedExtensions.includes(ext)) { + alert("jpg, jpeg, png, pdf, doc, docx, xls, xlsx, ppt, pptx, hwp, txt 파일만 업로드 가능합니다."); + e.stopImmediatePropagation(); // block js file upload + return false; + } + } + } + } + + 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_oprtn; + tmpObj.fileObj = files[i]; + + _fileForm2_oprtn.push(tmpObj); + sendFileToServer_oprtn(fd, obj, files[i], _fileIdx_oprtn); + _fileIdx_oprtn++; + + var totalfileSize = 0; + $('.totalfileCount').text($('.item_file_size_oprtn').length) ; + $('.item_file_size_oprtn').each(function(){ + totalfileSize += $(this).val()*1 ; + }); + $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; + } +} + +function sendFileToServer_oprtn(formData, obj , fileObj, _fileIdx_oprtn) +{ + $('.no_img_box_oprtn').hide(); //list 박스 형식 변경 + $('.file_list_div_oprtn').show(); + var list_html = ""; + var tt = ""; + + var fileNm = fileObj.name; + var fileExt = fileNm.split('.').pop().toLowerCase(); + + list_html += ''; + + //list_html += ''; + //list_html += ''+fileObj.name+''; + list_html += ''+fileObj.name+''; + list_html += '.'+fileExt+''; + list_html += ''+getStrFileSize(fileObj.size)+''; + //list_html += ''+getDate()+''; + list_html += ''; + list_html += ''; + list_html += ''; + list_html += ''; + $('#tbody_fiielist_oprtn').append(list_html); +} + +function delAtchFile_oprtn(itemId , fileSn){ + if(!confirm("삭제하시겠습니까?")){ + return false; + } + + $.ajax({ + type: "POST", + /*url: "/offedu/uss/ion/fms/fmsfileDeleteAjax.do",*/ + url: "/offedu/web/fms/fmsfileDeleteAjax.do", + data:{ "atchFileId" : itemId , "fileSn" : fileSn}, + dataType:'json', + 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("세션이 종료되었습니다."); + }else if(returnData.result =='success'){ + $('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove(); + alert("삭제되었습니다."); + drawUploadArea_oprtn(); +// $('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ; + } + }else{ + alert("삭제처리에 실패하였습니다."); + } + }, + error: function (e) { + console.log("ERROR : ", e); + alert("삭제처리에 실패하였습니다."); + } + }); +} + +/* 임시파일 삭제버튼 클릭시 */ +function delete_item_oprtn(obj, fileIdx){ + $(obj).closest("tr").remove(); + _fileForm2_oprtn.forEach(function(fobj, idx) { + if (fobj.name == ("file_oprtn" + fileIdx)) _fileForm2_oprtn[idx] = ""; + }); + + if($('.item_file_size_oprtn').length == 0){ + $('.file_upload_box_oprtn ').show(); + $('.upload_box_text').show(); + $('.fileAfter_oprtn').hide(); + }else{ + var totalfileSize = 0; + $('.totalfileCount').text($('.item_file_size_oprtn').length) ; + $('.item_file_size_oprtn').each(function(){ + totalfileSize += $(this).val()*1 ; + }); + $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; + } +} + +function drawUploadArea_oprtn(){ + $('.no_img_box_oprtn').hide(); //list 박스 형식 변경 + $('.file_list_div_oprtn').show(); + + $('.file_name_text').each(function(index, item){ + $(this).parent().find('img').attr('src', getfile_img($(this).text())) ; //이미지 변경 + }); + $('.file_size_text').each(function(index, item){ + $(this).text(getStrFileSize($(this).attr('value'))) + }); + + var totalfileSize = 0; + $('.totalfileCount').text($('.item_file_size_oprtn').length) ; + $('.item_file_size_oprtn').each(function(){ + totalfileSize += $(this).val()*1 ; + }); + $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; + + + //if( $("#tbody_fiielist_oprtn > [class^=item]").length == 0 && $("#tbody_fiielist_oprtn > [class^=item]").length > 0 ){ + if( $("#tbody_fiielist_oprtn > [class^=item]").length == 0){ + $('.no_img_box_oprtn').show(); + $('.file_list_div_oprtn ').hide(); + } + + if($('.fileTable').length > 0 ){ + //$('.fileTable').remove(); + } + +} + +/* 등록되어 있는 파일 삭제버튼 클릭시 */ +function delAtchPhotoFile_oprtn(itemId , fileSn){ + if(!confirm("삭제하시겠습니까?")){ + return false; + } + + $.ajax({ + type: "POST", + url: "/offedu/uss/ion/fms/fmsfileDeleteAjax.do", + data:{ "atchFileId" : itemId , "fileSn" : fileSn}, + dataType:'json', + 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("세션이 종료되었습니다."); + }else if(returnData.result =='success'){ + $('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn+"_oprtn").remove(); + alert("삭제되었습니다."); + drawUploadArea_oprtn(); + $('.put_photo_box').html('이미지를 넣어주세요'); + /*강사 디테일 첨부파일 ID 삭제*/ + /*각각 jsp파일에 function존재*/ + atchFileIdDelete(); + + } + }else{ + alert("삭제처리에 실패하였습니다."); + } + }, + error: function (e) { + console.log("ERROR : ", e); + alert("삭제처리에 실패하였습니다."); + } + }); + + deleteLodingBar(); +} \ No newline at end of file