Files
eapim-admin/WebContent/jsp/onl/admin/rule/layoutSyncHistoryManDetail.jsp
T
2026-08-21 15:05:18 +09:00

142 lines
5.7 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" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ 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"/>
<style>
.succ-y { color:#1a73e8; font-weight:bold; }
.succ-n { color:#d93025; font-weight:bold; }
.pre-wrap { white-space:pre-wrap; word-break:break-all; height:500px; overflow: auto; line-height:1.5; }
.recvdata-toolbar { text-align:right; margin-top: 5px; margin-bottom:6px; }
</style>
<script language="javascript">
var url = '<c:url value="/onl/admin/rule/layoutSyncHistoryMan.json" />';
var key = '${param.seqno}';
var rawRecvData = '';
var isRecvDataPretty = false;
function detail() {
if (!key) return;
$.ajax({
type: "POST", url: url, dataType: "json",
data: {cmd: 'DETAIL', seqno: key},
success: function (data) {
$('#seqno').text(data.seqno != null ? data.seqno : '');
$('#serviceName').text(data.serviceName || '');
$('#command').text(data.command || '');
$('#loutName').text(data.loutName || '');
$('#recvAmndHms').text(data.recvAmndHms || '');
$('#prcssRsltCmnt').text(data.prcssRsltCmnt || '');
rawRecvData = data.recvData || '';
isRecvDataPretty = false;
$('#recvData').text(rawRecvData);
if (data.prcssRslt === 'S') {
$('#prcssRslt').html('<span class="succ-y">성공</span>');
} else if (data.prcssRslt === 'F') {
$('#prcssRslt').html('<span class="succ-n">실패</span>');
} else {
$('#prcssRslt').text(data.prcssRslt || '');
}
},
error: function (e) { alert(e.responseText); }
});
}
// JSON 지수표기(예: 1e+21) 값이 vkbeautify 처리 중 깨지지 않도록 문자열로 감쌌다가 되돌린다.
function preserveExponential(jsonString) {
var protectedJson = jsonString.replace(/:\s*([+-]?\d+\.?\d*e[+-]?\d+)/gi, ': "$1"');
var prettyJson = vkbeautify.json(protectedJson);
prettyJson = prettyJson.replace(/:\s*"([+-]?\d+\.?\d*e[+-]?\d+)"/gi, ': $1');
return prettyJson;
}
$(document).ready(function () {
var returnUrl = getReturnUrlForReturn();
buttonControl();
detail();
$('#btn_previous').click(function () { goNav(returnUrl); });
$('#btn_pretty_recvdata').click(function () {
if (!rawRecvData) return;
if (isRecvDataPretty) {
$('#recvData').text(rawRecvData);
isRecvDataPretty = false;
return;
}
try {
$('#recvData').text(preserveExponential(rawRecvData));
isRecvDataPretty = true;
} catch (e) {
alert('JSON 형식이 아니거나 정렬할 수 없습니다.');
}
});
});
</script>
</head>
<body>
<div class="right_box">
<div class="content_top">
<ul class="path"><li><a href="#">${rmsMenuPath}</a></li></ul>
</div>
<div class="content_middle">
<div class="search_wrap">
<button type="button" class="cssbtn" id="btn_previous" level="R" status="DETAIL,NEW"><i class="material-icons">arrow_back</i> <%= localeMessage.getString("button.previous") %></button>
</div>
<div class="title" id="title">레이아웃 연동 이력 상세</div>
<table class="table_row" cellspacing="0">
<colgroup>
<col style="width:12%"/><col style="width:38%"/>
<col style="width:12%"/><col style="width:38%"/>
</colgroup>
<tr>
<th>No</th>
<td colspan="3"><span id="seqno"></span></td>
</tr>
<tr>
<th>Service Name</th>
<td><span id="serviceName"></span></td>
<th>Command</th>
<td><span id="command"></span></td>
</tr>
<tr>
<th>레이아웃명</th>
<td><span id="loutName"></span></td>
<th>연동시간</th>
<td><span id="recvAmndHms"></span></td>
</tr>
<tr>
<th>결과</th>
<td><span id="prcssRslt"></span></td>
<th>결과메세지</th>
<td><span id="prcssRsltCmnt"></span></td>
</tr>
<tr>
<th>수신데이타</th>
<td colspan="3">
<div class="recvdata-toolbar">
<button type="button" class="cssbtn" id="btn_pretty_recvdata"><i class="material-icons">format_align_left</i> 정렬</button>
</div>
<div id="recvData" class="pre-wrap"></div>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>