$(document).ready(function(){ //공통 js /* 목록 정렬 항목 아이콘 표시 */ var searchSortCnd = $("[name='searchSortCnd']").val(); var searchSortOrd = $("[name='searchSortOrd']").val(); if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) { var $sort_div = $("#sort_"+ searchSortCnd); var sortClass = 'sortBtnAsc' ; if (searchSortOrd == "desc") sortClass = "sortBtnDesc"; $sort_div.replaceClass('btn_sort' , sortClass) ; $sort_div.attr("btn_odr", searchSortOrd); } // 정렬 항목 이벤트 $(".sort").click(function(e) { listSortOrd(this); }); //파일업로드 드래그앤 드롭 var objDragAndDrop = $(".upload_area"); $(document).on("dragenter",".upload_area",function(e){ e.stopPropagation(); e.preventDefault(); //$(this).css('border', '2px solid #0B85A1'); }); $(document).on("dragover",".upload_area",function(e){ e.stopPropagation(); e.preventDefault(); }); $(document).on("drop",".upload_area",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(); }); drawUploadArea(); $(function(){ //단일 파일업로드 $('#file_temp').change(function(e){ var objUpload = $(".upload_area"); var files = $('#file_temp')[0].files; handleFileUpload(files,objUpload); //파일업로드 if($("#file_temp").length > 0){ $("#file_temp").val(""); //파일지우기 } }); }); //최대 업로드 파일갯수 화면 노출 세팅 if($("[name='limitcount']").length>0){ if($('.limitcount_li').length > 0){ $('.limitcount_li').text($("[name='limitcount']").val()); } } //프린트 워커 마크 $('.printBtn').click(function(e){ if(!confirm("프린트 하시겠습니까?")){ return false; } var printPopup ; printPopup= window.open("/ipedu/tempPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n"); }); }); //목록 정렬 항목 클릭 function listSortOrd(obj){ var sortOrd = $(obj).attr("sortOrd"); var sortCnd = $(obj).attr("id"); $("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거 if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc"); else $("[name='searchSortOrd']").val("desc"); linkPage('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨 } //인쇄 영역 공통 function printDiv(divName) { var printContents = $("."+divName).html(); var originalContents = document.body.innerHTML; document.body.innerHTML = printContents; window.print(); document.body.innerHTML = originalContents; //originalContents 다시 그려줘서 이전의 메소드 다시 재지정 $(".sort").click(function(e) { listSortOrd(this); }); } function printDiv2(divName) { var printContents = document.getElementById(divName).innerHTML; var originalContents = document.body.innerHTML; document.body.innerHTML = printContents; window.print(); document.body.innerHTML = originalContents; } /* 파일사이즈 가져오기 */ function getStrFileSize(filesize){ var sizeStr=""; var sizeKB = filesize/1024; if(parseInt(sizeKB) > 1024){ var sizeMB = sizeKB/1024; sizeStr = sizeMB.toFixed(2)+" MB"; }else{ sizeStr = sizeKB.toFixed(2)+" KB"; } return sizeStr; } /* 파일 이미지 가져오기 */ function getfile_img(file_name){ var img_type = file_name.split('.')[file_name.split('.').length-1].toLowerCase(); if(img_type == "xlsx"){ img_type = "xls"; }else if(img_type == "jpeg" || img_type == "png" || img_type == "bmp"){ img_type = "jpg"; }else if(img_type == "doc"){ img_type = "hwp"; } var img_url = ""; switch (img_type) { case "pdf" : img_url = "/ipedu/direct/img/enroll_pdf_file.png" ; break; case "xls" : img_url = "/ipedu/direct/img/enroll_exel_file.png" ; break; case "hwp" : img_url = "/ipedu/direct/img/enroll_hwp_file.png" ; break; case "jpg" : img_url = "/ipedu/direct/img/enroll_jpg_file.png" ; break; case "mp4" : img_url = "/ipedu/direct/img/enroll_mp4_file.png" ; break; case "ppt" : img_url = "/ipedu/direct/img/enroll_ppt_file.png" ; break; case "zip" : img_url = "/ipedu/direct/img/enroll_zip_file.png" ; break; default : img_url = "/ipedu/direct/img/enroll_jpg_file.png" ; } return img_url ; } /*등록 시간 가져오기 */ function getDate(){ var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1 ; month.toString().length < 2 ? month = "0"+month : month; var date = d.getDate() ; date.toString().length < 2 ? date = "0"+date : date; var currentDate = year+"-"+month+"-"+date+" "; var hour = d.getHours(); hour.toString().length < 2 ? hour = "0"+hour : hour; var minutes = d.getMinutes() ; minutes.toString().length < 2 ? minutes = "0"+minutes : minutes; var seconds = d.getSeconds() ; seconds.toString().length < 2 ? seconds = "0"+seconds : hour; currentTime = hour+"-"+minutes+"-"+seconds ; return currentDate + currentTime ; } /*파일 드래그앤 드롭*/ /* 파일등록 */ var _fileIdx = 0; var _fileForm2 = new Array(); function handleFileUpload(files,obj) //업로드 function { var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB) var limitcount = $("input[name=limitcount]").val()*1 ; var allrowFileExtsn = $("input[name=allrowFileExtsn]").val(); if($('#tbody_fiielist').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 ; } if(allrowFileExtsn != undefined && allrowFileExtsn != ""){ if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.split(".")[files[i].name.split(".").length-1].toLowerCase()) < 0 ){ alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다."); 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) { $('.no_img_box').hide(); //list 박스 형식 변경 $('.file_list_div').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').append(list_html); } function resetFileZone(){ $('.file_size').each(function(index, element){ $(this).text(getStrFileSize($(this).text())) ; }); } /* 등록되어 있는 파일 삭제버튼 클릭시 */ function delAtchFile(itemId , fileSn){ if(!confirm("삭제하시겠습니까?")){ return false; } $.ajax({ type: "POST", /*url: "/ipedu/uss/ion/fms/fmsfileDeleteAjax.do",*/ url: "/ipedu/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("삭제되었습니다."); if($('input[name=bbsWebType]').val() == 'qna'){ //웹의 묻고 답하기 경우 버튼으로 바꿈. $('.fileAfter').hide(); $('.file_upload_box').show(); }else{ drawUploadArea(); } $('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ; } }else{ alert("삭제처리에 실패하였습니다."); } }, error: function (e) { console.log("ERROR : ", e); alert("삭제처리에 실패하였습니다."); } }); } function autoDelAtchFile(data){ $.ajax({ type: "POST", url: "/ipedu/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/fmsfileMultipleDeleteAjax.do", data: JSON.stringify(data), dataType:'json', async: false, processData: false, contentType: "application/json", cache: false, success: function (returnData, status) { if(status == 'success'){ console.log('파일이 삭제되었습니다.'); }else{ alert("파일 삭제처리에 실패하였습니다."); } }, error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } }); } /* 임시파일 삭제버튼 클릭시 */ 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){ $('.file_upload_box ').show(); $('.upload_box_text').show(); $('.fileAfter').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 drawUploadArea(){ $('.no_img_box').hide(); //list 박스 형식 변경 $('.file_list_div').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').length) ; $('.item_file_size').each(function(){ totalfileSize += $(this).val()*1 ; }); $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; //if( $("#tbody_fiielist > [class^=item]").length == 0 && $("#tbody_fiielist > [class^=item]").length > 0 ){ if( $("#tbody_fiielist > [class^=item]").length == 0){ $('.no_img_box').show(); $('.file_list_div ').hide(); } if($('.fileTable').length > 0 ){ //$('.fileTable').remove(); } } /*강사 첨부파일 등록 시작 - 썸네일 추가 기능*/ //파일업로드 드래그앤 드롭 var photoDragAndDrop = $(".photo_upload_area"); $(document).on("dragenter",".photo_upload_area",function(e){ e.stopPropagation(); e.preventDefault(); //$(this).css('border', '2px solid #0B85A1'); }); $(document).on("dragover",".photo_upload_area",function(e){ e.stopPropagation(); e.preventDefault(); }); $(document).on("drop",".photo_upload_area",function(e){ //$(this).css('border', '2px dotted #0B85A1'); e.preventDefault(); var files = e.originalEvent.dataTransfer.files; handlePhotoFileUpload(files,photoDragAndDrop); //파일업로드 }); $(function(){ //단일 파일업로드 $('#photo_file_temp').change(function(e){ var objUpload = $(".photo_upload_area"); var files = $('#photo_file_temp')[0].files; handlePhotoFileUpload(files,objUpload); //파일업로드 if($("#photo_file_temp").length > 0){ $("#photo_file_temp").val(""); //파일지우기 } }); }); /*파일 드래그앤 드롭*/ /* 파일등록 */ var _photoFileIdx = 0; var _photoFileForm2 = new Array(); function handlePhotoFileUpload(files,obj) //업로드 function { var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB) var limitcount = $("input[name=limitcount]").val()*1 ; if($('#tbody_fiielist').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(); if (!(ext == "gif" || ext == "jpg" || ext == "png" || ext == "jpeg")) { alert("이미지파일 (jpg, jpeg, png, gif ) 만 업로드 가능합니다."); e.stopImmediatePropagation(); //js의 파일 업로드 막지 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_" + _photoFileIdx; tmpObj.fileObj = files[i]; _photoFileForm2.push(tmpObj); sendPhotoFileToServer(fd, obj, files[i], _photoFileIdx); _photoFileIdx++; /*사진 썸네일 등록*/ $(".put_photo_box").html(""); var reader = new FileReader(); reader.onload = function(e){ //이미지 형식 $('.put_photo_box').html(''); //백그라운드 형식 /* $('.put_photo_in').css({'background':'url('+e.target.result+')', 'background-repeat': 'no-repeat', 'background-position':'center', 'background-size' : '100%' }); */ } reader.readAsDataURL(files[i]); } } function sendPhotoFileToServer(formData, obj , fileObj, _photoFileIdx) { $('.no_img_box').hide(); //list 박스 형식 변경 $('.file_list_div').show(); var list_html = ""; var tt = ""; var fileNm = fileObj.name; var fileExt = fileNm.split('.').pop().toLowerCase(); 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').append(list_html); } /* 등록되어 있는 파일 삭제버튼 클릭시 */ function delAtchPhotoFile(itemId , fileSn){ if(!confirm("삭제하시겠습니까?")){ return false; } $.ajax({ type: "POST", url: "/ipedu/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).remove(); alert("삭제되었습니다."); drawUploadArea(); $('.put_photo_box').html('이미지를 넣어주세요'); /*강사 디테일 첨부파일 ID 삭제*/ /*각각 jsp파일에 function존재*/ atchFileIdDelete(); } }else{ alert("삭제처리에 실패하였습니다."); } }, error: function (e) { console.log("ERROR : ", e); alert("삭제처리에 실패하였습니다."); } }); } /*function delAtchPhotoFile(itemId , fileSn){ if(!confirm("삭제하시겠습니까?")){ return false; } $.ajax({ type: "POST", url: "/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).remove(); alert("삭제되었습니다."); drawUploadArea(); $('.put_photo_box').html('이미지를 넣어주세요'); 강사 디테일 첨부파일 ID 삭제 각각 jsp파일에 function존재 atchFileIdDelete(); } }else{ alert("삭제처리에 실패하였습니다."); } }, error: function (e) { console.log("ERROR : ", e); alert("삭제처리에 실패하였습니다."); } }); } */ /*function drawUploadArea(){ $('.no_img_box').hide(); //list 박스 형식 변경 $('.file_list_div').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').length) ; $('.item_file_size').each(function(){ totalfileSize += $(this).val()*1 ; }); $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; //if( $("#tbody_fiielist > [class^=item]").length == 0 && $("#tbody_fiielist > [class^=item]").length > 0 ){ if( $("#tbody_fiielist > [class^=item]").length == 0){ $('.no_img_box').show(); $('.file_list_div ').hide(); } if($('.fileTable').length > 0 ){ //$('.fileTable').remove(); } }*/ /*임시파일 삭제버튼 클릭시*/ function delete_photo(obj, fileIdx){ $(obj).closest("tr").remove(); _photoFileForm2.forEach(function(fobj, idx) { if (fobj.name == ("file_" + fileIdx)) _photoFileForm2[idx] = ""; }); if($('.item_file_size').length == 0){ $('.file_upload_box ').show(); $('.fileAfter').hide(); //백그라운드 형식 /*$('.put_photo_in').css({'background':'', 'background-color': '#f5f5f5', 'width':'128px', 'height' : '165px', 'border' : '1px solid #d5d5d5', 'border-radius' : '5px', 'box-sizing' : 'border-box', 'position' : 'relative', 'height' : '165px', 'overflow' : 'hidden' }); */ //이미지 형식 $('.put_photo_box').html('이미지를 넣어주세요 '); } } /*강사 첨부파일 등록 종료 - 썸네일 추가 기능*/ /* 게시판 글 저장 function */ function goWebSave(method_parm){ //method_parm :관리자로그 메소드에서 사용.(파일업로드 부분 공통으로 사용하여, 페이지 구분을 위해) if(undefined !=$("input[name=limitcount]").val() && ""!=$("input[name=limitcount]").val() ){ if($('#atchFileNece').length > 0 ){ if("Y" == $('#atchFileNece').val()){ //추가 2021.04.14 if($('#tbody_fiielist').find('tr').length == 0){ alert("첨부파일을 추가해 주십시오"); return false; } } } } var msg; msg = "해당 첨부파일을 수정하시겠습니까?"; var data = new FormData(document.writeForm == undefined ? document.board : document.writeForm); _fileForm2.forEach(function(obj, idx) { if (obj) data.append("file"+idx, obj.fileObj); }); var url = ""; if($("#pageType").val() == "insert"){//게시판저장 url = "/ipedu/web/cop/bbs/insertBoardArticleAjax.do"; }else if($("#pageType").val() == "update"){ //게시판 답변 url = "/ipedu/web/cop/bbs/updateBoardArticleAjax.do"; }/*else{ url = document.writeForm == undefined ? "/cop/bbs/updateBoardArticleAjax.do" : "/uss/ion/fms/FmsFileInsertAjax.do?logParam="+method_parm; }*/ $.ajax({ type: "POST", enctype: 'multipart/form-data', url: url, data: data, dataType:'json', async: false, processData: false, contentType: false, cache: false, //timeout: 600000, success: function (returnData, status) { if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 if("fail"==returnData.result){ alert(returnData.message); return; } alert("저장 되었습니다."); fn_egov_select_noticeList() } else if(status== 'fail'){ alert("저장에 실패하였습니다. !!"); } }, error: function (request,status,error) { //alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } }); } /*청소년강사 체크*/ function tngrInstrCheck(){ $.ajax({ url: '/ipedu/web/ve/instr/tngrVisitEdu/instrInfo/instrDivCheckAjax.do', type: "post", success: function (returnData, status) { if(returnData.tngrInstrYn != 'Y'){ alert("청소년 강사만 사용가능합니다."); window.history.back(); } }, }); } /*성인강사 체크*/ function adultInstrCheck(){ $.ajax({ url: '/ipedu/web/ve/instr/tngrVisitEdu/instrInfo/instrDivCheckAjax.do', type: "post", success: function (returnData, status) { if(returnData.adultInstrYn != 'Y'){ alert("성인 강사만 사용가능합니다."); window.history.back(); } }, }); } (function ($) { $.fn.replaceClass = function (pFromClass, pToClass) { return this.removeClass(pFromClass).addClass(pToClass); }; }(jQuery));