- 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
203 lines
7.9 KiB
Plaintext
203 lines
7.9 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"%>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<script type="text/javascript" src="/js/jquery.floatThead.min.js" ></script>
|
|
<script>
|
|
$(document).ready(function() {
|
|
$(".select2").each(function(i,o){
|
|
$(this).val( $(this).attr("data-value") ).trigger("change");
|
|
});
|
|
|
|
$('.select2').select2();
|
|
fnc_datepick();
|
|
$('.date').each(function(i,o){
|
|
$(this).attr("size","10");
|
|
$(this).datepicker({
|
|
changeMonth:true,
|
|
changeYear:true
|
|
});
|
|
});
|
|
|
|
|
|
$('#fixTable').floatThead();
|
|
//닫기
|
|
$("#btnClose").click(function(){
|
|
self.close(0);
|
|
});
|
|
|
|
|
|
//취소
|
|
$("#btnCancel").click(function(){
|
|
var objId = $(this).attr("data-OBJID");
|
|
var params = "?objId="+objId;
|
|
document.form1.action ="/project/wbs/wbsTaskListDetailPopUp.do"+params;
|
|
document.form1.target ="_self";
|
|
document.form1.submit();
|
|
});
|
|
|
|
$(".level_1").css("background-color", "#a3a5a2");
|
|
$(".level_2").css("background-color", "#e0e1e0");
|
|
$(".level_3").css("background-color", "#f1edfc");
|
|
|
|
|
|
//체크박스 전체선택/전체해제
|
|
$("#allCheck").click(function(){
|
|
if($("#allCheck").prop("checked")) {
|
|
$("input[type=checkbox]").prop("checked",true);
|
|
} else {
|
|
$("input[type=checkbox]").prop("checked",false);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
$("input").change(function(){
|
|
var _thisvalue = $(this).val();
|
|
var _name = $(this).attr("name");
|
|
$("input[name='"+_name+"']").each(function (i) {
|
|
var maxvalue = $("input[name='"+_name+"']").eq(i).val().replace(/-/g,"");
|
|
if(_thisvalue.replace(/-/g,"") <= maxvalue){
|
|
_thisvalue = $("input[name='"+_name+"']").eq(i).val();
|
|
}
|
|
});
|
|
//$("#"+_name+"_MAX").text(_thisvalue);
|
|
|
|
var trindex = $(this).parent().parent().index();
|
|
var tdindex = $(this).parent().index();
|
|
$("#fixTable tr:eq(0) td:eq("+(tdindex-1)+")").text(_thisvalue);
|
|
});
|
|
|
|
});
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="OBJID" id="OBJID">
|
|
<input type="hidden" name="PARENT_OBJID" id="PARENT_OBJID" value="${param.OBJID}">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="projectObjId" value="${param.OBJID}">
|
|
<input type="hidden" name="parentObjId">
|
|
<input type="hidden" name="taskObjId">
|
|
<input type="hidden" name="projStep">
|
|
<input type="hidden" name="status">
|
|
<input type="hidden" name="OBJID" value="${param.OBJID}">
|
|
<div class="plm_menu_name">
|
|
</div>
|
|
<section class="contents_page_basic_margin" style="margin-top: 3px; height: 710px;">
|
|
<div>
|
|
<div class="plm_btn_wrap">
|
|
</div>
|
|
</div>
|
|
<div class="plm_table_wrap" style="overflow : auto; height: 710px">
|
|
<div class="in_table_scroll_wrap _table1" style="height:78px; width: fit-content;">
|
|
<table class="plm_table" style="position:absolute; border-Spacing:0; border-Collapse: separate;">
|
|
<colgroup>
|
|
<col width=30px"> <!-- No -->
|
|
|
|
<col width="200px"> <!-- Unit No -->
|
|
<col width="80px"> <!-- 담당자 -->
|
|
<col width="80px"> <!-- 계획 - 시작일 -->
|
|
<col width="80px"> <!-- 계획 - 완료일 -->
|
|
<col width="80px"> <!-- 실적 - 시작일 -->
|
|
<col width="80px"> <!-- 실적 - 완료일 -->
|
|
<col width="80px"> <!-- 진척률 -->
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td colspan="1" style="position: sticky; left: 0; z-index: 1; background: #67686f;"></td>
|
|
<td colspan="7">설계</td>
|
|
</tr>
|
|
</thead>
|
|
<tr class="plm_sub_thead">
|
|
<td rowspan="2" style="position: sticky; left: 0; z-index: 2;">No.</td>
|
|
<td rowspan="2" style="position: sticky; left: 30px; z-index: 1;">Unit Name/공정</td>
|
|
|
|
<td rowspan="2">담당자</td>
|
|
<td colspan="2">계획</td>
|
|
<td colspan="2">실적</td>
|
|
<td rowspan="2">진척율(%)</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
<td>시작일</td>
|
|
<td>완료일</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<table id="dataTable" class="plm_table wbs_left_align in_table_scroll_wrap" id="fixTable" style="width:100%; table-rayout:fixed; position:absolute; border-right: 1px solid #ccc; border-Spacing:0; border-Collapse: separate;">
|
|
<colgroup>
|
|
<col width=30px"> <!-- No -->
|
|
|
|
<col width="200px"> <!-- Unit No -->
|
|
<col width="80px"> <!-- 담당자 -->
|
|
<col width="80px"> <!-- 계획 - 시작일 -->
|
|
<col width="80px"> <!-- 계획 - 완료일 -->
|
|
<col width="80px"> <!-- 실적 - 시작일 -->
|
|
<col width="80px"> <!-- 실적 - 완료일 -->
|
|
<col width="80px"> <!-- 진척률 -->
|
|
</colgroup>
|
|
<tbody class="font_white">
|
|
<c:forEach var="item" items="${projectTaskList}" varStatus="varStatus">
|
|
<c:if test="${varStatus.index == 0}">
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td style="background: #fff; position: sticky; left: 30px; z-index: 1;">Master</td>
|
|
<td>${item.DESIGN_PLAN_START}</td>
|
|
<td>${item.DESIGN_PLAN_END }</td>
|
|
<td>${item.DESIGN_ACT_START }</td>
|
|
<td>${item.DESIGN_ACT_END }</td>
|
|
<td class="align_r">${item.DESIGN_RATE }</td>
|
|
</tr>
|
|
</c:if>
|
|
</c:forEach>
|
|
<c:choose>
|
|
<c:when test="${empty projectTaskList}">
|
|
<tr style="text-align:center;">
|
|
<td align="center" colspan="44">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${projectTaskList}" varStatus="varStatus">
|
|
<c:if test="${varStatus.index > 0}">
|
|
<tr>
|
|
<input type="hidden" name="TASK_OBJID" value="${item.OBJID }" />
|
|
<td style="background: #fff; position: sticky; left: 0; z-index: 1;text-align:left; padding-left: 5px">${varStatus.index}</td> <!-- No -->
|
|
<td title="${item.TASK_NAME}" style="text-align:left; padding-left: 5px; position: sticky; left: 30px; z-index: 1; background: #fff;">${item.TASK_NAME}</td>
|
|
|
|
<td title="${item.DESIGN_USER_ID }"><select name="DESIGN_USER_ID" data-value="${item.DESIGN_USER_ID}" class="select2" disabled readonly><option value="">선택</option>${code_map.user_id}</select></td>
|
|
<td title="${item.DESIGN_PLAN_START}"><input type="text" name="DESIGN_PLAN_START" class="date" value="${item.DESIGN_PLAN_START}" disabled readonly/></td>
|
|
<td title="${item.DESIGN_PLAN_END }"><input type="text" name="DESIGN_PLAN_END" class="date" value="${item.DESIGN_PLAN_END }" disabled readonly/></td>
|
|
<td title="${item.DESIGN_ACT_START }"><input type="text" name="DESIGN_ACT_START" class="date" value="${item.DESIGN_ACT_START }" disabled readonly/></td>
|
|
<td title="${item.DESIGN_ACT_END }"><input type="text" name="DESIGN_ACT_END" class="date" value="${item.DESIGN_ACT_END }" disabled readonly/></td>
|
|
<td title="${item.DESIGN_RATE }"><input type="text" name="DESIGN_RATE" class="align_r" value="${item.DESIGN_RATE }" disabled readonly/></td>
|
|
</tr>
|
|
</c:if>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="btn_wrap" style="top:40px">
|
|
<div class="plm_btn_wrap_center">
|
|
<input type="button" value="닫기" id="btnClose" class="plm_btns">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html>
|