File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<%--
Class Name : IpReceive.jsp
Description : IP신청목록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2009.09.16 장동한 최초 생성
author : 공통서비스 개발팀 장동한
since : 2009.09.16
Copyright (C) 2009 by MOPAS All right reserved.
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%>
<!DOCTYPE html>
<html lang="en">
<head>
<title>IP사용현황</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="/direct/css/font.css">
<link rel="stylesheet" href="/direct/css/reset.css">
<link rel="stylesheet" href="/direct/css/enroll_popup.css">
<link rel="stylesheet" href="/direct/css/nice-select.css">
<script src="/direct/js/jquery-1.11.3.min.js"></script>
<script src="/direct/js/jquery-ui.min.js"></script>
<script src="/direct/js/popup_open_2.js"></script>
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie_popup.css" />
<![endif]-->
<script src="/direct/js/jquery.nice-select.js"></script>
<script type="text/javascript" src="/js/EgovCalPopup.js"></script>
<!-- <script src="js/script.js"></script> -->
<script>
var logCmd = ""; //로그 구분
$(document).ready(function() {
$('#recipEqui').niceSelect();
$('#recipNetCode').niceSelect();
setNumberOnly(); //숫자만 입력
$(".reset_Btn").click(function (event){
$('#recipUseStar').val('');
$('#recipUseEddr').val('');
});
/* 저장,수정 버튼 클릭시 */
$("#save_btn").click(function (event){
var frm = document.writeForm;
if(frm.recipSj.value ==""){
alert("제목은 필수 값입니다.");
return;
}
if(frm.recipNetCnt.value ==""){
alert("회선 갯수는 필수 값입니다.");
return;
}
if(frm.recipUseStar.value ==""){
alert("사용기간 시작일은 필수 값입니다.");
return;
}
if(frm.recipUseEddr.value ==""){
alert("사용기간 종료일 필수 값입니다.");
return;
}
if(frm.recipCn.value ==""){
alert("신청내용은 필수 값입니다.");
return;
}
var recipUseStar = $("[name='recipUseStar']").val();
var recipUseEddr = $("[name='recipUseEddr']").val();
if (recipUseStar != "" || recipUseEddr != "") {
if (recipUseStar == "" || recipUseEddr == "") { alert("IP사용기간/종료일을 입력해주세요."); return; }
}
if (recipUseStar > recipUseEddr) {
alert("IP사용기간은 시작일은 종료일보다 작아야 합니다."); return;
}
/* 화면에는 숨겨져 있으나 실제 임시저장, 저장, 수정 모두 처리된다. */
if($('#pageType').val() == "New"){
logCmd = "I" ;
}else if($('#pageType').val() == "Modify"){
logCmd = "U" ;
}
var emptyApprTr = false;
if($('#tbody_ipAppr').find('tr').length >0){
$('#tbody_ipAppr').find('tr').each(function(index, item){
if($(this).find("input[name$='apprUsrId']").val() == ''){
emptyApprTr = true;
}
});
}
if(emptyApprTr){
alert('결제자를 선택해 주세요') ;
return;
}
//$('#recipEqui').prop('disabled', false).niceSelect('update'); //select버튼 readonly
$('#recipEqui').prop('disabled', false);
$('#recipNetCode').prop('disabled', false);
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/uss/itsm/ip/IpUpdateRecAjax.do?logCmd="+logCmd,
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("저장에 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}else if(returnData.result =='success'){
if(opener !=null){
opener.location.reload();
}
alert("저장되었습니다.");
window.self.close() ;
}
}else{
alert("저장에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("저장에 실패하였습니다.");
}
});
});
<c:if test="${(ipRecVO.pageType eq 'Modify' && ipRecResultVO.recipState ne '01') || !ipRecResultVO.ckRegister }"> /* 수정이며, 신청중이 아니고, 등록자 아닌경우 쓰기 금지 */
$('.admin_ch').attr('readonly' , 'true') ; //컬럼 readonly
$('.date_select_btn').remove() ; //날짜 선택버튼 삭제
$('#recipEqui').prop('disabled', true).niceSelect('update'); //select버튼 readonly
$('#recipNetCode').prop('disabled', true).niceSelect('update'); //select버튼 readonly
$('.reset_Btn').remove() ;
</c:if>
/* 결과 저장 버튼 */
$("#btn_result").click(function (event){
var frm = document.writeForm;
var data = new FormData(frm);
$.ajax({
type: "POST",
// url: "/uss/itsm/ip/IpUpdateRecAjax.do?logCmd="+logCmd,
url: "/uss/itsm/ip/IpUpdateResult.do",
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("저장에 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}else if(returnData.result =='success'){
if(opener !=null){
opener.location.reload();
}
alert("저장되었습니다.");
window.self.close() ;
}
}else{
alert("저장에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("저장에 실패하였습니다.");
}
});
});
/* 삭제버튼 클릭시 */
$("#del_btn").click(function (event){
if(!confirm("삭제하시겠습니까?")){
return;
}
event.preventDefault();
var data = $('#writeForm').serialize();
$.ajax({
type: "POST",
url: "/uss/itsm/ip/IpDeleteRecAjax.do",
data: data,
dataType:'jsonp',
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("삭제처리가 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
}else if(returnData.result =='success'){
alert("삭제처리 되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}
}else{
alert("삭제처리에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("삭제처리에 실패하였습니다.");
}
});
});
setApprGrant(); //승인/반려권한 세팅
<c:if test="${approvalVO.apprTotCnt eq '0'}">
add_line(); //최초 한건 생성
</c:if>
});
//승인,반려 버튼 클릭
function setAccept(apprYn){
if("Y" == apprYn){
if(!confirm("승인하시겠습니까?")){return;}
}
if("N" == apprYn){
if(!confirm("반려하시겠습니까?")){return;}
}
var frm = document.writeForm;
frm.apprYn.value = apprYn;
var data = new FormData(frm);
$.ajax({
type: "POST",
url: "/uss/itsm/ip/IpAcceptRecAjax.do",
data: data,
dataType:'jsonp',
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (returnData, status) {
if(status == 'success'){
if(returnData.result == 'fail'){
alert("승인에 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다.");
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}else if(returnData.result =='success'){
if("Y" == apprYn){
alert("승인 처리되었습니다.");
}else{
alert("반려 처리되었습니다.");
}
if(opener !=null){
opener.location.reload();
}
window.self.close() ;
}
}else{
alert("승인에 실패하였습니다.");
}
},
error: function (e) {
console.log("ERROR : ", e);
alert("저장에 실패하였습니다.");
}
});
}
function setApprGrant(){
$('#tbody_ipAppr').find('tr').each(function(index, item){
if(index < $('#apprSn').val()*1){ //
if($(this).attr('value') == 'N'){
$('#tb_app_cn').remove();
$('.ipAppRe').remove();
}
}
});
}
function setNumberOnly(){ //숫자만 입력
$("input:text[numberOnly]").on("keyup", function(){
$(this).val($(this).val().replace(/[^0-9]/g,""));
});
}
function add_line(){
if($('#tbody_ipAppr').find('tr').length > 2){
alert("결제자 추가는 3명이 최대 입니다.");
return;
}
var temp_tr = $('#temp_tr').clone();
//임시 테이블 id 초기화
var tr_db_cnt = $('#tbody_ipAppr').find('tr').length ;
temp_tr.find('.tr_apprSn').append(tr_db_cnt+1) ; //번호 추가
temp_tr.find('.tr_apprSn').find("input[name*=approvalListVO]").attr('value' , tr_db_cnt+1) ; //value 추가
temp_tr.find("input[name*=approvalListVO]").each(function(index, item){
$(this).attr('name' , $(this).attr('name').replace('[]' , '['+tr_db_cnt+""+']')) ;
});
temp_tr.removeAttr('id');
temp_tr.find('.apprSelect').attr('onclick' , 'orgChartPopup(\''+tr_db_cnt+'\')' ) ;
$('#tbody_ipAppr').append(temp_tr);
//$('#tbody_ipAppr').find('tr')[0]
}
function delete_line(){
if($('#tbody_ipAppr').find('tr').length < 2){
alert("결제자는 최소 1명이 필요합니다.");
return;
}
$('#tbody_ipAppr > tr:last').remove();
}
function orgChartPopup(cnd){ //cnd 결제 로우
var docWidth = screen.availWidth;
var docHeight = screen.availHeight;
var scX = window.screenX||window.screenLeft||0;
var scY = window.screenY||window.screenTop||0;
var popupX = scX + (docWidth - 500) / 2;
var popupY = scY + (docHeight - 440) / 2;
window.open('', 'gamsaOpener', "width=500, height=440, left="+popupX+", top="+popupY,"location = no","status= no","toolbars= no");
document.writeForm.addVar.value = cnd;
document.writeForm.method = "post";
document.writeForm.action = "/uss/itsm/orgChart/OrgChartPopup.do";
document.writeForm.target = "gamsaOpener" ;
document.writeForm.submit();
}
function staffInfo(id , name, locNm, addVar, apprDept){
if(document.writeForm.frstRegisterId.value == id){
alert("자신을 결제자로 추가 하실수 없습니다.");
return;
}
var tempTr = $($('#tbody_ipAppr').find('tr')[addVar]) ;
tempTr.find('.tr_apprUsrId').text('');
tempTr.find('.tr_apprDept').find('.sp_apprDept').text('');
tempTr.find('.tr_apprUsrId').append(name) ; //결제자명 show
tempTr.find('.tr_apprDept').find('.sp_apprDept').text(locNm);
tempTr.find("input[name$='apprSn']").val(addVar) ;
tempTr.find("input[name$='apprUsrId']").val(id); //hidden 값 세팅
tempTr.find("input[name$='apprUsrNm']").val(name); //hidden 값 세팅
tempTr.find("input[name$='apprDept']").val(apprDept) //hidden 값 세팅
}
</script>
</head>
<body>
<form name="writeForm" id="writeForm" method="post">
<input type="hidden" name="addVar" value="" /> <!-- 직원검색 팝업 -->
<input type="hidden" name="pageType" id="pageType" value="<c:out value='${ipRecVO.pageType}'/>" />
<input type="hidden" name="recipId" id="recipId" value="<c:out value='${ipRecVO.recipId}'/>" />
<input type="hidden" name="apprId" id="apprId" value="<c:out value='${ipRecVO.recipId}'/>" />
<input type="hidden" name="apprSn" id="apprSn" value="<c:out value='${approvalVO.apprSn}'/>" />
<input type="hidden" name="apprTotCnt" id="apprTotCnt" value="<c:out value='${approvalVO.apprTotCnt}'/>" />
<input type="hidden" name="apprYn" id="apprYn" value="<c:out value='${approvalVO.apprYn}'/>" />
<input type="hidden" name="del" id="del" value="<c:out value='${ipRecVO.recipId}'/>" />
<div class="enroll_popup enrollIpPopup" style="width: 560px">
<div class="enroll_popup_title">
<img src="/direct/img/enroll_popup_title_bg.png" alt=""> IP 신청
</div>
<div class="enroll_wrap">
<div class="enrollIpWrap">
<div class="ipTitle">
<img src="" alt=""> 신청정보
</div>
<div class="ipLeftInput enroll_left_input">
<ul>
<li>
<div class="enroll_input_title required_area">제목</div>
<input class="admin_ch" type="text" name="recipSj" id="recipSj" value="<c:out value="${ipRecResultVO.recipSj}" escapeXml="true" />">
</li>
<li>
<div class="enroll_input_title required_area">소속</div>
${ipRecResultVO.recipDeptTxt}
<input type="hidden" name="recipDept" value="${ipRecResultVO.recipDept}">
</li>
<li>
<div class="enroll_input_title required_area">신청자</div>
${ipRecResultVO.frstRegisterIdTxt}
<input type="hidden" name="frstRegisterId" value="${ipRecResultVO.frstRegisterId}">
</li>
<li>
<div class="enroll_input_title required_area">대상장비</div>
<select name="recipEqui" id="recipEqui" class="use_state admin_ch" style="width: 100px;">
<c:forEach var="ipHwCodeList" items="${ipHwCodeList}" varStatus="status">
<option value="${ipHwCodeList.id}" <c:if test="${ipRecResultVO.recipEqui eq ipHwCodeList.id}"> selected="selected"</c:if> >${ipHwCodeList.text}</option>
</c:forEach>
</select>
</li>
<li>
<div class="enroll_input_title required_area">회선</div>
<div class="ipNw">
<select name="recipNetCode" id="recipNetCode" class="use_state admin_ch" style="width: 100px;">
<c:forEach var="ipNetCodeList" items="${ipNetCodeList}" varStatus="status">
<option value="${ipNetCodeList.id}" <c:if test="${ipRecResultVO.recipNetCode eq ipNetCodeList.id}"> selected="selected"</c:if> >${ipNetCodeList.text}</option>
</c:forEach>
</select>
<input type="text" class="ipNwNb admin_ch" name="recipNetCnt" id="recipNetCnt" numberOnly maxlength="3" value="${ipRecResultVO.recipNetCnt}"> 회선
</div>
</li>
<li>
<div class="enroll_input_title required_area">IP사용기간</div>
<input type="hidden" name="cal_url" id="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" >
<%-- <input type="text" class="first_date" name="recipUseStar" id="recipUseStar" value="<c:out value="${ipRecResultVO.recipUseStar}" />" readonly="readonly"> --%>
<input type="text" class="first_date admin_ch" name="recipUseStar" id="recipUseStar" value="${ipRecResultVO.recipUseStar}" readonly="readonly">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.writeForm, document.writeForm.recipUseStar);" class="date_select_btn">
<img src="/direct/img/bu_icon_carlendar.gif" alt="" style="top:5px;">
</a>
 ~ 
<%-- <input type="text" class="last_date" name="recipUseEddr" id="recipUseEddr" value="<c:out value="${ipRecResultVO.recipUseEddr}" />" readonly="readonly"> --%>
<input type="text" class="last_date admin_ch" name="recipUseEddr" id="recipUseEddr" value="${ipRecResultVO.recipUseEddr}" readonly="readonly">
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.writeForm, document.writeForm.recipUseEddr);" class="date_select_btn">
<img src="/direct/img/bu_icon_carlendar.gif" alt="" style="top:5px;">
</a>
<input type="button" value="초기화" class="reset_Btn ipAskBtn ipSignSelect">
</li>
<li>
<div class="enroll_input_title required_area">신청내용</div>
<textarea name="recipCn" id="recipCn" cols="30" rows="5" class="askIpObject admin_ch">${ipRecResultVO.recipCn}</textarea>
</li>
<c:if test="${ (ipRecResultVO.recipState eq '03' || ipRecResultVO.recipState eq '04') && isAdmin}"> <!-- 어드민 이면서 반려나 승인시 -->
<li>
<div class="enroll_input_title required_area">신청결과</div>
<textarea name="recipResult" id="recipResult" cols="30" rows="5" class="askIpObject">${ipRecResultVO.recipResult}</textarea>
<div class="ipAskBtnWrap" style="margin: 15px 0;">
<input type="button" class="ipAskBtn" id="btn_result" value="신청결과 등록">
</div>
</li>
</c:if>
</ul>
</div>
<!-- <div class="ipSignList add_line "> -->
<div class="ipSignList ">
<!-- 결제 추가는 등록자(CkRegister:true)가 글쓰기와 수정 , 결제로직 타기 전까지(recipState : 01) -->
<c:if test="${ipRecResultVO.ckRegister && ipRecResultVO.recipState eq '01' }">
<input type="button" value="결제자 추가" class="ipSignSelect" onclick="add_line();" style="margin-bottom: 6px;margin-left: 3px;">
<input type="button" value="결제자 삭제" class="ipSignSelect" onclick="delete_line();" style="margin-bottom: 6px;margin-left: 3px;">
</c:if>
<!-- 결제 추가는 신청자가 글쓰기와 수정 , 결제로직 타기 전까지 -->
<table>
<thead>
<tr>
<th>단계</th>
<th>결재자명</th>
<th>그룹</th>
</tr>
</thead>
<tbody id="tbody_ipAppr">
<c:forEach var="result" items="${approvalList}" varStatus="status">
<tr <c:if test="${result.apprStatus eq 'R'}"> style='color: blue;' </c:if> class="tr_apprYn" value="${result.apprYn }" >
<td class="tr_apprSn">
${status.count}
</td>
<td class="tr_apprUsrId">
${result.apprUsrNm}
</td>
<td class="tr_apprDept">
<span class="sp_apprDept" >
${result.apprDeptText}
</span>
<span class="sp_apprYn" style="padding-left: 33px;">
<c:if test="${'Y' eq result.apprYn }">
결제완료
</c:if>
<c:if test="${'Y' ne result.apprYn}">
<c:if test="${'R' eq result.apprStatus}">
결제중
</c:if>
<c:if test="${'N' eq result.apprStatus}">
반려
</c:if>
<c:if test="${empty result.apprStatus}">
결제대기
</c:if>
</c:if>
</span>
<c:if test="${ipRecResultVO.recipState eq '01' && ipRecResultVO.ckRegister}"> <!-- 신청중이며, 신청자일때 -->
<input type="button" class="ipSignSelect apprSelect" value="결재자 선택" onclick="orgChartPopup('${status.index}')">
</c:if>
</td>
<input type="hidden" name="approvalListVO[${status.index}].apprSn" value="${result.apprSn}">
<input type="hidden" name="approvalListVO[${status.index}].apprUsrId" value="${result.apprUsrId}">
<input type="hidden" name="approvalListVO[${status.index}].apprUsrNm" value="${result.apprUsrNm}">
<input type="hidden" name="approvalListVO[${status.index}].apprDept" value="${result.apprDept}">
</tr>
<c:if test="${!empty result.apprCn }">
<tr>
<td colspan="3"><textarea name="result_apprCn" rowspan="1" id="recipCn" cols="30" rows="2" class="askIpObject admin_ch" style="width: 492px;" readonly="readonly">${result.apprCn}</textarea>
</td>
</tr>
</c:if>
</c:forEach>
</tbody>
<!-- 결제자 이면서, 자신의 차례 -->
<c:if test="${ipRecResultVO.ckApplicant && approvalVO.apprStatus eq 'R'}">
<tbody id="tb_app_cn">
<tr>
<td colspan="3">
<textarea placeholder="결재 내용입력" name="apprCn" id="apprCn" cols="30" rows="3" class="askIpObject admin_appr_cn" style="width:495px;"></textarea>
</td>
</tr>
</tbody>
</c:if>
</table>
</div>
</div>
<div class="ipAskBtnWrap">
<c:if test="${ipRecResultVO.ckRegister || isAdmin}"> <!-- 신청자, 관리자일 경우 -->
<c:if test="${ipRecVO.pageType ne 'Modify'}">
<input type="button" class="ipAskBtn" id="save_btn" value="신청">
</c:if>
<c:if test="${ipRecVO.pageType eq 'Modify'}">
<c:if test="${!isAdmin && ipRecResultVO.recipState eq '01'}"> <!-- 관리자 아니며, 신청중일때 -->
<input type="button" class="ipAskBtn" id="save_btn" value="수정">
</c:if>
<input type="button" class="ipAskBtn" id="del_btn" value="삭제">
</c:if>
</c:if>
<c:if test="${ipRecResultVO.ckApplicant && approvalVO.apprStatus eq 'R'}">
<c:if test="${ipRecVO.pageType eq 'Modify'}">
<input type="button" class="ipAskBtn ipAppRe" id="appr_accept" value="승인" onclick="setAccept('Y'); return false;">
<input type="button" class="ipAskBtn ipAppRe" id="del_reject" value="반려" onclick="setAccept('N'); return false;">
</c:if>
</c:if>
</div>
</div>
</div>
</form>
<table id="eva_temp_table" style="display:none">
<tr id="temp_tr">
<td class="tr_apprSn">
</td>
<td class="tr_apprUsrId">
</td>
<td class="tr_apprDept">
<span class="sp_apprDept" >
</span>
<input type="button" class="ipSignSelect apprSelect" value="결재자 선택" onclick="orgChartPopup('1')">
</td>
<input type="hidden" name="approvalListVO[].apprSn" >
<input type="hidden" name="approvalListVO[].apprUsrId" >
<input type="hidden" name="approvalListVO[].apprUsrNm" >
<input type="hidden" name="approvalListVO[].apprDept" >
</tr>
</table>
</body>
</html>