435 lines
14 KiB
JavaScript
435 lines
14 KiB
JavaScript
$(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);
|
|
|
|
if(searchSortOrd == "desc") {
|
|
$sort_div.html("▲");
|
|
} else {
|
|
$sort_div.html("▼");
|
|
}
|
|
|
|
|
|
$sort_div.attr("sortOrd", 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("/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");
|
|
var searchSortOrd = $("[name='searchSortOrd']").val();
|
|
|
|
$("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거
|
|
if (searchSortOrd == "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 getFileExtension(fileName){
|
|
var len = fileName.length;
|
|
|
|
/*파일이름의 뒤에서부터 '.'을 만날때의 위치*/
|
|
var lastDot = fileName.lastIndexOf('.');
|
|
var fileExtension = fileName.substring(lastDot, len).toLowerCase();
|
|
|
|
return fileExtension;
|
|
}
|
|
|
|
|
|
/* 파일 이미지 가져오기 */
|
|
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 = "/offeduadvc/direct/img/enroll_pdf_file.png" ;
|
|
break;
|
|
case "xls" :
|
|
img_url = "/offeduadvc/direct/img/enroll_exel_file.png" ;
|
|
break;
|
|
case "hwp" :
|
|
img_url = "/offeduadvc/direct/img/enroll_hwp_file.png" ;
|
|
break;
|
|
case "jpg" :
|
|
img_url = "/offeduadvc/direct/img/enroll_jpg_file.png" ;
|
|
break;
|
|
case "mp4" :
|
|
img_url = "/offeduadvc/direct/img/enroll_mp4_file.png" ;
|
|
break;
|
|
case "ppt" :
|
|
img_url = "/offeduadvc/direct/img/enroll_ppt_file.png" ;
|
|
break;
|
|
case "zip" :
|
|
img_url = "/offeduadvc/direct/img/enroll_zip_file.png" ;
|
|
break;
|
|
default :
|
|
img_url = "/offeduadvc/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();
|
|
|
|
var fileNece = true; //첨부파일필수
|
|
if($('#fileNece').length > 0){
|
|
if('N'==$('#fileNece').val()){
|
|
fileNece = false;
|
|
}
|
|
}
|
|
|
|
if($('#tbody_fiielist').find('tr').length + files.length > limitcount && fileNece){
|
|
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(".")[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 = "";
|
|
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
|
|
|
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
|
//파일 확장자 추가
|
|
list_html += '<td class="td_filesort file_extension">'+getFileExtension(fileObj.name)+'</td>';
|
|
list_html += '<td class="td_filesize file_size"><p class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</p></td>';
|
|
/*list_html += '<td class="file_date">'+getDate()+'</td>';*/
|
|
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="delete_item(this, '+_fileIdx+')" ><i></i></button></td>';
|
|
list_html += '<input type="hidden" name="fileSize" class="item_file_size" value="'+fileObj.size+'">';
|
|
list_html += '<input type="hidden" name="atchFileIds" class="imsi" value="'+tt+'">';
|
|
list_html += '</tr>';
|
|
$('#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: "/offeduadvc/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();
|
|
$('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ;
|
|
}
|
|
}else{
|
|
alert("삭제처리에 실패하였습니다.");
|
|
}
|
|
},
|
|
error: function (e) {
|
|
console.log("ERROR : ", e);
|
|
alert("삭제처리에 실패하였습니다.");
|
|
}
|
|
});
|
|
}
|
|
|
|
/* 임시파일 삭제버튼 클릭시 */
|
|
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();
|
|
}
|
|
}
|
|
|
|
/* 글 저장 function */
|
|
function goSave(method_parm ){ //method_parm :관리자로그 메소드에서 사용.(파일업로드 부분 공통으로 사용하여, 페이지 구분을 위해)
|
|
if($('#content').length > 0){ //팝업존에서 타이틀 무조건 체크
|
|
if('' == $('#content').val()){
|
|
alert("이미지 등록시 타이틀은 필수입니다.");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/*if(undefined !=$("input[name=limitcount]").val() && ""!=$("input[name=limitcount]").val() ){
|
|
if($('#atchFileNece').length > 0 ){
|
|
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 = "/offeduadvc/cop/bbs/insertBoardArticleAjax.do";
|
|
}else if($("#pageType").val() == "replay"){ //게시판 답변
|
|
url = "/offeduadvc/cop/bbs/replyBoardArticleAjax.do";
|
|
}else{
|
|
url = document.writeForm == undefined ? "/offeduadvc/cop/bbs/updateBoardArticleAjax.do" : "/offeduadvc/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("저장 되었습니다.");
|
|
goList();
|
|
} else if(status== 'fail'){
|
|
alert("저장에 실패하였습니다. !!");
|
|
}
|
|
},
|
|
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
|
});
|
|
}
|
|
|
|
(function ($) {
|
|
$.fn.replaceClass = function (pFromClass, pToClass) {
|
|
return this.removeClass(pFromClass).addClass(pToClass);
|
|
};
|
|
}(jQuery));
|