• Y
  • List All
  • Feedback
    • This Project
    • This Group
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
2025_PROJECT / mjgo_git star
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB
  • Files
  • Commit
  • Branches
mjgo_gitsrcmainwebappWEB-INFjspwebmsgsentMsgSentDetailView.jsp
Download as .zip file
File name
Commit message
Commit date
DATABASE
first commit
2025-12-15
src/main
통합테스트 결과_260423_수정사항 수정
04-24
.codetogether.ignore
first commit
2025-12-15
.gitignore
first commit
2025-12-15
pom.xml
build name 수정
03-17
File name
Commit message
Commit date
java
5733 메인배너 이미지관리 좌표 추가
04-24
resources
5733 메인배너 이미지관리 좌표 추가
04-24
webapp
통합테스트 결과_260423_수정사항 수정
04-24
File name
Commit message
Commit date
META-INF
first commit
2025-12-15
MMS
first commit
2025-12-15
WEB-INF
통합테스트 결과_260423_수정사항 수정
04-24
common
first commit
2025-12-15
crosseditor/binary/images
first commit
2025-12-15
css
first commit
2025-12-15
direct
first commit
2025-12-15
dist
first commit
2025-12-15
download
문자고 디자인 변경
03-17
font-flexslider
first commit
2025-12-15
fonts
first commit
2025-12-15
html
first commit
2025-12-15
images
first commit
2025-12-15
img
관리자 수정
04-17
js
first commit
2025-12-15
mail
first commit
2025-12-15
mjon/MMS
first commit
2025-12-15
pb
관리자 수정
04-17
public
first commit
2025-12-15
publish
통합테스트 결과_260423_수정사항 수정
04-24
sample_mjon
first commit
2025-12-15
site
first commit
2025-12-15
d09a9f949e6e48eeb221d7a13bdb1d14.txt
first commit
2025-12-15
google53cfb10eb3856530.html
first commit
2025-12-15
googlefa7d697b23d4a34a.html
first commit
2025-12-15
imageEditorSample.html
first commit
2025-12-15
imageEditorSample2.html
first commit
2025-12-15
index.jsp
first commit
2025-12-15
naver94c82af5badbae52b1e46e77b88410c9.html
first commit
2025-12-15
robots.txt
first commit
2025-12-15
sendRESTAPI_test_r1_send.jsp
first commit
2025-12-15
sitemap.xml
first commit
2025-12-15
tempPayPrint.html
first commit
2025-12-15
tempPrint.html
first commit
2025-12-15
tempPrint1.html
first commit
2025-12-15
test.jsp
first commit
2025-12-15
File name
Commit message
Commit date
META-INF
first commit
2025-12-15
config/egovframework/springmvc
first commit
2025-12-15
jsp
통합테스트 결과_260423_수정사항 수정
04-24
lib
first commit
2025-12-15
tld
first commit
2025-12-15
decorators.xml
first commit
2025-12-15
jeus-web-dd.xml
first commit
2025-12-15
sitemesh.xml
first commit
2025-12-15
web.xml
first commit
2025-12-15
weblogic.xml
first commit
2025-12-15
File name
Commit message
Commit date
agent
first commit
2025-12-15
block
first commit
2025-12-15
cmm
first commit
2025-12-15
cnt
통합테스트 결과_260423_수정사항 수정
04-24
cntsource
first commit
2025-12-15
com/utl/wed
first commit
2025-12-15
cop
first commit
2025-12-15
egovframework/com/uss/ion/bnr
first commit
2025-12-15
holiday
first commit
2025-12-15
kisa/kisa
first commit
2025-12-15
kopost/search
first commit
2025-12-15
layout
문자고 디자인 변경
03-17
letter
first commit
2025-12-15
main
first commit
2025-12-15
sample
first commit
2025-12-15
sec
first commit
2025-12-15
sts/cst
first commit
2025-12-15
sym
first commit
2025-12-15
uat
first commit
2025-12-15
uss
first commit
2025-12-15
web
통합테스트 결과_260423_수정사항 수정
04-24
blank.jsp
first commit
2025-12-15
cntCNT_000000000862.jsp
first commit
2025-12-15
File name
Commit message
Commit date
addr
통합테스트 결과_260423_수정사항 수정
04-24
addrBlock
first commit
2025-12-15
addragency
통합테스트 결과_260423_수정사항 수정
04-24
api
first commit
2025-12-15
com
통합테스트 결과_260423_수정사항 수정
04-24
cop
이용약관 텍스트 수정
04-17
custom
문자고 디자인 변경
03-17
event
first commit
2025-12-15
fax
문자고 디자인 변경
03-17
grd
first commit
2025-12-15
kakao
통합테스트 결과_260423_수정사항 수정
04-24
login
문자고 디자인 변경
03-17
main
통합테스트 결과_260423_수정사항 수정
04-24
member
first commit
2025-12-15
msg
first commit
2025-12-15
msgcampain
first commit
2025-12-15
msgdata
문자고 디자인 변경
03-17
msgsent
first commit
2025-12-15
pay
통합테스트 결과_260423_수정사항 수정
04-24
pop
통합테스트 결과_260423_수정사항 수정
04-24
reservedmsg
first commit
2025-12-15
sample
first commit
2025-12-15
search
first commit
2025-12-15
survey
first commit
2025-12-15
user
문자고 디자인 변경
03-17
rejectTest.jsp
first commit
2025-12-15
File name
Commit message
Commit date
subcontent
first commit
2025-12-15
MsgSentAllListAjax.jsp
first commit
2025-12-15
MsgSentAllListAjax_advc_backup_20250115.jsp
first commit
2025-12-15
MsgSentCompleteListAjax.jsp
first commit
2025-12-15
MsgSentDetailPop2Ajax.jsp
first commit
2025-12-15
MsgSentDetailPopAjax.jsp
first commit
2025-12-15
MsgSentDetailView.jsp
first commit
2025-12-15
MsgSentFailListAjax.jsp
first commit
2025-12-15
MsgSentPrintListPopUp.jsp
first commit
2025-12-15
MsgSentReadyListAjax.jsp
first commit
2025-12-15
MsgSentSFDetailListAjax.jsp
first commit
2025-12-15
MsgSentView.jsp
first commit
2025-12-15
hehihoho3@gmail.com 2025-12-15 3d8ab0d first commit UNIX
Raw Open in browser Change history
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> <%@ taglib prefix="fnc" uri="/WEB-INF/tld/functions.tld"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ page import="itn.com.cmm.LoginVO" %> <% pageContext.setAttribute("newLineChar", "\n"); %> <style> /* Tabulator Placeholder 기본 스타일 유지 */ .tabulator-placeholder { font-size: 22px !important; /* 기존 폰트 크기 유지 */ color: #e2d6d6 !important; /* 기존 색상 유지 */ font-weight: normal !important; /* 기본 폰트 두께 유지 */ display: flex; justify-content: center; align-items: center; height: 100%; } </style> <script type="text/javascript"> var currentSearchKeyword = ""; // 검색어 저장 var currentTabFilter = "전체"; // 현재 선택된 탭 (기본값: 전체) var $tbDtailList = null; //에러 팝업 영역 $(document).ready(function(){ // 탭별 하위 버튼 활성화 fn_rowBtnSH('전체'); // 주소록 그룹 불러오기 getAddrGroupList(); //Tabulator AJAX Data Loading $tbDtailList = new Tabulator("#detailPopup", { height: "255px", width: "20%", // layout: "fitDataStretch", // 데이터가 너비에 맞게 늘어나도록 설정 layout: "fitColumns", // fitDataStretch 대신 fitColumns 사용 autoColumns: false, headerHozAlign: "center", validationMode: "highlight", clipboard: false, clipboardCopySelector: "table", clipboardPasteAction: "insert", // insert, update, replace placeholder:"데이터를 불러오고 있습니다...", columns: [ { title: "휴대폰", field: "phone", hozAlign: "center", headerHozAlign: "center", widthGrow: 1 }, { title: "상세결과", field: "result", hozAlign: "center", headerHozAlign: "center", widthGrow: 1 } ] }); fn_getDetailList(); $('#goPageBtn').click(function(){ $("#goList").submit(); }); // 탭 버튼 클릭 이벤트 $(".tabType3 .tab button").on("click", function () { // 모든 탭의 active 클래스 제거 $(".tabType3 .tab").removeClass("active"); // 클릭한 버튼의 부모 요소(li)에 active 클래스 추가 $(this).parent().addClass("active"); // 기존 버튼들의 title 속성 초기화 $(".tabType3 .tab button").removeAttr("title"); // 선택된 버튼의 title 속성을 "선택됨"으로 변경 $(this).attr("title", "선택됨"); // 검색어 초기화 $("#searchInput").val(""); // 필터 적용 (검색 필터 없이 탭 기준으로만 적용) fn_applyFilters(); }); // 검색 버튼 클릭 시 실행 $("#searchBtn").on("click", function () { fn_search(); }); // 실시간 검색 및 Enter 키 이벤트 처리 $("#searchInput").on("keyup", function (event) { let keyword = $(this).val().trim(); if (keyword.length > 2) { fn_applyFilters({ field: "phone", type: "like", value: keyword }); } else { fn_applyFilters(null); } // Enter 키 입력 시 검색 실행 if (event.key === "Enter") { fn_search(); } }); $('.listClose').on("click", function (){ tooltipInit(); }); $('.grpClose').on("click", function (){ $('#grpNm').val('') }); $(document).on('change', '#addrGrpIdInfo', function() { if ($("#addrGrpIdInfo option:selected").val() != "NEW") { $("#grpNm").val(""); // 새그룹명 Clear; } }); }); //검색 실행 함수 function fn_search() { let keyword = $("#searchInput").val().trim(); if (keyword.length < 3) { alert("검색어를 3자 이상 입력해주세요."); return; } fn_applyFilters({ field: "phone", type: "like", value: keyword }); } /** * @Discription : 튤팁 닫을 때 팝업 초기화 */ function tooltipInit(){ $tbDtailList.clearFilter(); $("#searchInput").val(''); $("#initTab").click(); } /** * @Discription : 상세결과 팝업 내용 가져오는 로직 */ function fn_getDetailList(){ var params = { "msgGroupId" : $('#msgGroupId').val() } $.ajax({ type: "POST", url: "/web/mjon/msgsent/findByMsgDetailListAjax.do", data: params, dataType:'json', async: true, success: function (returnData) { console.log('returnData : ', returnData); if(returnData.status == 'OK'){ fn_setData(returnData.object); } }, error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } }); } /** * @Description: 데이터 설정 */ function fn_setData(data){ // console.log('data : ', data); // $tbDtailList.clearData(); const resultData = []; // 오류 데이터를 저장할 배열 data.forEach((row, index) => { resultData.push({ // addrNm: row.addrNm, // 폰번호 phone: row.callTo, // 폰번호 result: row.statusTxt // 결과 메시지 추가 }); }); // 오류 및 중복 데이터를 한 번에 추가 $tbDtailList.setData(resultData); }; /** * @Discription : 필터 적용 */ function fn_applyFilters(newFilter) { // 현재 적용된 모든 필터 가져오기 let filters = []; // 현재 선택된 탭 값 가져오기 let selectedTab = $(".tabType3 .tab.active button").text().trim(); // 탭 필터 적용 (탭이 "전체"가 아닐 경우) if (selectedTab !== "전체") { filters.push({ field: "result", type: "like", value: selectedTab }); } // 검색어가 입력된 경우 검색 필터 추가 if (newFilter && newFilter.value) { filters.push(newFilter); } // 필터 적용 $tbDtailList.setFilter(filters); // Placeholder 업데이트 fn_setPlaceholder("검색 결과가 없습니다."); // 툽팁 하위 버튼 삭제 fn_rowBtnSH(selectedTab); } /** * @Description: 타블레이서 설명 수정 */ function fn_setPlaceholder(msg){ // 검색 후 데이터가 있는지 확인 후 placeholder 변경 setTimeout(() => { let filteredRows = $tbDtailList.getRows('active').length; // 필터링된 행 개수 가져오기 if (filteredRows === 0) { // 기존 데이터 유지하면서 빈 데이터 추가하여 placeholder 변경 $(".tabulator-placeholder").text(msg); // placeholder 메시지 변경 } }, 300); // 필터 적용 후 반영되도록 약간의 딜레이 추가 } /** * @Description: 필터링된 데이터만 다운로드 */ function fn_downloadFilteredExcel() { // 현재 날짜 및 시간 가져오기 (YYYYMMDD_HHMMSS 형식) let now = new Date(); let timestamp = now.getFullYear() + ("0" + (now.getMonth() + 1)).slice(-2) + ("0" + now.getDate()).slice(-2) + "_" + ("0" + now.getHours()).slice(-2) + ("0" + now.getMinutes()).slice(-2) + ("0" + now.getSeconds()).slice(-2); // 파일명 생성 let fileName = "filtered_data_" + timestamp + ".xlsx"; // 필터링된 데이터 가져오기 let filteredData = getFilteredDataByTab(); if (filteredData.length === 0) { alert("다운로드할 데이터가 없습니다."); return; } // console.log("엑셀 다운로드 - 필터링된 데이터:", filteredData); // 컬럼명(타이틀) 설정 (배열 형태로 변환) let headers = [["휴대폰", "상세결과"]]; console.log(filteredData); // 데이터 확인 console.log(filteredData[0]); // 첫 번째 데이터 확인 (객체 키값 체크) // 필터링된 데이터 배열로 변환 let formattedData = filteredData.map(item => [item.phone, item.result]); // 타이틀 행 추가 formattedData.unshift(headers[0]); // 엑셀 생성 let workbook = XLSX.utils.book_new(); let worksheet = XLSX.utils.aoa_to_sheet(formattedData); // `aoa_to_sheet` 사용 XLSX.utils.book_append_sheet(workbook, worksheet, "Filtered Data"); // 엑셀 파일 다운로드 XLSX.writeFile(workbook, fileName); } /** * @ 예약 취소 */ function fnReservCancel(msgGroupId){ var form = document.resCancelForm; var loginVO = '${LoginVO}'; form.msgGroupId.value = msgGroupId; if(loginVO == "" || loginVO == null){ alert("로그인 후 이용이 가능합니다."); return false; } console.log('msgGroupId : ', msgGroupId); var data = new FormData(form); url = "/web/mjon/reservmsg/deleteReservMsgCancelDataAjax.do"; if(confirm("정말 예약을 취소하시겠습니까?")){ $.ajax({ type: "POST", url: url, data: data, dataType:'json', async: true, processData: false, contentType: false, cache: false, success: function (returnData, status) { if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 if("fail"==returnData.result){ alert(returnData.message); return false; } alert("예약 발송이 정상적으로 취소 되었습니다."); location.reload(true); } else if(status== 'fail'){ alert(returnData.message); } }, 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'); } }); } } /** * @문자 재전송 */ function fnMjMsgReSendAll(msgGroupId) { // 치환 여부 체크 var replaceYn = fn_getReplaceChk(); // 문자 종류 (일반:N, 광고:A, 선거:C, 관리자:S) var msgKind = $('#msgKind').val(); var form = document.reSendAllForm; form.msgResendAllFlag.value = "Y"; form.msgResendAllGroupId.value = msgGroupId; // 치환문자 포함 여부에 따른 분기 var msg = ""; if (replaceYn) { msg = "문자발송 화면으로 이동합니다.\n특정문구는 변환되지 않은 상태([*이름*],[*1*] 등)로 표기됩니다.\n문자내용, 받는 사람 목록 확인 후 발송해 주세요"; // form.msgResendAllReplaceYn.value = "Y"; } else { var title = (msgKind == 'C') ? "선거문자발송" : "문자발송"; msg = title + " 화면으로 이동합니다.\n문자내용, 받는 사람 목록 확인 후 발송해주세요."; } if (!confirm(msg)) { return; } // msgKind에 따른 action 설정 form.action = getMsgActionUrl(msgKind); if (msgKind === 'A') { form.msgResendAllAdvertiseYn.value = "Y"; // 광고문자 설정 } form.submit(); } function fn_getReplaceChk(){ // 체크할 패턴 목록 var patterns = [/\[\*이름\*\]/, /\[\*1\*\]/, /\[\*2\*\]/, /\[\*3\*\]/, /\[\*4\*\]/]; // 대상 요소의 텍스트 가져오기 var text = $("#smsTxt").text(); // 패턴이 포함되어 있는지 확인 var found = patterns.some(function(pattern) { return pattern.test(text); }); return found; } /** * msgKind 값에 따른 action URL 반환 */ function getMsgActionUrl(msgKind) { switch (msgKind) { case 'C': return "/web/mjon/msgcampain/selectMsgDataView.do"; case 'A': return "/web/mjon/msgdata/excel/selectMsgExcelDataView.do"; default: return "/web/mjon/msgdata/selectMsgDataView.do"; } } function fn_rowBtnSH(tabText){ var $addReg = $('#addReg'); var $addRemove = $('#addRemove'); // addReg 주소록 등록 // addRemove 주소록 삭제 if(tabText == '전체' || tabText == '성공'){ $addReg.show(); $addRemove.hide(); }else if(tabText == '대기'){ $addReg.hide(); $addRemove.hide(); }else if(tabText == '실패' ){ $addReg.hide(); $addRemove.show(); } } function fnAddAddrNo(){ let url = "/web/mjon/addr/insertByAddrGrpDataAndAddrDataAjax.do"; console.log($("#addrGrpIdInfo option:selected").val()); console.log($("#grpNm").val()); if ($("#addrGrpIdInfo option:selected").val() == "NEW" && $("#grpNm").val() == "") { alert("저장할 그룹을 선택하거나 새 그룹명을 입력해주세요."); return false; } // 필터링된 데이터 가져오기 (탭 필터 적용) let filteredData = getFilteredDataByTab(); console.log('filteredData : ', filteredData) // phone 필드 데이터만 추출 let addrPhones = filteredData.map(row => row.phone); // console.log('addrPhones : ', addrPhones) if(addrPhones.length < 1){ alert('해당 탭에 데이터가 없습니다.'); return false; } // 주소록 그룹명 가져오기 let addrGrpNm = $('#grpNm').val(); let addrGrpId = $("#addrGrpIdInfo option:selected").val(); // 데이터 객체 생성 let data = { addrPhones : addrPhones , addrGrpNm : addrGrpNm , addrGrpId : addrGrpId }; if(!confirm("연락처 정보를 주소록에 등록 하시겠습니까?")){ return false; } $.ajax({ type: "POST", url: url, data: JSON.stringify(data), dataType: "json", contentType: "application/json", async: false, processData: false, success: function(data) { if(data.status == 'BAD_REQUEST'){ alert(data.message); return false; } // 성공 메세지 alert(data.message); // 그룹등록 팝업 닫기 $('.grpClose').click(); }, error: function(error) { alert("오류가 발생하였습니다.") console.error("에러 발생:", error); } }); } function fnDelAddrNo(){ let url = "/web/mjon/addr/deleteAddrNoDataAjax.do"; // 필터링된 데이터 가져오기 (탭 필터 적용) let filteredData = getFilteredDataByTab(); // phone 필드 데이터만 추출 let addrPhones = filteredData.map(row => row.phone); console.log('addrPhones : ', addrPhones) if(addrPhones.length < 1){ alert('주소록에 살제할 연락처가 없습니다.'); return false; } // 데이터 객체 생성 let data = { addrPhones: addrPhones }; let selectedTab = $(".tabType3 .tab.active button").text().trim(); if(!confirm("발송"+selectedTab+" 번호를 주소록에서 삭제하시겠습니까?\n(모든 주소록 그룹에서 삭제)")){ return false; } $.ajax({ type: "POST", url: url, data: JSON.stringify(data), dataType: "json", contentType: "application/json", async: false, processData: false, success: function(data) { if(data.status == 'BAD_REQUEST'){ alert(data.message); return false; } // 성공 메세지 alert(data.message); }, error: function(error) { alert("오류가 발생하였습니다.") console.error("에러 발생:", error); } }); } /** * @description 현재 선택된 탭(`result` 필터) 기준으로 데이터를 필터링 * @returns {Array} 필터링된 데이터 리스트 */ function getFilteredDataByTab() { // 현재 적용된 모든 필터 가져오기 let filters = $tbDtailList.getFilters(); // 현재 모든 데이터 가져오기 (전체 데이터에서 필터 적용) let allData = $tbDtailList.getData(); // 현재 적용된 필터에서 "result" 필터만 찾기 let tabFilter = filters.find(filter => filter.field === "result"); // 탭 필터 적용하여 데이터 필터링 (수신번호 필터는 무시) return allData.filter(row => tabFilter ? row.result.includes(tabFilter.value) : true); } //주소록 그룹정보 불러오기 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 += "<option value='NEW'>그룹추가</option>"; sHtml += "<option value='0'>그룹미지정</option>"; sHtml += "<option value='bookmark'>자주보내는 번호</option>"; for (var j = 0; j < jsonList.length; j++) { sHtml += " <option value='" + $.trim(jsonList[j].addrGrpId) + "' />" + $.trim(jsonList[j].addrGrpNm) + "</option>"; } $("#addrGrpIdInfo").html(sHtml); } </script> <div class="inner"> <!-- js 참고용 hidden --> <input id="msgGroupId" type="hidden" value="${result.msgGroupId}"/> <input id="msgKind" type="hidden" value="${result.msgKind}"/> <!-- 문자종류(일반:N, 광고:A, 선거:C, 관리자:S) --> <!-- send top --> <div class="send_top"> <!-- 결제관리 - 요금 사용내역 --> <div class="rev_admin_cont serv_content current"> <div class="heading"> <h2>발송결과 상세</h2> <button type="button" class="button junk" data-tooltip="popupJunk" style="right:0;">통신사 스팸규격안내</button> </div> <!-- 발송결과 상세 및 미리보기--> <div class="send_general"> <!-- 발송결과 상세 정보 --> <div class="resultcont_left"> <!--발송정보--> <div class="res_info"> <div class="res_info_in"> <div class="res_info_top clearfix"> <p>발송정보</p> <p><button type="button" class="btnType btnType3"onClick="javascript:fnMjMsgReSendAll('${result.msgGroupId}'); return false;">재전송</button></p> </div> <div class="res_info_btm"> <dl> <dt>발송일시</dt> <dd> ${result.reqDate} </dd> </dl> <c:if test="${result.reserveYn eq 'Y' }"> <dl><!-- 예약 시 --> <dt>등록일시</dt> <dd>${result.regDate }</dd> </dl> </c:if> <c:if test="${result.subjectChkYn eq 'Y'}"> <dl> <dt>제목</dt> <dd>${result.subject }</dd> </dl> </c:if> <dl> <dt>형태</dt> <dd> ${result.msgType == '4' ? '단문' : (result.fileCnt == '0' ? '장문' : '그림')} </dd> </dl> <dl> <dt>발송건수</dt> <dd><span class="c_222"><fmt:formatNumber value="${result.msgGroupCnt}" type="number" groupingUsed="true" /></span>건</dd> </dl> <dl> <dt>발신번호</dt> <%-- <dd>${result.callFrom }</dd> --%> <dd>${fnc:formatPhone(result.callFrom) }</dd> </dl> <dl> <dt>진행상황 <!-- 예약인 경우 --> <c:if test="${result.reserveYn eq 'Y'}"> <div class="icon_wrap"> <div class="re">예약</div> <!-- 예약일때만 분할이 있음 --> <c:if test="${result.divideYN eq 'Y'}"> <div class="di_info"> <button class="di">분할</button> <div class="di_hover_layer"> <strong>${result.divideText }</strong> <!-- <strong>100,000건</strong>씩 <strong>35분</strong> 간격 --> </div> </div> </c:if> </div> </c:if> <!--// 예약인 경우 --> </dt> <dd> <c:choose> <c:when test="${result.statusCd eq '04' }"> 예약취소(<c:out value="${result.canceldate }" />) </c:when> <c:when test="${result.statusCd ne '03' }"> <ec:code codeId="ITN057" code="${result.statusCd }" /> </c:when> <c:otherwise> <p><button class="btnType btnType20" onClick="javascript:fnReservCancel('${result.msgGroupId}'); return false;">예약취소</button></p> </c:otherwise> </c:choose> <!-- --> <!-- <button class="btnType btnType20">예약취소</button> --> </dd> <!--<dd>예약취소 2024-07-16 15:07</dd>--><!-- 예역취소 후 버튼 대신 취소 일시 노출 --> </dl> </div> <div class="res_info_btm"> <dl> <dt class="btm_charge">발송요금</dt> <dd> <span class="stcharge"> <c:choose> <c:when test="${result.totPrice eq '-' }"> 0 </c:when> <c:otherwise> <fmt:formatNumber value="${result.totPrice }" type="number" groupingUsed="true" minFractionDigits="0" maxFractionDigits="1" /> </c:otherwise> </c:choose> </span>원 </dd> <!--<dd><span class="stcharge">-</span>원</dd>--><!-- 예역취소 후 금액은 하이픈 처리--> </dl> </div> </div> </div> <!--// 발송정보--> <!--상세결과--> <div class="res_info"> <div class="res_info_in"> <div class="res_info_top clearfix" style="padding:0 0 10px 0;"> <p>상세결과</p> <p></p> </div> <div class="res_num"> <div class="res_info_btm1"> <dl> <dt>전체건수</dt> <dd><a href="#" data-tooltip="rev_popup04"><span class="c_222_g"><fmt:formatNumber value="${result.msgGroupCnt}" type="number" groupingUsed="true" /></span>건</a></dd> </dl> </div> <div class="res_info_btm1"> <dl> <dt>성공건수</dt> <dd><span class="c_002c9a_g"><fmt:formatNumber value="${result.resultSValue}" type="number" groupingUsed="true" /></span>건(${result.successPct})</dd> </dl> </div> </div> <div class="res_num"> <div class="res_info_btm1"> <dl> <dt>대기건수</dt> <dd><span class="c_666_g"><fmt:formatNumber value="${result.resultWValue}" type="number" groupingUsed="true" /></span>건(${result.waitingPct})</dd> </dl> </div> <div class="res_info_btm1"> <dl> <dt>실패건수</dt> <dd><span class="c_e40000_g"><fmt:formatNumber value="${result.resultFValue}" type="number" groupingUsed="true" /></span>건(${result.failedPct})</dd> </dl> </div> </div> <p class="table_bottom_txt">* 전체건수를 클릭하면 받는 사람 상세정보를 확인하실 수 있습니다.</p> </div> </div> <!--// 발송결과--> </div> <!--// 발송결과 상세 정보 --> <!-- 발송결과 미리보기 --> <div class="resultcont_right"> <div class="phone"> <div class="phoneIn"> <div> <p class="prev_p"><img src="/publish/images/search.png">문자내용</p> <div class="text_length2 clearfix" style="display:none;"> <span class="msg_com msg_short">단문</span> <div> <span>글자크기</span> <button type="button"><img src="/publish/images/content/font_plus.png"></button> <button type="button"><img src="/publish/images/content/font_minus.png"></button> </div> </div> <div class="text_length2 clearfix" style="display:none;"> <span class="msg_com msg_long">장문</span> <div> <span>글자크기</span> <button type="button"><img src="/publish/images/content/font_plus.png"></button> <button type="button"><img src="/publish/images/content/font_minus.png"></button> </div> </div> <div class="text_length2 clearfix"> <span class="msg_com ${result.msgType == '4' ? 'msg_short' : (result.fileCnt == '0' ? 'msg_long' : 'msg_photo')}"> ${result.msgType == '4' ? 'SMS' : (result.fileCnt == '0' ? 'LMS' : 'MMS')} </span> <!-- <span class="msg_com msg_photo">포토</span> --> <!-- <ul class="photo_msg_num"> <li onclick="imgClick(0);"><a href="#none">1</a></ li> <li onclick="imgClick(1);"><a href="#none">2</a></ li> <li onclick="imgClick(2);"><a href="#none">3</a></ li> </ul> --> <!-- <div> <span>글자크기</span> <button type="button"><img src="/publish/images/content/font_plus.png"></button> <button type="button"><img src="/publish/images/content/font_minus.png"></button> </div> --> </div> <!-- 텍스트 미리보기 --> <div class="text_preview"> <div class="preiew_img"> <c:forEach var="fileInfo" items="${result.fileInfos}"> <div class="img_box"> <img src="<c:url value='/cmm/fms/getImage2.do'/>?atchFileId=<c:out value="${fileInfo.atchFileId}"/>&fileSn=<c:out value="${fileInfo.fileSn}"/>" alt="발송된 그림문자 미리보기" style="width: 100%"> </div> </c:forEach> </div> <div class="preview_auto"> <c:if test="${result.msgKind eq 'A' }" > <p class="ad_tit">(광고)</p> </c:if> <p class="realtime" id="smsTxt"> ${fn:replace(result.smsTxt, newLineChar, "<br/>")} </p> <c:if test="${result.msgKind eq 'A' }" > <p class="deny_receipt">무료 거부 0808800858</p> </c:if> </div> </div> <!-- //텍스트 미리보기 --> </div> </div> <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p> </div> </div> <!--// 발송결과 미리보기 --> </div> <!--// 발송결과 상세 및 미리보기--> <!-- 목록--> <div class="btn_list_type1"> <button class="btnType btnType17" id="goPageBtn">목록</button> </div> <!--// 목록--> </div> </div> <!--// send top --> </div> <!-- 발송대상리스트 팝업 --> <div class="tooltip-wrap"> <div class="popup-com ad_layer rev_popup04" tabindex="0" data-tooltip-con="rev_popup04" data-focus="rev_popup04" data-focus-prev="rev_popup04-close" style="width:530px;"> <div class="popup_heading"> <p>발송대상 리스트</p> <button type="button" class="tooltip-close listClose" data-focus="rev_popup04-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> </div> <div class="layer_in"> <!-- <div class="gorup_join_cont" style="margin:-15px 0 0 0;"> --> <!-- <div class="group_input"> --> <!-- <div class="input_left">발신번호</div> --> <%-- <div class="input_right type1"><c:out value="${result.callFrom }" /></div> --%> <!-- </div> --> <!-- </div> --> <div class="popup_search_type2"> <label for="" class="label">검색종류 선택</label> <div class="title">수신번호</div> <label for="" class="label">검색어입력</label> <input type="text" class="send_text" id="searchInput" placeholder="3자 이상 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='3자 이상 입력하세요.'"> <button type="button" id="searchBtn" class="btnType btnType2" style="width:63px; margin:0;">검색</button> </div> <div class="list_tab_wrap2 type4"> <ul class="tabType3" id="tabType" name="tabType"> <li class="tab active"><button type="button" id="initTab" title="선택됨">전체</button></li> <li class="tab"><button type="button">대기</button></li> <li class="tab"><button type="button">성공</button></li> <li class="tab"><button type="button">실패</button></li> </ul> </div> <div class="tb_wrap" id="detailPopup" style="min-height:200px;"> <!-- 타블레이터 영역 --> </div> <div class="table_btn clearfix"> <div class="table_btn_left"> <button type="button" onclick="fn_downloadFilteredExcel()" class="excel_btn btnType"><i class="downroad"></i>엑셀 다운로드</button> <button type="button" id="addReg" data-tooltip="rev_popup02" class="btnType btnType14"><i class="add_img"></i>주소록 등록</button> <button type="button" onclick="fnDelAddrNo()" id="addRemove" class="btnType btnType15"><i class="remove_img"></i>주소록에서 번호 삭제</button> </div> </div> </div> <div class="popup_btn_wrap2" style="margin: -40px auto 30px auto;"> <button type="button" class="tooltip-close listClose" data-focus="adr_popup01-close" data-focus-next="popup02">닫기</button> </div> </div> </div> <!-- //발송대상 리스트 안내 팝업 --> <!-- 주소록에 등록 팝업 --> <div class="tooltip-wrap"> <div class="popup-com adr_layer rev_popup02" tabindex="0" data-tooltip-con="rev_popup02" data-focus="rev_popup02" data-focus-prev="rev_popup02-close" style="width: 510px;"> <div class="popup_heading"> <p>주소록에 등록</p> <button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close"><img src="/publish/images/content/layerPopup_close.png" alt="팝업 닫기"></button> </div> <div class="layer_in"> <table class="layer_tType1 style1"> <caption>주소록 그룹선택 표</caption> <colgroup> <col style="width: 80px"> <col style="width: auto"> </colgroup> <tbody> <tr> <th>그룹 선택</th> <td> <label for="" class="label">그룹 선택</label> <select id="addrGrpIdInfo" name="addrGrpIdInfo"> </select> <label for="" class="label">그룹명 입력</label> <input type="text" id="grpNm" placeholder="새 그룹명을 입력해주세요." maxlength="24" onfocus="this.placeholder=''" onblur="this.placeholder='새 그룹명을 입력해주세요.'" class="inputLight"> </td> </tr> </tbody> </table> <div class="popup_btn_wrap2"> <button type="button" onclick="fnAddAddrNo()">등록</button> <button type="button" class="tooltip-close grpClose" data-focus="rev_popup02-close" data-focus-next="rev_popup02">닫기</button> </div> </div> </div> </div> <!--// 주소록에 등록 팝업 --> <!-- 이전 리스트 상태(검색조건, 페이징) 그대로 가기 위한 form --> <form id="goList" name="goList" method="post" action="/web/mjon/msgsent/selectMsgSentView.do"> <input type="hidden" name="pageIndex" value="<c:out value="${searchVO.pageIndex}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value='${searchVO.searchSortCnd }' />" /> <input type="hidden" name="searchSortOrd" value="<c:out value='${searchVO.searchSortOrd }' />" /> <input type="hidden" name="searchCondition01" value="<c:out value='${searchVO.searchCondition01 }' />" /> <input type="hidden" name="searchCondition02" value="<c:out value='${searchVO.searchCondition02 }' />" /> <input type="hidden" name="searchStartDate" value="<c:out value='${searchVO.searchStartDate }' />" /> <input type="hidden" name="searchEndDate" value="<c:out value='${searchVO.searchEndDate }' />" /> <input type="hidden" name="searchCondition" value="<c:out value='${searchVO.searchCondition }' />" /> <input type="hidden" name="searchKeyword" value="<c:out value='${searchVO.searchKeyword }' />" /> <input type="hidden" name="pageUnit" value="<c:out value='${searchVO.pageUnit }' />" /> </form> <!-- 예약 취소 --> <form id="resCancelForm" name="resCancelForm" method="post"> <input type="hidden" id="msgGroupId" name="msgGroupId" value=""/> </form> <!-- 재발송 form --> <form name="reSendAllForm" method="post"> <input type="hidden" name="msgResendAllFlag" value="N"/> <input type="hidden" name="msgResendAllGroupId" value=""/> <input type="hidden" name="msgResendAllAdvertiseYn" value="N"/> <input type="hidden" name="msgResendAllReplaceYn" value="N"/> </form>

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up