$(document).on('click', '.addressregi_btn', function() { var tableData = tableL.getRows(); var dataLen = tableL.getRows().length; if(dataLen == 0){ alert("연락처 정보를 등록해 주세요."); return false; }else{ $('.addressregi_layer').css({'width':'680px','display':'block','left':'50%','top':'50%','transform':'translate(-50%,-50%)'}); setTimeout(function(){ $('.addressregi_layer').css({'opacity':'1'}); },150); $('.mask').addClass('on'); getAddrGroupList(); } }); $(document).on('click', '.addressregi_layer .tooltip-close', function() { $('.addressregi_layer').attr('style',''); $("#addrGrpNm").val(""); }); $(document).on('change', '#addrGrpIdInfo', function() { if ($("#addrGrpIdInfo option:selected").val() != "NEW") { $("#addrGrpNm").val(""); // 새그룹명 Clear; } }); //주소록 그룹정보 불러오기 function getAddrGroupList() { $.ajax({ type : "POST", async : false, url : "/web/mjon/addr/addrGroupListAjax.do", data : {}, dataType:'json', success : function(data) { //alert(JSON.stringify(data.addrGroupList)); // Show Html getAddrGroupListShow(data.addrGroupList); }, error : function(xhr, status, error) { alert(error); return false; } }); } //Show Html function getAddrGroupListShow(jsonList) { var sHtml = ""; sHtml += ""; sHtml += ""; sHtml += ""; for (var j = 0; j < jsonList.length; j++) { sHtml += " "; } $("#addrGrpIdInfo").html(sHtml); } //주소록 그룹 중복체크 function getAddrGroupDuplCheckAjax(addrGrpNm) { console.log('addrGrpNm : ', addrGrpNm) console.log('getAddrGroupDuplCheckAjax()') var isReturn = true; $.ajax({ url : "", type : 'POST', data : {"addrGrpNm" : addrGrpNm}, dataType:'json', async: false, // 동기 success : function(data, status){ if(data.isSuccess == true) { if(data.isDupl == true) { //alert("중복된 그룹명입니다."); isReturn = false; } } else { //alert("Message : " + msg); } }, error: function (e) { //alert("주소록 중복체크에 실패했습니다."); } }); return isReturn; } //주소록 팝업 닫기 기능 function addrClose(){ $(".closeAddr").trigger("click"); //주소록 레이어 팝업의 Tabulator 데이터 지워주기 tableAddr.clearData(); } //주소록 불러오기에서 수신자 리스트 추가해 주기 /* function addrToList(){ var selectedData = tableAddr.getSelectedRows(); var tableData = []; if(selectedData == "" || selectedData == null){ alert("주소록을 선택해 주세요."); return false; }else{ // 선택한 Row 데이터 저장해주기 // 선택한 Row 데이터 저장해주기 // if(selectedData.length > 500){ // alert("최대 발송 건수는 500 입니다."); // return false; // }else{ for(var i=0; i < selectedData.length; i++){ //좌측 받는사람 리스트를 담아둔 배열에 데이터를 추가해 준다. tableData.push({ phone: removeDash(selectedData[i].getData().addrPhone) , name: selectedData[i].getData().addrName // , rep1: selectedData[i].getData().addrRep1 // , rep2: selectedData[i].getData().addrRep2 // , rep3: selectedData[i].getData().addrRep3 // , rep4: selectedData[i].getData().addrRep4 }); } //선택한 데이터 받는사람 리스트에 추가해 주기 addPhoneInfo(tableData); $(".closeAddr").trigger("click"); //주소록 레이어 팝업의 Tabulator 데이터 지워주기 tableAddr.clearData(); // } } } */ //주소록 불러오기에서 수신자 리스트 추가해 주기 function addrToList_advc(type){ // 선택된 데이터 또는 전체 데이터 변수 초기화 let selectedData = type === 'select' ? tableAddr.getSelectedRows() : tableAddr.getData(); // 데이터가 비어있으면 경고 후 종료 if (!selectedData || selectedData.length < 1) { if(tableAddr.getDataCount() < 1){ alert("주소록을 선택해 주세요."); }else{ alert("전화번호를 선택해 주세요."); } return false; } // 데이터 변환 로직 const addrData = selectedData.map(row => { const rowData = type === 'select' ? row.getData() : row; // 'select'는 행 객체에서 데이터 추출 return { name: rowData.name, phone: removeDash(rowData.phone), rep1: rowData.rep1, rep2: rowData.rep2, rep3: rowData.rep3, rep4: rowData.rep4 }; }) .filter(row => checkHpNum(row.phone)); // 유효한 번호만 필터링; // 기존 tableL의 데이터를 가져옵니다. var existingData = tableL.getData(); // 기존 데이터와 새로운 데이터를 합칩니다. var combinedData = existingData.concat(addrData); // @ phone을 기준으로 중복 제거 및 갯수 계산 const result = removeDuplicatesAndCount(combinedData, 'phone'); // 총 30만건이 넘으면 false if (!validateRowLimit(result.uniqueCount)) { return false; } setAllCntData(result); // 미리보기 버튼 활성화 $(".closeAddr").trigger("click"); //주소록 레이어 팝업의 Tabulator 데이터 지워주기 tableAddr.clearData(); fn_priceClclt(result.uniqueCount); } function loadAddrList(){ /* serialize 를 사용할때는 processDa ta, contentType 옵션 제가할것 */ var data = $("#searchAddrGrpForm").serialize(); var url = "/web/mjon/msgdata/selectMsgAddrListAjax_advc.do"; $.ajax({ type: "POST", url: url, data: data, dataType:'json', async: true, cache: false, success: function (data) { console.log('data : ', data); if(data.status == "OK"){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 var addrList = data.object; if(addrList.length == 0){ alert("주소록 정보가 없습니다."); // tableAddr.setData([]); return false; } // console.log('data : ', data); tableAddr.setData(addrList); } else { alert("주소록 불러오기에 실패하였습니다. !!"); } }, error: function (jqXHR, textStatus, errorThrown) { alert("주소록 불러오기에 실패하였습니다."); console.error("Error:", jqXHR.status, textStatus, errorThrown); console.error("Response Text:", jqXHR.responseText); try { let json = JSON.parse(jqXHR.responseText); console.log("Parsed JSON Response:", json); } catch (e) { console.error("JSON Parse Error:", e); } }, beforeSend : function(xmlHttpRequest) { //로딩창 show $('.loading_layer').addClass('active'); }, complete : function(xhr, textStatus) { //로딩창 hide $('.loading_layer').removeClass('active'); } }); } function fnAddrSearch(){ var form = document.searchAddrGrpForm; form.searchKeyword.value = form.searchAddrKeyword.value; form.searchCondition.value = form.searchAddrCondition.value; loadAddrList(); } //주소록 불러오기 팝업의 그룹 선택시 우측에 주소록 불러오기 function fnSelectAddrList(type,addrGrpId,item){ // 주소록 그룹 열림, 닫힘 폴더이미지 초기화 $(".adr_pop_list div p").each(function (index, item) { $(item).find("img").attr("src", "/publish/images/content/close_folder2.png"); $(item).find("img").attr("alt", "폴더 닫힘"); }); var form = document.searchAddrGrpForm; form.type.value = type; form.searchAddrGrpId.value = addrGrpId; form.searchKeyword.value = ""; form.searchCondition.value = form.searchAddrCondition.value; //왼쪽 그룹리스트의 그룸명을 선택시 검색어를 초기화해준다. form.searchAddrKeyword.value=""; /* $(item).toggleClass("open"); if ($(item).hasClass("open") === true) { $(item).find("img").attr("src", "/publish/images/content/open_folder2.png"); $(item).find("img").attr("alt", "폴더 열림"); } else { $(item).find("img").attr("src", "/publish/images/content/close_folder2.png"); $(item).find("img").attr("alt", "폴더 닫힘"); } */ $(item).find("img").attr("src", "/publish/images/content/open_folder2.png"); $(item).find("img").attr("alt", "폴더 열림"); loadAddrList(); } //주소록 불러오기 그룹명 검색 기능처리 function fnAddrGrpSearch(){ var form = document.searchAddrGrpForm; form.searchKeyword.value = form.searchGrpKeyword.value; form.searchCondition.value = ""; var sendData = $(document.searchAddrGrpForm).serializeArray(); $("#addrGroupLoad").load("/web/mjon/msgdata/selectAddrGroupListAjax.do", sendData ,function(response, status, xhr){ //리스트 스크롤 처리해주기 $(".adr_pop_list").mCustomScrollbar({ axis: 'y', scrollbarPosition: "outside", theme: "dark", autoHideScrollbar: false }); }); } /* //문자발송 받는사람 목록 주소록에 등록하기 기능 처리 $('.registAddr').click(function(){ var tableData = tableL.getRows(); var dataLen = tableL.getRows().length; var nameList = []; //치환문자 이름 var phoneNum = []; //받는사람 var rep1List = []; //치환문자1 var rep2List = []; //치환문자2 var rep3List = []; //치환문자3 var rep4List = []; //치환문자4 if(dataLen > 0){ for(var i=0; i < dataLen; i++){ var name = tableData[i].getData().name; var phone = removeDash(tableData[i].getData().phone); var rep1 = tableData[i].getData().rep1; var rep2 = tableData[i].getData().rep2; var rep3 = tableData[i].getData().rep3; var rep4 = tableData[i].getData().rep4; if(phone == "" || phone == null){ alert("수신 목록에 핸드폰 번호가 없는 항목이 있습니다."); return false; }else if(!checkHpNum(phone)){ alert("수신 목록에 잘 못된 핸드폰 번호가 있습니다. 핸드폰 번호 : " + phone + " 입니다."); return false; } nameList[i] = name; phoneNum[i] = phone; if(rep1 == "" || rep1 == null){ rep1List[i] = "-"; }else{ rep1List[i] = rep1; } if(rep2 == "" || rep2 == null){ rep2List[i] = "-"; }else{ rep2List[i] = rep2; } if(rep3 == "" || rep3 == null){ rep3List[i] = "-"; }else{ rep3List[i] = rep3; } if(rep4 == "" || rep4 == null){ rep4List[i] = "-"; }else{ rep4List[i] = rep4; } if(name == "" || name == null){ alert("수신 목록에 이름이 없는 항목이 있습니다. 이름을 입력해 주세요"); return false; }else{ nameList[i] = name; phoneNum[i] = phone; if(rep1 == "" || rep1 == null){ rep1List[i] = "-"; }else{ rep1List[i] = rep1; } if(rep2 == "" || rep2 == null){ rep2List[i] = "-"; }else{ rep2List[i] = rep2; } if(rep3 == "" || rep3 == null){ rep3List[i] = "-"; }else{ rep3List[i] = rep3; } if(rep4 == "" || rep4 == null){ rep4List[i] = "-"; }else{ rep4List[i] = rep4; } } } //주소록 정보를 Form에 넣어준다. var form = document.msgForm; form.callToList.value = phoneNum; form.nameList.value = nameList; form.rep1List.value = rep1List; form.rep2List.value = rep2List; form.rep3List.value = rep3List; form.rep4List.value = rep4List; form.addrGrpId.value = $("#addrGrpIdInfo").val(); form.addrGrpNm.value = $("#addrGrpNm").val(); if ($("#addrGrpIdInfo option:selected").val() == "NEW" && ($("#addrGrpNm").val() == "" || $("#addrGrpNm").val() == null || $("#addrGrpNm").val() == undefined)) { alert("저장할 그룹을 선택하거나 새 그룹명을 입력해주세요."); return false; }else if ($("#addrGrpIdInfo option:selected").val() == "NEW" && $("#addrGrpNm").val() != "") { //주소록 중복체크 if (getAddrGroupDuplCheckAjax() == false) { alert("중복된 그룹명입니다. 새 그룹명을 입력해주세요."); return false; } } if(confirm("연락처 정보를 주소록에 등록 하시겠습니까?")){ var data = new FormData(form); var url = "/web/mjon/msgdata/insertMsgAddrListAjax.do"; $.ajax({ type: "POST", enctype: 'multipart/form-data', url: url, data: data, dataType:'json', async: true, processData: false, contentType: false, cache: false, //timeout: 600000, success: function (returnData, status) { if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 if(returnData.result == "success"){ var alertMsg = "총 " + returnData.resultCnt + "건의 " +returnData.message; if(returnData.dupliCnt > 0) { alertMsg += "\n"+numberWithCommas(returnData.dupliCnt) + "건은 이미 등록되어있는 번호입니다."; } alert(alertMsg); $("#addrGrpNm").val(""); $('.addressregi_layer').attr('style',''); $('.mask').removeClass('on'); return false; }else if(returnData.result == "allDupl") { alert("요청하신 "+returnData.dupliCnt+"건의 번호가 주소록에 이미 등록되어있습니다."); $("#addrGrpNm").val(""); $('.addressregi_layer').attr('style',''); $('.mask').removeClass('on'); return false; }else{ alert(returnData.message); $("#addrGrpNm").val(""); $('.addressregi_layer').attr('style',''); $('.mask').removeClass('on'); return false; } } else if(status== 'fail'){ alert("주소록 등록에 실패하였습니다. !!"); } }, error: function (e) { alert("주소록 등록에 실패하였습니다."); console.log("ERROR : ", e); }, beforeSend : function(xmlHttpRequest) { //로딩창 show $('.loading_layer').addClass('active'); }, complete : function(xhr, textStatus) { //로딩창 hide $('.loading_layer').removeClass('active'); } }); } }else{ alert("연락처 정보를 등록해 주세요."); return false; } }); */