diff --git a/src/main/webapp/resources/js/base/base-fims.js b/src/main/webapp/resources/js/base/base-fims.js index fc976b04..039a9db6 100644 --- a/src/main/webapp/resources/js/base/base-fims.js +++ b/src/main/webapp/resources/js/base/base-fims.js @@ -1,3 +1,23 @@ +/************************************************************************** +* 모달창 z-index 초기화 +**************************************************************************/ +function setZindex(){ + var parentDialog = getLastOpenDialog(); + var childDialog = getLastDialog(); + + if($(parentDialog).length == 0 || parentDialog == childDialog){ + return; + } + + var parentZ = $(parentDialog).css("z-index"); + $(childDialog).css("z-index", parentZ+10); + + var backdrop = $(childDialog).next(); + if(backdrop.hasClass("modal-backdrop")){ + backdrop.css("z-index", parentZ+9); + }; +} + /************************************************************************** * 모달창 닫기 버튼 포커스 **************************************************************************/ @@ -19,6 +39,274 @@ function focusOK() { }); }); } + +/************************************************************************** +* 파일 다운로드 +**************************************************************************/ +function download(filePath, fileName, tempAreaId){ + var a = document.createElement("a"); + a.href = resp.filePath; + a.download = resp.fileName; + document.getElementById(tempAreaId).appendChild(a); + a.click(); + document.getElementById(tempAreaId).removeChild(a); +} + +/************************************************************************** +* pdf파일 미리보기 창 +**************************************************************************/ +function openPDF(filePath, fileName, windowName){ + filePath = filePath.replaceAll("\\","%5c"); + + window.open( + wctx.url("/resources/html/pdf.html"+"?"+"path="+filePath) + ,windowName + ,'top=10, left=10' + ); +} + +/************************************************************************** +* validation +**************************************************************************/ +function customValidate(targetArr) { + var handler = validationFailureHandler(); + for(var i=0;i="00" && hour<="23"){ + if(minute>="00" && minute<="59"){ + if(second>="00" && second<="59"){ + return true; + } + } + } + + return false; +} + +// 날짜체크 +function isDate(str) { + + str = str.replaceAll("-",""); + + if(str.length != 8){ + return false; + } + + if (!isNumber(str, "")) { + return false; + } + + // 숫자, length 확인 + var year = str.substring(0,4); + var month = str.substring(4,6); + var day = str.substring(6,8); + + // 유효날짜 확인 + if (year>="0001" && year<="9999" && month>="01" && month<="12") { + febDays = "29"; + if ((parseInt(year,10) % 4) == 0) { + if ((parseInt(year,10) % 100) == 0 && (parseInt(year,10) % 400) != 0){ + febDays = "28"; + } + }else{ + febDays = "28"; + } + if (month=="01" && day>="01" && day<="31") return true; + if (month=="02" && day>="01" && day<=febDays) return true; + if (month=="03" && day>="01" && day<="31") return true; + if (month=="04" && day>="01" && day<="30") return true; + if (month=="05" && day>="01" && day<="31") return true; + if (month=="06" && day>="01" && day<="30") return true; + if (month=="07" && day>="01" && day<="31") return true; + if (month=="08" && day>="01" && day<="31") return true; + if (month=="09" && day>="01" && day<="30") return true; + if (month=="10" && day>="01" && day<="31") return true; + if (month=="11" && day>="01" && day<="30") return true; + if (month=="12" && day>="01" && day<="31") return true; + return false; + } + + + return false; +} + + + +/** + * 문자열이 지정한 최소길이 이상인지의 여부를 반환한다. + * @param minLen - 최소길이 + * @return 최소길이 이상인지의 여부 + */ +function isMin(str, minLen) { + return str.length >= minLen; +}; + +/** + * 문자열이 지정한 최대길이 이하인지의 여부를 반환한다. + * @param maxLen - 최대길이 + * @return 최대길이 이하인지의 여부 + */ +function isMax(str, maxLen) { + return str.length <= maxLen; +}; + +/** + * 문자열이 지정한 최소바이트수 이상인지의 여부를 반환한다. + * @param minByte - 최소바이트수 + * @return 최소바이트수 이상인지의 여부 + */ +function isMinByte(str, minByte) { + return getByte(str) >= minByte; +}; + +/** + * 문자열이 지정한 최대바이트수 이하인지의 여부를 반환한다. + * @param maxByte - 최대바이트수 + * @return 최대바이트수 이하인지의 여부 + */ +function isMaxByte(str, maxByte) { + return getByte(str) <= maxByte; +}; + + +/** + * 문자열이 영어만으로 구성되어 있는지의 여부를 반환한다. + * @param exceptChar - 추가 허용할 문자 + * @return 영어만으로 구성되어 있는지의 여부 + */ +function isEng(str, exceptChar) { + return (/^[a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false; +}; + +/** + * 문자열이 숫자와 영어만으로 구성되어 있는지의 여부를 반환한다. + * @param exceptChar - 추가 허용할 문자 + * @return 숫자와 영어만으로 구성되어 있는지의 여부 + */ +function isEngNum(str, exceptChar) { + return (/^[0-9a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false; +}; + +/** + * 이메일 주소의 유효성 여부를 반환한다. + * @return 유효성 여부 + */ +function isEmail(str) { + return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(str); +}; + +/************************************************************************** +* 엑셀 파일 작성 정보 생성 +**************************************************************************/ +function getCellDefs($th, $td){ + var cellDefs = []; + + for(var i=0; i < $th.length; i++){ + + var label = $th.eq(i).text(); + + if(label != ""){ + + var width = $th.eq(i).outerWidth(); + width = Math.ceil(width/10) + 2; + var field = $td.eq(i).text(); + field = field.replace("{", ""); + field = field.replace("}", ""); + + var cellDef = { + label : label, + width : width, + field : field + }; + + cellDefs.push(cellDef); + } + + } + + return JSON.stringify(cellDefs); +} + /************************************************************************** * UI요소 값 세팅 **************************************************************************/ @@ -48,6 +336,9 @@ $.fn.set = function(value) { }); } +/************************************************************************** +* FimsFormFields +**************************************************************************/ class FimsFormFields extends FormFields { /** @@ -168,25 +459,3 @@ class FimsFormFields extends FormFields { return obj; } } - - -$.fn.getHeaderInfo = function() { - var excelTitle = []; - var excelTitleWidth = []; - - this.each(function(){ - var title = $(this).text(); - - if(title != ""){ - excelTitle.push(title); - var titleWidth = $(this).outerWidth(); - titleWidth = Math.ceil(titleWidth/10) + 2; - excelTitleWidth.push(titleWidth); - } - }); - - return { - excelTitle : excelTitle.join(","), - excelTitleWidth : excelTitleWidth.join(",") - }; -}; \ No newline at end of file diff --git a/src/main/webapp/resources/js/fims/framework/cmm/cmmUtil.js b/src/main/webapp/resources/js/fims/framework/cmm/cmmUtil.js index f31c6f77..de85fb41 100644 --- a/src/main/webapp/resources/js/fims/framework/cmm/cmmUtil.js +++ b/src/main/webapp/resources/js/fims/framework/cmm/cmmUtil.js @@ -30,70 +30,7 @@ function isActiveBackdrop(){ return isActiveYn; } -//다이얼로그 창 z-index 초기화 -function setZindex(){ - var parentDialog = getLastOpenDialog(); - var childDialog = getLastDialog(); - - if($(parentDialog).length == 0 || parentDialog == childDialog){ - return; - } - - var parentZ = $(parentDialog).css("z-index"); - $(childDialog).css("z-index", parentZ+10); - $(childDialog).next(".modal-backdrop").css("z-index", parentZ+9); -} - -//파일 다운로드 -function download(filePath, fileName, tempAreaId){ - var a = document.createElement("a"); - a.href = resp.filePath; - a.download = resp.fileName; - document.getElementById(tempAreaId).appendChild(a); - a.click(); - document.getElementById(tempAreaId).removeChild(a); -} - -//pdf파일 미리보기 창 -function openPDF(filePath, fileName, windowName){ - filePath = filePath.replaceAll("\\","%5c"); - - window.open( - wctx.url("/resources/html/pdf.html"+"?"+"path="+filePath) - ,windowName - ,'top=10, left=10' - ); -} - -//엑셀 파일 작성 정보 생성 -function getCellDefs($th, $td){ - var cellDefs = []; - - for(var i=0; i < $th.length; i++){ - - var label = $th.eq(i).text(); - - if(label != ""){ - - var width = $th.eq(i).outerWidth(); - width = Math.ceil(width/10) + 2; - var field = $td.eq(i).text(); - field = field.replace("{", ""); - field = field.replace("}", ""); - - var cellDef = { - label : label, - width : width, - field : field - }; - - cellDefs.push(cellDef); - } - } - - return JSON.stringify(cellDefs); -} /************************************************************************** * 지연 @@ -102,215 +39,7 @@ function sleep(ms) { return new Promise((r) => setTimeout(r, ms)); } -/************************************************************************** -* validation -**************************************************************************/ -function customValidate(targetArr) { - var handler = validationFailureHandler(); - for(var i=0;i="00" && hour<="23"){ - if(minute>="00" && minute<="59"){ - if(second>="00" && second<="59"){ - return true; - } - } - } - - return false; -} - -// 날짜체크 -function isDate(str) { - - str = str.replaceAll("-",""); - - if(str.length != 8){ - return false; - } - - if (!isNumber(str, "")) { - return false; - } - - // 숫자, length 확인 - var year = str.substring(0,4); - var month = str.substring(4,6); - var day = str.substring(6,8); - - // 유효날짜 확인 - if (year>="0001" && year<="9999" && month>="01" && month<="12") { - febDays = "29"; - if ((parseInt(year,10) % 4) == 0) { - if ((parseInt(year,10) % 100) == 0 && (parseInt(year,10) % 400) != 0){ - febDays = "28"; - } - }else{ - febDays = "28"; - } - if (month=="01" && day>="01" && day<="31") return true; - if (month=="02" && day>="01" && day<=febDays) return true; - if (month=="03" && day>="01" && day<="31") return true; - if (month=="04" && day>="01" && day<="30") return true; - if (month=="05" && day>="01" && day<="31") return true; - if (month=="06" && day>="01" && day<="30") return true; - if (month=="07" && day>="01" && day<="31") return true; - if (month=="08" && day>="01" && day<="31") return true; - if (month=="09" && day>="01" && day<="30") return true; - if (month=="10" && day>="01" && day<="31") return true; - if (month=="11" && day>="01" && day<="30") return true; - if (month=="12" && day>="01" && day<="31") return true; - return false; - } - - - return false; -} - - - -/** - * 문자열이 지정한 최소길이 이상인지의 여부를 반환한다. - * @param minLen - 최소길이 - * @return 최소길이 이상인지의 여부 - */ -function isMin(str, minLen) { - return str.length >= minLen; -}; - -/** - * 문자열이 지정한 최대길이 이하인지의 여부를 반환한다. - * @param maxLen - 최대길이 - * @return 최대길이 이하인지의 여부 - */ -function isMax(str, maxLen) { - return str.length <= maxLen; -}; - -/** - * 문자열이 지정한 최소바이트수 이상인지의 여부를 반환한다. - * @param minByte - 최소바이트수 - * @return 최소바이트수 이상인지의 여부 - */ -function isMinByte(str, minByte) { - return getByte(str) >= minByte; -}; - -/** - * 문자열이 지정한 최대바이트수 이하인지의 여부를 반환한다. - * @param maxByte - 최대바이트수 - * @return 최대바이트수 이하인지의 여부 - */ -function isMaxByte(str, maxByte) { - return getByte(str) <= maxByte; -}; - - -/** - * 문자열이 영어만으로 구성되어 있는지의 여부를 반환한다. - * @param exceptChar - 추가 허용할 문자 - * @return 영어만으로 구성되어 있는지의 여부 - */ -function isEng(str, exceptChar) { - return (/^[a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false; -}; - -/** - * 문자열이 숫자와 영어만으로 구성되어 있는지의 여부를 반환한다. - * @param exceptChar - 추가 허용할 문자 - * @return 숫자와 영어만으로 구성되어 있는지의 여부 - */ -function isEngNum(str, exceptChar) { - return (/^[0-9a-zA-Z]+$/).test(str.replaceAll(exceptChar,"")) ? true : false; -}; -/** - * 이메일 주소의 유효성 여부를 반환한다. - * @return 유효성 여부 - */ -function isEmail(str) { - return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(str); -}; /************************************************************************** * String util