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
File name
Commit message
Commit date
File name
Commit message
Commit date
<%
/**
* @Class Name : UserAPIKEYModify.jsp
* @Description : EgovHpcmRegist 화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2009.02.01 박정규 최초 생성
* 2016.06.13 김연호 표준프레임워크 v3.6 개선
*
* @author 공통서비스팀
* @since 2009.02.01
* @version 1.0
* @see
*
*/
%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
<% pageContext.setAttribute("newLineChar2", "\n"); %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>문자 상세 관리</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
$('.byte').find('span').html(calByte.getByteLength($('textarea[name=smsTxt]').val()));
<c:if test="${!empty apiKeyVO.accessNo}">
//$('.contWrap').find('input').prop('readonly', true);
//$('.contWrap').find('textarea').prop('readonly', true);
//$('select[name=agentCode] option').not(":selected").attr("disabled", "disabled");
</c:if>
<c:if test="${empty apiKeyVO.accessNo}">
$('.no_modi').remove();
//문자 바이트수 계산하기
var ibyte = 0;
$('textarea[name=smsTxt]').keyup(function(e){
ibyte = calByte.getByteLength($(this).val());
if(ibyte > 200){
//alert("내용은 200Byte를 넣을수 없습니다.");
//$('textarea[name=smsTxt]').val(calByte.cutByteLength($(this).val(), 200));
$('.byte').find('span').html(calByte.getByteLength($('textarea[name=smsTxt]').val()));
//return false ;
}else{
$('.byte').find('span').html( ibyte) ;
}
});//문자 바이트수 계산하기 끝
</c:if>
});
var calByte = {
getByteLength : function(s) {
if (s == null || s.length == 0) {
return 0;
}
var size = 0;
for ( var i = 0; i < s.length; i++) {
size += this.charByteSize(s.charAt(i));
}
return size;
},
cutByteLength : function(s, len) {
if (s == null || s.length == 0) {
return 0;
}
var size = 0;
var rIndex = s.length;
for ( var i = 0; i < s.length; i++) {
size += this.charByteSize(s.charAt(i));
if( size == len ) {
rIndex = i + 1;
break;
} else if( size > len ) {
rIndex = i;
break;
}
}
return s.substring(0, rIndex);
},
charByteSize : function(ch) {
if (ch == null || ch.length == 0) {
return 0;
}
var charCode = ch.charCodeAt(0);
if (charCode <= 0x00007F) {
return 1;
} else if (charCode <= 0x0007FF) {
return 2;
} else if (charCode <= 0x00FFFF) {
return 2;
} else {
return 2;
}
}
};
/* pagination 페이지 링크 function */
function goList(){
//var frm = document.listForm;
var frm = document.modiForm;
frm.action = "/uss/ion/apikey/UserAPIKEYList.do";
frm.submit();
}
/* 신규회원 문자전송리스트 이동 */
function goSpamMemberList(){
var frm = document.listForm;
var detailType = frm.detailType.value;
if(detailType == "newUserSendMsgList") {
frm.action ='/uss/ion/msg/NewUserSendMsgList.do';
}
if(detailType == "sendMsgList") {
frm.action ='/uss/ion/msg/SendMsgList.do';
}
frm.submit();
}
/* 등록시 값 확인 */
function fn_checkForm(flag) {
frm = document.writeForm;
/* if(frm.fmsNm.value=="") {
alert("제목을 입력해 주십시오");
frm.fmsNm.focus();
return false;
} */
if(frm.content.value=="") {
alert("내용을 입력해 주십시오");
frm.content.focus();
return false;
}
if(flag==1){
if($('.td_txt_exist').find('span').length==0){
alert("첨부파일을 추가해 주십시오");
return false;
}
}
return true;
}
/* 등록 */
//사용중인지? 기존에 form에 callFrom이 없었는데, 스팸처리를 위하여 callFrom 추가 22.06.20
function fn_insert(){
var frm = document.writeForm;
if(frm.callFrom.value == ''){
alert("발신번호는 필수입니다.");
return;
}
if(frm.callTo.value.trim() == ''){
alert("수신번호는 필수입니다.");
return;
}
if(frm.smsTxt.value.trim() == ''){
alert("내용은 필수입니다.");
return;
}
frm.action = "<c:url value='/uss/ion/msg/SendMsgInsert.do'/>";
//스팸 문구 확인
var spamKeywrodCheck = false;
var form = document.writeForm ;
form.checkSpamCn.value = form.smsTxt.value;
var data = new FormData(form);
$.ajax({
type: "POST",
url: "/uss/ion/cnf/spamKeywordCheckAjax.do",
async:false,
data: data,
dataType:'json',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
}else if(returnData.result == 'auth_fail'){
}else if(returnData.result =='success'){
if(null != returnData.spamKeywordVO.spamCn){
alert( returnData.spamKeywordVO.spamCn + " 단어는 스팸 문구로 등록되어 있는 단어입니다." );
spamKeywrodCheck = true;
}
}
}else{
//alert("등록에 실패하였습니다.");
}
},
error: function (e) {
//alert("등록에 실패하였습니다.");
}
});
if(spamKeywrodCheck){
return;
}
frm.submit();
}
/* 수정 */
function fn_modify(){
var frm = document.writeForm;
frm.action = "<c:url value='/uss/olp/hpc/updateHpcm.do'/>";
frm.submit();
}
/* API KEY 사용여부 변경 */
function fn_delete(p_useYn){
$('#btn_fn_delete').remove();
frm = document.writeForm;
frm.useYn.value = p_useYn;
frm.action = "<c:url value='/uss/ion/apikey/UserAPIKEYDelete.do' />";
frm.submit();
}
/* CALL INFO 호출정보 생성 */
function fn_insert_callInfo(){
frm = document.writeForm;
var p_accessNo = frm.accessNo.value;
if ($("#callInfo").val()==''){
alert("호출지 정보는 필수입니다.");
return false;
}
$.ajax({
type: "POST",
//url: "/uss/umt/user/selectMberSttusAjax.do",
url: "/uss/ion/apikey/AdminAPIInsertCallInfoAjax.do",
data: {
"accessNo" : p_accessNo
,"callInfo" : $("#callInfo").val()
,"callType" : $("#callType").val()
},
dataType:'json',
success: function (returnData, status) {
if(status == 'success'){
alert("API 호출정보생성 하였습니다.");
location.reload();
}else{
alert("호출정보생성에 실패하였습니다.");
location.reload();
}
},
error: function (e) {
alert("호출정보생성에 실패하였습니다.");
location.reload();
}
});
}
/* CALL INFO 호출정보 삭제 */
function fn_delete_callInfo(p_infoNo){
frm = document.writeForm;
var p_accessNo = frm.accessNo.value;
if(confirm("삭제후 복구 불가능합니다. 진행하시겠습니까?")) {
$.ajax({
type: "POST",
//url: "/uss/umt/user/selectMberSttusAjax.do",
url: "/uss/ion/apikey/UserAPIDeleteCallInfoAjax.do",
data: {
"accessNo" : p_accessNo
,"infoNo" : p_infoNo
},
dataType:'json',
success: function (returnData, status) {
if(status == 'success'){
alert("API 호출정보삭제 하였습니다.");
location.reload();
}else{
alert("호출정보삭제에 실패하였습니다.");
location.reload();
}
},
error: function (e) {
alert("호출정보삭제에 실패하였습니다.");
location.reload();
}
});
}
}
/* API KEY 실제 DB 삭제 - 임시 */
function fn_delete_real(){
frm = document.writeForm;
var p_accessNo = frm.accessNo.value;
if(confirm("임시로 지원하는 실제DB삭제 기능입니다.(실제 사용자 데이터 삭제시 정합성 오류가 발생할수 있습니다.)삭제후 복구 불가능합니다. 진행하시겠습니까?")) {
$.ajax({
type: "POST",
//url: "/uss/umt/user/selectMberSttusAjax.do",
url: "/uss/ion/apikey/AdminAPIKEYDeleteRealAjax.do",
data: {
"accessNo" : p_accessNo
},
dataType:'json',
success: function (returnData, status) {
if(status == 'success'){
alert("API KEY 정보 모두 삭제 하였습니다.");
goList();
}else{
alert("삭제에 실패하였습니다.");
location.reload();
}
},
error: function (e) {
alert("삭제에 실패하였습니다.");
location.reload();
}
});
}
}
/* API KEY 변경 */
function fn_update_apikey(){
frm = document.writeForm;
var p_accessNo = frm.accessNo.value;
if(confirm("API KEY 변경 후 복구 불가능합니다. 기존 API KEY는 사용할수 없습니다. 진행하시겠습니까?")) {
$.ajax({
type: "POST",
//url: "/uss/umt/user/selectMberSttusAjax.do",
url: "/uss/ion/apikey/AdminAPIUpdateAPIKEYAjax.do",
data: {
"accessNo" : p_accessNo
},
dataType:'json',
success: function (returnData, status) {
if(status == 'success'){
alert("API KEY 변경 하였습니다.");
location.reload();
}else{
alert("API KEY 변경 실패하였습니다.1");
location.reload();
}
},
error: function (e) {
alert("API KEY 변경 실패하였습니다.2");
location.reload();
}
});
}
}
/* API 승인 처리 - 키만들고 y 처리 */
function fn_change_apikey(){
frm = document.writeForm;
var p_accessNo = frm.accessNo.value;
if(confirm("API 승인 처리 진행하시겠습니까?")) {
$.ajax({
type: "POST",
//url: "/uss/umt/user/selectMberSttusAjax.do",
url: "/uss/ion/apikey/AdminAPIUpdateAPIKEYAjax.do",
data: {
"accessNo" : p_accessNo
},
dataType:'json',
success: function (returnData, status) {
if(status == 'success'){
//alert("API KEY 변경 하였습니다.");
fn_delete('Y');
//location.reload();
}else{
alert("API 승인 실패하였습니다.1");
location.reload();
}
},
error: function (e) {
alert("API 승인 실패하였습니다.2");
location.reload();
}
});
}
}
/* 회원 스팸회원 처리 */
function fn_updateSpamUser(mberId,callFrom){
var frm = document.writeForm;
frm.mberId.value = mberId;
frm.callFrom.value = callFrom;
var url = "/uss/umt/user/updateMberSttusBlockAjax.do";
var data = new FormData(frm);
$.ajax({
type: "POST",
url: url,
data: data,
dataType:'json',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'success'){
alert(returnData.message);
goSpamMemberList();
}else if(returnData.result == 'fail'){
alert(returnData.message);
}
}else{
alert("차단처리에 실패하였습니다.");
}
},
error: function (e) {
alert("차단처리에 실패하였습니다.");
}
});
}
function fnSelectMber(mberId) {
document.modiForm.mberId.value = mberId;
window.open("about:blank", 'popupSelectMber', 'width=900, height=1800, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
document.modiForm.action = "<c:url value='/uss/umt/user/EgovGnrlselectedUserView.do'/>";
document.modiForm.target = "popupSelectMber";
document.modiForm.submit();
}
</script>
</head>
<body>
<form name="listForm" id="listForm" method="post">
<input type="hidden" name="accessNo" value="${searchVO.accessNo}" />
</form>
<form name="writeForm" id="writeForm" method="post">
<input type="hidden" name="accessNo" value="${apiKeyVO.accessNo}" />
<input type="hidden" name="del" value="${apiKeyVO.accessNo}" />
<input type="hidden" name="accessKey" value="${apiKeyVO.accessKey}" />
<input type="hidden" name="useYn" value="${apiKeyVO.useYn}" />
<input type="hidden" name="mberNm" value="${apiKeyVO.mberNm}" />
<input type="hidden" name="mberId" value="${apiKeyVO.mberId}" />
<input type="hidden" name="mberSttus" value="${apiKeyVO.mberSttus}" />
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">API KEY 상세</h2>
<p class="tType6 c_999999">API KEY를 상세 조회 할 수 있습니다.</p>
</div>
<div class="pageCont">
<table class="tbType2">
<colgroup>
<col style="width: 20%">
<col style="width: 80%">
</colgroup>
<tbody>
<tr class="no_modi">
<th>아이디</th>
<td colspan="3">
<a href="#" onclick="javascript:fnSelectMber('<c:out value="${apiKeyVO.mberId}"/>'); return false;">
<c:out value="${apiKeyVO.mberId}"/>
</a>
</td>
</tr>
<tr>
<th><span class="reqArea">API KEY</span></th>
<td colspan="3">
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.accessKey}"/>
<input type="button" class="btnType2 bg_888888" value="api key 변경"
onclick="fn_update_apikey(); return false;">
</td>
</tr>
<tr>
<th><span class="reqArea">API KEY 사용여부</span></th>
<td>
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.useYn}"/>
</td>
</tr>
<tr>
<th><span class="reqArea">회원명</span></th>
<td colspan="3">
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.mberNm}"/>
</td>
</tr>
<tr>
<th><span class="reqArea">회원상태</span></th>
<td colspan="3">
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.mberSttus}"/>
</td>
</tr>
<tr>
<th><span class="reqArea">API KEY 최초등록일</span></th>
<td colspan="3">
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.frstRegistPnttm}"/>
</td>
</tr>
<tr>
<th><span class="reqArea">API KEY 최종수정일</span></th>
<td colspan="3">
<%-- <ec:select codeId="ITN019" name="agentCode" id="agentCode" css="class='select'" selectedValue="${mjonMsgVO.agentCode}" /> --%>
<%-- <ec:code codeId="ITN019" code="${mjonMsgVO.agentCode}" /> --%>
<c:out value="${apiKeyVO.lastUpdtPnttm}"/>
</td>
</tr>
<tr class="no_modi">
<th>호출정보생성</th>
<td colspan="3">
<table>
<tr>
<td>
API 호출방법 : <select name="callType" id="callType" style="width:300px;">
<option value="URL" >URL(사용자화면에서 호출시)</option>
<option value="IP" >IP(서버에서 호출시)</option>
</select>
</td>
<td>
<input type="button" class="btnType2 bg_888888" value="호출정보생성"
onclick="fn_insert_callInfo(); return false;">
</td>
</tr>
<tr>
<td colspan="2">
호출지 정보 : <input type="text" name="callInfo" id="callInfo" value="" style="width:800px;" maxlength="100"/>
<br/><br/>해당IP 또는 해당URL을 포함한 호출의 경우만 정상적으로 작동합니다.
<br/><br/>ex)10.10.10.1(서버호출시-해당서버IP)
<br/>또는
<br/>ex)http://www.munjaon.co.kr/main/Main.do(사이트호출시-호출페이지URL)
</td>
</tr>
</table>
</td>
</tr>
<tr class="no_modi">
<th>호출정보
<br/>*숫자에 제한은 없으나 성능상의 문제로 가급적 10개 이내로 등록 사용 바랍니다.
</th>
<td colspan="3">
<table>
<tr>
<td>
고유생성번호
</td>
<td>
call type
</td>
<td>
call info
</td>
<td>
최종등록자
</td>
<td>
최종등록일
</td>
<td>
삭제
</td>
</tr>
<c:forEach var="result" items="${apiCallInfoVOList}" varStatus="status">
<tr>
<td>
<c:out value="${result.infoNo}"/>
</td>
<td>
<c:out value="${result.callType}"/>
</td>
<td>
<c:out value="${result.callInfo}"/>
</td>
<td>
<c:out value="${result.lastUpdusrId}"/>
</td>
<td title="<c:out value="${result.lastUpdtPnttm}"/>">
<fmt:parseDate value="${result.lastUpdtPnttm}" var="reqDateValue" pattern="yyyy-MM-dd HH:mm"/>
<fmt:formatDate value="${reqDateValue}" pattern="MM-dd HH:mm"/>
</td>
<td>
<input type="button" class="btnType2 bg_888888" value="호출정보삭제"
onclick="fn_delete_callInfo('${result.infoNo}'); return false;">
</td>
</tr>
</c:forEach>
</table>
</td>
</tr>
</tbody>
</table>
<div class="btnWrap">
<c:if test="${ 'ReceiveNumberList' eq mjonMsgVO.beforeUrl }">
<input type="button" class="btnType1 bg_888888" value="목 록"
onclick="location.href='/uss/ion/msg/ReceiveNumberList.do'">
</c:if>
<c:if test="${ 'ReceiveNumberList' ne mjonMsgVO.beforeUrl }">
<input type="button" class="btnType1 bg_888888" value="목 록"
onclick="goList(); return false;">
</c:if>
<c:if test="${apiKeyVO.useYn eq 'Y'}">
<input type="button" class="btnType2 bg_888888" value="API KEY 미사용 처리" id="btn_fn_delete"
onclick="fn_delete('N'); return false;">
<input type="button" class="btnType2 bg_888888" value="API 승인요청상태로" id="btn_fn_delete"
onclick="fn_delete('A'); return false;">
</c:if>
<c:if test="${apiKeyVO.useYn eq 'A'}">
<input type="button" class="btnType2 bg_888888" value="API 승인 처리" id="btn_fn_delete"
onclick="fn_change_apikey(); return false;">
<input type="button" class="btnType2 bg_888888" value="API 미승인 처리" id="btn_fn_delete"
onclick="fn_delete('N'); return false;">
</c:if>
<c:if test="${apiKeyVO.useYn eq 'N' and apiKeyVO.accessKey ne ''}">
<input type="button" class="btnType2 bg_888888" value="API KEY 사용 처리" id="btn_fn_delete"
onclick="fn_delete('Y'); return false;">
</c:if>
<input type="button" class="btnType2 bg_888888" value="API KEY 사용자 삭제(실제)" id="btn_fn_delete"
onclick="fn_delete_real(); return false;">
<!--
<c:if test="${!empty mjonMsgVO.msgId }">
<c:if test="${'Y' eq mjonMsgVO.delFlag }">
<input type="button" class="btnType1" value="복 구" onclick="fn_delete(); return false;">
</c:if>
<c:if test="${'N' eq mjonMsgVO.delFlag }">
<input type="button" class="btnType1" value="삭 제" onclick="fn_delete(); return false;">
</c:if>
<input type="button" class="btnType1" value="수 정" onclick="fn_modify(); return false;">
</c:if>
-->
<!--
<c:if test="${empty mjonMsgVO.msgId }">
<input type="button" class="btnType1" value="저 장" onclick="fn_insert(); return false;">
</c:if>
-->
</div>
<div class="btnWrap">
<a href="javascript:fn_delete_real();">.</a>
</div>
</div>
</div>
</form>
<form name="modiForm" id="modiForm" method="post">
<input name="accessNo" type="hidden" />
<input name="infoNo" type="hidden" />
<input name="callType" type="hidden" />
<input name="callInfo" type="hidden" />
</form>
</body>
</html>