feat: 사용자등록 반영

주소검색 공통 처리
main
minuk926 2 years ago
parent 8a06794b67
commit 148af956b2

@ -0,0 +1,90 @@
package kr.xit.framework.biz.cmm.web;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kr.xit.framework.biz.cmm.service.XitFramePopupService;
import kr.xit.framework.core.constants.FrameworkConstants;
import kr.xit.framework.core.constants.FrameworkConstants.TILES_TYPE;
import kr.xit.framework.core.message.XitMessageSource;
import kr.xit.framework.core.model.XitBaseSearchVO;
/**
*
* @: XIT Controller
* @:
* @author ()
* @since 2002. 2. 2.
* @version 1.0 Copyright(c) XIT All rights reserved.
*/
@Controller
@RequestMapping("/framework/biz/cmm")
public class FrameworkCmmController {
@Resource
private XitFramePopupService xitFramePopupService;
@Resource
private kr.xit.framework.biz.cmm.service.XitFrameUnitService XitFrameUnitService;
@Resource(name = "xitMessageSource")
XitMessageSource xitMessageSource;
@Value("#{prop['Globals.Xit.Pagination.PageUnit']}")
private int PAGE_UNIT;
@Value("#{prop['Globals.Xit.Pagination.PageSize']}")
private int PAGE_SIZE;
/**
* <pre> : </pre>
* @param modelMap
* @return String
* @author:
* @date: 2020. 4. 10.
*/
@GetMapping(value="/popup/ZipSearch")
public String ZipSearch() {
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearch"+TILES_TYPE.POPUP.getVal();
}
/**
* <pre> : </pre>
* @param modelMap
* @return String
* @author:
* @date: 2020. 4. 10.
*/
@GetMapping(value="/popup/ZipSearchList")
public String ZipSearchList(@ModelAttribute("searchVO") XitBaseSearchVO searchVO , ModelMap modelMap) {
searchVO.setPageUnit(PAGE_UNIT);
searchVO.setPageSize(PAGE_SIZE);
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
modelMap.addAttribute("resultList", xitFramePopupService.findListZip(searchVO));
int totCnt = xitFramePopupService.findListZipTotCnt(searchVO);
paginationInfo.setTotalRecordCount(totCnt);
modelMap.addAttribute("paginationInfo", paginationInfo);
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearchList"+TILES_TYPE.POPUP.getVal();
}
}

@ -49,7 +49,7 @@ public class XitFramePopupController {
*/
@RequestMapping(value="ZipSearch", method={RequestMethod.GET, RequestMethod.POST})
public String ZipSearch(ModelMap modelMap) {
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"common/popup/XitZipSearch"+TILES_TYPE.POPUP.getVal();
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearch"+TILES_TYPE.POPUP.getVal();
}
/**
* <pre> : </pre>
@ -80,7 +80,7 @@ public class XitFramePopupController {
paginationInfo.setTotalRecordCount(totCnt);
modelMap.addAttribute("paginationInfo", paginationInfo);
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"common/popup/XitZipSearchList"+TILES_TYPE.POPUP.getVal();
return FrameworkConstants.FRAMEWORK_JSP_BASE_PATH +"cmm/popup/XitZipSearchList"+TILES_TYPE.POPUP.getVal();
}

@ -18,6 +18,7 @@ import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@ -96,6 +97,7 @@ public class UserMgtController {
}
@PostMapping(value = "/addUser")
public ModelAndView addUser(
@ModelAttribute final XitUserInfoVO userInfoVO
,final BindingResult bindingResult){
@ -108,6 +110,7 @@ public class UserMgtController {
return mav;
}
@PostMapping(value = "/modifyUser")
public ModelAndView modifyUser(
@ModelAttribute final XitUserInfoVO userInfoVO
,final BindingResult bindingResult){
@ -120,6 +123,7 @@ public class UserMgtController {
return mav;
}
@PostMapping(value = "/removeUser")
public ModelAndView removeUser(final String uniqId){
ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW);

@ -17,7 +17,9 @@
<security:http pattern="/images" security="none"/>
<security:http pattern="/js" security="none"/>
<security:http pattern="/resource" security="none"/>
<!--security:http pattern="/framework/biz/cmm/cache/**" security="none"/-->
<security:http pattern="/framework/biz/cmm/cache/**" security="none"/>
<security:http pattern="/framework/biz/mng/usr/addUser.do" security="none"/>
<security:http pattern="/framework/biz/mng/usr/mngUserMgtPopup.do" security="none"/>
<security:http pattern="\A/WEB-INF/jsp/.*\Z" request-matcher="regex" security="none"/>
<!-- 전자정부 프레임워크 사용 시 -->

@ -30,7 +30,10 @@
<!-- [JS] SheetJS -->
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.1/xlsx.full.min.js" ></script> -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/sheetJS/js/xlsx.full.min.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/sheetJS/js/FileSaver.min.js" ></script> <!-- [선택]클라이언트 저장기능 필요 시 -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/sheetJS/js/FileSaver.min.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmPopup.js"></script>
<!-- [선택]클라이언트 저장기능 필요 시 -->
<!-- [JS] tableExport -->
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/FileSaver.min.js" ></script> <!-- [선택]클라이언트 저장기능 필요 시 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/xlsx.core.min.js" ></script> <!-- [선택]XLSX(Excel 2007+XML 형식) 형식으로 Export 시 필요 --> --%>

@ -124,7 +124,7 @@ table {
<%--@elvariable id="userManageVO" type=""--%>
<form:form commandName="userManageVO" action="${pageContext.request.contextPath}/_anonymous_/login/UserReg_insert_proc.do" name="userManageVO" method="post" >
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<div class="modify_user">
<table class="tbl02">

@ -10,7 +10,7 @@
<script type="text/javascript" src="<c:url value="/_anonymous_/login/validator.do"/>"></script>
<validator:javascript formName="entrprsManageVO" staticJavascript="false" xhtml="true" cdata="false"/>
<form:form commandName="entrprsManageVO" name="entrprsManageVO" method="post" action="${pageContext.request.contextPath}/_anonymous_/login/UserReg_insert_proc.do">
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<input type="hidden" name="userSe" value="ENT"/>
<div class="popup" style="min-width: 700px;">

@ -10,7 +10,7 @@
<script type="text/javascript" src="<c:url value="/_anonymous_/login/validator.do"/>"></script>
<validator:javascript formName="mberManageVO" staticJavascript="false" xhtml="true" cdata="false" />
<form:form commandName="mberManageVO" name="mberManageVO" method="post" action="${pageContext.request.contextPath}/_anonymous_/login/UserReg_insert_proc.do">
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<input type="hidden" name="userSe" value="GNR" />
<div class="popup" style="min-width: 700px;">

@ -11,7 +11,7 @@
<validator:javascript formName="userManageVO" staticJavascript="false" xhtml="true" cdata="false"/>
<form:form commandName="userManageVO" name="userManageVO" method="post" action="${pageContext.request.contextPath}/_anonymous_/login/UserReg_insert_proc.do">
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<input type="hidden" name="userSe" value="USR"/>

@ -16,4 +16,4 @@
<iframe name="ifcal" src="<c:url value='/sym/cmm/EgovCcmZipSearchList.do'/>" style="width:500px; height:325px;" frameborder=0></iframe>
-->
<!-- FIREFOX -->
<iframe name="ifcal" title="우편번호찾기 팝업" src="<c:url value='/_cmmn_/popup/XitZipSearchList.do'/>" style="width:560px; height:340px;" frameborder=0></iframe>
<iframe name="ifcal" title="우편번호찾기 팝업" src="<c:url value='/framework/biz/cmm/popup/XitZipSearchList.do'/>" style="width:560px; height:340px;" frameborder=0></iframe>

@ -17,7 +17,7 @@
******************************************************** */
function fn_xit_pageview(pageNo){
document.listForm.pageIndex.value = pageNo;
document.listForm.action = "<c:url value='/_cmmn_/popup/ZipSearchList.do'/>";
document.listForm.action = "<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>";
document.listForm.submit();
}
/* ********************************************************
@ -53,7 +53,7 @@ function fn_xit_return_Zip(zip,addr){
<!-- 자바스크립트 경고 태그 -->
<noscript class="noScriptTitle">자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="listForm" action="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" method="post">
<form name="listForm" action="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" method="post">
<input name="searchCondition" type="hidden" size="35" value="4" />
<table style="width:550px" cellpadding="8" class="table-search" border="0">
<tr>

@ -1,8 +1,5 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
@ -10,252 +7,241 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Language" content="ko" >
<title>로그인</title>
<link href="<c:url value='/'/>resources/framework/css/common.css" rel="stylesheet" type="text/css" >
<link href="<c:url value='/'/>resources/framework/css/login.css" rel="stylesheet" type="text/css" >
<style type="text/css">
.captcha_wrap {
margin-top: 10px;
text-align: right;
}
.captcha_wrap button {
padding: 5px;
font-weight: bold;
margin-left: -70px;
cursor: pointer;
}
.captcha_wrap input[type="text"] {
margin-left: 10px;
height: 45px;
width: 280px;
border: 2px solid #828282;
font-size: 17px;
font-family: Nanumsquare_B;
padding: 0 0 0 10px;
}
</style>
<meta http-equiv="Content-Language" content="ko" >
<title>로그인</title>
<link href="<c:url value='/'/>resources/framework/css/common.css" rel="stylesheet" type="text/css" >
<link href="<c:url value='/'/>resources/framework/css/login.css" rel="stylesheet" type="text/css" >
<style>
.captcha_wrap {
margin-top: 10px;
text-align: right;
}
.captcha_wrap button {
padding: 5px;
font-weight: bold;
margin-left: -70px;
cursor: pointer;
}
.captcha_wrap input[type="text"] {
margin-left: 10px;
height: 45px;
width: 280px;
border: 2px solid #828282;
font-size: 17px;
font-family: Nanumsquare_B;
padding: 0 0 0 10px;
}
</style>
</head>
<body onload="fnInit();">
<div class="login_bg">
<div class="header_wrap">
<%--<h1 class="logo"><img src="<c:url value='/'/>images/login/mainLogo.png" alt="Logo Image"></img></h1>--%>
<h1 class="logo"><img src="<c:url value='/'/>resources/images/login/mainLogo_02.png" alt="Logo Image"></img></h1>
</div>
<div class="login_text">
<%--<p class="main_img"><img src="<c:url value='/'/>images/login/loginDeco.png" alt=""></img></p>--%>
<p class="main_img"><img src="<c:url value='/'/>resources/images/login/loginDeco_02.png" alt=""></img></p>
<form:form id="loginForm" name="loginForm" method="post">
<div class="input_wrap">
<input type="text" name="id" id="id" title="아이디 입력" class="typeText required form-control inp-long" placeholder="아이디" />
<input type="password" name="password" id="password" title="비밀번호 입력" class="typePassword required form-control inp-long" placeholder="비밀번호" onkeydown="javascript:if (event.keyCode == 13) { actionLogin(); }"/>
<!-- 캡차인증 -->
<div class="captcha_wrap">
<img id="captchaImg" alt="자동로그인 방지 이미지"/>
<button id="btn_captchaRefresh" alt="자동로그인 방지 이미지 새로고침">새로고침</button>
<input type="text" id="captcha" name="captcha" value="" title="자동로그인 방지 문구 입력" placeholder="좌측의 자동로그인 방지 문구 입력"/>
</div>
<!-- //캡차인증 -->
<div class="input_wrap2">
<!-- <label for="idSave"><input type="checkbox" id="idSave" name="idSave"/> ID저장</label> -->
<a href="#" onclick="javascript:fn_FindId(); return false;">아이디 찾기</a>
<a href="#" onclick="javascript:fn_FindPw(); return false;" class="line">비밀번호 찾기</a>
<a href="#" onclick="javascript:fnReg(); return false;" class="line">회원가입</a>
</div>
<div class="login_bg">
<div class="header_wrap">
<%--<h1 class="logo"><img src="<c:url value='/'/>images/login/mainLogo.png" alt="Logo Image"></img></h1>--%>
<h1 class="logo"><img src="<c:url value='/'/>resources/images/login/mainLogo_02.png" alt="Logo Image"></img></h1>
</div>
<div class="login_text">
<%--<p class="main_img"><img src="<c:url value='/'/>images/login/loginDeco.png" alt=""></img></p>--%>
<p class="main_img"><img src="<c:url value='/'/>resources/images/login/loginDeco_02.png" alt=""></img></p>
<form:form id="loginForm" name="loginForm" method="post">
<div class="input_wrap">
<input type="text" name="id" id="id" title="아이디 입력" class="typeText required form-control inp-long" placeholder="아이디" />
<input type="password" name="password" id="password" title="비밀번호 입력" class="typePassword required form-control inp-long" placeholder="비밀번호" onkeydown="javascript:if (event.keyCode == 13) { actionLogin(); }"/>
<!-- 캡차인증 -->
<div class="captcha_wrap">
<img id="captchaImg" alt="자동로그인 방지 이미지"/>
<button id="btn_captchaRefresh" alt="자동로그인 방지 이미지 새로고침">새로고침</button>
<input type="text" id="captcha" name="captcha" value="" title="자동로그인 방지 문구 입력" placeholder="좌측의 자동로그인 방지 문구 입력"/>
</div>
<!-- //캡차인증 -->
<div class="input_wrap2">
<!-- <label for="idSave"><input type="checkbox" id="idSave" name="idSave"/> ID저장</label> -->
<a href="#" onclick="javascript:fn_FindId(); return false;">아이디 찾기</a>
<a href="#" onclick="javascript:fn_FindPw(); return false;" class="line">비밀번호 찾기</a>
<a href="#" onclick="javascript:fnReg(); return false;" class="line">회원가입</a>
</div>
<input type="hidden" name="message" value="${message}" />
<input type="hidden" name="userSe" value="USR"/>
<input name="j_username" type="hidden"/>
</form:form>
<div class="btn_wrap">
<!-- <a href="#" onclick="javascript:fn_MngrInput(); return false;" class="line">회원가입</a> -->
<input type="submit" onclick="javascript:actionLogin()" class="typeButton" title="로그인" value="로그인" />
</div>
<input type="hidden" name="message" value="${message}" />
<input type="hidden" name="userSe" value="USR"/>
<input name="j_username" type="hidden"/>
</form:form>
<div class="btn_wrap">
<!-- <a href="#" onclick="javascript:fn_MngrInput(); return false;" class="line">회원가입</a> -->
<input type="submit" onclick="javascript:actionLogin()" class="typeButton" title="로그인" value="로그인" />
</div>
</div>
<script type="text/javascript" src="<c:url value='/'/>resources/3rd-party/jquery/3.6.1/jquery.min.js"></script>
<%-- <link href="<c:url value='/'/>resourcescss/style.css" rel="stylesheet" type="text/css" > --%>
<script type="text/javascript">
/**
* 로그인
*/
function actionLogin() {
if (document.loginForm.id.value =="") {
alert("아이디를 입력하세요");
return false;
} else if (document.loginForm.password.value =="") {
alert("비밀번호를 입력하세요");
return false;
} else {
document.loginForm.action="<c:url value='/login/actionSecurityLogin.do'/>";
//document.loginForm.j_username.value = document.loginForm.userSe.value + document.loginForm.username.value;
//document.loginForm.action="<c:url value='/j_spring_security_check'/>";
document.loginForm.submit();
}
</div>
<script type="text/javascript" src="<c:url value='/'/>resources/3rd-party/jquery/3.6.1/jquery.min.js"></script>
<script type="text/javascript" src="<c:url value='/'/>resources/framework/js/cmm/cmmPopup.js"></script>
<%-- <link href="<c:url value='/'/>resourcescss/style.css" rel="stylesheet" type="text/css" > --%>
<script type="text/javascript">
/**
* 로그인
*/
function actionLogin() {
if (document.loginForm.id.value =="") {
alert("아이디를 입력하세요");
return false;
} else if (document.loginForm.password.value =="") {
alert("비밀번호를 입력하세요");
return false;
} else {
document.loginForm.action="<c:url value='/login/actionSecurityLogin.do'/>";
//document.loginForm.j_username.value = document.loginForm.userSe.value + document.loginForm.username.value;
//document.loginForm.action="<c:url value='/j_spring_security_check'/>";
document.loginForm.submit();
}
/**
* 쿠키 설정
*/
function setCookie (name, value, expires) {
document.cookie = name + "=" + escape (value) + "; path=/; expires=" + expires.toGMTString();
}
/**
* 쿠키 조회
* -쿠키에 저장된 목록을 조회 한다.
*/
function getCookie(Name) {
var search = Name + "="
if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
offset = document.cookie.indexOf(search)
if (offset != -1) { // 쿠키가 존재하면
offset += search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset)
// 쿠키 값의 마지막 위치 인덱스 번호 설정
if (end == -1)
end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
}
/**
* 쿠키 설정
*/
function setCookie (name, value, expires) {
document.cookie = name + "=" + escape (value) + "; path=/; expires=" + expires.toGMTString();
}
/**
* 쿠키 조회
* -쿠키에 저장된 목록을 조회 한다.
*/
function getCookie(Name) {
var search = Name + "="
if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
offset = document.cookie.indexOf(search)
if (offset != -1) { // 쿠키가 존재하면
offset += search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset)
// 쿠키 값의 마지막 위치 인덱스 번호 설정
if (end == -1)
end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
return "";
}
/**
* 쿠키에 ID 저장or제거
* -"로그인ID 저장여부"를 check 시 일정기간동안 쿠키에 ID를 저장 한다.
* -"로그인ID 저장여부"를 uncheck 시 쿠키에 저장된 ID를 삭제 한다.
*/
function saveid(form) {
var expdate = new Date();
// 기본적으로 30일동안 기억하게 함. 일수를 조절하려면 * 30에서 숫자를 조절하면 됨
if (form.checkId.checked)
expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 30); // 30일
else
expdate.setTime(expdate.getTime() - 1); // 쿠키 삭제조건
setCookie("saveid", form.id.value, expdate);
return "";
}
/**
* 쿠키에 ID 저장or제거
* -"로그인ID 저장여부"를 check 시 일정기간동안 쿠키에 ID를 저장 한다.
* -"로그인ID 저장여부"를 uncheck 시 쿠키에 저장된 ID를 삭제 한다.
*/
function saveid(form) {
var expdate = new Date();
// 기본적으로 30일동안 기억하게 함. 일수를 조절하려면 * 30에서 숫자를 조절하면 됨
if (form.checkId.checked)
expdate.setTime(expdate.getTime() + 1000 * 3600 * 24 * 30); // 30일
else
expdate.setTime(expdate.getTime() - 1); // 쿠키 삭제조건
setCookie("saveid", form.id.value, expdate);
}
/**
* 쿠키에 저장된 ID 취득
* -저장된 ID가 존재할 경우 "로그인ID 저장여부"항목을 check 설정 한다.
*/
function getid(form) {
form.checkId.checked = ((form.id.value = getCookie("saveid")) != "");
}
function fnInit() {
var message = document.loginForm.message.value;
if (message != "") {
alert(message);
}
/**
* 쿠키에 저장된 ID 취득
* -저장된 ID가 존재할 경우 "로그인ID 저장여부"항목을 check 설정 한다.
*/
function getid(form) {
form.checkId.checked = ((form.id.value = getCookie("saveid")) != "");
}
function fnInit() {
var message = document.loginForm.message.value;
if (message != "") {
alert(message);
}
// getid(document.loginForm);
$('#id').focus();
CaptchaUtil.init();
}
/**
* 회원가입 팝업
*/
function fnReg(){
var popUrl ="${ctx}/_anonymous_/login/UserReg_input.do";
var popOption = "width=840px, height=500px, resizable=no, scrollbars=yes, location=no, top=100px, left=100px";
var target = '사용자등록';
window.open(popUrl,target,popOption);
}
/**
* 아이디 찾기 팝업
*/
function fn_FindId(){
var popUrl = "${ctx}/login/FindId_input_popup.do";
var popOption = "width=500px, height=300x, resizable=no, location=no, top=100px, left100px";
var target = '아이디 찾기';
window.open(popUrl,target,popOption);
}
/**
* 비밀번호 찾기 팝업
*/
function fn_FindPw(){
var popUrl = "${ctx}/login/FindPwd_input_popup.do";
var popOption = "width=500px, height=330px, resizable=no, location=no, top=100px, left100px";
var target = '비밀번호 찾기';
window.open(popUrl,target,popOption);
}
/**
* 캡차 인증 도구
* @date 2020.09.22.
* @author 박민규
*/
var CaptchaUtil = {
init: function(){
//캡차인증 이미지 출력
CaptchaUtil.refresh();
//새로고침 버튼 EventListener 설정
$('#btn_captchaRefresh').on({
click: function(){
CaptchaUtil.refresh();
$('#id').focus();
CaptchaUtil.init();
}
/**
* 회원가입 팝업
*/
function fnReg(){
CmmPopup.open("<c:url value='/framework/biz/mng/usr/mngUserMgtPopup.do'/>", {}, {width: 1100, height:570}, '사용자 등록');
}
/**
* 아이디 찾기 팝업
*/
function fn_FindId(){
CmmPopup.open("<c:url value='/login/FindId_input_popup.do'/>", {}, {width: 500, height:300}, '아이디 찾기');
}
/**
* 비밀번호 찾기 팝업
*/
function fn_FindPw(){
CmmPopup.open("<c:url value='/login/FindPwd_input_popup.do'/>", {}, {width: 500, height:330}, '비밀번호 찾기');
}
/**
* 캡차 인증 도구
* @date 2020.09.22.
* @author 박민규
*/
var CaptchaUtil = {
init: function(){
//캡차인증 이미지 출력
CaptchaUtil.refresh();
//새로고침 버튼 EventListener 설정
$('#btn_captchaRefresh').on({
click: function(){
CaptchaUtil.refresh();
return false;
}
});
//자동로그인방지문자 입력란 EventListener 설정
$('#captcha').on({
keypress: function(){
if(event.keyCode==13){
actionLogin();
return false;
}
});
//자동로그인방지문자 입력란 EventListener 설정
$('#captcha').on({
keypress: function(){
if(event.keyCode==13){
actionLogin();
return false;
}
},
keyup: function(){
this.value = this.value.toLowerCase();
}
});
},
refresh: function(){
/* ==============================
* 2020.09.22 박민규
* IE 동작이슈 처리
* -사유: 크롬에서 정상동작 하나 IE에서 img 태그에 이미지가 출력된 상태에서
* document.querySelector('#captchaImg').setAttribute('src', url)를 호출해도 이벤트가 발생하지 않음.
* -해결: 이미지 태그의 src(이미지 경로)를 제거 후 timeout을 이용하여 일정시간 후 document.querySelector('#captchaImg').setAttribute('src', url) 호출
============================== */
//2020.09.22 주석처리
},
keyup: function(){
this.value = this.value.toLowerCase();
}
});
},
refresh: function(){
/* ==============================
* 2020.09.22 박민규
* IE 동작이슈 처리
* -사유: 크롬에서 정상동작 하나 IE에서 img 태그에 이미지가 출력된 상태에서
* document.querySelector('#captchaImg').setAttribute('src', url)를 호출해도 이벤트가 발생하지 않음.
* -해결: 이미지 태그의 src(이미지 경로)를 제거 후 timeout을 이용하여 일정시간 후 document.querySelector('#captchaImg').setAttribute('src', url) 호출
============================== */
//2020.09.22 주석처리
// var url = '<c:url value="/_anonymous_/captcha.do"/>';
// document.querySelector('#captchaImg').setAttribute('src', url);
var url = '<c:url value="/_anonymous_/captcha.do"/>';
// IE old version ( IE 10 or Lower )
if ( navigator.appName == "Microsoft Internet Explorer" ){
document.querySelector('#captchaImg').removeAttribute('src');
setTimeout(function(){
document.querySelector('#captchaImg').setAttribute('src', url);
}, 20);
}
// 그 외 브라우저
else{
var url = '<c:url value="/_anonymous_/captcha.do"/>';
// IE old version ( IE 10 or Lower )
if ( navigator.appName == "Microsoft Internet Explorer" ){
document.querySelector('#captchaImg').removeAttribute('src');
setTimeout(function(){
document.querySelector('#captchaImg').setAttribute('src', url);
}
}, 20);
}
// 그 외 브라우저
else{
document.querySelector('#captchaImg').setAttribute('src', url);
}
}
}
</script>
</script>
</body>
</html>

@ -87,13 +87,6 @@
* Global Variable
**************************************************************************/
const init = () => {
$(".popup").css("position","absolute");
$(".content_header").css("display","none");
$("#cur_loc").css("display","none");
}
/* *******************************
* function
******************************* */
@ -102,11 +95,10 @@
if(!validateProgrmMngVO(document.getElementById("progrmMngVO")))
return;
var varFrom = document.getElementById("progrmMngVO");
if(confirm("저장 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/menu/addProgram.do"/>'
,data: $(varFrom).serialize()
,data: document.getElementById("progrmMngVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
@ -119,11 +111,10 @@
if(!validateProgrmMngVO(document.getElementById("progrmMngVO")))
return;
var varFrom = document.getElementById("progrmMngVO");
if(confirm("변경 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/menu/modifyProgram.do"/>'
,data: $(varFrom).serialize()
,data: document.getElementById("progrmMngVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
@ -167,6 +158,8 @@
* initialize
**************************************************************************/
$(document).ready(function(){
init();
$(".popup").css("position","absolute");
$(".content_header").css("display","none");
$("#cur_loc").css("display","none");
});
</script>

@ -8,7 +8,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${userSearchVO.searchKeyword}'/>"/>
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${entrprsManageVO.userTy}'/>:<c:out value='${entrprsManageVO.entrprsmberId}'/>">
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->

@ -8,7 +8,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${userSearchVO.searchKeyword}'/>"/>
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<div class="popup" style="min-width: 700px;">
<div class="popup_inner" style="max-width: 700px;">

@ -139,7 +139,7 @@ table.tbl03 input[type="text"], table.tbl03 select{
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
<input type="hidden" name="userTyForPassword" value="<c:out value='${entrprsManageVO.userTy}'/>" />

@ -8,7 +8,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${userSearchVO.searchKeyword}'/>"/>
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${mberManageVO.userTy}'/>:<c:out value='${mberManageVO.mberId}'/>">
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->

@ -8,7 +8,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${userSearchVO.searchKeyword}'/>"/>
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<div class="popup" style="min-width: 700px;">
<div class="popup_inner" style="max-width: 700px;">

@ -138,7 +138,7 @@ table.tbl03 input[type="text"], table.tbl03 select{
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
<input type="hidden" name="userTyForPassword" value="<c:out value='${mberManageVO.userTy}'/>" />

@ -8,7 +8,7 @@
<input type="hidden" name="searchKeyword" value="<c:out value='${userSearchVO.searchKeyword}'/>"/>
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<div class="popup" style="min-width: 1100px;">
<div class="popup_inner" style="max-width: 1100px;">

@ -135,7 +135,7 @@ table {
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
<input type="hidden" name="userTyForPassword" value="<c:out value='${userManageVO.userTy}'/>" />

@ -88,7 +88,7 @@ table {
<input type="hidden" name="sbscrbSttus" value="<c:out value='${userSearchVO.sbscrbSttus}'/>"/>
<input type="hidden" name="pageIndex" value="<c:out value='${userSearchVO.pageIndex}'/>"/>
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
<input type="hidden" name="userTyForPassword" value="<c:out value='${userManageVO.userTy}'/>" />

@ -96,7 +96,7 @@ table {
</div>
<form:form commandName="userManageVO" action="${pageContext.request.contextPath}/framework/biz/mng/usr/UserRegMng_insert_proc.do" name="userManageVO" method="post" >
<!-- 우편번호검색 -->
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<div class="modify_user" >
<table>

@ -56,6 +56,7 @@
* Global Variable
**************************************************************************/
let GRID = null;
var callBackSearch = () => fnProgramMgt.search();
/* *******************************
@ -239,7 +240,7 @@
let popOption;
switch (flag) {
case "add": //등록
popTitle = "사용자 신규등록";
popTitle = "사용자 등록";
popOption = {width: 1100, height:700}
break;
case "detail": //상세
@ -254,7 +255,7 @@
,fnClickRegBtn: function(props){
const rowData = props.grid.getRow(props.rowKey);
fnUserMgt.pagePopup('add', {uniqId: rowData.uniqId});
fnUserMgt.pagePopup('detail', {uniqId: rowData.uniqId});
}
}
@ -265,7 +266,7 @@
$('#btnSearch').bind('click', () => fnUserMgt.search());
$('#btnRegist').bind('click', () => {
fnUserMgt.pagePopup('detail', {});
fnUserMgt.pagePopup('add', {});
});
});

@ -5,7 +5,7 @@
<validator:javascript formName="userInfoVO" staticJavascript="true" xhtml="true" cdata="false"/>
<%--@elvariable id="userInfoVO" type=""--%>
<form:form commandName="userInfoVO" name="userInfoVO">
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${userInfoVO.userTy}'/>:<c:out value='${userInfoVO.emplyrId}'/>">
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
@ -223,212 +223,107 @@
<!-- //popup -->
</form:form>
<script type="text/javascript" src="<c:url value='/resources/framework/js/egov/EgovZipPopup.js' />" ></script>
<script type="text/javaScript">
$(document).ready(function(){
XitUserRegMng_edit.init();
});
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
var fnCallbackZipSearch = (obj) => CmmPopup.setZipSearch(obj, document.userInfoVO);
/* *******************************
* 사용자 등록관리 수정화면 Functions
/* *******************************
* function
******************************* */
var XitUserRegMng_edit = {
/* ========================
* 초기화
======================== */
init : function(){
//닫기 버튼 EVENT 설정
$("#btnClose").on({
click : function(){
window.close();
}
});
//저장 버튼 Event 설정
$('#btnSave').on({
click: function(){
if (confirm('변경 하시겠습니까?')) {
if(validateUserInfoVO(document.userInfoVO)){
XitUserRegMng_edit.modifyData();
}
}
}
});
$('#btnRemove').on({
click : function(){
if(confirm("삭제 하시겠습니까?")){
XitUserRegMng_edit.removeData();
}
}
})
//주소검색버튼 Event설정
$('#addrSearch').on({
click : function(){
/*
* 2020.10.05. 박민규
* 우편번호검색 Event 변경
* -작업내용: DB조회->행자부API로 변경
*/
// fn_egov_ZipSearch(
// document.userInfoVO
// , document.userInfoVO.zip
// , document.userInfoVO.zip_view
// , document.userInfoVO.houseAdres
// );
XitUserRegMng_edit.fnSearchAdres();
}
});
$('#btnPwdChg').on({
click : function(){
var params = "";
var form = $('#userInfoVO');
var array = $(form).serializeArray();
var result = {};
if(array){
$(array).each(function(index, item){
if(this.value){
params += (this.name+"=" + this.value);
if(index < (array.length -1)) params += "&"
}
})
}
XitUserRegMng_edit.pagePopup('pwd', '<c:url value="/framework/biz/mng/usr/UserRegMng_editPwd_popup.do"/>', params);
}
});
const fnUserMgtPopup = {
search: () => {
}
},
/* ========================
* 입력값 언어 선택
======================== */
fn_setInputLimit : function(){
},
/* ========================
* 데이터 조회
======================== */
findData : function(){
},
/* ========================
* 데이터 등록
======================== */
addData : function(){
},
/* ========================
* 데이터 수정
======================== */
modifyData : function(){
var param = $("#userInfoVO").serialize();
$.ajax({
url : "/framework/biz/mng/usr/UserRegMng_update_proc.do",
data : param,
type : "post",
dataType : "json",
success : function(data) {
alert(data.resp.message);
window.opener.XitUserRegMng_list.findData();
window.close();
},
error: function(){
,add: () => {
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
}
});
},
/* ========================
* 데이터 삭제
======================== */
removeData : function(){
var param = $("#userInfoVO").serialize();
$.ajax({
url : "/framework/biz/mng/usr/UserRegMng_delete_proc.do",
data : param,
type : "post",
dataType : "json",
success : function(data) {
alert(data.resp.message);
window.opener.XitUserRegMng_list.findData();
window.close();
},
error: function(){
if(confirm("등록 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/addUser.do"/>'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
}
});
},
/* ========================
* 유효성 검증
-flag에 따라 유효성 검증을 분기처리한다.
======================== */
validate : function(flag){
switch(flag){
case 'update' : //수정
break;
default : break;
}
,modify: () => {
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
return true;
},
/* ========================
* 페이지 이동
-외부사이트 링크가 필요 시 사용(내부코드는 각 페이지에 맞게 수정, ex>https://www.gov.kr/portal/main )
======================== */
pageLink: function(flag, url, params){
switch (flag) {
case "move": //페이지 이동
break;
case "popup": //팝업 OPEN
break;
default:
break;
}
},
/* ========================
* 페이지 Open
-팝업페이지를 Open 한다.
======================== */
pagePopup: function(flag, url, params){
var popUrl = url;
if(!(params == undefined || params == null)){
popUrl += "?";
popUrl += params;
}
var popTitle = '';
var popOption = '';
switch (flag) {
case "pwd":
popTitle = "";
popOption = "width=570px, height=420px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px;";
break;
default:
break;
}
window.open(popUrl, popTitle ,popOption);
},
if(confirm("변경 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/modifyUser.do"/>'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
/* ========================
* 주소 검색 팝업 OPEN
-도로명 주소를 검색할 수 있는 팝업을 오픈한다.
======================== */
fnSearchAdres: function(){
var popUrl = '<c:url value="/_anonymous_/api/AdresSearch.do"/>';
var params = '?callback=XitUserRegMng_edit.fnSearchAdresCallback';
popUrl += params;
var popTitle = "주소 찾기";
var popOption = "width=570px, height=420px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px";
window.open(popUrl, popTitle ,popOption);
},
/* ========================
* 주소 검색 콜백 함수
-주소 검색 팝업의 검색결과를 전달 받는다.
======================== */
fnSearchAdresCallback: function(obj){
//검색결과 Set
var totalDetailAdres = ""; // 전체 상세 주소
totalDetailAdres += obj.addrDetail;
totalDetailAdres += obj.roadAddrPart2;
, removeData: () => {
if(confirm("삭제 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/removeUser.do"/>'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
,validate: function (flag) {
switch (flag) {
case 'update' : //수정
break;
default :
break;
}
return true;
}
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#btnClose").on('click', () => window.close());
$('#addrSearch').on('click', () => CmmPopup.zipPopup());
$('#btnSave').on('click', () => fnUserMgtPopup.modify());
$('#btnRemove').on('click', () => fnUserMgtPopup.removeData());
$('#btnPwdChg').on('click', () => {
var params = "";
var form = $('#userInfoVO');
var array = $(form).serializeArray();
var result = {};
if(array){
$(array).each(function(index, item){
if(this.value){
params += (this.name+"=" + this.value);
if(index < (array.length -1)) params += "&"
}
})
}
fnUserMgtPopup.pagePopup('pwd', '<c:url value="/framework/biz/mng/usr/UserRegMng_editPwd_popup.do"/>', params);
});
});
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
});
//화면에 출력
document.userInfoVO.houseAdres.value = obj.roadAddrPart1;
document.userInfoVO.zip.value = obj.zipNo;
document.userInfoVO.zip_view.value = obj.zipNo;
document.userInfoVO.detailAdres.value = totalDetailAdres;
}
}
</script>

@ -5,7 +5,7 @@
<validator:javascript formName="userManageVO" staticJavascript="true" xhtml="true" cdata="false"/>
<%--@elvariable id="userManageVO" type=""--%>
<form:form commandName="userManageVO" name="userManageVO">
<input type="hidden" name="zip_url" value="<c:url value='/_cmmn_/popup/ZipSearchList.do'/>" />
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${userManageVO.userTy}'/>:<c:out value='${userManageVO.emplyrId}'/>">
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->

@ -0,0 +1,358 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<script type="text/javascript" src="<c:url value="/framework/util/validator.do"/>"></script>
<validator:javascript formName="userInfoVO" staticJavascript="true" xhtml="true" cdata="false"/>
<%--@elvariable id="userInfoVO" type=""--%>
<form:form commandName="userInfoVO" name="userInfoVO">
<input type="hidden" name="zip_url" value="<c:url value='/framework/biz/cmm/popup/ZipSearchList.do'/>" />
<!-- 상세정보 사용자 삭제시 prameter 전달용 input -->
<input type="hidden" name="checkedIdForDel" id="checkedIdForDel" value="<c:out value='${userInfoVO.userTy}'/>:<c:out value='${userInfoVO.emplyrId}'/>">
<!-- 사용자유형정보 : password 수정화면으로 이동시 타겟 유형정보 확인용, 만약검색조건으로 유형이 포함될경우 혼란을 피하기위해 userTy명칭을 쓰지 않음-->
<input type="hidden" name="userTyForPassword" value="<c:out value='${userInfoVO.userTy}'/>" />
<div class="popup" style="min-width: 1100px;">
<div class="popup_inner" style="max-width: 1100px;">
<c:set var="pageTitle"><spring:message code="comUssUmt.deptUserManage.title"/></c:set>
<p class="pop_title">${pageTitle } <spring:message code="title.update" /></p>
<table class="tbl03">
<caption>${pageTitle } <spring:message code="title.update" /></caption>
<colgroup>
<col style="width: 20%;"/>
<col style="width: 30%;"/>
<col style="width: 20%;"/>
<col style="width: 30%;"/>
</colgroup>
<tbody>
<tr>
<th height="23" class="required">
<label>사용자아이디</label>
</th>
<td >
<form:input path="emplyrId" id="emplyrId" cssClass="txaIpt" size="20" maxlength="20" readonly="readonly" />
<form:errors path="emplyrId" cssClass="error"/>
<form:hidden path="uniqId" />
</td>
<th height="23" class="required">
<label>핸드폰번호</label>
</th>
<td >
<form:input path="mbtlnum" id="mbtlnum" title="핸드폰번호" cssClass="txaIpt" size="20" maxlength="15" />
<form:errors path="mbtlnum" cssClass="error" />
</td>
</tr>
<tr>
<th height="23" class="required">
<label>비밀번호힌트</label>
</th>
<td>
<code:select id="passwordHint" name="passwordHint" codeId="XIT022" title="비밀번호힌트" cls="selectBox" alt="비밀번호힌트"/>
<%--
<form:select path="passwordHint" id="passwordHint" title="비밀번호힌트">
<form:option value="" label="--선택하세요--" />
<form:options items="${passwordHint_result}" itemValue="code" itemLabel="codeNm" />
</form:select>
--%>
<form:errors path="passwordHint" cssClass="error" /></td>
<th height="23" class="required">
<label>비밀번호정답</label>
</th>
<td>
<form:input path="passwordCnsr" id="passwordCnsr" title="비밀번호정답" cssClass="txaIpt" size="50" maxlength="100" />
<form:errors path="passwordCnsr" cssClass="error" />
</td>
</tr>
<tr>
<th height="23" class="required">
<label>이름</label>
</th>
<td>
<form:input path="emplyrNm" id="emplyrNm" cssClass="txaIpt" size="20" maxlength="60" />
<form:errors path="emplyrNm" cssClass="error" />
</td>
<th height="23" class="required">
<label>소속기관</label>
</th>
<td>
<code:select id="pstinstCode" name="pstinstCode" codeId="XIT025" title="소속기관" cls="selectBox" alt="소속기관"/>
<%--
<form:select path="pstinstCode" id="pstinstCode" title="소속기관">
<form:option value="" label="--선택하세요--" />
<form:options items="${pstinstCode_result}" itemValue="code" itemLabel="codeNm" />
</form:select>
--%>
<form:errors path="pstinstCode" cssClass="error" />
</td>
</tr>
<tr>
<th height="23" class="required">
<label>조직코드</label>
</th>
<td>
<code:select type="ORGN" id="orgnztId" name="orgnztId" title="부서" cls="selectBox" alt="부서"/>
<%--
<form:select path="orgnztId" id="orgnztId" title="부서">
<form:option value="" label="--선택하세요--" />
<form:options items="${orgnztId_result}" itemValue="code" itemLabel="codeNm" />
</form:select>
--%>
<form:errors path="orgnztId" cssClass="error" />
</td>
<th height="23" class="required">
<label>직위명</label>
</th>
<td>
<input path="ofcpsNm" id="ofcpsNm" title="직위명" cssClass="txaIpt" size="20" maxlength="30" />
<%-- <form:errors path="ofcpsNm" cssClass="error" />--%>
</td>
</tr>
<tr>
<th height="23" class="required">
<label>이메일주소</label>
</th>
<td>
<form:input path="emailAdres" id="emailAdres" title="이메일주소" cssClass="txaIpt" size="20" maxlength="50" />
<form:errors path="emailAdres" cssClass="error" />
</td>
<th height="23" class="required">
<label>집전화지역번호</label>
</th>
<td>
<form:input path="areaNo" id="areaNo" style="width : 20%" title="areaNo" cssClass="txaIpt" size="5" maxlength="5" />
- <form:input path="houseMiddleTelno" style="width : 20%" title="houseMiddleTelno" id="houseMiddleTelno" cssClass="txaIpt" size="5" maxlength="5" />
- <form:input path="houseEndTelno" style="width : 20%" title="houseEndTelno" id="houseEndTelno" cssClass="txaIpt" size="5" maxlength="5" />
<form:errors path="areaNo" cssClass="error" />
<form:errors path="houseMiddleTelno" cssClass="error" />
<form:errors path="houseEndTelno" cssClass="error" />
</td>
</tr>
<tr>
<th height="23" class="required">
<label>사무실전화번호</label>
</th>
<td>
<form:input path="offmTelno" id="offmTelno" title="사무실전화번호" cssClass="txaIpt" size="20" maxlength="15" />
<form:errors path="offmTelno" cssClass="error" />
</td>
<th height="23" class="required">
<label>팩스번호</label>
</th>
<td>
<form:input path="fxnum" id="fxnum" cssClass="txaIpt" title="팩스번호" size="20" maxlength="15" />
<form:errors path="fxnum" cssClass="error" />
</td>
</tr>
<tr>
<th height="23" class="required">
주소
</th>
<td>
<form:input path="houseAdres" id="houseAdres" title="주소" style="width: 50%" cssClass="txaIpt" size="40" maxlength="100" readonly="true" />
<form:errors path="houseAdres" cssClass="error" />
<form:hidden path="zip" />
<a id ="addrSearch">
<img src="<c:url value='/resources/images/btn/icon_zip_search.gif'/>" alt="" />(우편번호 검색)
</a>
<form:errors path="zip" cssClass="error" />
<input name="zip_view" id="zip_view" type="hidden" title="우편번호" size="20" value="<c:out value='${userInfoVO.zip}'/>" maxlength="8" readonly="readonly" />
</td>
<th height="23" class="required">
<label>상세주소</label>
</th>
<td>
<input path="detailAdres" id="detailAdres" title="상세주소" cssClass="txaIpt" size="40" maxlength="50" />
<%-- <form:errors path="detailAdres" cssClass="error" />--%>
</td>
</tr>
<tr>
<th height="23" class="required">
<label>사용자상태코드</label>
</th>
<td>
<code:select id="userSttusCode" name="userSttusCode" codeId="XIT013" title="사용자상태" cls="selectBox" alt="사용자상태"/>
<%--
<form:select path="userSttusCode" id="userSttusCode" title="사용자상태코드">
<form:option value="" label="--선택하세요--" />
<form:options items="${userSttusCode_result}" itemValue="code" itemLabel="codeNm" />
</form:select>
--%>
<form:errors path="userSttusCode" cssClass="error" />
</td>
<th height="23" class="required">
<label>그룹아이디</label>
</th>
<td>
<code:select type="GROUP" id="groupId" name="grupId" title="그룹아이디" cls="selectBox" alt="그룹아이디"/>
<%--
<form:select path="groupId" id="groupId" title="그룹아이디">
<form:option value="" label="--선택하세요--" />
<form:options items="${groupId_result}" itemValue="code" itemLabel="codeNm" />
</form:select>
--%>
<form:errors path="groupId" cssClass="error" />
</td>
</tr>
</tbody>
</table>
<div class="popup_btn">
<span class="flr">
<c:choose>
<c:when test="${!empty userInfoVO.uniqId}">
<a href="#" class="btn blue" id="btnModify">변경</a>
<a href="#" class="btn red" id="btnRemove">삭제</a>
<a href="#" class="btn blue" id="btnPwdChg">비밀번호변경</a>
</c:when>
<c:otherwise>
<a href="#" class="btn blue" id="btnRegist">등록</a>
</c:otherwise>
</c:choose>
<a href="#" class="btn lightgray" id="btnClose">닫기</a>
</span>
</div>
<!-- //popup_btn -->
</div>
</div>
<!-- //popup -->
</form:form>
<script type="text/javascript" src="<c:url value='/resources/framework/js/egov/EgovZipPopup.js' />" ></script>
<script type="text/javaScript">
/**************************************************************************
* Global Variable
**************************************************************************/
/* *******************************
* function
******************************* */
const fnUserMgtPopup = {
search: () => {
}
,add: () => {
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
if(confirm("등록 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/addUser.do"'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
,modify: () => {
if(validateUserInfoVO(document.getElementById('userInfoVO'))) return;
if(confirm("변경 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/modifyUser.do"'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
, removeData: () => {
if(confirm("삭제 하시겠습니까?")){
cmmAjax({
url: '<c:url value="/framework/biz/mng/usr/removeUser.do"'
,data: $("#userInfoVO").serialize()
,success: () => {
window.opener.callBackSearch();
window.close();
}
})
}
}
,validate: function (flag) {
switch (flag) {
case 'update' : //수정
break;
default :
break;
}
return true;
}
};
/**************************************************************************
* event
**************************************************************************/
$(() => {
$("#btnClose").on('click', () => window.close());
$('#addrSearch').on('click', () => fnZipPopup());
$('#btnSave').on('click', () => fnUserMgtPopup.modify());
$('#btnRemove').on('click', () => fnUserMgtPopup.removeData());
$('#btnPwdChg').on('click', () => {
var params = "";
var form = $('#userInfoVO');
var array = $(form).serializeArray();
var result = {};
if(array){
$(array).each(function(index, item){
if(this.value){
params += (this.name+"=" + this.value);
if(index < (array.length -1)) params += "&"
}
})
}
fnUserMgtPopup.pagePopup('pwd', '<c:url value="/framework/biz/mng/usr/UserRegMng_editPwd_popup.do"/>', params);
});
});
<%-->
fnSearchAdres: function(){
var popUrl = '<c:url value="/_anonymous_/api/AdresSearch.do"/>';
var params = '?callback=fnUserMgtPopup.fnSearchAdresCallback';
popUrl += params;
var popTitle = "주소 찾기";
var popOption = "width=570px, height=420px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px";
window.open(popUrl, popTitle ,popOption);
},
fnSearchAdresCallback: function(obj){
//검색결과 Set
var totalDetailAdres = ""; // 전체 상세 주소
totalDetailAdres += obj.addrDetail;
totalDetailAdres += obj.roadAddrPart2;
//화면에 출력
document.userInfoVO.houseAdres.value = obj.roadAddrPart1;
document.userInfoVO.zip.value = obj.zipNo;
document.userInfoVO.zip_view.value = obj.zipNo;
document.userInfoVO.detailAdres.value = totalDetailAdres;
}
}
--%>
/**************************************************************************
* initialize
**************************************************************************/
$(document).ready(function(){
});
</script>

@ -51,7 +51,7 @@
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/xit-tui-grid.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/XitCmmnUtil.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/XitExportUtil.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmPopup.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmPopup.js"></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmDateUtil.js"></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmUtil.js"></script>

@ -1,6 +1,6 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>

@ -1,6 +1,6 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>

@ -2,10 +2,6 @@
<%@ taglib prefix="t" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<!-- XitFramework 공통 페이지 -->
<%@include file="/WEB-INF/jsp/framework/XitIncludeBase.jsp" %>
@ -14,7 +10,6 @@
<!DOCTYPE html>
<html>
<head>
<title>FIMS</title>
<!-- XitFramework CSS -->
<link rel="stylesheet" type="text/css" href="${ctx}/resources/framework/css/cmmn/common-style.css"/>
<!-- eGovFramework 템플릿 CSS -->

@ -27,7 +27,7 @@
<put-attribute name="footer" value="/WEB-INF/jsp/framework/layouts/tiles/base/footer.jsp" />
</definition>
<definition name="popup" template="/WEB-INF/jsp/framework/layouts/tiles/popup/layout-tiles-popup.jsp">
<definition name="popup" template="/WEB-INF/jsp/framework/layouts/tiles/popup/layout-tiles-popup.jsp">
<put-attribute name="content" value="" />
</definition>

@ -244,7 +244,7 @@ const CmmPopup = {
* @attribute {Boolean} (modal) useCenterLocation
*/
, useCenterLocation: true
},
}
/**
* modaless CmmPopup.open(). options에 추가적으로 사용할 option 값을 json 객체의 필드 형태로 넘기면 된다.
@ -256,7 +256,7 @@ const CmmPopup = {
* @param {String} method default 'get'
* @returns {object} 새로 열린 팝업창의 윈도우 객체.
*/
open: function (url, params, options, target = 'nonamePopup', method = 'get') {
,open: function (url, params, options, target = 'nonamePopup', method = 'get') {
let extendOptions = $.extend({}, this.defaultOpenOptions, options);
// 가운데 정렬 계산.
@ -288,7 +288,45 @@ const CmmPopup = {
}
if (popup) popup.focus();
return popup;
},
}
/**
* <pre>
* 주소 검색 팝업 호출
* 결과 return callback 함수로 fnCallbackZipSearch 사용
* fnCallbackZipSearch 함수는 var 선언
*
* ex)
* var fnCallbackZipSearch = (obj) => fnSetZipSearch(obj, document.userInfoVO);
* </pre>
*/
,zipPopup: function(){
let popUrl = '/_anonymous_/api/AdresSearch.do';
const params = {callback: 'fnCallbackZipSearch'};
const popTitle = "주소 찾기";
const popOption = {width: 570, height:420};
this.open(popUrl, params ,popOption, '주소 검색');
}
/**
* <pre>
* 주소 검색 Popup 결과를 set하는 콜백 함수
* @param {Object} zipObj - 주소 검색 결과
* @param {Object} tgtObj - 주소 검색 결과값을 Set할 객체(houseAdres, zip, zip_view, detailAdres)
*
* ex)
* var fnCallbackZipSearch = (obj) => CmmPopup.fnSetZipSearch(obj, document.userInfoVO);
* </pre>
*/
,setZipSearch: function(zipObj, tgtObj){
//화면에 출력
tgtObj.houseAdres.value = zipObj.roadAddrPart1;
tgtObj.zip.value = zipObj.zipNo;
tgtObj.zip_view.value = zipObj.zipNo;
tgtObj.detailAdres.value = zipObj.addrDetail+zipObj.roadAddrPart2;
}
/**
* modal CmmPopup.showModalDialog(). options에 추가적으로 사용할 option 값을 json 객체의 필드 형태로 넘기면 된다.
@ -298,7 +336,7 @@ const CmmPopup = {
* @param {Object} options 추가적으로 사용할 option 값을 담은 json 객체
* @returns {object} 자식창에서 리턴하는 .
*/
showModalDialog: function (url, argument, options) {
,showModalDialog: function (url, argument, options) {
let extendOptions = $.extend({}, this.defaultModalDaialogOptions, options);
// 가운데 정렬 계산.
@ -317,7 +355,7 @@ const CmmPopup = {
}
return window.showModalDialog(url, argument, optionsString);
},
}
/**
* 현재 브라우저에서 주어진 높이와 넓이를 가지는 창이 가운데에 위치되는 좌표 값을 구한다.
@ -326,7 +364,7 @@ const CmmPopup = {
* @param {Integer} height 높이.
* @returns {object} 해당 창이 가운데에 위치되는 좌표 .
*/
getCenterPosition : function(width, height) {
,getCenterPosition : function(width, height) {
const offsetX = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft;
const offsetY = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop;
const browserWidth = typeof window.outerWidth!='undefined' ? window.outerWidth : document.documentElement.clientWidth;
@ -335,7 +373,7 @@ const CmmPopup = {
const left = parseInt(shownBrowserWidth + ((browserWidth - width) / 2), 10);
const top = parseInt(offsetY + ((browserHeight - height) / 2), 10);
return {left:left, top:top};
},
}
/**
* 폼생성
@ -346,7 +384,7 @@ const CmmPopup = {
* @param {Object} data 서버로 전송할 parameter data
* @returns {object} 새로 열린 팝업창의 윈도우 객체.
*/
_getForm: function(url, target, method, data) {
,_getForm: function(url, target, method, data) {
if($("#PopupForm").length) {
$("#PopupForm").remove();
}

@ -395,3 +395,4 @@ const setDateFmt = (srcDate, delimiter = '-') => {
return srcDate;
}
}

Loading…
Cancel
Save