API-SCOPE 맵핑 LiveSearch 기능 추가

This commit is contained in:
daekuk
2025-12-09 19:44:33 +09:00
parent cce246831c
commit 4db4f0dc0e
@@ -13,195 +13,216 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css.jsp"/> <jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/> <jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" >
var url = '<c:url value="/onl/admin/authserver/apiScopeMan.json" />';
var url_view = '<c:url value="/onl/admin/authserver/apiScopeMan.view" />';
function isValid(){ <link href="<c:url value="/addon/bootstrap-5.3.2/css/bootstrap.min.css"/>" rel="stylesheet" />
if($('select[name=bzwkSvcKeyName]').val() == ""){ <script src="<c:url value="/addon/bootstrap-5.3.2/js/bootstrap.bundle.min.js"/>"></script>
alert("API를 선택하여 주십시요."); <link href="<c:url value="/addon/select2-4.1.0/css/select2.min.css"/>" rel="stylesheet" />
$('select[name=bzwkSvcKeyName]').focus(); <link href="<c:url value="/addon/select2-4.1.0/css/select2-bootstrap.min.css"/>" rel="stylesheet" />
return false; <script src="<c:url value="/addon/select2-4.1.0/js/select2.min.js"/>"></script>
} <style>
if($('select[name=scopeId]').val() == ""){
alert("SCOPE를 선택하여 주십시요."); .select2-container--bootstrap {
$('select[name=scopeId]').focus(); display: inline-block;
return false; height: 50px;
} margin-top: 12;
return true;
} }
$(document).ready(function() { </style>
var gridPostData = getSearchForJqgrid("cmd","LIST");
$('#grid').jqGrid({
datatype:"json", <script language="javascript" >
mtype: 'POST', var url = '<c:url value="/onl/admin/authserver/apiScopeMan.json" />';
url: url, var url_view = '<c:url value="/onl/admin/authserver/apiScopeMan.view" />';
postData : gridPostData,
colNames:['<%= localeMessage.getString("apiScpMan.apiNm") %>', $.fn.select2.defaults.set( "theme", "bootstrap" );
'<%= localeMessage.getString("apiScpMan.apiId") %>',
'<%= localeMessage.getString("apiScpMan.scpId") %>', function isValid(){
'<%= localeMessage.getString("apiScpMan.scpNm") %>', if($('select[name=bzwkSvcKeyName]').val() == ""){
'<%= localeMessage.getString("apiScpMan.del") %>' alert("API를 선택하여 주십시요.");
], $('select[name=bzwkSvcKeyName]').focus();
colModel:[ return false;
{ name : 'EAISVCDESC', align:'left', sortable:false }, }
{ name : 'BZWKSVCKEYNAME', align:'left' }, if($('select[name=scopeId]').val() == ""){
{ name : 'SCOPEID', align:'left' }, alert("SCOPE를 선택하여 주십시요.");
{ name : 'SCOPENAME', align:'left', sortable:false }, $('select[name=scopeId]').focus();
{ name : 'DELETE', align:'center', sortable:false, formatter: addDeleteButton } return false;
], }
jsonReader: {
repeatitems:false return true;
}, }
pager : $('#pager'),
page : '${param.page}', $(document).ready(function() {
rowNum : '${rmsDefaultRowNum}', var gridPostData = getSearchForJqgrid("cmd","LIST");
autoheight: true, $('#grid').jqGrid({
height: $("#container").height(), datatype:"json",
autowidth: true, mtype: 'POST',
viewrecords: true, url: url,
rowList : eval('[${rmsDefaultRowList}]'), postData : gridPostData,
loadComplete : function(d) { colNames:['<%= localeMessage.getString("apiScpMan.apiNm") %>',
$("img[name^='img_']").click(function() { '<%= localeMessage.getString("apiScpMan.apiId") %>',
if(confirm("삭제하시겠습니까?")){ '<%= localeMessage.getString("apiScpMan.scpId") %>',
var name = $(this).attr("name"); '<%= localeMessage.getString("apiScpMan.scpNm") %>',
var rowId = name.split("_")[1]; '<%= localeMessage.getString("apiScpMan.del") %>'
var rowData = $('#grid').jqGrid('getRowData', rowId); ],
var postData = new Array(); colModel:[
postData.push({ name: "cmd" , value:"DELETE"}); { name : 'EAISVCDESC', align:'left', sortable:false },
postData.push({ name: "bzwkSvcKeyName" , value:rowData['BZWKSVCKEYNAME']}); { name : 'BZWKSVCKEYNAME', align:'left' },
postData.push({ name: "scopeId" , value:rowData['SCOPEID']}); { name : 'SCOPEID', align:'left' },
$.ajax({ { name : 'SCOPENAME', align:'left', sortable:false },
type : "POST", { name : 'DELETE', align:'center', sortable:false, formatter: addDeleteButton }
url:url, ],
data:postData, jsonReader: {
success:function(args){ repeatitems:false
if(args.status=="error"){ },
alert("동기화중 오류입니다.\n확인하여 주십시요.\n" + args.message); pager : $('#pager'),
}else{ page : '${param.page}',
alert("삭제 되었습니다."); rowNum : '${rmsDefaultRowNum}',
//goNav(returnUrl);//LIST로 이동 autoheight: true,
location.reload(); height: $("#container").height(),
autowidth: true,
viewrecords: true,
rowList : eval('[${rmsDefaultRowList}]'),
loadComplete : function(d) {
$("img[name^='img_']").click(function() {
if(confirm("삭제하시겠습니까?")){
var name = $(this).attr("name");
var rowId = name.split("_")[1];
var rowData = $('#grid').jqGrid('getRowData', rowId);
var postData = new Array();
postData.push({ name: "cmd" , value:"DELETE"});
postData.push({ name: "bzwkSvcKeyName" , value:rowData['BZWKSVCKEYNAME']});
postData.push({ name: "scopeId" , value:rowData['SCOPEID']});
$.ajax({
type : "POST",
url:url,
data:postData,
success:function(args){
if(args.status=="error"){
alert("동기화중 오류입니다.\n확인하여 주십시요.\n" + args.message);
}else{
alert("삭제 되었습니다.");
//goNav(returnUrl);//LIST로 이동
location.reload();
}
},
error:function(e){
alert(e.responseText);
} }
}, });
error:function(e){ }
alert(e.responseText); });
}
});
}
});
},
onSortCol :function(sidx,colnum,sort_order){
var gridPostData = getSearchForJqgrid("cmd","LIST");
var sortorder="";
if( sort_order == "")
sortorder ='ASC';
else
sortorder = sort_order;
$("#grid").setGridParam({ url:url, postData: gridPostData, page:"1"}).trigger("reloadGrid");
}
});
resizeJqGridWidth('grid','content_middle','1000');
$("#btn_search").click(function(){
var postData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로
$("#grid").setGridParam({ postData: postData ,page : "1" }).trigger("reloadGrid");
});
$("#btn_add").click(function(){
if (!isValid()){
return;
}
var postData = $('#ajaxForm').serializeArray();
postData.push({ name: "cmd" , value:"INSERT"});
$.ajax({
type : "POST",
url:url,
data:postData,
success:function(args){
alert("저장 되었습니다.");
location.reload();
//goNav(returnUrl);//LIST로 이동
}, },
error:function(e){ onSortCol :function(sidx,colnum,sort_order){
alert(e.responseText); var gridPostData = getSearchForJqgrid("cmd","LIST");
} var sortorder="";
if( sort_order == "")
sortorder ='ASC';
else
sortorder = sort_order;
$("#grid").setGridParam({ url:url, postData: gridPostData, page:"1"}).trigger("reloadGrid");
}
}); });
});
resizeJqGridWidth('grid','content_middle','1000');
$("input[name^=search]").keydown(function(key){ $("#btn_search").click(function(){
if (key.keyCode == 13){ var postData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로
$("#btn_search").click(); $("#grid").setGridParam({ postData: postData ,page : "1" }).trigger("reloadGrid");
}
}); });
//$("img[name=img_" + rowid + "]").click(function() { $("#btn_add").click(function(){
$("img[name^='img_']").click(function() { if (!isValid()){
//$("#btn_pop_delete").click(function() { return;
if(confirm("삭제하시겠습니까?")){ }
var name = $(this).attr("name"); var postData = $('#ajaxForm').serializeArray();
var rowId = name.split("_")[1]; postData.push({ name: "cmd" , value:"INSERT"});
var rowData = $(this).getRowData(rowId);
var postData = new Array();
postData.push({ name: "cmd" , value:"DELETE"});
postData.push({ name: "bzwkSvcKeyName" , value:rowData['BZWKSVCKEYNAME']});
postData.push({ name: "scopeId" , value:rowData['SCOPEID']});
$.ajax({ $.ajax({
type : "POST", type : "POST",
url:url, url:url,
data:postData, data:postData,
success:function(args){ success:function(args){
if(args.status=="error"){ alert("저장 되었습니다.");
alert("동기화중 오류입니다.\n확인하여 주십시요.\n" + args.message); location.reload();
}else{ //goNav(returnUrl);//LIST로 이동
alert("삭제 되었습니다.");
//goNav(returnUrl);//LIST로 이동
location.reload();
}
}, },
error:function(e){ error:function(e){
alert(e.responseText); alert(e.responseText);
} }
}); });
} });
$("input[name^=search]").keydown(function(key){
if (key.keyCode == 13){
$("#btn_search").click();
}
});
//$("img[name=img_" + rowid + "]").click(function() {
$("img[name^='img_']").click(function() {
//$("#btn_pop_delete").click(function() {
if(confirm("삭제하시겠습니까?")){
var name = $(this).attr("name");
var rowId = name.split("_")[1];
var rowData = $(this).getRowData(rowId);
var postData = new Array();
postData.push({ name: "cmd" , value:"DELETE"});
postData.push({ name: "bzwkSvcKeyName" , value:rowData['BZWKSVCKEYNAME']});
postData.push({ name: "scopeId" , value:rowData['SCOPEID']});
$.ajax({
type : "POST",
url:url,
data:postData,
success:function(args){
if(args.status=="error"){
alert("동기화중 오류입니다.\n확인하여 주십시요.\n" + args.message);
}else{
alert("삭제 되었습니다.");
//goNav(returnUrl);//LIST로 이동
location.reload();
}
},
error:function(e){
alert(e.responseText);
}
});
}
});
buttonControl();
init();
}); });
buttonControl(); function addDeleteButton(cellvalue, options, rowObject) {
init(); var rowId = options["rowId"];
}); return "<img id='btn_pop_delete' name='img_" + rowId
+ "' src=<c:url value='/img/btn_pop_delete.png' /> />";
function addDeleteButton(cellvalue, options, rowObject) { }
var rowId = options["rowId"];
return "<img id='btn_pop_delete' name='img_" + rowId function init() {
+ "' src=<c:url value='/img/btn_pop_delete.png' /> />"; $.ajax({
} type : "POST",
url:url,
function init() { dataType:"json",
$.ajax({ data:{cmd: 'LIST_COMBO'},
type : "POST", success:function(json){
url:url, new makeOptions("APIID","APINAME").setObj($("select[name=bzwkSvcKeyName]")).setNoValueInclude(true).setNoValue("", "- API 선택 -").setData(json.apiRows).setFormat(codeName3OptionFormat).rendering();
dataType:"json", new makeOptions("SCOPEID","SCOPENAME").setObj($("select[name=scopeId]")).setNoValueInclude(true).setNoValue("", "- SCOPE 선택 -").setData(json.scopeRows).setFormat(codeName3OptionFormat).rendering();
data:{cmd: 'LIST_COMBO'}, putSelectFromParam();
success:function(json){ //setSearchable("scopeId"); // 콤보에 searchable 설정
new makeOptions("APIID","APINAME").setObj($("select[name=bzwkSvcKeyName]")).setNoValueInclude(true).setNoValue("", "- API 선택 -").setData(json.apiRows).setFormat(codeName3OptionFormat).rendering();
new makeOptions("SCOPEID","SCOPENAME").setObj($("select[name=scopeId]")).setNoValueInclude(true).setNoValue("", "- SCOPE 선택 -").setData(json.scopeRows).setFormat(codeName3OptionFormat).rendering(); if (typeof callback === 'function') {
putSelectFromParam(); callback();
//setSearchable("scopeId"); // 콤보에 searchable 설정 }
$('select[name=bzwkSvcKeyName]').select2();
if (typeof callback === 'function') { $('select[name=scopeId]').select2()
callback(); },
error:function(e){
alert(e.responseText);
} }
}, });
error:function(e){ }
alert(e.responseText); </script>
}
});
}
</script>
</head> </head>
<body> <body>
<div class="right_box"> <div class="right_box">