- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
309 lines
12 KiB
Plaintext
309 lines
12 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file= "/init.jsp" %>
|
|
<%
|
|
ArrayList userMenuList = new ArrayList();
|
|
userMenuList = (ArrayList)request.getAttribute("userMenuList");
|
|
%>
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>PLM</title>
|
|
|
|
<style>
|
|
/*
|
|
.menus_off{
|
|
color:#fff; padding: 5px 10px; font-size:11px; background-color:#F29661; border-radius:3px;
|
|
}
|
|
.menus_on{
|
|
color:#fff; padding: 5px 10px; font-size:11px; background-color:#B3A7A7; border-radius:3px;
|
|
}
|
|
*/
|
|
/* */
|
|
.menus_off{
|
|
/*
|
|
color:#000; //black
|
|
*/
|
|
color:#373740; /* dark gray로 변경 */
|
|
font-size:13px;
|
|
}
|
|
.menus_on{
|
|
color:#B3A7A7;
|
|
font-size:13.1px;
|
|
}
|
|
.smenu{
|
|
font-weight:bold;
|
|
}
|
|
</style>
|
|
|
|
<script type="text/javascript">
|
|
$(function(){
|
|
$(document).ready(function () {
|
|
|
|
//메뉴 슬라이드토글
|
|
$("[objType=menuObj]").on('click', function(){
|
|
var url = $(this).attr("url");
|
|
var menuId = $(this).attr("id");
|
|
var menuObjId = $(this).attr("menuObjId");
|
|
if("" != url){
|
|
url = url +"?menuObjId="+menuObjId;
|
|
$(window.parent.frames['contents_page'].document.location).attr("href",url);
|
|
}else{
|
|
$(".main_menu").click(function(){
|
|
var menuKey = $(this).attr("menuObjid");
|
|
$(".menu2").css({display:"none"});
|
|
$("[parentObjid="+menuKey+"]").css({display:"block"});
|
|
});
|
|
}
|
|
});
|
|
|
|
$(".menu2").hide();
|
|
//$(".menu2").show();
|
|
|
|
$('.main_menu').on('click', function(){
|
|
var menuObjId = $(this).attr("menuObjId");
|
|
$(".menu2").not($("[parentObjid="+menuObjId+"]")).slideUp();
|
|
$("[parentObjid="+menuObjId+"]").slideToggle();
|
|
|
|
//$(".menu2").css({display:"none"});
|
|
//$("[parentObjid="+menuObjId+"]").css({display:"block"});
|
|
});
|
|
|
|
//선택된 메뉴에 다른 스타일을 준다
|
|
$("#menu>.menu2>a").click(function(){
|
|
$("#menu>.menu2>a").css({backgroundColor:"rgba( 255, 255, 255, 0 )" , color : "#000"});
|
|
$(this).css({color : "#1159bc"});
|
|
});
|
|
|
|
$(".smenu").click(function(){
|
|
$(".menus_on").removeClass('menus_on').addClass('menus_off'); //이전 클릭한 메뉴 원복
|
|
$(this).removeClass('menus_off');
|
|
$(this).addClass('menus_on');
|
|
|
|
//var firstLink = $('#menu a').first();
|
|
fnm_changeContentsLocation($(this).attr("url"), $(this).attr("menuObjId"), this);
|
|
});
|
|
});
|
|
});
|
|
|
|
function fn_alert(){
|
|
alert("menu.jsp");
|
|
}
|
|
function fn_initMenuArea(){
|
|
$("#menu").empty();
|
|
}
|
|
|
|
function fnm_changeContentsLocation(url, menuObjId, obj){
|
|
|
|
if("" != url){
|
|
|
|
//$(".on").removeClass('on'); //이전 클릭한 메뉴 원복
|
|
//obj.className = "on";
|
|
//obj.classList.add("on");
|
|
//$(".menus_on").removeClass('menus_on').addClass('menus_off'); //이전 클릭한 메뉴 원복
|
|
//$(this).removeClass('menus_off');
|
|
//$(this).addClass('menus_on');
|
|
|
|
var qPositionIdx = url.indexOf('?');
|
|
if(qPositionIdx > -1){
|
|
url = url +"&menuObjId="+menuObjId;
|
|
}else{
|
|
url = url +"?menuObjId="+menuObjId;
|
|
}
|
|
$(window.parent.frames['contents_page'].document.location).attr("href",url);
|
|
}else{
|
|
//$(".menu2").css({display:"none"});
|
|
//$("[parentObjid="+menuObjId+"]").css({display:"block"});
|
|
}
|
|
}
|
|
|
|
function add_menu(objid, subMenuObjid, onlyViewMenu){
|
|
//Swal.fire("add_menu : " + objid + ":" + subMenuObjid + ":" + onlyViewMenu);
|
|
|
|
var menu ="";
|
|
if(fnc_isNotEmpty(objid)){
|
|
$.ajax({
|
|
url:"/main/getmenu.do",
|
|
type:"POST",
|
|
data:{"MENUOBJID":objid},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(data.RESULT.length>0){
|
|
for(var i=0;i<data.RESULT.length;i++){
|
|
//menu +="<div class='main_menu' menuObjId="+data.RESULT[i].OBJID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\")' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
|
/*
|
|
if((fnc_isEmpty(subMenuObjid) && i==0) || !fnc_isEmpty(subMenuObjid) && subMenuObjid == data.RESULT[i].OBJID){
|
|
menu +="<div class='main_menu' menuObjId="+data.RESULT[i].OBJID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\", this)' class='smenu menus_on' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
|
if(!onlyViewMenu) fnm_changeContentsLocation(data.RESULT[i].MENU_URL, data.RESULT[i].OBJID);
|
|
}else{
|
|
*/
|
|
var lev = data.RESULT[i].LEVEL;
|
|
var menuClass = "main_menu";
|
|
var menuUrl = fnc_checkNull(data.RESULT[i].MENU_URL);
|
|
|
|
//console.log(lev);
|
|
if(fnc_isNotEmpty(lev) && Number(lev) < 2){
|
|
menuClass = "main_menu";
|
|
menu +="<div class='"+menuClass+"' menuObjId="+data.RESULT[i].OBJID+" parentObjid="+data.RESULT[i].PARENT_OBJ_ID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\", this)' class='smenu menus_off' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
|
}else{
|
|
menuClass = "menu2";
|
|
menu +="<div class='"+menuClass+"' menuObjId="+data.RESULT[i].OBJID+" parentObjid="+data.RESULT[i].PARENT_OBJ_ID+"><span><a href='javascript:fnm_changeContentsLocation(\""+data.RESULT[i].MENU_URL+"\",\""+data.RESULT[i].OBJID+"\", this)' class='smenu menus_off' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
|
}
|
|
//menu +="<div class='main_menu' menuObjId="+data.RESULT[i].OBJID+"><span><a href='' class='smenu menus_off' url='"+data.RESULT[i].MENU_URL+"' objType='menuObj' menuObjId='"+data.RESULT[i].OBJID+"'>"+data.RESULT[i].MENU_NAME_KOR+"</a></span></div>";
|
|
//}
|
|
}
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
$('#menu').addClass('clickable');
|
|
$("#menu").append(menu);
|
|
|
|
//var firstLink = $('#menu a').first();
|
|
//fnm_changeContentsLocation(firstLink.attr("url"));
|
|
|
|
$(".main_menu").click(function(){
|
|
|
|
var smenu = $(this).find(".smenu");
|
|
var url = $(smenu).attr("url");
|
|
var menuObjId = $(smenu).attr("menuObjId");
|
|
|
|
if($(smenu).hasClass('menus_on')){
|
|
//return;
|
|
}else{
|
|
$(".menu2").not($("[parentObjid="+menuObjId+"]")).slideUp();
|
|
$("[parentObjid="+menuObjId+"]").slideToggle();
|
|
}
|
|
|
|
$(".menus_on").removeClass('menus_on').addClass('menus_off'); //이전 클릭한 메뉴 원복
|
|
$(smenu).removeClass('menus_off');
|
|
$(smenu).addClass('menus_on');
|
|
|
|
//var firstLink = $('#menu a').first();
|
|
if(fnc_isNotEmpty(url)){
|
|
//alert('aa');
|
|
fnm_changeContentsLocation(url, menuObjId, this);
|
|
|
|
if(url.toUpperCase().indexOf('/DASHBOARD.DO') > -1){ //대시보드 전체화면
|
|
parent.frames["fToggle"].fntg_changeSizeS();
|
|
}else{
|
|
parent.frames["fToggle"].fntg_changeSizeM();
|
|
}
|
|
}else{
|
|
//alert('bb');
|
|
parent.frames["fToggle"].fntg_changeSizeM();
|
|
var menu2 = $("[parentObjid="+menuObjId+"]")[0];
|
|
smenu = $(menu2).find(".smenu");
|
|
$(menu2).trigger("click");
|
|
url = $(smenu).attr("url");
|
|
menuObjId = $(smenu).attr("menuObjId");
|
|
fnm_changeContentsLocation(url, menuObjId, menu2);
|
|
}
|
|
});
|
|
|
|
//선택된 메뉴에 다른 스타일을 준다
|
|
$("#menu>.menu2").click(function(){
|
|
$("#menu>.menu2>span>a").css({backgroundColor:"rgba( 255, 255, 255, 0 )" , color : "#000"});
|
|
//$(this).find("span>a").css({backgroundColor:"rgba( 255, 255, 255, 0 )" , color : "#000"});
|
|
//$(this).find("span>a").css({color : "#1159bc"}); //파랑
|
|
$(this).find("span>a").css({color : "#B3A7AF"}); //회색
|
|
});
|
|
|
|
if(!onlyViewMenu){
|
|
if(fnc_isEmpty(subMenuObjid)){
|
|
$('#menu a').first().trigger("click");
|
|
}else{
|
|
$(".smenu").each(function(){
|
|
if(!fnc_isEmpty(subMenuObjid)){
|
|
var menuObjId = $(this).attr("menuObjId");
|
|
if(menuObjId == subMenuObjid){
|
|
//fnm_changeContentsLocation($(this).attr("url"), $(this).attr("menuObjId"), this);
|
|
$(this).trigger("click");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}else{
|
|
sel_menu(objid, subMenuObjid, onlyViewMenu);
|
|
}
|
|
}
|
|
|
|
function sel_menu(objid, subMenuObjid, onlyViewMenu){
|
|
|
|
//Swal.fire("sel_menu - " + objid + ":" + subMenuObjid + ":" + onlyViewMenu);
|
|
|
|
$(".menus_on").removeClass('menus_on').addClass('menus_off'); //이전 클릭한 메뉴 원복
|
|
|
|
if(!onlyViewMenu){
|
|
if(!fnc_isEmpty(subMenuObjid)){
|
|
$(".smenu").each(function(){
|
|
var menuObjId = $(this).attr("menuObjId");
|
|
if(menuObjId == subMenuObjid){
|
|
$(this).addClass('menus_on');
|
|
//fnm_changeContentsLocation($(this).attr("url"), $(this).attr("menuObjId"), this);
|
|
//$(this).trigger("click");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body id="menuback_w" style="height:100%;overflow-y: hidden;">
|
|
<form name="menuForm" action="" method="post">
|
|
<!--
|
|
<div style="background:#f5f5f5;color:#000;font-size:11px;text-align:center;padding:5px;line-height:15px">Integrated Information<br/> Management System </div>
|
|
-->
|
|
<div style="height:1400px;overflow: hidden;">
|
|
<!--
|
|
<section id="comm_container">
|
|
<aside class="favoritCont" style="height:100%">
|
|
<div class="faovriteListCont mScrollV mCustomScrollbar _mCS_2 mCS_no_scrollbar"><div id="mCSB_2" class="mCustomScrollBox mCS-light mCSB_vertical mCSB_inside" style="max-height: none;" tabindex="0"><div id="mCSB_2_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position:relative; top:0; left:0;" dir="ltr"><div id="mCSB_2" class="mCustomScrollBox mCS-light mCSB_vertical mCSB_inside" style="max-height: none;" tabindex="0"><div id="mCSB_2_container" class="mCSB_container mCS_y_hidden mCS_no_scrollbar_y" style="position:relative; top:0; left:0;" dir="ltr">
|
|
<ul id="quickContainer" class="favoriteList"></ul>
|
|
</div><div id="mCSB_2_scrollbar_vertical" class="mCSB_scrollTools mCSB_2_scrollbar mCS-light mCSB_scrollTools_vertical" style="display: none;"><a href="https://www.e-iris.com/mail/layout/mail_Mail.do?CLSYS=mail&CLMD=user&CLBIZ=Mail#" class="mCSB_buttonUp" oncontextmenu="return false;"></a><div class="mCSB_draggerContainer"><div id="mCSB_2_dragger_vertical" class="mCSB_dragger" style="position: absolute; min-height: 0px; height: 0px; top: 0px;" oncontextmenu="return false;"><div class="mCSB_dragger_bar" style="line-height: 0px;"></div></div><div class="mCSB_draggerRail"></div></div><a href="https://www.e-iris.com/mail/layout/mail_Mail.do?CLSYS=mail&CLMD=user&CLBIZ=Mail#" class="mCSB_buttonDown" oncontextmenu="return false;"></a></div></div></div><div id="mCSB_2_scrollbar_vertical" class="mCSB_scrollTools mCSB_2_scrollbar mCS-light mCSB_scrollTools_vertical"><div class="mCSB_draggerContainer"><div id="mCSB_2_dragger_vertical" class="mCSB_dragger" style="position:absolute;" oncontextmenu="return false;"><div class="mCSB_dragger_bar"></div></div><div class="mCSB_draggerRail"></div></div></div></div></div>
|
|
<ul id="quickSetContainer" class="favorite_set clear"><li> <a class="btnFavAdd">즐겨찾기 추가</a></li></ul>
|
|
</aside>
|
|
</section>
|
|
-->
|
|
|
|
<div style="float:left;width:20px;height:100%;background:#606060;">
|
|
</div>
|
|
|
|
<div id="menu" style="float:;width:100%;margin-left:5px">
|
|
<%-- <%
|
|
for(int i=0;i<userMenuList.size();i++){
|
|
HashMap menuMap = (HashMap)userMenuList.get(i);
|
|
String menuDesc = CommonUtils.checkNull(menuMap.get("menu_desc"));
|
|
String menuKorName = CommonUtils.checkNull(menuMap.get("menu_name_kor"));
|
|
String menuObjid = CommonUtils.checkNull(menuMap.get("objid"));
|
|
String parentObjid = CommonUtils.checkNull(menuMap.get("parent_obj_id"));
|
|
String menuUrl = CommonUtils.checkNull(menuMap.get("menu_url"));
|
|
String lev = CommonUtils.checkNull(menuMap.get("lev"));
|
|
/* String menuSeq = CommonUtils.checkNull(menuMap.get("SEQ")); */
|
|
/* String menuMaxSeq = CommonUtils.checkNull(menuMap.get("MAX_SEQ"));
|
|
String menuMinSeq = CommonUtils.checkNull(menuMap.get("MIN_SEQ")); */
|
|
|
|
if("2".equals(lev)){
|
|
%>
|
|
<div class="main_menu" menuObjId="<%=menuObjid%>"><span><a href="#" url="<%=menuUrl%>" objType="menuObj" menuObjId="<%=menuObjid%>"><%=menuKorName%></a></span></div>
|
|
<%
|
|
}else if("3".equals(lev)){
|
|
%>
|
|
<div class="menu2" parentObjid="<%=parentObjid%>" menuType="12"><a href="#" url="<%=menuUrl%>" objType="menuObj" menuObjId="<%=menuObjid%>"><%=menuKorName%></a></div>
|
|
<%
|
|
}
|
|
}
|
|
%> --%>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html>
|