/** * Tabulator.js 기반의 메시지 발송 대상자 관리 스크립트 * * 주요 기능: * 1. 발송 가능 상태(발송전)인 대상자만 선택 가능하도록 제어 * 2. 사용자 정의 페이지네이션 UI 구현 * 3. 마우스 드래그를 이용한 행(Row) 범위 선택 * 4. 버튼 클릭 및 엔터키 롱프레스를 통한 대량 행 자동 선택 (연속 선택) */ $(document).ready(function(){ fn_chkTmpJobStatus(); // fn_setTwSmsTable(); }); function fn_chkTmpJobStatus(){ // console.log('=========================fn_setTwSmsTable========================='); var url = "/web/mjon/msgcampain/chkTmpJobStatusAjax.do"; $.ajax({ type: 'POST', url: url, contentType: 'application/json', dataType: 'json' ,beforeSend : function() { //로딩창 show $('.loading_layer').addClass('active'); }, success : function(data) { console.log(' + fn_chkTmpJobStatus data : ', data); // alert(data.msg); if(data.status == 'OK') { if(data.data == null){ $('.loading_layer').removeClass('active'); }else if(data.data.jobStatus == 'P'){ setTimeout(function(){ fn_chkTmpJobStatus(); }, 3000); }else if(data.data.jobStatus == 'C'){ var tmpJobId = data.data.tmpJobId; $('#tmpJobId').val(tmpJobId); fn_setTwSmsTable(tmpJobId); } } else { // 실패 처리 로직 } } ,error: function(jqXHR, textStatus, errorThrown) { console.error("AJAX 실패:", textStatus, errorThrown); console.error("서버 응답 전체:", jqXHR.responseText.substring(0, 500)); // 앞부분만 출력 // ★★★ 중요: 실제 받은 내용 확인용 ★★★ if (jqXHR.responseText && jqXHR.responseText.includes('