File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
/**
* 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('<!DOCTYPE')) {
console.error("HTML 응답 받음 → 서버에서 JSON 대신 HTML 반환 중 (404/500/로그인 리다이렉트?)");
}
}
,complete : function(xhr, textStatus) {
//로딩창 hide
// $('.loading_layer').removeClass('active');
}
});
}
// 기존에 받는 사람 목록 가져오기
function fn_setTwSmsTable(tmpJobId){
var sendData = {
"tmpJobId" : tmpJobId
}
console.log('=========================fn_setTwSmsTable=========================');
var url = "/web/mjon/msgcampain/selectMsgTWCallToListAjax_advc.do";
$.ajax({
type: 'POST',
url: url,
contentType: 'application/json',
data: JSON.stringify(sendData),
dataType: 'json'
,beforeSend : function() {
//로딩창 show
// $('.loading_layer').addClass('active');
},
success : function(data) {
console.log(' + fn_setTwSmsTable data : ', data);
// alert(data.msg);
if(data.status == 'OK')
{
var sendList = data.data.map(function(row) {
// console.log('row.sendFlag : ', rowㄴ.sendFlag);
return {
name: row.callNm || "", // 이름 → callNm
phone: row.callTo || "", // 전화번호 → callTo
status: row.sendFlag || "" // 전화번호 → callTo
// 필요하면 추가 필드 넣기
// status: row.status,
};
});
twSmsTable.setData(sendList).then(function(){
refreshSendCounts();
moveToFirstSelectablePage();
});
}
else
{
// 실패 처리 로직
}
}
,error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX 실패:", textStatus, errorThrown);
console.error("서버 응답 전체:", jqXHR.responseText.substring(0, 500)); // 앞부분만 출력
// ★★★ 중요: 실제 받은 내용 확인용 ★★★
if (jqXHR.responseText && jqXHR.responseText.includes('<!DOCTYPE')) {
console.error("HTML 응답 받음 → 서버에서 JSON 대신 HTML 반환 중 (404/500/로그인 리다이렉트?)");
}
}
,complete : function(xhr, textStatus) {
//로딩창 hide
$('.loading_layer').removeClass('active');
}
});
}