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

365 lines
12 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" %>
<%@ page import="com.eactive.eai.rms.common.login.SessionManager"%>
<%@ page import="com.eactive.eai.rms.common.datasource.DataSourceContextHolder" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
String curDataSourceName = DataSourceContextHolder.getDataSourceType().getName();
%>
<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 type="text/javascript">
var roleString = "<%=SessionManager.getRoleIdString(request)%>";
function init(url, successCallback){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'LIST_INIT_COMBO'},
success:function(json){
var inoutTypeData = json.inoutTypeRows;
new makeOptions("CODE","NAME").setObj($("select[name=eaisevrDstcd]")).setData(inoutTypeData).setFormat(codeName3OptionFormat).rendering();
var chkRole = roleString.indexOf('admin');
if(chkRole==-1){
$("select[name=eaisevrDstcd] option[value='9']").remove();
}
successCallback();
// 현재 데이터 소스로 eaisevrDstcd 값을 SET
$("[name='eaisevrDstcd']").val('<%=curDataSourceName%>'.substring(0,1)).prop("selected", true);
},
error:function(e){
alert(e.responseText);
}
});
}
function getDoc(frame) {
var doc = null;
// IE8 cascading access check
try {
if (frame.contentWindow) {
doc = frame.contentWindow.document;
}
} catch(err) {
}
if (doc) { // successful getting content
return doc;
}
try { // simply checking may throw in ie8 under ssl or mismatched protocol
doc = frame.contentDocument ? frame.contentDocument : frame.document;
} catch(err) {
// last attempt
doc = frame.document;
}
return doc;
}
function fileupload(e,successcallback,errorcallback){
var formObj = $(this);
var formURL = formObj.attr("action");
if(window.FormData !== undefined) // for HTML5 browsers
{
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
encType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(json, textStatus, jqXHR)
{
$("input[name=file]").val("");
var data = json;
if (!data.rows){
alert(data.message);
return ;
}
$("#grid").jqGrid('clearGridData');
var rows = $("#grid")[0].rows;
var index = Number($(rows[rows.length-1]).attr("id"));
if (isNaN(index)) index=0;
for(var i=0;i<data.rows.length;i++){
var rowid = index + 1 + i;
$("#grid").jqGrid('addRow', {
rowID : rowid,
initdata : data.rows[i],
position :"last", //first, last
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
});
if(data.rows[i].RESULT=="X"){
$("#"+rowid).find("td").css("background-color","#FFCC99");
}
}
$("#"+$('#grid').jqGrid('getGridParam','selrow')).focus();
if (typeof callback === 'function') {
successcallback(data, textStatus, jqXHR);
}
},
error: function(jqXHR, textStatus, errorThrown)
{
$("input[name=file]").val("");
if (typeof callback === 'function') {
errorcallback(jqXHR, textStatus, errorThrown);
}
},
beforeSend: function() {
loadingModal.style.display = "flex";
},
complete: function() {
loadingModal.style.display = "none";
}
});
e.preventDefault();
if (e.unbind)
e.unbind();
}
else //for olden browsers
{
formObj.append($("<input type='hidden' name='serviceType' value='"+sessionStorage["serviceType"]+"' />"));
//generate a random id
var iframeId = 'unique' + (new Date().getTime());
//create an empty iframe
var iframe = $('<iframe src="javascript:false;" id="'+iframeId+'" name="'+iframeId+'" />');
//hide it
iframe.hide();
//set form target to iframe
formObj.attr('target',iframeId);
formObj.attr('action','<c:url value="/onl/admin/rule/layoutExcelMan.file" />');
//Add iframe to body
iframe.appendTo('body');
iframe.load(function(e)
{
var doc = getDoc(iframe[0]);
var docRoot = doc.body ? doc.body : doc.documentElement;
var data = docRoot.innerHTML;
var k = JSON.parse(data);
$("#grid")[0].addJSONData(k);
$("input[name=file]").val("");
//data is returned from server.
if (typeof callback === 'function') {
//successcallback(data);
}
});
}
}
$(document).ready(function() {
var url = '<c:url value="/onl/admin/rule/layoutExcelMan.json" />';
init(url, openApiExcelImport);
var gridPostData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로
$('#grid').jqGrid({
datatype:"json",
//mtype: 'POST',
//url: '<c:url value="/common/acl/user/userMan.json" />',
postData : gridPostData,
colNames:[
'<%=localeMessage.getString("layoutExcelMan.sheetName")%>',
'<%=localeMessage.getString("layoutExcelMan.layoutCd")%>',
'<%=localeMessage.getString("layoutExcelMan.LineCnt")%>',
'<%=localeMessage.getString("layoutExcelMan.processStus")%>',
'<%=localeMessage.getString("layoutExcelMan.resultMsg")%>'
],
colModel:[
{ name : 'SHEETNAME' , align:'left' ,sortable:false },
{ name : 'LAYOUTNAME' , align:'left' },
{ name : 'LAYOUTITEM' , align:'left' },
{ name : 'RESULT' , align:'left' },
{ name : 'MESSAGE' , align:'left' }
],
jsonReader: {
repeatitems:false
},
//pager : $('#pager'),
//rowNum : '${rmsDefaultRowNum}',
autoheight: true,
height: 300,
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)
}
},
ondblClickRow: function(rowId) {
},
onSelectRow: function(rowId) {
var data = $(this).getRowData(rowId);
$("#ajaxForm input[type!=radio],#ajaxForm select,#ajaxForm textarea").each(function(){
var name = $(this).attr("name");
var tag = $(this).prop("tagName").toLowerCase();
$(tag+"[name="+name+"]").val(data[name.toUpperCase()]);
});
},loadError: function (jqXHR, textStatus, errorThrown) {
if(jqXHR.status == 401) {
alert('HTTP status code: ' + jqXHR.status + '\n' +
'에러: 세션이 종료되었습니다. ');
parent.location.href='<%=request.getContextPath()%>/';
}
}
});
resizeJqGridWidth('grid','content_middle','1000');
$("#multiform").on('submit',fileupload);
$('#btn_upload').click(function(){
$("#grid").jqGrid('clearGridData');
if(window.FormData !== undefined) {
$("input[name=file]").click();
}else{
if ($("input[name=file]").val()==""){
return;
}
$("#multiform").submit();
}
});
if(window.FormData !== undefined) {
$("input[name=file]").change(function(ev) {
var filename = $(this).val().split('\\').pop();
if (filename == ""){
return;
}else{
$("#multiform").submit();
}
});
}
if(window.FormData !== undefined) {
$("input[name=file]").hide();
}else{
$("input[name=file]").show();
}
});
//OPENAPI 용 Excel Import
function openApiExcelImport() {
var names = '${ExcelNames}';
if (names == ''|| names.length == 0) {
return;
}
$('#sub4_4_5_2').prop('checked', true); // 중복 시 저장함
$('select[name=eaisevrDstcd]').find('option:last').prop('selected', true);
var params = { 'cmd': 'TRANSACTION_EXCEL_IMPORT', 'names': names };
jQuery.each($('#multiform').serializeArray(), function(i, o) {
if (o.name == 'cmd') {
return true;
}
params[o.name] = o.value;
});
$.ajax({
type: "POST",
dataType:"json",
url: '<c:url value="/onl/admin/rule/layoutExcelMan.json"/>',
data: params,
success: function(json){
$("#grid").jqGrid('clearGridData');
var rows = $("#grid")[0].rows;
var index = Number($(rows[rows.length-1]).attr("id"));
if (isNaN(index)) index=0;
for(var i=0; i<json.dataList.length; i++){
var rowid = index + 1 + i;
$("#grid").jqGrid('addRow', {
rowID : rowid,
initdata : json.dataList[i],
position :"last", //first, last
useDefValues : false,
useFormatter : false,
addRowParams : {extraparam:{}}
});
}
$("#"+$('#grid').jqGrid('getGridParam','selrow')).focus();
},
error:function(xhr,status,error){
if (xhr.responseText != null) {
try {
alert(JSON.parse(xhr.responseText).errorMsg);
} catch (e) {
alert(error);
}
}
}
});
}
</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">
<form id="multiform" method="POST" enctype="multipart/form-data" action="<c:url value="/onl/admin/rule/layoutExcelMan.file"/>">
<div class="search_wrap">
<div style="display:inline-block;">
<select name="eaisevrDstcd" style="margin-right: 10px; padding: 3px; margin-top: 3px;display:none;"></select>
<input type="radio" name="saveType" value="0" checked="checked" id="sub4_4_5_1">
<label for="sub4_4_5_1" style="vertical-align:middle;"><%=localeMessage.getString("layoutExcelMan.label1")%></label>
<input type="radio" name="saveType" value="1" id="sub4_4_5_2" />
<label for="sub4_4_5_2" style="vertical-align:middle;"><%=localeMessage.getString("layoutExcelMan.label2")%></label>
<input type="file" name="file" style="display:inline-block"/>
<input type="text" name="cmd" style="display:none" value="UPLOAD"/>
</div>
<button type="button" class="cssbtn" id="btn_upload" level="W" ><i class="material-icons">upload</i> <%= localeMessage.getString("button.upload") %></button>
<%-- <img src="<c:url value="/img/btn_upload.png"/>" alt="" id="btn_upload" level="W" /> --%>
</div>
</form>
<div class="title"><%=localeMessage.getString("layoutExcelMan.title")%></div>
<table id="grid" ></table>
<div id="pager"></div>
<form id="ajaxForm">
<table class="table_row" cellspacing="0" style="margin-top:15px;">
<tr>
<th style="width:20%;"><%=localeMessage.getString("layoutExcelMan.layoutCd")%></th>
<td style="width:80%;"><input type="text" name="LAYOUTNAME"/></td>
</tr>
<tr>
<th><%=localeMessage.getString("layoutExcelMan.processStus")%></th>
<td ><input type="text" name="RESULT" /></td>
</tr>
<tr height="50px">
<th><%=localeMessage.getString("layoutExcelMan.resultMsg")%></th>
<td><textarea name="MESSAGE" style="width:100%; height:100%;"></textarea></td>
</tr>
</table>
</form>
</div><!-- end content_middle -->
</div><!-- end right_box -->
<div id="loadingModal" class="loadingModal">
<div class="spinner"></div>
</div>
</body>
</html>