2025-08-29 15:46:08 +09:00
|
|
|
<%@ 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;
|
2025-10-15 14:43:56 +09:00
|
|
|
transition: color 0.3s ease;
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
.menus_on{
|
|
|
|
|
color:#B3A7A7;
|
|
|
|
|
font-size:13.1px;
|
2025-10-15 14:43:56 +09:00
|
|
|
transition: color 0.3s ease;
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
.smenu{
|
2025-10-15 14:43:56 +09:00
|
|
|
font-weight:bold;
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 메뉴 hover 효과 */
|
|
|
|
|
.main_menu:hover .smenu,
|
|
|
|
|
.menu2:hover .smenu {
|
|
|
|
|
color: #1159bc !important;
|
|
|
|
|
background-color: rgba(17, 89, 188, 0.1);
|
|
|
|
|
padding: 2px 5px;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 메뉴 컨테이너 스타일 */
|
|
|
|
|
#menu {
|
|
|
|
|
transition: opacity 0.3s ease;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 메뉴 아이템 애니메이션 */
|
|
|
|
|
.main_menu, .menu2 {
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.main_menu:hover, .menu2:hover {
|
|
|
|
|
background-color: rgba(245, 245, 245, 0.8);
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 메뉴 영역 전체 스타일 */
|
|
|
|
|
body {
|
|
|
|
|
transition: all 0.3s ease;
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
2025-10-17 16:26:45 +09:00
|
|
|
|
|
|
|
|
/* 고정 버튼 스타일 */
|
|
|
|
|
#menu-lock-btn {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 10px;
|
|
|
|
|
right: 10px;
|
|
|
|
|
width: 30px;
|
|
|
|
|
height: 30px;
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
border: 1px solid #ddd;
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
z-index: 10000;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#menu-lock-btn:hover {
|
|
|
|
|
background-color: #e8e8e8;
|
|
|
|
|
border-color: #1159bc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#menu-lock-btn.locked {
|
|
|
|
|
background-color: #1159bc;
|
|
|
|
|
border-color: #1159bc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#menu-lock-btn svg {
|
|
|
|
|
width: 18px;
|
|
|
|
|
height: 18px;
|
|
|
|
|
fill: #666;
|
|
|
|
|
transition: fill 0.3s ease;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#menu-lock-btn.locked svg {
|
|
|
|
|
fill: #fff;
|
|
|
|
|
}
|
2025-08-29 15:46:08 +09:00
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
2025-10-17 16:26:45 +09:00
|
|
|
// 메뉴 고정 상태 플래그
|
|
|
|
|
var isMenuLocked = false;
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
$(function(){
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
|
|
2025-10-17 16:26:45 +09:00
|
|
|
// 메뉴 고정 버튼 클릭 이벤트
|
|
|
|
|
$(document).on('click', '#menu-lock-btn', function() {
|
|
|
|
|
isMenuLocked = !isMenuLocked;
|
|
|
|
|
$(this).toggleClass('locked');
|
|
|
|
|
|
|
|
|
|
// 아이콘 전환
|
|
|
|
|
if(isMenuLocked) {
|
|
|
|
|
$(this).find('.lock-icon-unlocked').hide();
|
|
|
|
|
$(this).find('.lock-icon-locked').show();
|
|
|
|
|
console.log("메뉴 고정됨");
|
|
|
|
|
} else {
|
|
|
|
|
$(this).find('.lock-icon-unlocked').show();
|
|
|
|
|
$(this).find('.lock-icon-locked').hide();
|
|
|
|
|
console.log("메뉴 고정 해제됨");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
//메뉴 슬라이드토글
|
|
|
|
|
$("[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);
|
|
|
|
|
});
|
2025-10-15 14:43:56 +09:00
|
|
|
|
|
|
|
|
// 메뉴 영역에서 마우스가 벗어났을 때 자동 숨김 (애니메이션 적용)
|
|
|
|
|
var hideMenuTimer;
|
|
|
|
|
$(document).mouseleave(function(e) {
|
2025-10-17 16:26:45 +09:00
|
|
|
// 메뉴가 고정되어 있으면 자동 숨김 안 함
|
|
|
|
|
if(isMenuLocked) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
// 마우스가 메뉴 프레임을 벗어났을 때
|
|
|
|
|
clearTimeout(hideMenuTimer);
|
|
|
|
|
hideMenuTimer = setTimeout(function() {
|
|
|
|
|
try {
|
|
|
|
|
if(parent && parent.frames && parent.frames["toggle_page"]) {
|
|
|
|
|
var toggleFrame = parent.frames["toggle_page"];
|
|
|
|
|
if(toggleFrame.fntg_changeSizeWithAnimation) {
|
|
|
|
|
toggleFrame.fntg_changeSizeWithAnimation();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log("Toggle frame not accessible:", e);
|
|
|
|
|
}
|
2025-10-17 16:26:45 +09:00
|
|
|
}, 500); // 0.5초 후 자동 숨김
|
2025-10-15 14:43:56 +09:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 메뉴 영역에 마우스가 다시 들어왔을 때 타이머 취소
|
|
|
|
|
$(document).mouseenter(function() {
|
|
|
|
|
clearTimeout(hideMenuTimer);
|
|
|
|
|
});
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function fn_alert(){
|
|
|
|
|
alert("menu.jsp");
|
|
|
|
|
}
|
|
|
|
|
function fn_initMenuArea(){
|
|
|
|
|
$("#menu").empty();
|
2025-10-15 16:12:03 +09:00
|
|
|
$('#forced-menu').remove(); // 강제로 추가된 메뉴도 제거
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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)){
|
2025-10-15 16:12:03 +09:00
|
|
|
//console.log("objid가 비어있지 않음, AJAX 호출 시작");
|
2025-08-29 15:46:08 +09:00
|
|
|
$.ajax({
|
|
|
|
|
url:"/main/getmenu.do",
|
|
|
|
|
type:"POST",
|
|
|
|
|
data:{"MENUOBJID":objid},
|
|
|
|
|
dataType:"json",
|
|
|
|
|
async:false,
|
|
|
|
|
success:function(data){
|
2025-10-15 16:12:03 +09:00
|
|
|
//console.log("AJAX 응답 성공:", data);
|
2025-10-15 14:43:56 +09:00
|
|
|
if(data.RESULT && data.RESULT.length>0){
|
2025-10-15 16:12:03 +09:00
|
|
|
//console.log("메뉴 아이템 개수:", data.RESULT.length);
|
2025-08-29 15:46:08 +09:00
|
|
|
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;
|
2025-10-15 14:43:56 +09:00
|
|
|
var menuClass = "main_menu"; // 모든 메뉴를 main_menu로 생성
|
2025-08-29 15:46:08 +09:00
|
|
|
var menuUrl = fnc_checkNull(data.RESULT[i].MENU_URL);
|
2025-10-15 14:43:56 +09:00
|
|
|
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
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";
|
2025-10-15 14:43:56 +09:00
|
|
|
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>";
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
2025-10-15 14:43:56 +09:00
|
|
|
|
2025-10-15 16:12:03 +09:00
|
|
|
// console.log("메뉴 생성:", data.RESULT[i].MENU_NAME_KOR, "Level:", lev);
|
2025-08-29 15:46:08 +09:00
|
|
|
//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>";
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-10-15 16:12:03 +09:00
|
|
|
//console.log("생성된 메뉴 HTML 길이:", menu.length);
|
|
|
|
|
//console.log("생성된 메뉴 HTML:", menu.substring(0, 200) + "...");
|
2025-08-29 15:46:08 +09:00
|
|
|
},
|
|
|
|
|
error: function(jqxhr, status, error){
|
2025-10-15 14:43:56 +09:00
|
|
|
console.log("AJAX 오류:", error);
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
});
|
2025-10-15 14:43:56 +09:00
|
|
|
} else {
|
2025-10-15 16:12:03 +09:00
|
|
|
//console.log("objid가 비어있음, sel_menu 호출");
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
console.log("DOM 추가 전 - 메뉴 HTML 길이:", menu.length);
|
2025-10-15 16:12:03 +09:00
|
|
|
|
|
|
|
|
// 기존 메뉴 완전히 제거
|
|
|
|
|
$("#menu").empty();
|
|
|
|
|
$('#forced-menu').remove(); // 강제로 추가된 메뉴도 제거
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
$('#menu').addClass('clickable');
|
|
|
|
|
$("#menu").append(menu);
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
// 메뉴를 강제로 표시 (원래 위치에 맞게)
|
|
|
|
|
if(menu.length > 0) {
|
2025-10-15 16:12:03 +09:00
|
|
|
// 기존 강제 메뉴가 있다면 제거
|
|
|
|
|
$('#forced-menu').remove();
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
// 기존 메뉴 프레임의 위치 정보 가져오기
|
|
|
|
|
var menuFrame = window.frameElement;
|
|
|
|
|
var frameRect = menuFrame ? menuFrame.getBoundingClientRect() : {left: 0, top: 0};
|
|
|
|
|
|
|
|
|
|
// body에 메뉴 추가 (원래 디자인에 맞게)
|
|
|
|
|
$('body').append('<div id="forced-menu" style="position:absolute; top:10px; left:25px; background:white; padding:0; z-index:1000; width:170px; border:none;">' + menu + '</div>');
|
|
|
|
|
|
|
|
|
|
// 메뉴 아이템 스타일 적용 (원래 디자인)
|
|
|
|
|
$('#forced-menu .main_menu').css({
|
|
|
|
|
'display': 'block',
|
|
|
|
|
'padding': '0',
|
|
|
|
|
'margin': '0',
|
|
|
|
|
'cursor': 'pointer',
|
|
|
|
|
'border': 'none',
|
|
|
|
|
'background': 'transparent',
|
|
|
|
|
'width': '100%'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 메뉴 앞에 화살표 아이콘 추가
|
|
|
|
|
$('#forced-menu .main_menu').each(function() {
|
|
|
|
|
var $link = $(this).find('.smenu');
|
|
|
|
|
var linkText = $link.text();
|
|
|
|
|
$link.html('▶ ' + linkText);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 메뉴 링크 스타일 (원래 디자인)
|
|
|
|
|
$('#forced-menu .main_menu .smenu').css({
|
|
|
|
|
'display': 'block',
|
|
|
|
|
'padding': '8px 10px',
|
|
|
|
|
'color': '#373740',
|
|
|
|
|
'font-size': '13px',
|
|
|
|
|
'text-decoration': 'none',
|
|
|
|
|
'border-bottom': '1px solid #eee',
|
|
|
|
|
'transition': 'color 0.3s ease'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 메뉴 hover 효과 (원래 디자인)
|
|
|
|
|
$('#forced-menu .main_menu').hover(
|
|
|
|
|
function() {
|
|
|
|
|
$(this).find('.smenu').css({
|
|
|
|
|
'color': '#1159bc',
|
|
|
|
|
'background-color': 'rgba(17, 89, 188, 0.1)'
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
function() {
|
|
|
|
|
$(this).find('.smenu').css({
|
|
|
|
|
'color': '#373740',
|
|
|
|
|
'background-color': 'transparent'
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
console.log("강제 메뉴 표시 완료");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log("DOM 추가 완료");
|
|
|
|
|
|
|
|
|
|
// 메뉴 컨테이너도 보이도록 설정
|
|
|
|
|
$('#menu').css({
|
|
|
|
|
'display': 'block !important',
|
|
|
|
|
'visibility': 'visible !important',
|
|
|
|
|
'opacity': '1 !important',
|
|
|
|
|
'position': 'static !important',
|
|
|
|
|
'top': 'auto !important',
|
|
|
|
|
'left': 'auto !important',
|
|
|
|
|
'margin-top': '10px !important',
|
|
|
|
|
'height': 'auto !important',
|
|
|
|
|
'min-height': '200px !important',
|
|
|
|
|
'overflow': 'visible !important',
|
|
|
|
|
'z-index': '9999 !important'
|
|
|
|
|
});
|
|
|
|
|
console.log("메뉴 컨테이너 CSS 설정 완료");
|
|
|
|
|
|
|
|
|
|
// 메뉴가 그려진 후 main_menu는 보이게 하고, menu2는 숨김
|
|
|
|
|
$(".main_menu").show().css({
|
|
|
|
|
'display': 'block !important',
|
|
|
|
|
'visibility': 'visible !important',
|
|
|
|
|
'opacity': '1 !important',
|
|
|
|
|
'position': 'relative !important',
|
|
|
|
|
'margin': '2px 0 !important',
|
|
|
|
|
'padding': '5px !important',
|
|
|
|
|
'height': 'auto !important',
|
|
|
|
|
'width': '100% !important',
|
|
|
|
|
'cursor': 'pointer !important'
|
|
|
|
|
});
|
|
|
|
|
$(".menu2").hide();
|
|
|
|
|
|
|
|
|
|
console.log("메뉴 요소 개수 확인:");
|
|
|
|
|
console.log("- #menu 요소:", $('#menu').length);
|
|
|
|
|
console.log("- .main_menu 요소:", $('.main_menu').length);
|
|
|
|
|
console.log("- .menu2 요소:", $('.menu2').length);
|
|
|
|
|
console.log("메뉴 가시성 확인:");
|
|
|
|
|
console.log("- #menu visible:", $('#menu').is(':visible'));
|
|
|
|
|
console.log("- .main_menu visible:", $('.main_menu').is(':visible'));
|
|
|
|
|
console.log("메뉴 위치 정보:", $('#menu').offset());
|
|
|
|
|
console.log("메뉴 크기:", $('#menu').width(), "x", $('#menu').height());
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
//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){ //대시보드 전체화면
|
2025-10-15 14:43:56 +09:00
|
|
|
try {
|
|
|
|
|
if(parent && parent.frames && parent.frames["toggle_page"]) {
|
|
|
|
|
parent.frames["toggle_page"].fntg_changeSizeS();
|
|
|
|
|
}
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log("Toggle frame error:", e);
|
|
|
|
|
}
|
2025-08-29 15:46:08 +09:00
|
|
|
}else{
|
2025-10-15 14:43:56 +09:00
|
|
|
try {
|
|
|
|
|
if(parent && parent.frames && parent.frames["toggle_page"]) {
|
|
|
|
|
parent.frames["toggle_page"].fntg_changeSizeM();
|
|
|
|
|
}
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log("Toggle frame error:", e);
|
|
|
|
|
}
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
//alert('bb');
|
2025-10-15 14:43:56 +09:00
|
|
|
try {
|
|
|
|
|
if(parent && parent.frames && parent.frames["toggle_page"]) {
|
|
|
|
|
parent.frames["toggle_page"].fntg_changeSizeM();
|
|
|
|
|
}
|
|
|
|
|
} catch(e) {
|
|
|
|
|
console.log("Toggle frame error:", e);
|
|
|
|
|
}
|
2025-08-29 15:46:08 +09:00
|
|
|
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);
|
|
|
|
|
}
|
2025-10-15 14:43:56 +09:00
|
|
|
|
|
|
|
|
// 메뉴 그리기 완료 후 자동 숨김 처리 (애니메이션 적용)
|
2025-10-17 16:26:45 +09:00
|
|
|
// 메뉴가 고정되어 있지 않을 때만 자동 숨김
|
2025-10-15 14:43:56 +09:00
|
|
|
setTimeout(function() {
|
2025-10-17 16:26:45 +09:00
|
|
|
if(!isMenuLocked) {
|
|
|
|
|
try {
|
|
|
|
|
if(parent && parent.frames && parent.frames["toggle_page"]) {
|
|
|
|
|
var toggleFrame = parent.frames["toggle_page"];
|
|
|
|
|
if(toggleFrame.fntg_changeSizeWithAnimation) {
|
|
|
|
|
toggleFrame.fntg_changeSizeWithAnimation();
|
|
|
|
|
}
|
2025-10-15 14:43:56 +09:00
|
|
|
}
|
2025-10-17 16:26:45 +09:00
|
|
|
} catch(e) {
|
|
|
|
|
console.log("Toggle frame not accessible:", e);
|
2025-10-15 14:43:56 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, 300);
|
2025-08-29 15:46:08 +09:00
|
|
|
}
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
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");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
</script>
|
|
|
|
|
</head>
|
2025-10-17 16:26:45 +09:00
|
|
|
<body id="menuback_w" style="height:100%;overflow-y: hidden; position: relative;">
|
2025-08-29 15:46:08 +09:00
|
|
|
<form name="menuForm" action="" method="post">
|
2025-10-17 16:26:45 +09:00
|
|
|
<!-- 메뉴 고정 버튼 -->
|
|
|
|
|
<div id="menu-lock-btn" title="메뉴 고정/해제">
|
|
|
|
|
<svg viewBox="0 0 24 24" class="lock-icon-unlocked">
|
|
|
|
|
<path d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18Z"/>
|
|
|
|
|
</svg>
|
|
|
|
|
<svg viewBox="0 0 24 24" class="lock-icon-locked" style="display:none;">
|
|
|
|
|
<path d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"/>
|
|
|
|
|
</svg>
|
|
|
|
|
</div>
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
<!--
|
|
|
|
|
<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>
|
|
|
|
|
|
2025-10-15 14:43:56 +09:00
|
|
|
<div id="menu" style="float:left;width:100%;margin-left:5px">
|
|
|
|
|
|
2025-08-29 15:46:08 +09:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|