Files
vexplor/WebContent/init_jqGrid.jsp
2025-08-21 09:41:46 +09:00

262 lines
10 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.pms.common.utils.*"%>
<%@page import="com.pms.common.bean.PersonBean" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
boolean isLoggedIn = SessionManager.hasSession(session);
boolean isAdmin = false;
String connectUserId = "";
String connectUserDeptCode = "";
String connectUserName = "";
String connectUserDeptName = "";
if(!isLoggedIn){
out.write("<script>Swal.fire('session was destroyed.');</script>");
out.write("<script>top.location.href='/index.do';</script>");
}else{
PersonBean initPerson = null;
initPerson = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
connectUserId = CommonUtils.checkNull(initPerson.getUserId());
connectUserDeptCode = CommonUtils.checkNull(initPerson.getDeptCode());
connectUserName = CommonUtils.checkNull(initPerson.getUserName());
connectUserDeptName = CommonUtils.checkNull(initPerson.getDeptName());
if("plm_admin".equals(connectUserId)){
isAdmin = true;
}
}
pageContext.setAttribute("newLineChar", "\n");
%>
<c:set var="countPerPage" value="<%=Constants.COUNT_PER_PAGE%>" />
<c:set var="connectUserId" value="<%=connectUserId %>" />
<c:set var="connectUserDeptCode" value="<%=connectUserDeptCode %>" />
<c:set var="connectUserName" value="<%=connectUserName %>" />
<c:set var="connectUserDeptName" value="<%=connectUserDeptName %>" />
<c:set var="isAdmin" value="<%=isAdmin%>" />
<c:set var="menuObjId" value="${empty param.menuObjId?'':param.menuObjId}" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=11">
<title><%=Constants.SYSTEM_NAME%></title>
<!-- //basic -->
<link rel="stylesheet" href="/css/basic.css">
<link rel="stylesheet" href="/css/select2.css">
<script src="/js/jquery-1.11.3.min.js"></script>
<!-- <script src="/js/jquery-2.1.4.min.js"></script> -->
<script src="/js/html5shiv.js"></script>
<!-- //Gantt Chart -->
<link rel="stylesheet" href="/js/gantt/jsgantt.css" type="text/css">
<!-- <script type="text/javascript" src="/js/gantt/jsgantt.js"></script> -->
<!-- //highchart -->
<!-- <script type="text/javascript" src="/js/highcharts-custom.js" ></script> -->
<script type="text/javascript" src="/js/highcharts.js" ></script>
<script type="text/javascript" src="/js/data.js" ></script>
<script type="text/javascript" src="/js/drilldown.js" ></script>
<script type="text/javascript" src="/js/bullet.js" ></script>
<!-- //datepicker -->
<link rel="stylesheet" href="/css/jquery-ui-1.10.2.custom.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.min.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.structure.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.structure.min.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.theme.css" type="text/css">
<link rel="stylesheet" href="/css/jquery-ui.theme.min.css" type="text/css">
<script type="text/javascript" src="/js/ui/jquery-ui.js" ></script>
<script type="text/javascript" src="/js/ui/jquery.ui.core.js" ></script>
<script type="text/javascript" src="/js/ui/jquery.ui.datepicker.js" ></script>
<script type="text/javascript" src="/js/ui/jquery.ui.datepicker-ko.js" ></script>
<script type="text/javascript" src="/js/ui/jquery.ui.widget.js" ></script>
<script type="text/javascript" src="/js/ui/jquery.ui.button.js" ></script>
<script type="text/javascript" src="/js/common.js" ></script>
<!-- //month picker -->
<script type="text/javascript" src="/js/jquery.mtz.monthpicker.js" ></script>
<!-- //ppt viewer -->
<script type="text/javascript" src="/js/jquery.gdocsviewer.js" ></script>
<script type="text/javascript" src="/js/select2.js" ></script>
<script type="text/javascript" src="/js/sweetalert2.js" ></script>
<!-- jqGrind -->
<link rel="stylesheet" type="text/css" href="/js/jqGrid-4.7.1/css/jquery-ui-custom.css" />
<link rel="stylesheet" type="text/css" href="/js/jqGrid-4.7.1/css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" href="/js/jqGrid-4.7.1/css/ui.multiselect.css" />
<!-- <link rel="stylesheet" type="text/css" href="/js/jqGrid-4.7.1/css/jqGrid.overrides.css" /> -->
<!-- <script type="text/javascript" src="/js/jquery-1.11.3.min.js"></script> -->
<script type="text/javascript" src="/js/jqGrid-4.7.1/i18n/grid.locale-kr.js"></script>
<script type="text/javascript" src="/js/jqGrid-4.7.1/jquery.jqGrid.min.js"></script>
<!-- //excel Export -->
<script type="text/javascript" src="/js/jquery.table2excel.js" ></script>
<style type="text/css"><%-- jqGrid css조정 --%>
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default{
font-weight: bold;
color: #2b2b2b;
text-align: right;
font-weight: 400;
/* height: 25px; */
font-size: 13px;
}
.ui-jqgrid tr.jqgrow td{
font-size: 13px;
font-weight: 400;
}
</style>
<script type="text/javascript">
$(function(){
var menuObjId = "${param.menuObjId}";
/* if(fnc_checkNull(menuObjId) != ""){
$.ajax({
url:"/common/getMenuPath.do",
type:"POST",
data:{"menuObjId":menuObjId},
dataType:"json",
async:true,
success:function(data){
var path = data.path;
$(".pdm_menu_name").children().children("span").text(path);
},
error: function(jqxhr, status, error){
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText);
}
});
}
*/
$(".plm_menu_name").attr("class", "plm_menu_name_ieg");
$(".plmMainImg").attr("class", "plmMainImg_ieg");
fnc_pageAuthController(menuObjId);
});
/**
* jqgrid기본기능이 동작안해서 함수 새로 만듬 (적용시 Grid 다른 옵션 동작안되는것 있음 ex:sortable)
* 옵션사용은 아래를 참고할것
* http://www.trirand.com/jqgridwiki/doku.php?id=wiki:groupingheadar
*/
function fn_jqGrid_setGroupHeaders(grid, optJson){
var gid = grid.attr("id");
var thr = $("#"+gid+"_"+optJson.groupHeaders[0].startColumnName).parents("tr:first");
var thrC= thr.clone();
var grid_wrap_div = $("#gbox_"+gid);
$(thrC).attr("id", "thr_clone");
$(thr).parents("thead:first").append(thrC);
$.each(optJson.groupHeaders, function(j,h){
$('th', thr).each(function(i, o){
if($(o).attr("id") == gid+"_"+h.startColumnName){
h.startColumnNum = i;
$(o).attr("colspan", h.numberOfColumns);
$(o).addClass("newHeader");
var _totalWidth = 0;
$.each(grid.getGridParam("colModel"), function(k,c){
if(k >= h.startColumnNum && k < (h.startColumnNum+h.numberOfColumns)){
_totalWidth += c.width +4 ; //2:border좌우값
}
});
$(o).css("width", _totalWidth);
$(o).removeAttr("id");
$(o).html(h.titleText);
}else{
if(h.startColumnNum > -1){
if(i < (h.startColumnNum + h.numberOfColumns)){
$(o).remove();
}
}
}
});
});
//useColSpanStyle 옵션(그룹헤더제외 컬럼 rowspan처리여부) 관련 처리
$("#thr_clone>th",grid_wrap_div).each(function(i,o){
var dualTh = $("th[id="+$(o).attr("id")+"]");
if(dualTh.length > 1){
if(optJson.useColSpanStyle || $(o).attr("id") == gid+"_rn" || $(o).attr("id") == gid+"_cb"){
dualTh.eq(0).attr("rowspan", 2);
dualTh.eq(dualTh.length-1).remove();
}else{
console.log(dualTh.attr("id"));
dualTh.eq(0).html("");
}
}
});
//style 수정
$(thr).parents("div.ui-jqgrid-hdiv").css("height",50);
$("th.newHeader", grid_wrap_div).css("border-bottom","1px solid #c5dbec");
//$(".ui-jqgrid-hdiv", grid_wrap_div).width( $(".ui-jqgrid-hdiv", grid_wrap_div).width() ); //우측 스크롤관련 여백 제거
$(".ui-jqgrid-sortable, .ui-jqgrid-resize", grid_wrap_div).css({cursor: "auto"}); //이벤트커서 제거
$("th:visible",$('#thr_clone', grid_wrap_div))
.attr("style", "background: #f0f3f4; border-left: 1px solid #ccc; font-size: 12px; ") //색상수정
.removeClass('ui-state-default').off("mouseover"); //기본색상클래스 제거, 이벤트 제거
}
function fn_jqGrid_init(grid, isDisplyEmpty){
var gid = grid.attr("id");
var grid_wrap_div = $("#gbox_"+gid);
//$("table.ui-jqgrid-htable thead", grid_wrap_div).prepend( $("tr.jqgfirstrow", grid_wrap_div).clone().removeAttr("role") ); //열너비tr 헤더에 입력
//윈도우 화면크기에 따른 자동 크기 조절
//$(window).on('resize.jqGrid', function () {
// grid.jqGrid( 'setGridWidth', grid_wrap_div.parents("div:first").width() );
//
// var hw = $("table.ui-jqgrid-htable", grid_wrap_div).width() ; //리사이즈된 헤더 넓이
// if( grid_wrap_div.width() < hw ){
// grid.setGridWidth( hw );
// }
//});
if( $("#thr_clone", grid_wrap_div).length > 0 ){ //fn_jqGrid_setGroupHeaders 사용시에만 간격조정(컬럼사이즈 조절불가시에만적용)
var cg = "<colgroup>";
$(".jqgfirstrow >td", grid_wrap_div).each(function(i,o){
var _w = $(this).width();
if( $(this).css('display') == 'none' ){ return true; }
if( i == 0 ){ _w += 2; }
cg += "<col width='" +_w+ "px' />" ;
});
cg += "</colgroup>";
$(cg).insertBefore(".ui-jqgrid-htable > thead", grid_wrap_div)
}
//조회결과 없음 표시
if(isDisplyEmpty && grid.getGridParam("reccount") == 0){
grid.addRowData(1, {});
$("tr[role=row]#1", grid_wrap_div).html('<td class="ui-widget-content jqgrow" style="text-align:center;" colspan="'+grid.getGridParam("colModel").length+'">조회된 데이터가 없습니다.</td>');
}
//setTimeout("$(window).scrollTop(0);", 50);
}
//선택된 id 목록
function fn_jqGrid_selarrrow(grid){
var gid = grid.attr("id");
var return_arr = [];
$("input:checkbox.cbox", grid).filter(":checked").each(function(i,o){
return_arr.push( $(o).parents("tr:first").attr("id") );
});
return return_arr;
}
</script>
<input type="hidden" name="menuPath" id="menuPath" value="" />
<div class="loading-container-wrap">
<div class="loading-container">
<div class="loading"></div>
<div id="loading-text">loading</div>
</div>
<p id="_loadingMessage"></p>
</div>