Files
wace_plm/WebContent/WEB-INF/view/main/menu.jsp
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- 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
2025-08-29 15:46:08 +09:00

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&amp;CLMD=user&amp;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&amp;CLMD=user&amp;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>