Last active
November 16, 2017 01:49
-
-
Save woosungchu/f18726a4bc9bbff41de20c0012f0b06d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var nBizfileLoader; | |
(function($) { | |
$(document).ready(function(){ | |
var getUploadOption = function(files){ | |
var result = { | |
max_file_size : "100mb" , | |
addedCallback :checkFileOn, | |
filters : [ {title : "*.*", extensions : "asc,txt,text,diff,log,htm,html,xhtml,rtf,xml,vcf,csv,bmp,gif,jpeg,jpg,png,tiff,tif,zip,alz,rar,jar,tar,bat,doc,dot,pdf,pgp,ps,ai,eps,rtf,xls,xlb,ppt,pps,pot,docx,pptx,xlsx,hwp,wav,wma,mpga,mpega,mp2,mp3,m4a,avi,mkv,mpeg,mpg,mpe,qt,mov,mp4,m4v,flv,rv,swf,swfl,com,exe"}] | |
}; | |
if(files)result.files = files; | |
return result; | |
}; | |
function checkFileOn(btn,file){ | |
var $parent = $(btn).parents('td.sender-file:eq(0)'), | |
filename = file.name; | |
if(filename){ | |
$parent.find('.sender-file-name').text(filename); | |
$parent.find('div.file').show(); | |
}else{ | |
$parent.find('.sender-file-name').val(''); | |
$parent.find('div.file').hide(); | |
} | |
} | |
validationCheck(sender,function(){ | |
var bizfileLoader = nBizfileLoader; | |
var bizloaderFn, certloaderFn; | |
//prev파일도 없고 안이 비어있는 경우 | |
//파일이 있으면 가져오고 없으면 prev체크 // prev도 없으면 error | |
bizloaderFn = function(callback){ | |
if(bizfileLoader.getFiles().length > 0 ){ | |
bizfileLoader.upload(function(bizfileSuccess, bizfileInfo) { | |
if(bizfileSuccess && bizfileInfo != null ){ | |
sender.bizfileId = bizfileInfo.fileId; | |
} | |
callback(); | |
}); | |
}else{ | |
callback(); | |
} | |
}; | |
})//end validation check callback | |
(function(){//init | |
nBizfileLoader = new spro.SingleFileController("#newSenderForm", "#nBizfileBtn", getUploadOption()); | |
})(); | |
}); | |
})(jQuery); | |
</script> | |
<td class="sender-file"> | |
<div class="file" style="display:none;"><i class="icon attach"></i><span class="sender-file-name"></span></div> | |
<input type="hidden" class="singleFile"> | |
<button type="button" id="nBizfileBtn" class="btn s2 btn-color7 br"><spring:message code="message.common.service.sms.label.regist" /></button> | |
</td> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
spro.SingleFileController = function(container, button, options) { | |
var uploadResult = null; | |
var $container = $(container), $button = $(button); | |
var $input = $button.siblings("input.singleFile") | |
.attr("readonly", true) | |
.val(langPLUpload.initializing); | |
var autoUpload = (options && options.autoUpload) || false; | |
options && options.autoUpload && (options.autoUpload = undefined); // 초기화 | |
var uploadedCallback = (options && options.callback) || undefined; | |
options && options.callback && (options.callback = undefined); // 초기화 | |
######################이부분 | |
var addedCallback = (options && options.addedCallback) || undefined; | |
options && options.addedCallback && (options.addedCallback = undefined); // 초기화 | |
######################이부분 | |
if(options.isImageOnly) { | |
if(options.filters == undefined){ | |
options.filters = [ | |
{title : "Image files", extensions : "jpg,gif,png"} | |
]; | |
} | |
} else { | |
options.filters = [ | |
{type:"all", title:langUpload.filter.all, extensions:"asc,txt,text,diff,log,htm,html,xhtml,rtf,xml,vcf,csv,bmp,gif,jpeg,jpg,png,tiff,tif,zip,alz,rar,jar,tar,bat,doc,dot,pdf,pgp,ps,ai,eps,rtf,xls,xlb,ppt,pps,pot,docx,pptx,ppsx,xlsx,hwp,dwg,dws,dxf,dwt,plt,wav,wma,mpga,mpega,mp2,mp3,m4a,avi,mkv,mpeg,mpg,mpe,qt,mov,mp4,m4v,flv,rv,swf,swfl,com,exe"}, | |
{type:"txt", title:langUpload.filter.txt, extensions:"asc,txt,text,diff,log,htm,html,xhtml,rtf,xml,vcf,csv"}, // text | |
{type:"img", title:langUpload.filter.img, extensions:"bmp,gif,jpeg,jpg,png,tiff,tif"}, //images | |
{type:"comp", title:langUpload.filter.comp, extensions:"zip,alz,rar,jar,tar,bat"}, //compress | |
{type:"doc", title:langUpload.filter.doc, extensions:"doc,dot,pdf,pgp,ps,ai,eps,rtf,xls,xlb,ppt,pps,pot,docx,pptx,ppsx,xlsx,hwp,dwg,dws,dxf,dwt,plt"}, // document | |
{type:"ado", title:langUpload.filter.mp, extensions:"wav,wma,mpga,mpega,mp2,mp3,m4a"}, //audio | |
{type:"vod", title:langUpload.filter.vod, extensions:"avi,mkv,mpeg,mpg,mpe,qt,mov,mp4,m4v,flv,rv,swf,swfl"}, //video | |
{type:"app", title:langUpload.filter.app, extensions:"com,exe"} // application | |
//{type:"all", title:langUpload.filter.all, extensions:"*"} // all | |
]; | |
} | |
// 서버단에서 업로드된 파일의 서비스 구분을 위해... | |
if(options.multipart_params) { | |
if(!options.multipart_params.actionUrl) | |
options.multipart_params.actionUrl = location.pathname; | |
} else { | |
options.multipart_params = {actionUrl:location.pathname}; | |
} | |
var uploader = new plupload.Uploader($.extend({ | |
runtimes : "html5,flash",//,silverlight,html4 | |
browse_button : $button.attr("id"), | |
container : $container.attr("id"), | |
url : spro.getContextRoot()+spro.config.uploader.uploadUrl, | |
flash_swf_url : spro.getContextRoot()+"/js/plupload-2.1.8/js/Moxie.swf", | |
silverlight_xap_url : spro.getContextRoot()+"/js/plupload-2.1.8/js/Moxie.xap", | |
max_file_size : "1mb", | |
filters : [ | |
{title : "Image files", extensions : "jpg,gif,png"} | |
], | |
resize : spro.config.uploader.imageSize || {width : 600, height : 1000, quality : 90}, | |
multi_selection : false, | |
multipart : true, | |
preinit : { | |
Init : function() { | |
reset(); | |
} | |
}, | |
init : { | |
FilesAdded : function(up, files) { | |
var file = files[files.length-1]; // 단일 파일만 선택되도록 함. | |
for(var i=up.files.length-1; i>=0; i--) { // 선택된 파일만 남기고 모두 삭제 | |
if(up.files[i].id != file.id) up.removeFile(up.files[i]); | |
} | |
######################이부분######################이부분######################이부분 | |
uploadResult = "ready"; | |
if(autoUpload) { | |
$container.loading(); | |
up.start(); | |
} else { | |
$input.css("color", "").val(file.name); | |
addedCallback && addedCallback(button,file); | |
} | |
######################이부분######################이부분######################이부분######################이부분 | |
}, | |
Error : function(up, err) { | |
var file = err.file; | |
switch(err.code) { | |
case plupload.IMAGE_FORMAT_ERROR : | |
alert(langUpload.errImageFile); | |
break; | |
case plupload.FILE_SIZE_ERROR : | |
var maxSize = up.settings.max_file_size; | |
if(maxSize >= 1048576) maxSize = Math.floor(maxSize/1048576) + "Mbyte"; | |
else if(maxSize >= 1024) maxSize = Math.floor(maxSize/1024) + "Kbyte"; | |
alert(langUpload.errMaxFileSize.replace("%w", maxSize)); | |
break; | |
case plupload.FILE_EXTENSION_ERROR : | |
alert(plupload.translate("Error: Invalid file extension:") + "\n\n" + file.name); | |
break; | |
default : | |
alert(langUpload.errGeneric); | |
} | |
uploadResult = null; | |
}, | |
FileUploaded : function(up, file, xhr) { | |
var json = $.parseJSON(xhr.response); | |
if(json["status"] == "success") { | |
uploadResult = json; | |
} else { | |
throw new Exception("upload error"); | |
} | |
}, | |
UploadComplete : function(up, files) { | |
var file = files[0]; | |
if(file.status == plupload.DONE) { | |
if(uploadResult && uploadResult["status"] == "success") { | |
uploadedCallback && uploadedCallback(true, { | |
fileId:uploadResult.fileId, | |
name:uploadResult.fileRealName, | |
size:Number(uploadResult.fileSize), | |
type:uploadResult.fileExtension, | |
flag:"add", | |
path : uploadResult.filePath // with profile image upload | |
}); | |
if(autoUpload) | |
$input.css("color", "").val(uploadResult.fileRealName); | |
} else { | |
uploadedCallback && uploadedCallback(false, uploadResult.message); | |
} | |
} | |
up.refresh(); | |
if(autoUpload) $container.loaded(); | |
} | |
} | |
}, options||{})); | |
setTimeout(function() {uploader.init();}, 10); | |
function reset() { | |
$input.css("color", "#999") | |
.val(langPLUpload.caption); | |
} | |
this.getUploader = function() { return uploader; }; | |
this.getFiles = function() { return uploader.files; }; | |
this.reset = function() { | |
uploader.refresh(); | |
reset(); | |
}; | |
this.upload = function(callback) { | |
if(callback) | |
uploadedCallback = callback; | |
if(uploader.files.length > 0) { | |
uploader.start(); | |
} else { | |
uploadedCallback && uploadedCallback(true, null); | |
} | |
}; | |
}; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | |
<%@ include file="/common/taglibs.jsp"%> | |
<jsp:include page="/common/javascriptImport.jsp" flush="false"> | |
<jsp:param name="module" value="fileupload"/> | |
</jsp:include> | |
<c:set var="prefix" value="message.common"/> | |
<c:set var="apYn" value="${sessionScope['spro.apYn']}" /> | |
<c:set var="tenantId" value="${sessionScope['spro.tenantId']}" /> | |
<script type="text/javascript"> | |
var loaderArr, nBizfileLoader, nCertfileLoader, oBizfileLoader, oCertfileLoader, timerInterval; | |
(function($) { | |
$(document).ready(function(){ | |
var getUploadOption = function(files){ | |
var result = { | |
max_file_size : "100mb" , | |
addedCallback :checkFileOn, | |
filters : [ {title : "*.*", extensions : "asc,txt,text,diff,log,htm,html,xhtml,rtf,xml,vcf,csv,bmp,gif,jpeg,jpg,png,tiff,tif,zip,alz,rar,jar,tar,bat,doc,dot,pdf,pgp,ps,ai,eps,rtf,xls,xlb,ppt,pps,pot,docx,pptx,xlsx,hwp,wav,wma,mpga,mpega,mp2,mp3,m4a,avi,mkv,mpeg,mpg,mpe,qt,mov,mp4,m4v,flv,rv,swf,swfl,com,exe"}] | |
}; | |
if(files)result.files = files; | |
return result; | |
}; | |
$('#newSenderForm .submitSender').click(function(e){ | |
var sender = { phoneNumber:'', phoneType:'', numberToDelete:null}; | |
e.preventDefault(); | |
sender.phoneNumber = getSenderNumber(); | |
sender.phoneType = (function(){ | |
var $activeTab = $('.tab-pane.active input[name=type]'); | |
if($activeTab.length > 0){ | |
return $activeTab.val(); | |
} | |
})(); | |
sender.numberToDelete = $('input[name=numberToDelete]').val(); | |
validationCheck(sender,function(){ | |
if(sender.phoneType == 0){ /** 발신번호 유형 0:휴대번호 1: 일반번호 2:전국대표번호 */ | |
var val = $('input[name=authNumber]').val(); | |
if(val){ | |
sender.authNumber = val; | |
sendRequest(); | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.01" />'); | |
} | |
}else{ | |
var bizfileLoader = (sender.phoneType == 1) ? nBizfileLoader : oBizfileLoader; | |
var certfileLoader = (sender.phoneType == 1) ? nCertfileLoader : oCertfileLoader; | |
var numberToDelete = $('input[name=numberToDelete]').val(); | |
var prevBizfileId = $('input[name=prevBizfileId]').val(); | |
var prevCertfileId = $('input[name=prevCertfileId]').val(); | |
var bizloaderFn, certloaderFn; | |
if(numberToDelete){ | |
sender.numberToDelete =numberToDelete; | |
sender.bizfileId =prevBizfileId; | |
sender.certfileId =prevCertfileId; | |
} | |
//prev파일도 없고 안이 비어있는 경우 | |
//파일이 있으면 가져오고 없으면 prev체크 // prev도 없으면 error | |
bizloaderFn = function(callback){ | |
if(bizfileLoader.getFiles().length > 0 ){ | |
bizfileLoader.upload(function(bizfileSuccess, bizfileInfo) { | |
if(bizfileSuccess && bizfileInfo != null ){ | |
sender.bizfileId = bizfileInfo.fileId; | |
} | |
callback(); | |
}); | |
}else{ | |
callback(); | |
} | |
}; | |
certloaderFn = function(callback){ | |
if(certfileLoader.getFiles().length > 0 ){ | |
certfileLoader.upload(function(certfileSuccess, certfileInfo) { | |
if(certfileSuccess && certfileInfo != null ){ | |
sender.certfileId = certfileInfo.fileId; | |
} | |
callback(); | |
}); | |
}else{ | |
callback(); | |
} | |
}; | |
bizloaderFn(function(){ | |
certloaderFn(function(){ | |
if(sender.bizfileId && sender.certfileId){ | |
sendRequest(); | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.02" />'); | |
} | |
}) | |
}); | |
}//end else | |
})//end validation check callback | |
function sendRequest(){ | |
$.ajax({ | |
url: "<c:url value='/service/sms/manageSenderNumber.do'/>", | |
type: 'post', | |
data: sender, | |
success: function(response){ | |
if(response == 'SUCCESS'){ | |
alert('<spring:message code="message.common.service.sms.alert.03" />'); | |
fetchSenderList(); | |
resetInputs(); | |
}else if(response == 'DUPLICATE'){ | |
alert('<spring:message code="message.common.service.sms.alert.04" />'); | |
}else if(response == 'WRONG'){ | |
alert('<spring:message code="message.common.service.sms.alert.05" />'); | |
cleanAuthNumberInput(); | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.06" />'); | |
} | |
} | |
})//end ajax | |
} | |
}); | |
function validationCheck(sender,callback){ | |
var isValid = false; | |
if(!sender.phoneNumber){ | |
alert('<spring:message code="message.common.service.sms.alert.07" />'); | |
return false; | |
} | |
//10개이상 금지 | |
if($('.tdSenderUnit').length >= 10){ | |
alert('<spring:message code="message.common.service.sms.alert.08" />'); | |
return false; | |
}; | |
//수정시 같은 번호일 경우 중복체크를 하지 않음 | |
if(sender.phoneNumber && sender.phoneNumber == sender.numberToDelete){ | |
callback(); | |
}else{ | |
checkRegisteredSender(sender,function(response){ | |
if(response == 'TRUE'){ | |
alert('<spring:message code="message.common.service.sms.alert.09" />'); | |
return false; | |
}else{ | |
callback(); | |
} | |
}); | |
} | |
} | |
//이미 등록된것인지 여부 | |
function checkRegisteredSender(data,callback){ | |
$.ajax({ | |
url: "<c:url value='/service/sms/isRegisteredSender.do'/>", | |
type: 'post', | |
data: data, | |
success: callback | |
})//end ajax | |
} | |
$('#newSenderForm').on('click','.tab-pane.active .requestAuthNumber',function(){ | |
var requestNumber = getSenderNumber(); | |
if(requestNumber){ | |
checkRegisteredSender({phoneNumber:requestNumber},function(response){ | |
if(response == 'TRUE'){ | |
alert('<spring:message code="message.common.service.sms.alert.09" />'); | |
return false; | |
}else{ | |
var number = requestNumber.replaceAll('-',''); | |
$.ajax({ | |
url: "<c:url value='/service/sms/requestAuthNumber.do'/>", | |
type: 'post', | |
data: {phoneNumber : number}, | |
success: function(response2){ | |
if( response2 == 'OK'){ | |
var countdown = 2 * 60 * 1000, <%-- //밀리초 단위 --%> | |
display = document.getElementById('countDown'); | |
alert('<spring:message code="message.common.service.sms.alert.10" />'); | |
cleanAuthNumberInput(); | |
startTimer(countdown, display); | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.07" />'); | |
} | |
} | |
})//end ajax | |
} | |
}) | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.07" />'); | |
} | |
}); | |
function getSenderNumber(){ | |
var senderNumber = ''; | |
var valid = true; | |
$('.tab-pane.active input[name="phoneNumber[]"]').each(function(index,item){ | |
if(!item.value || isNaN(item.value)){ | |
valid = false; | |
return false; | |
}else{ | |
if(index != 0) senderNumber += '-'; | |
senderNumber += item.value; | |
} | |
}); | |
return valid ? senderNumber : undefined; | |
} | |
function fetchSenderList(){ | |
var btns = { | |
update : function(ph,type){ | |
return '<button type="button" data-ph="'+ph+'" data-type="'+type+'" class="btn s2 btn-color7 br mr3 setUpdateForm">수정</button>' | |
}, | |
remove : function(ph){ | |
return '<button type="button" data-ph="'+ph+'" class="btn s2 btn-color7 br deleteSender">삭제</button>'; | |
} | |
}; | |
$.ajax({ | |
url: "<c:url value='/service/sms/senderList.do'/>", | |
type: 'get', | |
success: function(data){ | |
var jsonArr = JSON.parse(data), | |
len = (jsonArr.length%2 == 0) ? jsonArr.length : jsonArr.length+1; | |
html = ''; | |
for(var i =0; i < len; i++){ | |
var item = jsonArr[i]; | |
if(i%2 == 0)html += '<tr>'; | |
if(jsonArr[i]){ | |
html += '<td class="tdSenderUnit">'+(i+1)+"</td><td>"+item.ph+"</td>"; | |
if(item.systemInput == 1){ | |
html += '<td><spring:message code="message.common.service.sms.label.approved" /></td><td></td>'; | |
}else if(0 <= item.status <= 2){ | |
if(item.status == 0)html += '<td><spring:message code="message.common.service.sms.label.request" /></td><td>'+btns.update(item.ph,item.type) + btns.remove(item.ph) +"</td>"; | |
if(item.status == 1)html += '<td><spring:message code="message.common.service.sms.label.approved" /></td><td>'+ btns.remove(item.ph) +"</td>"; | |
if(item.status == 2)html += '<td class="showRejectReason" data-ph="'+item.ph+'"><spring:message code="message.common.service.sms.label.rejected" /></td><td>'+ btns.remove(item.ph) +"</td>"; | |
}else html += "<td></td><td></td>"; | |
}else html += "<td></td><td></td><td></td><td></td>"; | |
if(i%2 == 1)html += "</tr>"; | |
} | |
$('#senderList').html(html); | |
} | |
})//end ajax | |
} | |
cleanAuthNumberInput = function(){ | |
$('input[name=authNumber]').val(''); | |
$('input[name=authNumber]').focus(); | |
} | |
function checkFileOn(btn,file){ | |
var $parent = $(btn).parents('td.sender-file:eq(0)'), | |
filename = file.name; | |
if(filename){ | |
$parent.find('.sender-file-name').text(filename); | |
$parent.find('div.file').show(); | |
}else{ | |
$parent.find('.sender-file-name').val(''); | |
$parent.find('div.file').hide(); | |
} | |
} | |
$("#tele-biz-act").click(function() { | |
spro.showModalFrame( | |
"<c:url value='/service/sms/teleBizActPopup.do'/>", null, function(result) {}, | |
options={title:'<spring:message code="message.common.service.sms.label.msg01" />)',width:650,height:370} // <spring:message code="message.common.service.sms.msg23" /> | |
); | |
}); | |
$('.guideCertBtn').click(function(){ | |
var url = "<c:url value='/service/sms/guideCertPopup.do'/>"; | |
var options = {width:700, height:805}; | |
spro.popupOpen( url , options,"Certificate_Guideline"); | |
}); | |
function resetInputs(){ | |
var $form = $('#newSenderForm'); | |
$form.find('input[type=text],input.singleFile,input[name=numberToDelete]').each(function(){ | |
$(this).val(''); | |
}); | |
$form.find('.sender-file-name').each(function(){ | |
$(this).text(''); | |
}); | |
$form.find('div.file').each(function(){ | |
$(this).hide(); | |
}); | |
loaderArr.forEach(function(a){a.reset();}); | |
clearInterval(timerInterval); | |
$('#countDown').html(''); | |
} | |
$('.resetBtn').click(resetInputs); | |
$('.nav a[data-toggle=tab]').on('shown.bs.tab', resetInputs); | |
$('#senderList').on('click','button.deleteSender',function(){ | |
var ph = $(this).data('ph'); | |
if(confirm('['+ph+'] <spring:message code="message.common.service.sms.alert.11" />')){ | |
$.ajax({ | |
url: "<c:url value='/service/sms/deleteSender.do'/>", | |
type: 'post', | |
data: {numberToDelete : ph}, | |
success: function(response){ | |
if( response == 'OK'){ | |
alert('<spring:message code="message.common.service.sms.alert.12" />'); | |
fetchSenderList(); | |
resetInputs(); | |
}else{ | |
alert('<spring:message code="message.common.service.sms.alert.13" />'); | |
} | |
} | |
})//end ajax | |
} | |
});//end deleteSender | |
$('#senderList').on('click','button.setUpdateForm',function(){ | |
var sender = {phoneNumber:''}, | |
type = $(this).data('type'); | |
sender.phoneNumber = $(this).data('ph'); | |
//ajax로 fileId,fileName 가져와서 show() | |
//input[numbertoDelete]와 input[name=phoneNumber[]]에 prev전화번호 넣기 | |
$.ajax({ | |
url: "<c:url value='/service/sms/readSenderRequest.do'/>", | |
type: 'post', | |
data: sender, | |
success: function(senderRequest){ | |
var obj = JSON.parse(senderRequest), | |
$container = $('.tab-content .tab-pane:eq('+type+')'), | |
phArr = [], | |
bizfileData, certfileData; | |
bizfileData = JSON.parse(obj.bizfileData); | |
certfileData = JSON.parse(obj.certfileData); | |
$('.nav a[data-toggle=tab]:eq('+type+')').click();//탭 클릭 + reset | |
phArr = obj.phoneNumber.split("-"); | |
$('input[name=numberToDelete]').val(obj.phoneNumber); | |
$container.find('input[name="phoneNumber[]"]').each(function(i,v){ | |
$(this).val(phArr[i]); | |
}); | |
$container.find('.sender-file-name').each(function(i,v){ | |
var obj,fileName; | |
if(i==0){ | |
obj = bizfileData; | |
$('input[name=prevBizfileId]').val(obj.fileId); | |
fileName = obj.name; | |
}else{ | |
obj = certfileData; | |
$('input[name=prevCertfileId]').val(obj.fileId); | |
fileName = obj.name; | |
} | |
$(v).click(function(){ | |
var url = "<c:url value='/support/fileupload/downloadFile.do?fileId=' />"; | |
location.href= url + obj.fileId; | |
}); | |
if(v.style) v.style.cursor = 'pointer'; | |
$container.find('.sender-file-name:eq('+i+')').text(fileName); | |
$container.find('div.file:eq('+i+')').show(); | |
}); | |
} | |
})//end ajax | |
});//end setUpdateForm | |
$('#senderList').on('click','.showRejectReason',function(){ | |
var phoneNumber = $(this).data('ph'); | |
spro.showModalFrame( | |
"<c:url value='/service/sms/showRejectReasonPopup.do'/>?phoneNumber="+phoneNumber, null, function(result) {}, | |
options={title:"<spring:message code="message.common.service.sms.label.rejectedReason" />",width:360,height:120} | |
); | |
}); | |
<%-- 타이머 구현 --%> | |
function startTimer(countdown, display) { | |
var timer = countdown/1000, | |
minutes, seconds; | |
clearInterval(timerInterval); | |
timerInterval = setInterval(function () { | |
minutes = parseInt(timer / 60, 10); | |
seconds = parseInt(timer % 60, 10); | |
minutes = minutes < 10 ? "0" + minutes : minutes; | |
seconds = seconds < 10 ? "0" + seconds : seconds; | |
display.textContent = minutes + ":" + seconds; | |
if (--timer < 0) { | |
timer = 0; | |
clearInterval(timerInterval); | |
alert("인증번호 시간이 초과되었습니다."); | |
$('#countDown').html(''); | |
} | |
}, 1000); | |
} | |
(function(){//init | |
nBizfileLoader = new spro.SingleFileController("#newSenderForm", "#nBizfileBtn", getUploadOption()); | |
nCertfileLoader = new spro.SingleFileController("#newSenderForm", "#nCertfileBtn", getUploadOption()); | |
oBizfileLoader = new spro.SingleFileController("#newSenderForm", "#oBizfileBtn", getUploadOption()); | |
oCertfileLoader = new spro.SingleFileController("#newSenderForm", "#oCertfileBtn", getUploadOption()); | |
loaderArr = [nBizfileLoader,nCertfileLoader,oBizfileLoader,oCertfileLoader]; | |
fetchSenderList(); | |
})(); | |
}); | |
})(jQuery); | |
</script> | |
<style> | |
#senderList .showRejectReason{color: red;cursor: pointer;} | |
#newSenderForm .moxie-shim {display:none;} | |
#newSenderForm .sender-file .file{display:inline;margin-right:5px;} | |
#newSenderForm .sender-file .file i.icon{margin-right:1px;} | |
#newSenderForm .tab-content{min-height:260px;} | |
#countDown {margin-left:8px;color:red;} | |
</style> | |
<div class="con-header bdr-b"> | |
<h2><spring:message code="message.common.service.sms.label.smsSender.regist" /></h2> | |
</div> | |
<div class="ins-box"> | |
<ul> | |
<li><i class="fa fa-exclamation-circle"></i> <spring:message code="message.common.service.sms.label.msg02" /></li> | |
<li><i class="fa fa-exclamation-circle textcolor4"></i> <spring:message code="message.common.service.sms.label.msg03" /></li> | |
<li><i class="fa fa-exclamation-circle textcolor4"></i> <spring:message code="message.common.service.sms.label.msg04" /></li> | |
<li><i class="fa fa-exclamation-circle textcolor4"></i> <spring:message code="message.common.service.sms.label.msg10" /></li> | |
</ul> | |
</div> | |
<div class="content-wrap"> | |
<div class="tab-wrap mt20"> | |
<!-- Nav tabs --> | |
<ul class="nav nav-tabs6"> | |
<li class="nav-item active"><a class="nav-link" data-toggle="tab" href="#cell-phone"><spring:message code="message.common.service.sms.label.cellphone" /> <spring:message code="message.common.service.sms.label.regist" /></a></li> | |
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#normal-phone"><spring:message code="message.common.service.sms.label.normalphone" /> <spring:message code="message.common.service.sms.label.regist" /></a></li> | |
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#official-phone"><spring:message code="message.common.service.sms.label.officialphone2" /> <spring:message code="message.common.service.sms.label.regist" /></a></li> | |
<li style="float:right;line-height:20px;"><button id="tele-biz-act" type="button" class="btn btn-color7 br"><spring:message code="message.common.service.sms.label.msg06" /></button></li> | |
</ul> | |
<!-- Tab panes --> | |
<form id="newSenderForm"> | |
<input type="hidden" name="numberToDelete"> | |
<input type="hidden" name="prevBizfileId"> | |
<input type="hidden" name="prevCertfileId"> | |
<div class="tab-content"> | |
<%-- start 휴대폰번호 --%> | |
<div class="tab-pane active" id="cell-phone"> | |
<input type="hidden" name="type" value="0"> | |
<div class="ins-box mb20"> | |
<ul> | |
<li><i class="fa fa-exclamation-circle textcolor4" ></i> <spring:message code="message.common.service.sms.label.msg05" /> </li> | |
</ul> | |
</div> | |
<div class="subtitle"> | |
<h3 class="fleft"><spring:message code="message.common.service.sms.label.cellphone" /> <spring:message code="message.common.service.sms.label.regist" /></h3> | |
</div> | |
<!-- content-write --> | |
<div class="content-write border-top"> | |
<table class="table table-layout-fixed"> | |
<caption></caption> | |
<colgroup> | |
<col style="width:150px"> | |
<col style="width:*"> | |
</colgroup> | |
<tbody> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.cellphone" /></label></th> | |
<td> | |
<input type="text" name="phoneNumber[]" class="w40" maxlength="3"> | |
- <input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
- <input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
<button type="button" class="btn s2 btn-color7 br requestAuthNumber"><spring:message code="message.common.service.sms.label.authNumber.request" /></button> | |
</td> | |
</tr> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.authNumber" /></label></th> | |
<td><input type="text" name="authNumber" class="w200" maxlength="6" placeholder='<spring:message code="message.common.service.sms.label.authNumber.placeholder" />'><span id="countDown"></span></td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<!-- //content-write --> | |
<div class="btn-wrap"> | |
<button type="button" class="btn btn-color5 br submitSender"><spring:message code="message.common.service.sms.label.registNumber" /></button> | |
<button type="button" class="btn btn-color7 br resetBtn"><spring:message code="message.common.service.sms.label.cancel" /></button> | |
</div> | |
</div> | |
<%-- end 휴대폰번호 --%> | |
<%-- start 일반번호 --%> | |
<div class="tab-pane" id="normal-phone"> | |
<input type="hidden" name="type" value="1"> | |
<div class="ins-box mb20"> | |
<ul><li><i class="fa fa-exclamation-circle textcolor4"></i> <spring:message code="message.common.service.sms.label.msg07" /></li></ul> | |
</div> | |
<div class="subtitle"> | |
<h3 class="fleft"><spring:message code="message.common.service.sms.label.normalphone" /> <spring:message code="message.common.service.sms.label.regist" /></h3> | |
<div class="fright"><button class="btn btn-color7 br guideCertBtn" type="button"><spring:message code="message.common.service.sms.label.msg08" /></button></div> | |
</div> | |
<!-- content-write --> | |
<div class="content-write border-top"> | |
<form> | |
<table class="table table-layout-fixed"> | |
<caption></caption> | |
<colgroup> | |
<col style="width:150px"> | |
<col style="width:*"> | |
</colgroup> | |
<tbody> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.normalphone" /></label></th> | |
<td> | |
<input type="text" name="phoneNumber[]" class="w40" maxlength="3"> | |
- <input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
- <input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
</td> | |
</tr> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.bizfile" /></label></th> | |
<td class="sender-file"> | |
<div class="file" style="display:none;"><i class="icon attach"></i><span class="sender-file-name"></span></div> | |
<input type="hidden" class="singleFile"> | |
<button type="button" id="nBizfileBtn" class="btn s2 btn-color7 br"><spring:message code="message.common.service.sms.label.regist" /></button> | |
</td> | |
</tr> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.certfile" /></label></th> | |
<td class="sender-file"> | |
<div class="file" style="display:none;"><i class="icon attach"></i><span class="sender-file-name"></span></div> | |
<input type="hidden" class="singleFile"> | |
<button type="button" id="nCertfileBtn" class="btn s2 btn-color7 br"><spring:message code="message.common.service.sms.label.regist" /></button> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</form> | |
</div> | |
<!-- //content-write --> | |
<div class="btn-wrap"> | |
<button type="button" class="btn btn-color5 br submitSender"><spring:message code="message.common.service.sms.label.registNumber" /></button> | |
<button type="button" class="btn btn-color7 br resetBtn"><spring:message code="message.common.service.sms.label.cancel" /></button> | |
</div> | |
</div> | |
<%-- end 일반번호 --%> | |
<%-- start 대표번호 --%> | |
<div class="tab-pane" id="official-phone"> | |
<input type="hidden" name="type" value="2"> | |
<div class="ins-box mb20"> | |
<ul><li><i class="fa fa-exclamation-circle textcolor4"></i> <spring:message code="message.common.service.sms.label.msg09" /></li></ul> | |
</div> | |
<div class="subtitle"> | |
<h3 class="fleft"><spring:message code="message.common.service.sms.label.officialphone2" /> <spring:message code="message.common.service.sms.label.regist" /></h3> | |
<div class="fright"><button class="btn btn-color7 br guideCertBtn" type="button"><spring:message code="message.common.service.sms.label.msg08" /></button></div> | |
</div> | |
<!-- content-write --> | |
<div class="content-write border-top"> | |
<form> | |
<table class="table table-layout-fixed"> | |
<caption></caption> | |
<colgroup> | |
<col style="width:150px"> | |
<col style="width:*"> | |
</colgroup> | |
<tbody> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.officialphone" /></label></th> | |
<td> | |
<input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
- <input type="text" name="phoneNumber[]" class="w50" maxlength="4"> | |
</td> | |
</tr> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.bizfile" /></label></th> | |
<td class="sender-file"> | |
<div class="file" style="display:none;"><i class="icon attach"></i><span class="sender-file-name"></span></div> | |
<input type="hidden" class="singleFile"> | |
<button type="button" id="oBizfileBtn" class="btn s2 btn-color7 br"><spring:message code="message.common.service.sms.label.regist" /></button> | |
</td> | |
</tr> | |
<tr> | |
<th scope="row"><label for="cpNm"><spring:message code="message.common.service.sms.label.certfile" /></label></th> | |
<td class="sender-file"> | |
<div class="file" style="display:none;"><i class="icon attach"></i><span class="sender-file-name"></span></div> | |
<input type="hidden" class="singleFile"> | |
<button type="button" id="oCertfileBtn" class="btn s2 btn-color7 br"><spring:message code="message.common.service.sms.label.regist" /></button> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</form> | |
</div> | |
<!-- //content-write --> | |
<div class="btn-wrap"> | |
<button type="button" class="btn btn-color5 br submitSender"><spring:message code="message.common.service.sms.label.registNumber" /></button> | |
<button type="button" class="btn btn-color7 br resetBtn"><spring:message code="message.common.service.sms.label.cancel" /></button> | |
</div> | |
</div> | |
<%-- end 대표번호 --%> | |
</div> | |
</form> | |
<%-- end tab-content --%> | |
</div> | |
<%-- end tabs --%> | |
<%-- start 발신번호 목록 --%> | |
<div> | |
<div class="subtitle mt0"> | |
<h3 class="fleft"><spring:message code="message.common.service.sms.label.smsSender.list" /></h3> | |
</div> | |
<div class="content-view"> | |
<table class="table full-border"> | |
<caption></caption> | |
<colgroup> | |
<col width="5%"> | |
<col width="15%"> | |
<col width="10%"> | |
<col width="20%"> | |
<col width="5%"> | |
<col width="15%"> | |
<col width="10%"> | |
<col width="20%"> | |
<col> | |
</colgroup> | |
<thead> | |
<tr> | |
<th scope="col">No</th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.number" /></th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.status" /></th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.management" /></th> | |
<th scope="col">No</th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.number" /></th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.status" /></th> | |
<th scope="col"><spring:message code="message.common.service.sms.label.management" /></th> | |
</tr> | |
</thead> | |
<tbody id="senderList"></tbody> | |
</table> | |
</div> | |
</div> | |
<%-- end 발신번호 목록 --%> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment