Files
sam-kd/js/common.js

1096 lines
32 KiB
JavaScript
Raw Permalink Normal View History

function popupCenter(href, pop_name, w, h) {
// 고유한 팝업 창 이름을 생성하기 위해 현재 시간을 이용
var uniqueName = pop_name + '_' + new Date().getTime();
// 화면 가로 위치
var xPos = (window.innerWidth / 2) - (w / 2) + window.screenX;
// 화면 세로 위치
var yPos = (window.innerHeight / 2) - (h / 2) + window.screenY + 40;
window.open(href, uniqueName, "width=" + w + ", height=" + h + ", left=" + xPos + ", top=" + yPos + ", target=_blank, menubar=yes, status=yes, titlebar=yes, resizable=yes");
}
function customPopup(href, pop_name, w, h) {
// 고유한 팝업 창 이름을 생성하기 위해 현재 시간을 이용
var uniqueName = pop_name + '_' + Date.now();
// 화면 가로 위치
var xPos = (window.innerWidth / 2) - (w / 2) + window.screenX;
// 화면 세로 위치
var yPos = (window.innerHeight / 2) - (h / 2) + window.screenY + 40;
// 피처 수정: 주소 줄 제거 및 다른 옵션 설정
var features = "width=" + w + ", height=" + h + ", left=" + xPos + ", top=" + yPos;
features += ", menubar=no, status=no, titlebar=no, resizable=yes, toolbar=no, location=no, directories=no";
// 새로운 팝업 창을 엽니다.
window.open(href, uniqueName, features);
}
function getYearMonth(){ // 2021-01형태 리턴
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1; //1월이 0으로 되기때문에 +1을 함.
var date = now.getDate();
if(month % 2 == 0){ // 달(0~11)을 2로 나눈 나머지 없으면 홀수달
// 홀수달 실행
month = month >=10 ? month : "0" + month;
date = date >= 10 ? date : "0" + date;
// ""을 빼면 year + month (숫자+숫자) 됨.. ex) 2018 + 12 = 2030이 리턴됨.
//console.log(""+year + month + date);
return today = ""+year + "-" + month ;
}else{
//짝수달 실행 코드
month = month >=10 ? month : "0" + month;
date = date >= 10 ? date : "0" + date;
// ""을 빼면 year + month (숫자+숫자) 됨.. ex) 2018 + 12 = 2030이 리턴됨.
//console.log(""+year + month + date);
return today = ""+year + "-" + month ;
}
}
function getToday(){ // 2021-01-28 형태리턴
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth() + 1; //1월이 0으로 되기때문에 +1을 함.
var date = now.getDate();
month = month >=10 ? month : "0" + month;
date = date >= 10 ? date : "0" + date;
// ""을 빼면 year + month (숫자+숫자) 됨.. ex) 2018 + 12 = 2030이 리턴됨.
//console.log(""+year + month + date);
return today = ""+year + "-" + month + "-" + date;
}
// 특정일자의 요일을 돌려주는 함수
function getDayOfWeek(datestr){ //ex) getDayOfWeek('2022-06-13')
const week = ['일', '월', '화', '수', '목', '금', '토'];
const dayOfWeek = week[new Date(datestr).getDay()];
return dayOfWeek;
}
// 특정날짜 기간을 입력받고 그 기간의 데이터를 배열로 돌려줌
function getDatesStartToLast(startDate, lastDate) {
var regex = RegExp(/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/);
if(!(regex.test(startDate) && regex.test(lastDate))) return "Not Date Format";
var result = [];
var curDate = new Date(startDate);
while(curDate <= new Date(lastDate)) {
result.push(curDate.toISOString().split("T")[0]);
curDate.setDate(curDate.getDate() + 1);
}
return result;
}
function EGI_list_click() {
$("#Bigsearch").val("EGI");
}
function PO_list_click() {
$("#Bigsearch").val("PO");
}
function CR_list_click() {
$("#Bigsearch").val("CR");
}
function HL304_list_click() {
$("#Bigsearch").val("304 HL");
}
function MR304_list_click() {
$("#Bigsearch").val("304 MR");
}
function VB_list_click() {
$("#Bigsearch").val("VB");
}
function MR201_list_click() {
$("#Bigsearch").val("201 2B MR");
}
function size1000_1950_list_click() {
$("#search").val("1.2*1000*1950");
$("#board_form").submit();
}
function size1000_2150_list_click() {
$("#search").val("1.2*1000*2150").attr("selected", "selected") ;
$("#board_form").submit();
}
function size42150_list_click() {
$("#search").val("1.2*1219*2150").attr("selected", "selected") ;
$("#board_form").submit();
}
function size1000_8_list_click() {
$("#search").val("1.2*1000*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_8_list_click() {
$("#search").val("1.2*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_2600_list_click() {
$("#search").val("1.2*1219*2600").attr("selected", "selected") ;
$("#board_form").submit();
}
function size1000_2700_list_click() {
$("#search").val("1.2*1000*2700").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_2700_list_click() {
$("#search").val("1.2*1219*2700").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_3000_list_click() {
$("#search").val("1.2*1219*3000").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_3200_list_click() {
$("#search").val("1.2*1219*3200").attr("selected", "selected") ;
$("#board_form").submit();
}
function size4_4000_list_click() {
$("#search").val("1.2*1219*4000").attr("selected", "selected") ;
$("#board_form").submit();
}
function size16_4_1680_list_click() {
$("#search").val("1.6*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size23_4_1680_list_click() {
$("#search").val("2.3*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size16_4_1950_list_click() {
$("#search").val("1.6*1219*1950").attr("selected", "selected") ;
$("#board_form").submit();
}
function size23_4_1950_list_click() {
$("#search").val("2.3*1219*1950").attr("selected", "selected") ;
$("#board_form").submit();
}
function size12_4_1680_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.2*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size12_4_1950_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.2*1219*1950").attr("selected", "selected") ;
$("#board_form").submit();
}
function size12_4_8_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.2*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size16_4_1680_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.6*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size16_4_1950_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.6*1219*1950").attr("selected", "selected") ;
$("#board_form").submit();
}
function size16_4_8_list_click() {
$("#Bigsearch").val("CR").attr("selected", "selected") ;
$("#search").val("1.6*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size23_4_1680_list_click() {
$("#Bigsearch").val("PO").attr("selected", "selected") ;
$("#search").val("2.3*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size23_4_1950_list_click() {
$("#Bigsearch").val("PO").attr("selected", "selected") ;
$("#search").val("2.3*1219*1950").attr("selected", "selected") ;
$("#board_form").submit();
}
function size23_4_8_list_click() {
$("#Bigsearch").val("PO").attr("selected", "selected") ;
$("#search").val("2.3*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size32_4_1680_list_click() {
$("#Bigsearch").val("PO").attr("selected", "selected") ;
$("#search").val("3.2*1219*1680").attr("selected", "selected") ;
$("#board_form").submit();
}
function size15_4_2150_list_click() {
$("#Bigsearch").val("304 HL").attr("selected", "selected") ;
$("#search").val("1.5*1219*2150").attr("selected", "selected") ;
$("#board_form").submit();
}
function size15_4_8_list_click() {
$("#Bigsearch").val("304 HL").attr("selected", "selected") ;
$("#search").val("1.5*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function size20_4_8_list_click() {
$("#Bigsearch").val("EGI").attr("selected", "selected") ;
$("#search").val("2.0*1219*2438").attr("selected", "selected") ;
$("#board_form").submit();
}
function EGI_click() {
$("#item").val("EGI").attr("selected", "selected") ;
}
function PO_click() {
$("#item").val("PO").attr("selected", "selected") ;
}
function CR_click() {
$("#item").val("CR").attr("selected", "selected") ;
}
function HL304_click() {
$("#item").val("304 HL").attr("selected", "selected") ;
}
function MR304_click() {
$("#item").val("304 MR").attr("selected", "selected") ;
}
function VB_click() {
$("#item").val("VB").attr("selected", "selected") ;
}
function MR201_click() {
$("#item").val("201 2B MR").attr("selected", "selected") ;
}
function size1000_1950_click() {
$("#spec").val("1.2*1000*1950").attr("selected", "selected") ;
}
function size1000_2150_click() {
$("#spec").val("1.2*1000*2150").attr("selected", "selected") ;
}
function size42150_click() {
$("#spec").val("1.2*1219*2150").attr("selected", "selected") ;
}
function size1000_8_click() {
$("#spec").val("1.2*1000*2438").attr("selected", "selected") ;
}
function size4_8_click() {
$("#spec").val("1.2*1219*2438").attr("selected", "selected") ;
}
function size4_2600_click() {
$("#spec").val("1.2*1219*2600").attr("selected", "selected") ;
}
function size1000_2700_click() {
$("#spec").val("1.2*1000*2700").attr("selected", "selected") ;
}
function size4_2700_click() {
$("#spec").val("1.2*1219*2700").attr("selected", "selected") ;
}
function size4_3000_click() {
$("#spec").val("1.2*1219*3000").attr("selected", "selected") ;
}
function size4_3200_click() {
$("#spec").val("1.2*1219*3200").attr("selected", "selected") ;
}
function size4_4000_click() {
$("#spec").val("1.2*1219*4000").attr("selected", "selected") ;
}
function size16_4_1680_click() {
$("#spec").val("1.6*1219*1680").attr("selected", "selected") ;
}
function size23_4_1680_click() {
$("#spec").val("2.3*1219*1680").attr("selected", "selected") ;
}
function size16_4_1950_click() {
$("#spec").val("1.6*1219*1950").attr("selected", "selected") ;
}
function size23_4_1950_click() {
$("#spec").val("2.3*1219*1950").attr("selected", "selected") ;
}
function size12_4_1680_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.2*1219*1680").attr("selected", "selected") ;
}
function size12_4_1950_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.2*1219*1950").attr("selected", "selected") ;
}
function size12_4_8_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.2*1219*2438").attr("selected", "selected") ;
}
function size16_4_1680_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.6*1219*1680").attr("selected", "selected") ;
}
function size16_4_1950_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.6*1219*1950").attr("selected", "selected") ;
}
function size16_4_8_click() {
$("#item").val("CR").attr("selected", "selected") ;
$("#spec").val("1.6*1219*2438").attr("selected", "selected") ;
}
function size23_4_1680_click() {
$("#item").val("PO").attr("selected", "selected") ;
$("#spec").val("2.3*1219*1680").attr("selected", "selected") ;
}
function size23_4_1950_click() {
$("#item").val("PO").attr("selected", "selected") ;
$("#spec").val("2.3*1219*1950").attr("selected", "selected") ;
}
function size23_4_8_click() {
$("#item").val("PO").attr("selected", "selected") ;
$("#spec").val("2.3*1219*2438").attr("selected", "selected") ;
}
function size32_4_1680_click() {
$("#item").val("PO").attr("selected", "selected") ;
$("#spec").val("3.2*1219*1680").attr("selected", "selected") ;
}
function size15_4_2150_click() {
$("#item").val("304 HL").attr("selected", "selected") ;
$("#spec").val("1.5*1219*2150").attr("selected", "selected") ;
}
function size15_4_8_click() {
$("#item").val("304 HL").attr("selected", "selected") ;
$("#spec").val("1.5*1219*2438").attr("selected", "selected") ;
}
function size20_4_8_click() {
$("#item").val("EGI").attr("selected", "selected") ;
$("#spec").val("2.0*1219*2438").attr("selected", "selected") ;
}
// 기준요일에 따른 주차구하는 함수.
// 해당 주차 / 해당주차 시작날짜 / 해당주차 끝나는날짜를 리턴.
function searchPeriodCalculation(cYear, cMonth) {
// let cYear = document.getElementById("choiceYear").value;
// let cMonth = document.getElementById("choiceMonth").value.replace(/(^0+)/, "") - 1;
// 날짜형으로 데이트 포맷
let date = new Date(cYear, cMonth - 1);
// 월요일을 중심으로한 주차 구하기( JS기준 : 일요일 0 월요일 1 ~ 토요일 6 )
let firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
let lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
let weekObj = null;
let weekObjArray = new Array();
let weekStand = 8; // 월요일 고정
let firstWeekEndDate = true;
let thisMonthFirstWeek = firstDay.getDay();
for(var num = 1; num <= 6; num++) {
// 마지막월과 첫번째월이 다른경우 빠져나온다.
if(lastDay.getMonth() != firstDay.getMonth()) {
break;
}
weekObj = new Object();
// 한주의 시작일은 월의 첫번째 월요일로 설정
if(firstDay.getDay() <= 1) {
// 한주의 시작일이 일요일이라면 날짜값을 하루 더해준다.
if(firstDay.getDay() == 0) { firstDay.setDate(firstDay.getDate() + 1); }
weekObj.weekStartDate =
firstDay.getFullYear().toString()
+ "-"
+ numberPad((firstDay.getMonth() + 1).toString(), 2)
+ "-"
+ numberPad(firstDay.getDate().toString() , 2);
}
if(weekStand > thisMonthFirstWeek) {
if(firstWeekEndDate) {
if((weekStand - firstDay.getDay()) == 1) {
firstDay.setDate(firstDay.getDate() + (weekStand - firstDay.getDay()) - 1);
}
if((weekStand - firstDay.getDay()) > 1) {
firstDay.setDate(firstDay.getDate() + (weekStand - firstDay.getDay()) - 1)
}
firstWeekEndDate = false;
} else {
firstDay.setDate(firstDay.getDate() + 6);
}
} else {
firstDay.setDate(firstDay.getDate() + (6 - firstDay.getDay()) + weekStand);
}
// 월요일로 지정한 데이터가 존재하는 경우에만 마지막 일의 데이터를 담는다.
if(typeof weekObj.weekStartDate !== "undefined") {
weekObj.weekEndDate =
firstDay.getFullYear().toString()
+ "-"
+ numberPad((firstDay.getMonth() + 1).toString(), 2)
+ "-"
+ numberPad(firstDay.getDate().toString(), 2);
weekObjArray.push(weekObj);
}
firstDay.setDate(firstDay.getDate() + 1);
}
// console.log( weekObjArray );
return weekObjArray;
}
// 매주 금요일 추출
function searchFriday(cYear, cMonth) {
// 날짜형으로 데이트 포맷
let date = new Date(cYear, cMonth - 1);
// 월요일을 중심으로한 주차 구하기( JS기준 : 일요일 0 월요일 1 ~ 토요일 6 )
let firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
let lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
let weekObj = null;
let weekObjArray = new Array();
let weekStand = 8; // 월요일 고정
let firstWeekEndDate = true;
let thisMonthFirstWeek = firstDay.getDay();
for(var num = 1; num <= 6; num++) {
// 마지막월과 첫번째월이 다른경우 빠져나온다.
if(lastDay.getMonth() != firstDay.getMonth()) {
break;
}
weekObj = new Object();
// 한주의 시작일은 월의 첫번째 월요일로 설정
if(firstDay.getDay() <= 1) {
// 한주의 시작일이 일요일이라면 날짜값을 하루 더해준다.
if(firstDay.getDay() == 0) { firstDay.setDate(firstDay.getDate() + 1); }
weekObj.weekStartDate =
firstDay.getFullYear().toString()
+ "-"
+ numberPad((firstDay.getMonth() + 1).toString(), 2)
+ "-"
+ numberPad(firstDay.getDate().toString() , 2);
}
if(weekStand > thisMonthFirstWeek) {
if(firstWeekEndDate) {
if((weekStand - firstDay.getDay()) == 1) {
firstDay.setDate(firstDay.getDate() + (weekStand - firstDay.getDay()) - 1);
}
if((weekStand - firstDay.getDay()) > 1) {
firstDay.setDate(firstDay.getDate() + (weekStand - firstDay.getDay()) - 1)
}
firstWeekEndDate = false;
} else {
firstDay.setDate(firstDay.getDate() + 6);
}
} else {
firstDay.setDate(firstDay.getDate() + (6 - firstDay.getDay()) + weekStand);
}
// 월요일로 지정한 데이터가 존재하는 경우에만 마지막 일의 데이터를 담는다.
if(typeof weekObj.weekStartDate !== "undefined") {
weekObj.weekEndDate =
firstDay.getFullYear().toString()
+ "-"
+ numberPad((firstDay.getMonth() + 1).toString(), 2)
+ "-"
+ numberPad(firstDay.getDate().toString(), 2);
// Friday
weekObj.weekFriday =
firstDay.getFullYear().toString()
+ "-"
+ numberPad((firstDay.getMonth() + 1).toString(), 2)
+ "-"
+ numberPad(firstDay.getDate().toString()-2, 2);
weekObjArray.push(weekObj);
}
firstDay.setDate(firstDay.getDate() + 1);
}
// console.log( weekObjArray );
return weekObjArray;
}
// 월, 일 날짜값 두자리( 00 )로 변경
function numberPad(num, width) {
num = String(num);
return num.length >= width ? num : new Array(width - num.length + 1).join("0") + num;
}
function dateFormat(date) {
let dateFormat2 = date.getFullYear() +
'-' + ( (date.getMonth()+1) < 9 ? "0" + (date.getMonth()+1) : (date.getMonth()+1) )+
'-' + ( (date.getDate()) < 9 ? "0" + (date.getDate()) : (date.getDate()) );
return dateFormat2;
}
var imgObj = new Image();
function showImgWin(imgName) {
imgObj.src = imgName;
setTimeout("createImgWin(imgObj)", 100);
}
function createImgWin(imgObj) {
if (! imgObj.complete) {
setTimeout("createImgWin(imgObj)", 100);
return;
}
imageWin = window.open("", "imageWin",
"width=" + imgObj.width + ",height=" + imgObj.height);
}
function inputNumberFormat(obj) {
obj.value = comma(uncomma(obj.value));
}
function comma(str) {
str = String(str);
return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
}
function uncomma(str) {
str = String(str);
return str.replace(/[^\d]+/g, '');
}
function date_mask(formd, textid) {
/*
input onkeyup에서
formd == this.form.name
textid == this.name
*/
var form = eval("document."+formd);
var text = eval("form."+textid);
var textlength = text.value.length;
if (textlength == 4) {
text.value = text.value + "-";
} else if (textlength == 7) {
text.value = text.value + "-";
} else if (textlength > 9) {
//날짜 수동 입력 Validation 체크
var chk_date = checkdate(text);
if (chk_date == false) {
return;
}
}
}
function checkdate(input) {
var validformat = /^\d{4}\-\d{2}\-\d{2}$/; //Basic check for format validity
var returnval = false;
if (!validformat.test(input.value)) {
alert("날짜 형식이 올바르지 않습니다. YYYY-MM-DD");
} else { //Detailed check for valid date ranges
var yearfield = input.value.split("-")[0];
var monthfield = input.value.split("-")[1];
var dayfield = input.value.split("-")[2];
var dayobj = new Date(yearfield, monthfield - 1, dayfield);
}
if ((dayobj.getMonth() + 1 != monthfield)
|| (dayobj.getDate() != dayfield)
|| (dayobj.getFullYear() != yearfield)) {
alert("날짜 형식이 올바르지 않습니다. YYYY-MM-DD");
} else {
//alert ('Correct date');
returnval = true;
}
if (returnval == false) {
input.select();
}
return returnval;
}
function getCurrentDateTime() {
var currentDate = new Date();
var year = currentDate.getFullYear();
var month = currentDate.getMonth() + 1;
var day = currentDate.getDate();
var hours = currentDate.getHours(); // 24시간 형식을 사용
var minutes = currentDate.getMinutes();
var seconds = currentDate.getSeconds();
// 달, 일, 시간, 분, 초를 두 자리 숫자로 표시합니다.
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
hours = hours < 10 ? "0" + hours : hours;
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
// 현재 날짜와 시간을 반환합니다.
var currentDateTime = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return currentDateTime;
}
function setCookie (cookie_name, value, minutes) {
const exdate = new Date();
exdate.setMinutes(exdate.getMinutes() + minutes);
// const cookie_value = escape(value) + ((minutes == null) ? '' : '; expires=' + exdate.toUTCString());
const cookie_value = value + ((minutes == null) ? '' : '; expires=' + exdate.toUTCString()); // 암호화 끔
document.cookie = cookie_name + '=' + cookie_value;
}
function getCookie(cookie_name) {
var x, y;
var val = document.cookie.split(';');
for (var i = 0; i < val.length; i++) {
x = val[i].substr(0, val[i].indexOf('='));
y = val[i].substr(val[i].indexOf('=') + 1);
x = x.replace(/^\s+|\s+$/g, ''); // 앞과 뒤의 공백 제거하기
if (x == cookie_name) {
// return unescape(y); // unescape로 디코딩 후 값 리턴
return y; // 암호화 끔
}
}
}
function deleteCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
// 월, 일 날짜값 두자리( 00 )로 변경
function numberPad(num, width) {
num = String(num);
return num.length >= width ? num : new Array(width - num.length + 1).join("0") + num;
}
function dateFormat(date) {
let dateFormat2 = date.getFullYear() +
'-' + ( (date.getMonth()+1) < 9 ? "0" + (date.getMonth()+1) : (date.getMonth()+1) )+
'-' + ( (date.getDate()) < 9 ? "0" + (date.getDate()) : (date.getDate()) );
return dateFormat2;
}
function saveMenuLog(title) {
var formData = new FormData();
formData.append('menu', title);
$.ajax({
enctype: 'multipart/form-data', // file을 서버에 전송하려면 이렇게 해야 함 주의
processData: false,
contentType: false,
cache: false,
timeout: 600000,
url: "/insert_logmenu.php",
type: "post",
data: formData,
dataType: "json",
success: function(data){
console.log(data);
},
error: function(jqxhr, status, error) {
console.log(jqxhr, status, error);
alert("An error occurred: " + error); // Display error message
}
});
}
function saveLogData(title) {
var formData = new FormData();
formData.append('menu', title);
$.ajax({
enctype: 'multipart/form-data', // file을 서버에 전송하려면 이렇게 해야 함 주의
processData: false,
contentType: false,
cache: false,
timeout: 600000,
url: "/insert_logmenu.php",
type: "post",
data: formData,
dataType: "json",
success: function(data){
console.log(data);
},
error: function(jqxhr, status, error) {
console.log(jqxhr, status, error);
alert("An error occurred: " + error); // Display error message
}
});
}
function showMsgModal(type) {
var message = '';
var scale = 1; // 기본 배율
switch (type) {
case 1:
message = '이미지를 업로드 중입니다. 잠시만 기다려 주세요!';
break;
case 2:
message = '파일을 업로드 중입니다. 잠시만 기다려 주세요!';
break;
case 3:
message = '데이터를 처리 중입니다. 잠시만 기다려 주세요!';
break;
case 4:
message = '다운로드 중입니다. 잠시만 기다려 주세요!';
break;
case 10:
message = '다운로드 파일은 Ctrl+j 키를 누르면 볼 수 있습니다';
scale = 2; // 배율 조정
break;
default:
message = '작업을 처리 중입니다. 잠시만 기다려 주세요!';
}
if ($('#msgModal').length > 0 || $('#msgOverlay').length > 0) {
return;
}
var modal = $('<div>').attr('id', 'msgModal').css({
position: 'fixed',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
backgroundColor: '#fff',
padding: 20 * scale + 'px',
borderRadius: 10 * scale + 'px',
boxShadow: '0 0 ' + 10 * scale + 'px rgba(0, 0, 0, 0.5)',
zIndex: 10000,
textAlign: 'center',
fontSize: 16 * scale + 'px'
}).text(message);
var overlay = $('<div>').attr('id', 'msgOverlay').css({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
zIndex: 9999
});
$('body').append(overlay).append(modal);
$('button').prop('disabled', true);
}
// 메시지 모달 숨기기 함수
function hideMsgModal() {
// 모달이 없으면 처리 중단
if ($('#msgModal').length === 0 || $('#msgOverlay').length === 0) {
return;
}
$('#msgModal').remove();
$('#msgOverlay').remove();
// 모든 버튼 다시 활성화
$('button').prop('disabled', false);
}
function downloadFile(fileId, realName) {
// 다운로드 링크 생성
const link = document.createElement("a");
link.href = `https://drive.google.com/uc?export=download&id=${fileId}`;
link.download = realName;
// 메시지 모달 표시
showMsgModal(4); // "다운로드 처리 중입니다. 잠시만 기다려 주세요!" 표시
setTimeout(() => {
hideMsgModal(); // 다운로드 완료 후 모달 닫기
showMsgModal(10); // "다운로드파일은 Ctrl+j 키를 누르면 볼 수 있습니다."
}, 1000);
// 다운로드 실행
link.click();
// 다운로드가 완료될 시간을 예상하여 모달 닫기
setTimeout(() => {
hideMsgModal(); // 다운로드 완료 후 모달 닫기
}, 5000); // 5초 후 모달 닫기 (필요에 따라 시간 조정)
}
// 잠시만 기다려주세요 모달 창을 표시하는 함수
function showWaitingModal() {
var modal = $('<div>').attr('id', 'waitingModal').css({
position: 'fixed',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
backgroundColor: '#fff',
padding: '20px',
borderRadius: '10px',
boxShadow: '0 0 10px rgba(0, 0, 0, 0.5)',
zIndex: 5000,
textAlign: 'center'
}).text('화면을 로딩중입니다. 잠시만 기다려 주세요.');
var overlay = $('<div>').attr('id', 'overlay').css({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
zIndex: 9999
});
$('body').append(overlay).append(modal); // 모달과 오버레이를 body에 추가
}
// 저장 중 모달 창을 표시하는 함수
function showSavingModal() {
var modal = $('<div>').attr('id', 'savingModal').css({
position: 'fixed',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
backgroundColor: '#fff',
padding: '20px',
borderRadius: '10px',
boxShadow: '0 0 10px rgba(0, 0, 0, 0.5)',
zIndex: 1000,
textAlign: 'center'
}).text('저장 중입니다. 잠시만 기다려 주세요.');
var overlay = $('<div>').attr('id', 'overlay').css({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
zIndex: 99
});
$('body').append(overlay).append(modal); // 모달과 오버레이를 body에 추가
}
// 저장이 완료되면 모달 창을 숨기는 함수
function hideSavingModal() {
if ($('#savingModal').length) {
$('#savingModal').remove(); // 모달 삭제
}
if ($('#waitingModal').length) {
$('#waitingModal').remove(); // 모달 삭제
}
if ($('#overlay').length) {
$('#overlay').remove(); // 오버레이 삭제
}
}
function showShiningText(message = "프로그램 제작중...", fontSize = "100px") {
const existing = document.getElementById("shineTextOverlay");
if (existing) existing.remove(); // 중복 방지
const style = document.createElement('style');
style.innerHTML = `
#shineTextOverlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: #000;
z-index: 9999;
display: flex;
justify-content: center;
align-items: center;
}
#shineTextOverlay .shine-text {
font-size: ${fontSize};
font-weight: bold;
line-height: 1.2;
padding: 20px;
background: linear-gradient(
90deg,
#ffffff 0%,
#dcdcdc 20%,
#f1f1f1 40%,
#888888 50%,
#f1f1f1 60%,
#dcdcdc 80%,
#ffffff 100%
);
background-size: 200% auto;
color: transparent;
background-clip: text;
-webkit-background-clip: text;
animation: shineReverse 2.5s linear infinite;
white-space: nowrap;
}
@keyframes shineReverse {
0% {
background-position: 200% 0;
}
100% {
background-position: -100% 0;
}
}
`;
document.head.appendChild(style);
const overlay = document.createElement('div');
overlay.id = "shineTextOverlay";
overlay.innerHTML = `<div class="shine-text">${message}</div>`;
document.body.appendChild(overlay);
}
/* =================================================================================
알림 토스트 함수
================================================================================= */
function alertToast(message) {
// 기본 배경 색상 (초록)
let backgroundColor = "linear-gradient(to right, #00b09b, #96c93d)";
// 조건에 따라 색상 변경
if (message.includes("추가")) {
backgroundColor = "linear-gradient(to right, #2196F3, #21CBF3)"; // 파란 계열
} else if (message.includes("삭제")) {
backgroundColor = "linear-gradient(to right, #f44336, #e57373)"; // 빨간 계열
} else if (message.includes("복사")) {
backgroundColor = "linear-gradient(to right, #4CAF50, #81C784)"; // 녹색 계열
}
Toastify({
text: message,
duration: 2000,
close: true,
gravity: "top",
position: "center",
style: {
background: backgroundColor
},
}).showToast();
}