Files
wace_plm/WebContent/WEB-INF/view/main/header.jsp
2025-10-15 14:43:56 +09:00

498 lines
22 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.pms.common.bean.PersonBean"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String userId = CommonUtils.checkNull(person.getUserId());
String authName = CommonUtils.checkNull(person.getAuthName());
ArrayList userMenuList = new ArrayList();
userMenuList = (ArrayList)request.getAttribute("userMenuList");
%>
<!DOCTYPE html>
<html style="height: 100%; overflow: hidden; margin: 0; padding: 0;">
<head>
<meta charset="utf-8">
<title><%=Constants.SYSTEM_NAME %></title>
<style>
form {overflow-y:hidden; }
/*
.menu_off{
color:#fff; padding: 5px 10px; font-size:11px; background-color:#F29661; border-radius:3px;
}
.menu_on{
color:#fff; padding: 5px 10px; font-size:11px; background-color:#B3A7A7; border-radius:3px;
}
*/
.menu_off{
color:#fff !important; padding: 2px 3px; font-size:9px; background-color:#0011ff; border-radius:2px;
display: inline-block; min-width: 40px; text-align: center; margin: 0px;
transition: all 0.3s ease; text-decoration: none !important; border: none;
cursor: pointer;
}
.menu_on{
color:#fff !important; padding: 2px 3px; font-size:9px; background-color:#c4c4f4; border-radius:2px;
display: inline-block; min-width: 40px; text-align: center; margin: 0px;
transition: all 0.3s ease; text-decoration: none !important; border: none;
cursor: pointer;
}
.menu_off:hover {
background-color: #c4c4f4 !important;
text-decoration: none !important;
color: #fff !important;
}
</style>
<link rel="stylesheet" href="/css/basic.css">
<script src="/js/jquery-1.11.3.min.js"></script>
<script src="/js/html5shiv.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>
<script src="/js/jquery-2.1.4.min.js"></script>
<c:set var="connectUserId" value="<%=userId %>" />
<script>
let _intervalId = '';
$(function(){
//fn_goMyTask();
//setTimeout(() => fn_goMyTask(), 300);
//const intervalId = setInterval(() => fn_goMyTask(), 200);
//clearInterval(intervalId);
_intervalId = setInterval(() => fn_firstCallMenu(), 200);
$("#logo").click(function(){
//top.location.href = "/main.do";
fn_firstCallMenu();
});
$(".btnLogout").click(function(){
if(confirm("로그아웃 하시겠습니까?")){
top.location.href="/logout.do";
}
});
$(".btnDetail").click(function(){
var userId = $(this).attr("data-USER_ID");
fn_registDetailPopup(userId);
});
$(".menu").click(function(){
// 모든 메뉴를 off 스타일로 변경
$(".menu").css({
'background-color': '#0011ff',
'color': '#fff'
}).removeClass('menu_on').addClass('menu_off');
// 클릭된 메뉴를 on 스타일로 변경
$(this).css({
'background-color': '#c4c4f4',
'color': '#fff'
}).removeClass('menu_off').addClass('menu_on');
var menuObjid = $(this).attr("menuObjId");
// 안전하게 메뉴 처리
try {
if(parent.frames["contentsFS"] && parent.frames["contentsFS"].frames["menu_page"]) {
var menuFrame = parent.frames["contentsFS"].frames["menu_page"];
if(menuFrame.fn_initMenuArea && menuFrame.add_menu) {
menuFrame.fn_initMenuArea();
menuFrame.add_menu(menuObjid);
}
}
} catch(e) {
console.log("Menu frame not ready:", e);
}
});
// 메뉴 hover 효과
$(".menu").hover(
function() {
if (!$(this).hasClass('menu_on')) {
$(this).css('background-color', '#E08550');
}
},
function() {
if (!$(this).hasClass('menu_on')) {
$(this).css('background-color', '#F29661');
}
}
);
$(".btnApprovalList").click(function(){
fn_goMyTaskMyApproval();
});
//결재건수 세팅
fn_setApprovalCnt();
setInterval(fn_setApprovalCnt, 60000); //refresh
//setTimeout(() => fn_setApprovalCnt(), 10000);
$(".blink_none").children("span").children("img").attr({src:"/images/bell.png"});
$("#manualDownload").click(function(){
//top.location.href="/manual/PLM_user_manual-20180827.pptx";
top.location.href="/manual/WOOSUNG_USER_MANUAL.pptx";
//Swal.fire("준비중입니다.");
});
$(".mainLogo").attr("class", "mainLogo_<%=Constants.COMPANY_NAME_ENG%>");
});
function fn_selTopMenu(objid){
if(fnc_isEmpty(objid)){
return;
}
$(".menu_on").removeClass('menu_on').addClass('menu_off'); //이전 클릭한 메뉴 원복
$(".menu").each(function(){
var menuObjid = $(this).attr("menuObjid");
if(objid == menuObjid){
//$(this).removeClass('menu_off');
$(this).addClass('menu_on');
}
});
}
var _menuId = "2002018708"; ///MY TASK
var _menuId99 = "898708020"; //문제점
var _menuId1 = "-1690832312"; //현황
var _menuId2 = "814253445"; //결재함
var _menuId3 = "-561091519"; //문제점현황
var _menuId4 = "980471646"; //My Project
var _menuId5 = "-1931919566"; //MY TASK
function fn_goMyTaskMyStatus(){
fn_goMyTask("-1690832312");
}
function fn_goMyTaskMyApproval(){
fn_goMyTask(_menuId2);
//sel_menu(_menuId, _menuId2, true);
document.HeaderForm.target = "contents_page";
document.HeaderForm.action = "/approval/approvalList.do?actionType=myApproval&search_approval_status=ready&search_approval_user_id=<%=userId%>";
document.HeaderForm.submit();
}
function fn_goMyTaskMyProject(){
fn_goMyTask("980471646");
}
function fn_goMyTaskMyProblem(){
fn_goMyTask("-561091519");
}
function fn_goMyTaskMyTask(){
fn_goMyTask("-1931919566");
}
function fn_goFirstMenu(){
if($(".menu") && $(".menu").eq(0)){
var menuObjId = $(".menu").eq(0).attr("menuObjId");
//alert(menuObjId); -84984128(scm)
// 모든 메뉴를 off 스타일로 변경
$(".menu").css({
'background-color': '#0011ff',
'color': '#fff'
}).removeClass('menu_on').addClass('menu_off');
// 첫 번째 메뉴를 on 스타일로 변경
$(".menu").eq(0).css({
'background-color': '#c4c4f4',
'color': '#fff'
}).removeClass('menu_off').addClass('menu_on');
// 안전하게 메뉴 처리
try {
if(parent.frames["contentsFS"] && parent.frames["contentsFS"].frames["menu_page"]) {
var menuFrame = parent.frames["contentsFS"].frames["menu_page"];
if(menuFrame.fn_initMenuArea && menuFrame.add_menu) {
menuFrame.fn_initMenuArea();
menuFrame.add_menu(menuObjId);
}
}
} catch(e) {
console.log("Menu frame not ready:", e);
}
}
}
function fn_goMyTask(subMenuObjid, onlyViewMenu){
//<a href="#" style="" class="menu menu_off" menuobjid="2002018708">MY TASK</a>
var menuobjid = '1049804447';
fn_goMenu(menuobjid, subMenuObjid, onlyViewMenu);
}
function fn_goDashboard(subMenuObjid, onlyViewMenu){
var menuobjid = '-2114048817';
fn_goMenu(menuobjid, subMenuObjid, onlyViewMenu);
}
function sel_menu(menuobjid, subMenuObjid, onlyViewMenu){
// 왼쪽 프레임 제거로 인해 더 이상 사용하지 않음
// parent.frames["contentsFS"].frames["menu_page"].sel_menu(menuobjid, subMenuObjid, onlyViewMenu);
console.log("sel_menu 호출됨 - 드롭다운 메뉴 방식으로 변경됨");
}
function fn_goMenu(menuobjid, subMenuObjid, onlyViewMenu){
if(fnc_isEmpty(menuobjid)){
return;
}
fn_selTopMenu(menuobjid);
// 드롭다운 메뉴 방식으로 변경 - 왼쪽 프레임 제거됨
// 메뉴 클릭시 해당 메뉴의 첫 번째 하위 메뉴로 이동하거나 기본 페이지로 이동
$(".menu[menuObjId='" + menuobjid + "']").trigger("click");
/* 기존 왼쪽 프레임 방식 제거
parent.frames["contentsFS"].frames["menu_page"].fn_initMenuArea();
parent.frames["contentsFS"].frames["menu_page"].add_menu(menuobjid, subMenuObjid, onlyViewMenu);
*/
}
var menuLoaded = false;
function fn_firstCallMenu(){
// 이미 로드되었으면 중복 실행 방지
if(menuLoaded) return;
// 왼쪽 프레임이 복구되었으므로 기존 방식으로 첫 번째 메뉴 호출
if(parent && parent.frames["contentsFS"] && parent.frames["contentsFS"].frames["menu_page"]){
// 메뉴 프레임이 완전히 로드될 때까지 기다림
var menuFrame = parent.frames["contentsFS"].frames["menu_page"];
if(menuFrame.fn_initMenuArea && menuFrame.add_menu) {
fn_goFirstMenu();
clearInterval(_intervalId);
menuLoaded = true;
}
}
}
//사용자 상세 Detail Popup
function fn_registDetailPopup(userId){
var params = "?userId="+userId;
window.open("/admin/userDetailPopup.do"+params,"userDetailPopup","width=500,height=554");
}
//게시판 목록을 보여준다.
function fn_openBoardList(type){
if(type == "notice"){
window.open("/notice/getNoticeList.do", "noticeList", "width=1200 height=720 menubar=no status=no");
}else if(type == "qna"){
var userId = "<%=userId%>";
var userName = "<%=person.getUserName()%>";
var userDeptName = "<%=person.getDeptName()%>";
var email = "<%=person.getEmail()%>";
var companyName = "0001965";
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "http://gdnsipms.com:8090/qna/qnaList_gdnsi.do");
form.setAttribute("target", "qnaList_gdnsi");
console.log("Opening QnA board with userId:", userId);
console.log("Opening QnA board with userName:", userName);
console.log("Opening QnA board with userDeptName:", userDeptName);
console.log("Opening QnA board with email:", email);
console.log("Opening QnA board with companyName:", companyName);
var params = {userId, userName, userDeptName, email, companyName};
for (var key in params) {
if (params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
window.open('', 'qnaList_gdnsi', 'width=1600 height=720 menubar=no status=no');
form.submit();
document.body.removeChild(form);
}
}
//관리자 기능 팝업 호출
function openAdminMngPop(){
window.open("/admin/adminMainFS.do","<%=Constants.SYSTEM_NAME %>","width=1630,height=950,menuBar=no,status=no");
}
//결재건수조회
function fn_setApprovalCnt(){
$.ajax({
url:"/approval/getApprovalCnt.do",
type:"POST",
data:{"userId":"${connectUserId}"},
dataType:"json",
success:function(data){
var cnt = fnc_checkNullDefaultValue(data.CNT, "0");
$(".notice_no").text(cnt);
if(cnt > 0){
$("#blink").attr("class", "work_notice btnApprovalList blinkcss");
$(".blinkcss").children("span").children("img").attr({src:"/images/bell.gif"});
}else{
$("#blink").attr("class", "work_notice btnApprovalList blink_none");
$(".blink_none").children("span").children("img").attr({src:"/images/bell.png"});
}
},
error: function(jqxhr, status, error){
}
});
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body style="height:100%;overflow: hidden; margin: 0; padding: 0;">
<form name="HeaderForm" action="" method="post">
<input type="hidden" name="action" id="action">
<header style="background-color: #fff; border-bottom: 1px solid #ddd; padding: 0; height: 50px; overflow: hidden;">
<div style="height:50px; display: flex; align-items: center;">
<h1 style="margin: 0; padding: 0 20px;"><a href="#" id="logo" class="mainLogo_new"></a></h1>
<table style="width: 100%; border-collapse: collapse;">
<colgroup>
<col width="*"/>
<col width="400px"/>
</colgroup>
<tr style="height: 50px; vertical-align: middle;">
<!-- 메뉴 영역 -->
<td style="text-align: left; padding-left: 10px;">
<%
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)){
%>
<a href="#" class="menu menu_off" menuObjId="<%=menuObjid%>" style="background-color: #0015ff; color: #fff; padding: 3px 6px; font-size: 10px; border-radius: 3px; text-decoration: none; display: inline-block; min-width: 50px; text-align: center; margin-right: 4px;"><%=menuKorName%></a>
<%
}
}
%>
</td>
<!-- 우측 버튼 영역 -->
<td style="text-align: right; padding-right: 10px;">
<span id="blink" style="padding: 3px 6px; border-radius:3px; font-size:10px; background-color:#ff6b35; color:#fff; cursor:pointer; margin-right: 5px;" class="btnApprovalList blink_none">
결재 <label class="notice_no">0</label>건</span>
<a href="#" onclick="javascript:fn_openBoardList('qna');" style="color:#fff;background-color:#676868; border-radius:2px; padding:2px 4px; text-decoration: none; display: inline-block; font-size:9px; margin-right: 5px;">Q&A</a>
<a href="#" id="manualDownload" style="color:#fff;background-color:#676868; border-radius:2px; padding:2px 4px; text-decoration: none; display: inline-block; font-size:9px; margin-right: 5px;">Manual Download</a>
<a href="#" class="btnDetail" data-USER_ID="<%=userId %>" style="text-decoration: none; margin-right: 5px;">
<span style="color:#fff; padding: 2px 4px; font-size:9px; background-color:#676868; border-radius:2px; display: inline-block;">
<%=person.getDeptName() %> <%=person.getUserName() %> <%=person.getPositionName() %>
</span>
</a>
<a href="#" style="color:#fff; padding: 2px 4px; font-size:9px; background-color:#676868; border-radius:2px; text-decoration: none; display: inline-block;" class="btnLogout">Logout</a>
</td>
<%--
<td style=""><a href="#" id="manualDownload" style="color:#fff; padding: 5px 10px; font-size:11px; background-color:#38426b; border-radius:3px;">Manual Download</a></td>
<td class="admin"><%if("plm_admin".equals(userId)){%><a href="#" onclick="javascript:openAdminMngPop();" style="color:#fff; padding: 5px 10px; font-size:11px; background-color:#75a0b6; border-radius:3px;">Admin</a><%}%></td>
<td class="crew" style="">
<a href="#" class="btnDetail" data-USER_ID="<%=userId %>">
<span style="margin-right:36px; color:#fff; padding: 5px 10px; font-size:11px; background-color:#2f7192; border-radius:3px;">
<%=person.getDeptName() %> <%=person.getUserName() %> <%=person.getPositionName() %>
</span>
</a>
</td>
--%>
</tr>
</table>
</div>
<nav class="hGnb">
<ul id="topmenu" class="gnb clearFloat on">
<%
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)){
%>
<li class="" data-menu-id="417" data-menu-target="Current" data-menu-alias="" data-menu-alias2="" data-menu-url="">
<a href="#" class="menu menu_off waves-effect waves-light" menuObjId="<%=menuObjid%>">
<span><%=menuKorName%></span>
</a>
<%-- 하위 메뉴는 Materialize 드롭다운으로 동적 로드됨 --%>
</li>
<%
}
}
%>
<!--
<li class="" data-menu-id="417" data-menu-target="Current" data-menu-alias="" data-menu-alias2="" data-menu-url=""><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;"><span>바로가기</span></a>
<ul class="subGnb"><li class="undefined" data-menu-id="419" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Fwww.intops.co.kr"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">회사 홈페이지</a></li>
<li class="undefined" data-menu-id="420" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2F210.223.132.3%3A8055%2Fmst%2Flogin.view"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">경영자정보시스템(EIS)</a></li>
<li class="undefined" data-menu-id="421" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Fwww.intops.co.kr%2Fethical-management%2F%232"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">윤리경영 신고센터</a></li>
<li class="undefined" data-menu-id="425" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Flc.multicampus.com%2Fintops"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">사이버연수원</a></li>
<li class="undefined" data-menu-id="427" data-menu-target="New" data-menu-alias="sso" data-menu-alias2="" data-menu-url="http%3A%2F%2Fspam.e-iris.com%2Fpersonal%2Findex.php%3Femail%3D%7B0%7D"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">스팸관리(스팸스나이퍼)</a></li>
<li class="undefined" data-menu-id="436" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Fwww.microsoft.com%2Fko-kr%2Fmicrosoft-teams%2Flog-in"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">화상회의(Teams)</a></li>
<li class="undefined" data-menu-id="432" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2Fkpi.intops.co.kr"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">인사평가(MBO)</a></li>
<li class="undefined" data-menu-id="434" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2Fiacs.intops.co.kr%2F"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">내부회계관리</a></li>
<li class="undefined" data-menu-id="444" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Fintops.benepia.co.kr%2Flogin%2Flogin.do"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">복지몰(베네피아)</a></li>
<li class="undefined" data-menu-id="426" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="https%3A%2F%2Fwww.welstorymall.com"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">복지몰(웰스토리몰)</a></li>
<li class="undefined" data-menu-id="429" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2Fwww.miraemotors.com"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">미래 홈페이지</a></li>
<li class="undefined" data-menu-id="428" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2Fwww.platel.co.kr"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">플라텔 홈페이지</a></li>
<li class="undefined" data-menu-id="430" data-menu-target="New" data-menu-alias="" data-menu-alias2="" data-menu-url="http%3A%2F%2Fwww.psacademy.co.kr"><a href="javascript:;" onclick="CoviMenu_ClickTop(this);return false;">평산아카데미 홈페이지</a></li>
</ul>
</li>
-->
</ul>
<%
if("plm_admin".equals(userId)){%>
<ul id="topmenu" class="gnb clearFloat on" style="float:right; border-bottom: 0px solid #000;">
<li class="" data-menu-id="417" data-menu-target="Current" data-menu-alias="" data-menu-alias2="" data-menu-url="" style="align:left;padding-top:0px;padding-left:6px;background:url(/images/setting.png) left center no-repeat;">
<a href="#" class=" menu_off" style="padding-bottom:0px;top: 10px;" onclick="javascript:openAdminMngPop();" >Admin</a>
</li>
</ul>
<%}%>
</nav>
</header>
</form>
</body>
</html>