Files
eapim-admin/WebContent/jsp/onl/admin/session/sessionHistory.jsp
T
Rinjae c54ef1903f init
2025-09-05 17:16:26 +09:00

272 lines
9.1 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<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/script.jsp"/>
<script >
var url ='<c:url value="/onl/admin/session/sessionHistory.json" />';
var url_view ='<c:url value="/onl/admin/session/sessionHistory.view" />';
const historyDstcdOptionList = [
{"text":"전체", "value":""},
{"text":"로그인", "value":"LOGIN"},
{"text":"로그아웃", "value":"LOGOUT"},
{"text":"중복로그인", "value":"DUPLOGIN"},
{"text":"자동로그아웃", "value":"AUTOLOGOUT"},
{"text":"웹소켓", "value":"WEBSOCKET"}
];
const rspnsRsltDvsnOptionList = [
{"text":"전체", "value":""},
{"text":"정상", "value":"N"},
{"text":"오류", "value":"E"},
{"text":"대상시스템연결오류","value":"C"},
{"text":"타임아웃", "value":"T"},
{"text":"시스템오류", "value":"F"}
];
function getStartTime() {
var now = new Date();
var tm = right("0" + now.getHours(), 2);
tm += right("0" + now.getMinutes(), 2);
tm = (Math.floor(tm.substr(0, 2)) * 60) + Math.floor(right(tm, 2)) - 5;
tm = right("0" + parseInt(tm/60), 2) + right("0" + tm%60, 2);
return tm + '00';
}
function getEndTime() {
var now = new Date();
var tm = right("0" + now.getHours(), 2);
tm += right("0" + now.getMinutes(), 2);
return tm + '59';
}
function toDateString(d) {
var dateStr = d.replace(/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/ , '$4:$5:$6 $2/$3/$1');
return dateStr;
}
//10분후 시간셋팅
function setTime(searchTime) {
var endYYYYMMDD;
var endHHMM;
var yy = searchTime.substr(0,4);
var mm = searchTime.substr(4,2);
var dd = searchTime.substr(6,2);
var hh = searchTime.substr(8,2);
var MM = searchTime.substr(10,2);
var ms = Date.UTC(yy,mm-1,dd,hh,MM,00);
var date = new Date(ms);
date.setHours( date.getHours() - 9 );
//10분 후 셋팅
date.setMinutes( date.getMinutes() + 9 );
endYYYYMMDD = date.getFullYear() + right("0" + (date.getMonth() + 1), 2) + right("0" + (date.getDate()), 2);
endHHMM = right("0" + date.getHours() , 2) + right("0" + date.getMinutes() , 2) + "59";
$("input[name=searchEndYYYYMMDD]").val(endYYYYMMDD);
$("input[name=searchEndHHMM]").val(endHHMM);
}
function selectBoxSearchHistoryDstcd() {
let $select = $(document.createElement('select'));
$select.attr({ name : "searchHistoryDstcd" });
historyDstcdOptionList.forEach(it => $select.append($(document.createElement('option')).attr({ value : it.value }).text(it.text)));
$("#searchHistoryDstcd").append($select);
}
function historyDstcdFormatter (cellvalue, options, rowObject) {
let option = historyDstcdOptionList.find(it => it.value == cellvalue);
if(!option) {
return cellvalue;
}
return option.text;
}
function selectBoxSearchRspnsRsltDvsn() {
let $select = $(document.createElement('select'));
$select.attr({ name : "searchRspnsRsltDvsn" });
rspnsRsltDvsnOptionList.forEach(it => $select.append($(document.createElement('option')).attr({ value : it.value }).text(it.text)));
$("#searchRspnsRsltDvsn").append($select);
}
function rspnsRsltDvsnFormatter (cellvalue, options, rowObject){
let option = rspnsRsltDvsnOptionList.find(it => it.value == cellvalue);
if(!option) {
return cellvalue;
}
return option.text;
}
$(document).ready(function() {
$("input[name=searchStartYYYYMMDD],input[name=searchEndYYYYMMDD]").inputmask("yyyy-mm-dd",{'autoUnmask':true});
$("input[name=searchStartHHMM],input[name=searchEndHHMM]").inputmask("hh:mm:ss",{'autoUnmask':true});
$("input[name=searchStartYYYYMMDD],input[name=searchEndYYYYMMDD]").each(function(){
if ($(this).val() == undefined || $(this).val() == null || $(this).val() == ""){
$(this).val(getToday());
}
});
$("input[name=searchStartHHMM]").each(function(){
if ($(this).val() == undefined || $(this).val() == null || $(this).val() == "") {
//$(this).val(getStartTime());
$(this).val("000000");
}
});
$("input[name=searchEndHHMM]").each(function(){
if ($(this).val() == undefined || $(this).val() == null || $(this).val() == "") {
//$(this).val(getEndTime());
$(this).val("235959");
}
});
var gridPostData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로
gridPostData['searchStartTime'] = $("input[name=searchStartYYYYMMDD]").val().replace(/-/gi,"") + $("input[name=searchStartHHMM]").val();
gridPostData['searchEndTime'] = $("input[name=searchEndYYYYMMDD]").val().replace(/-/gi,"") + $("input[name=searchEndHHMM]").val();
$('#grid').jqGrid({
datatype : "json",
mtype : "POST",
url : url,
postData : gridPostData,
colNames:[
'거래GUID',
'사용자ID',
'사용자UUID',
'구분',
'정상여부',
'거래업무데이터',
'거래시각'
],
colModel:[
{ name : 'GUID' , align:'left' , width:120 },
{ name : 'USERID' , align:'center' , width:50 },
{ name : 'UUID' , align:'left' , width:120 },
{ name : 'HISTORYDSTCD' , align:'left' , width:50, formatter: historyDstcdFormatter },
{ name : 'RSPNSRSLTDVSN', align:'center' , width:20, formatter: rspnsRsltDvsnFormatter },
{ name : 'BODY' , align:'left' , width:150 },
{ name : 'TRANTIME' , align:'center' , width:80 }
],
jsonReader: {
repeatitems:false
},
pager : $('#pager'),
rowNum : '${rmsDefaultRowNum }',
autoheight: true,
height: $("#container").height(),
autowidth: true,
viewrecords: true,
rowList : eval('[${rmsDefaultRowList}]'),
gridComplete:function (d){
var colModel = $(this).getGridParam("colModel");
for(var i = 0 ; i< colModel.length; i++){
$(this).setColProp(colModel[i].name, {sortable : false}); //그리드 헤더 화살표 삭제(정렬X)
}
}
});
resizeJqGridWidth('grid','content_middle','1000');
$("#btn_search").click(function() {
var postData = getSearchForJqgrid("cmd","LIST");
var startCreateTime = $("input[name=searchStartYYYYMMDD]").val().replace(/-/gi,"") + $("input[name=searchStartHHMM]").val();
var endCreateTime = $("input[name=searchEndYYYYMMDD]").val().replace(/-/gi,"") + $("input[name=searchEndHHMM]").val();
postData['searchStartTime'] = startCreateTime;
postData['searchEndTime'] = endCreateTime;
$("#grid").setGridParam({ postData: postData, page : "1" }).trigger("reloadGrid");
});
$("[name^=search]").keydown(function(key){
if (key.keyCode == 13){
$("#btn_search").click();
}
});
selectBoxSearchHistoryDstcd();
selectBoxSearchRspnsRsltDvsn();
$("#startDatepicker").datepicker();
$("#endDatepicker").datepicker();
buttonControl();
});
</script>
</head>
<body>
<div class="right_box">
<div class="content_top">
<ul class="path">
<li><a href="#">${rmsMenuPath}</a></li>
</ul>
</div><!-- end content_top -->
<div class="content_middle" id="content_middle">
<div class="search_wrap">
<button type="button" class="cssbtn" id="btn_search" level="R"><i class="material-icons">search</i> <%= localeMessage.getString("button.search") %></button>
<%-- <img src="<c:url value="/img/btn_search.png"/>" alt="" id="btn_search" level="R" /> --%>
</div>
<div class="title"><%= localeMessage.getString("sessHis.title") %></div>
<form id="ajaxForm">
<table class="search_condition" cellspacing=0;>
<tbody>
<tr>
<th style="width:100px;"><%= localeMessage.getString("sessHis.userID") %></th> <!-- 3자리만 입력가능하게 -->
<td style="width:250px;">
<input type="text" name="searchUserId" value="${param.searchUserId}" >
</td>
<th style="width:100px;"><%= localeMessage.getString("sessHis.div") %></th>
<td style="width:250px;">
<div class="select-style" id="searchHistoryDstcd">
</div>
</td>
<th style="width:100px;"><%= localeMessage.getString("sessHis.norStat") %></th>
<td style="width:250px;">
<div class="select-style" id="searchRspnsRsltDvsn">
</div>
</td>
<th style="width:100px;"><%= localeMessage.getString("sessHis.tranTm") %></th>
<td style="width: 25%;">
<input type="text" name="searchStartYYYYMMDD" id="startDatepicker" readonly="readonly" value="" size="10" style="width:80px; border:1px solid #ebebec;">
<input type="text" name="searchStartHHMM" value="" size="8" style="width:80px; border:1px solid #ebebec;">
~
<input type="text" name="searchEndYYYYMMDD" value="" id="endDatepicker" size="10" readonly="readonly" style="width:80px; border:1px solid #ebebec;">
<input type="text" name="searchEndHHMM" value="" size="8" style="width:80px; border:1px solid #ebebec;">
</td>
</tr>
</tbody>
</table>
</form>
<table id="grid" ></table>
<div id="pager"></div>
</div>
</div>
</body>
</html>