Compare commits
1 Commits
dfea91edc8
...
23ea0d9504
Author | SHA1 | Date |
---|---|---|
kkw29 | 23ea0d9504 | 1 year ago |
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class AddrViewController {
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class BotcomViewController {
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class BotmoniViewController {
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class GudViewController {
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class RcpViewController {
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class Rcpv1ViewController {
|
|
||||||
}
|
|
@ -1,168 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
import com.icomsys.main_vm.biz.common.login.res.UserVo;
|
|
||||||
import com.icomsys.main_vm.biz.common.login.service.LoginService;
|
|
||||||
import com.icomsys.main_vm.common.code.enumresource.RoleResource;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
|
||||||
|
|
||||||
@Controller
|
|
||||||
@Slf4j
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class SystemViewController {
|
|
||||||
|
|
||||||
private final LoginService loginService;
|
|
||||||
|
|
||||||
@GetMapping(value = {"/view/signin", "/"})
|
|
||||||
public ModelAndView loginUsrView() {
|
|
||||||
return new ModelAndView("layout/signin");
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping(value = "/view/changePwd")
|
|
||||||
public String changePwd() {
|
|
||||||
return "layout/changePwd";
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/view/admin/common/system/oprmngcode/manage.do")
|
|
||||||
public String OprmngcodeView() {
|
|
||||||
return "layout/adm/common/system/commoncode";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 고객사관리 JSP 페이지 랜더링
|
|
||||||
* @Description 고객사관리 JSP 랜더링하는 컨트롤러
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/cust/manage.do")
|
|
||||||
public String CustListView() {
|
|
||||||
return "layout/adm/common/system/cust";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 고객사정보를 업데이트하는 API
|
|
||||||
* @Description 고객사정보를 업데이트하는 API
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/cust/update")
|
|
||||||
public String custUpdate(@RequestParam(name = "custCode", required = true) String custCode) {
|
|
||||||
return "layout/adm/common/system/custUpdate";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 고객사 생성
|
|
||||||
* @Description 고객사를 생성하는 페이지 랜더링
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/cust/insert")
|
|
||||||
public String CustInsert() {
|
|
||||||
log.info("CustInsert Controller");
|
|
||||||
return "layout/adm/common/system/custInsert";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 권한그룹의 페이지랜딩 컨트롤러
|
|
||||||
* @Description 권한그룹의 페이지를 랜딩함
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/groupAuth/manage.do")
|
|
||||||
public String GroupAuthView() {
|
|
||||||
log.info("group Auth View controller");
|
|
||||||
return "layout/adm/common/system/groupAuth";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 권한그룹의 상세내역 조회페이지 랜더링
|
|
||||||
* @Description 권한그룹 상세보기 JSP를 랜더링함.
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/groupAuth/view")
|
|
||||||
public String GroupAuthView(@RequestParam(name = "custCode", required = true) String custCode) {
|
|
||||||
log.info("view Controller - {}", custCode);
|
|
||||||
return "layout/adm/common/system/groupAuthView";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 권한그룹을 업데이트페이지 랜더링
|
|
||||||
* @Description 권한그룹 업데이트 JSP페이지 랜더링
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/groupAuth/update")
|
|
||||||
public String GroupAuthUpdate() {
|
|
||||||
log.info("GroupAuthUpdate Controller");
|
|
||||||
return "layout/adm/common/system/groupAuthUpdate";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 삭제한 메뉴입니다
|
|
||||||
*/
|
|
||||||
|
|
||||||
@GetMapping("/view/admin/common/system/policyMenu/manage.do")
|
|
||||||
public String PolicyMenuView(){
|
|
||||||
return "layout/adm/common/system/policyMenu";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 서비스그룹 랜딩페이지
|
|
||||||
* @Description 시스템운영자는 고객사리스트 -> 상위서비스리스트, 유저어드민은, 현재 사용중인 메인 서비스의 상세페이지 랜더링
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/serviceGroup/manage.do")
|
|
||||||
public String ServiceGroupView() {
|
|
||||||
UserVo uv = loginService.getUserVo();
|
|
||||||
if (uv.getRoleVal().equals(RoleResource.SYSTEMADMIN.getName())) {
|
|
||||||
return "layout/adm/common/system/serviceGroupList";
|
|
||||||
} else {
|
|
||||||
return "layout/adm/common/system/serviceGroupView";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 서비스그룹 리스트
|
|
||||||
* @Description 시스템운영자는 고객사리스트 -> 상위서비스리스트 데이터 조회
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/serviceGroup/view")
|
|
||||||
public String ServiceGroupView(@RequestParam(name = "serviceGroup", required = false) String serviceGroup) {
|
|
||||||
return "layout/adm/common/system/serviceGroupView";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 어드민 시스템관리 운영자 관리
|
|
||||||
* @Description 사용자 관리와 코멘트 같음.
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/userAdmin/manage.do")
|
|
||||||
public String UserAdminView() {
|
|
||||||
return "layout/adm/common/system/userAdmin";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Name 유저리스트페이지
|
|
||||||
* @Description 어드민 시스템관리 유저관리 JSP랜딩페이지
|
|
||||||
* @Author JangWonSeok
|
|
||||||
* @CreateDate 2023. 03. 09.
|
|
||||||
*/
|
|
||||||
@GetMapping("/view/admin/common/system/user/manage.do")
|
|
||||||
public String UserView() {
|
|
||||||
return "layout/adm/common/system/user";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
package com.icomsys.main_vm.biz.common.view;
|
|
||||||
|
|
||||||
public class VdoViewController {
|
|
||||||
}
|
|
@ -0,0 +1,587 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>{{title}}</title>
|
||||||
|
<meta charset="UTF-8" http-equiv="Content-Type">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0">
|
||||||
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="format-detection" content="telephone=no" />
|
||||||
|
|
||||||
|
<!-- TODO: search engine info -->
|
||||||
|
<meta name="robots" content="ICOMSYS" />
|
||||||
|
<meta name="keywords" content="ICOMSYS" />
|
||||||
|
<meta name="title" content="ICOMSYS" />
|
||||||
|
<meta name="description" content="ICOMSYS" />
|
||||||
|
|
||||||
|
<!-- TODO: social url link image -->
|
||||||
|
<meta property="og:url" content="">
|
||||||
|
<meta property="og:title" content="ICOMSYS">
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:image" content="">
|
||||||
|
<meta property="og:description" content="ICOMSYS 홈페이지입니다.">
|
||||||
|
|
||||||
|
<!-- TODO: favicon -->
|
||||||
|
<link rel="icon" href="favicon.ico" type="favicon.ico" />
|
||||||
|
|
||||||
|
<!-- TODO: import -->
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/jquery-ui.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/bootstrap-datetimepicker.min.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/bootstrap-tagsinput.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/datepicker3.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/jstree.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/datatables.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/select.dataTables.css">
|
||||||
|
<link rel="stylesheet" href="assets/css/lib/nice-select.css">
|
||||||
|
|
||||||
|
<!-- TODO: 20230116 아래는 신규 라이브러리 import 입니다 추가해주세요.-->
|
||||||
|
<link href="assets/css/lib/select2.css" rel="stylesheet" />
|
||||||
|
<script src="assets/js/lib/jquery-2.2.1.min.js"></script>
|
||||||
|
<script src="assets/js/lib/moment.js"></script>
|
||||||
|
<script src="assets/js/lib/jquery-ui.js"></script>
|
||||||
|
<script src="assets/js/lib/bootstrap.min.js"></script>
|
||||||
|
<script src="assets/js/lib/bootstrap-datepicker.js"></script>
|
||||||
|
<script src="assets/js/lib/jquery.MultiFile.js"></script>
|
||||||
|
<script src="assets/js/lib/jstree.js"></script>
|
||||||
|
<script src="assets/js/lib/select.dataTables.js"></script>
|
||||||
|
<script src="assets/js/lib/sweetalert.js"></script>
|
||||||
|
<script src="assets/js/lib/bootstrap-datetimepicker.js"></script>
|
||||||
|
<script src="assets/js/lib/datatables.js"></script>
|
||||||
|
<script src="assets/js/lib/bootstrap-tagsinput.js"></script>
|
||||||
|
<script src="assets/js/lib/jquery.nice-select.js"></script>
|
||||||
|
<script src="./assets/js/scripts.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- TODO: 20230116 아래는 Diagram 페이지 작성을 위한 신규 라이브러리이니, 개발에 포함시키기 바랍니다. css순서 지켜주세요-->
|
||||||
|
<script src="assets/js/diagram/dx-diagram.min.js"></script>
|
||||||
|
<script src="assets/js/diagram/dx-all.min.js"></script>
|
||||||
|
<link rel='stylesheet' href='assets/css/diagram/dx.custom.css'>
|
||||||
|
<link rel='stylesheet' href='assets/css/diagram/dx-diagram.css'>
|
||||||
|
<!-- <link rel='stylesheet' href='assets/css/diagram/indigo-pink.css'> -->
|
||||||
|
<link rel="stylesheet" href="./assets/css/style.css">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- TODO: 20230116 해당 빌보드 차트는 퍼블 환경 동기화를 위한 것으로 임의로 import 한 것 입니다. -->
|
||||||
|
<script src="assets/js/lib/billboard.pkgd.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="./assets/css/lib/billboard.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>ICOMSYS ADMIN</h1>
|
||||||
|
|
||||||
|
<div class="skip_navigation">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="#Content" class="go_content">본문 바로가기</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Gnb">메뉴 바로가기</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<div class="header_wrap">
|
||||||
|
<div class="logo">
|
||||||
|
<a href="main.html">
|
||||||
|
<img src="assets/images/logo.png" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="global-select-ai sel_box">
|
||||||
|
<div class="global-store-logo"><img class="ai-store-logo" src="assets/images/img-bot.png" alt=""></div>
|
||||||
|
<div class="global-store-slt">
|
||||||
|
<select class="wide">
|
||||||
|
<option value="1" data-logo="assets/images/img-bot.png">우리가게 Ai</option>
|
||||||
|
<option value="2" data-logo="assets/images/img-counselor.jpg">너네가게 Ai</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('.global-select-ai select').each(function () {
|
||||||
|
$(this).niceSelect();
|
||||||
|
$(this).on('change', function () {
|
||||||
|
const selected = $(this).find('option:selected');
|
||||||
|
const selectedGlobalStoreImg = selected.data('logo');
|
||||||
|
$('.ai-store-logo').attr('src', selectedGlobalStoreImg);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="login_info">
|
||||||
|
<div class="user_name">
|
||||||
|
<input type="hidden" id="naviseq" value="501">
|
||||||
|
<a class="user_name_btn" href="#">
|
||||||
|
<em class="user_name_btn">유플러스어드민</em> 님 반갑습니다.
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="user_info">
|
||||||
|
<ul class="logininfotitle">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#" class="user_info_btn" id="pwdChange">비밀번호변경</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#" class="user_info_btn" id="logout">로그아웃</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<a href="/adm/main/pdfdownload?name=Ourstore_Ai_Manager_User_Manual_v1.0.pdf" target="_blank"
|
||||||
|
class="user_info_btn menual" id="pdfdown">매뉴얼다운로드</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<div class="lnb_menu_btn_area open">
|
||||||
|
<a href="#" class="lnb_menu_menu">
|
||||||
|
<p>메뉴닫기</p>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<nav>
|
||||||
|
<ul class="lnb">
|
||||||
|
<li>
|
||||||
|
<a href="#">시스템관리</a>
|
||||||
|
<ul class="depth2">
|
||||||
|
<li>
|
||||||
|
<a href="A010101.html">
|
||||||
|
<span>고객사 관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<a href="../../../../../../../../../../Users/dlthf/Downloads/A010401.html">
|
||||||
|
<span>서비스그룹 관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="../../../../../../../../../../Users/dlthf/Downloads/A010401.html">
|
||||||
|
<span>권한별메뉴</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="A030101.html">
|
||||||
|
<span>권한별메뉴관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="A030301.html">
|
||||||
|
<span>권한그룹관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="A040101.html">
|
||||||
|
<span>사용자관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="A050101.html">
|
||||||
|
<span>공통코드관리</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#">시나리오 관리</a>
|
||||||
|
<ul class="depth2">
|
||||||
|
<li>
|
||||||
|
<a href="B010101.html">시나리오 관리</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="B020101.html">시나리오 조회</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="B020201.html">시나리오 편집</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="B030101.html">API Node 관리</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="B040101.html">Common Node 관리</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#">작업이력 관리</a>
|
||||||
|
<ul class="depth2">
|
||||||
|
<li>
|
||||||
|
<a href="C010101.html">작업이력 조회</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#">통계 관리</a>
|
||||||
|
<ul class="depth2">
|
||||||
|
<li>
|
||||||
|
<a href="D020101.html">인텐트 통계(날짜별)</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="D020201.html">인텐트 통계(항목별)</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="D030101.html">시나리오 통계(날짜별)</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="D030201.html">시나리오 통계(항목별)</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="D030301.html">시나리오 이탈 통계</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="D040101.html">콜 통계</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#">대화 관리</a>
|
||||||
|
<ul class="depth2">
|
||||||
|
<li>
|
||||||
|
<a href="E010101.html">대화이력</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="E020101.html">인텐트 관리</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="E030101.html">동의어 관리</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="E040101.html">금칙어 관리</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#testTb1").dataTable({
|
||||||
|
"autoWidth": false,
|
||||||
|
"paging": true,
|
||||||
|
"pagingType": "full_numbers",
|
||||||
|
"ordering": true,
|
||||||
|
"info": false,
|
||||||
|
"filter": false,
|
||||||
|
"lengthChange": true,
|
||||||
|
"dom": 'rt<"bottom"fip><"clear">',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<section id="Content" class="bot_common">
|
||||||
|
<div class="location">
|
||||||
|
<ul>
|
||||||
|
<li class="home"><a href="#">HOME</a></li>
|
||||||
|
<li><a href="#">Loacation</a></li>
|
||||||
|
<li><a href="#">Loacation</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- TODO: 래부터 신규 컨텐츠 마크업 입니다. -->
|
||||||
|
<div class="sub_cont">
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">공통코드관리</h2>
|
||||||
|
</div>
|
||||||
|
<div class="fr">
|
||||||
|
<div class="btn_wrap fl">
|
||||||
|
<a href="#" class="btn">조회</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table class="search block">
|
||||||
|
<colgroup>
|
||||||
|
<col width="140px">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="140px">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="140px">
|
||||||
|
<col width="auto">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th class="tl">시나리오그룹</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide">
|
||||||
|
<option value="">--선택해주세요--</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th class="tl">대분류</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide">
|
||||||
|
<option value="">--선택해주세요--</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th class="tl">중분류</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide">
|
||||||
|
<option value="">--선택해주세요--</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">공통코드 리스트</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn grey">삭제</a>
|
||||||
|
<a href="#" rel="createCommonCodeModal" class="btn line modalLoad">신규등록</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table id="testTb1" class="click">
|
||||||
|
<colgroup>
|
||||||
|
<col width="70px">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="all" id="chk00" value="">
|
||||||
|
<label for="chk00"></label>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th>시나리오그룹</th>
|
||||||
|
<th>대분류</th>
|
||||||
|
<th>중분류</th>
|
||||||
|
<th>설명</th>
|
||||||
|
<th>등록자</th>
|
||||||
|
<th>등록일시</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr rel="modifyCommonCodeModal" class="modalLoad">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk01" value="">
|
||||||
|
<label for="chk01"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>{{string}}</td>
|
||||||
|
<td>{{string}}</td>
|
||||||
|
<td>{{string}}</td>
|
||||||
|
<td>{{string}}</td>
|
||||||
|
<td>{{string}}</td>
|
||||||
|
<td>{{YYYY-MM-DD HH:MM:SS}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- modal :: 공통코드 신규등록 -->
|
||||||
|
<div class="modal" id="createCommonCodeModal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>공통코드 신규등록</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">대분류</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="그룹명을 입력해주세요.">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">중분류</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="그룹 설명을 입력해주세요.">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">설명</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<textarea name="" id="" cols="30" rows="10"></textarea>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- modal :: 공통코드 수정 -->
|
||||||
|
<div class="modal" id="modifyCommonCodeModal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>공통코드 수정</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">시나리오그룹명</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="서비스구룹테스트2" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">시나리오그룹코드</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="ICS_RCP_GROUP2" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">코드타입</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide">
|
||||||
|
<option value="">--선택해주세요--</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">대분류</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="대분류" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">중분류</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="중분류" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">속성</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="qwe">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">속성2</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="qwe">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">속성3</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" value="qwe">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<h4><em class="">설명</em></h4>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<textarea name="" id="" cols="30" rows="10" style="height:100px"></textarea>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,526 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>운영관리코드 설정</title>
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/topLinkTag.jsp" %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ICOMSYS ADMIN</h1>
|
||||||
|
|
||||||
|
<div class="skip_navigation">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="#Content" class="go_content">본문 바로가기</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Gnb">메뉴 바로가기</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/header.jsp" %>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<c:import url="/adm/menu/getLnbMenu.do" />
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready( function () {
|
||||||
|
|
||||||
|
// 고객사 조회
|
||||||
|
$('#btnSearchOpr').on('click',function() {
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 신규 운영관리 코드
|
||||||
|
$('#btnSaveOpr').on('click',function() {
|
||||||
|
fncCreateOprInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 고객사 수정
|
||||||
|
$('#btnEditOpr').on('click',function() {
|
||||||
|
fncUpdateOprInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 고객사 삭제
|
||||||
|
$('#btnDelOprMngCode').on('click',function() {
|
||||||
|
fncDeleteOprMngCode();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 추가 modal
|
||||||
|
$('#btnRegModal').on('click',function() {
|
||||||
|
// 초기화
|
||||||
|
$('#oprMngCode').val('');
|
||||||
|
$('#dtmf').val('');
|
||||||
|
$('#routeUrl').val('');
|
||||||
|
$('#oprMngName').val('');
|
||||||
|
$('#custCode').val('').prop("selected", true);
|
||||||
|
$('#custCode').niceSelect('update');
|
||||||
|
$('#custCode').empty();
|
||||||
|
$('#serviceCode').val('').prop("selected", true);
|
||||||
|
$('#serviceCode').niceSelect('update');
|
||||||
|
$('#serviceCode').empty();
|
||||||
|
|
||||||
|
// 고객사 코드 목록
|
||||||
|
var custCodeOpt;
|
||||||
|
for(var i=0; i<custList.length; i++) {
|
||||||
|
custCodeOpt+= '<option value='+custList[i].custCode+'>'+custList[i].custCode+'</option>'
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#custCode').append(custCodeOpt);
|
||||||
|
$('#custCode').niceSelect('update');
|
||||||
|
|
||||||
|
// 서비스 코드 목록
|
||||||
|
var serviceCodeOpt;
|
||||||
|
for(var i=0; i<serviceList.length; i++) {
|
||||||
|
serviceCodeOpt+= '<option value='+serviceList[i].serviceCode+'>'+serviceList[i].serviceCode+'</option>'
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#serviceCode').append(serviceCodeOpt);
|
||||||
|
$('#serviceCode').niceSelect('update');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 고객사 리스트 그리기
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
var serviceList;
|
||||||
|
var custList;
|
||||||
|
|
||||||
|
function fncKeyPresshandler(e) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 수정 modal 값 채우기
|
||||||
|
function fncViewInfoTr(tr){
|
||||||
|
var oprMngCode = $(tr).data('oprMngCode');
|
||||||
|
var editCustCode = $(tr).data('custCode');
|
||||||
|
var oprMngName = $(tr).data('dtmf');
|
||||||
|
var editDtmf = $(tr).data('dtmf');
|
||||||
|
var editRouteUrl= $(tr).data('routeUrl');
|
||||||
|
|
||||||
|
$('#editOprMngCode').val(oprMngCode);
|
||||||
|
$('#editCustCode').val(editCustCode);
|
||||||
|
$('#editOprMngName').val(oprMngName);
|
||||||
|
$('#editDtmf').val(editDtmf);
|
||||||
|
$('#editRouteUrl').val(editRouteUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 고객사 리스트 그리기
|
||||||
|
function fncSearchOprMngCode() {
|
||||||
|
$('#listTable tbody').empty();
|
||||||
|
|
||||||
|
var param = "keyword=" + $('#keyword').val();
|
||||||
|
var resultTr = '';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/searchOprMngCode.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data){
|
||||||
|
serviceList = data.serviceList;
|
||||||
|
custList = data.custList;
|
||||||
|
|
||||||
|
$.each(data.nMap, function(i, val){
|
||||||
|
i += 1;
|
||||||
|
resultTr += '<tr class="modalLoad" rel="reg_edit_modal" data-route-url="' + val.routeUrl + '" data-cust-code="' + val.custCode + '" data-opr-mng-name="' + val.oprMngName + '"data-dtmf="' + val.dtmf +'"data-opr-mng-code="' + val.oprMngCode + '">';
|
||||||
|
resultTr += ' <td>'+ i +'</td>';
|
||||||
|
resultTr += ' <td class="oprMngCodes tl">' + val.oprMngCode + '</td>';
|
||||||
|
resultTr += ' <td>' + val.custCode + '</td>';
|
||||||
|
resultTr += ' <td>' + val.serviceCode + '</td>';
|
||||||
|
resultTr += ' <td>' + val.oprMngName + '</td>';
|
||||||
|
resultTr += ' <td>' + val.dtmf + '</td>';
|
||||||
|
resultTr += ' <td>' + val.routeUrl + '</td>';
|
||||||
|
resultTr += ' <td>' + moment(val.registDate).format('YYYY-MM-DD') + '</td>';
|
||||||
|
resultTr += '</tr>';
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#listTable tbody').append(resultTr);
|
||||||
|
|
||||||
|
// 고객사 수정 modal open event
|
||||||
|
$('#listTable tbody tr').on('dblclick', function() {
|
||||||
|
fncViewInfoTr($(this));
|
||||||
|
});
|
||||||
|
|
||||||
|
// scripts.js : 고객사 list modal 연결
|
||||||
|
modalUi();
|
||||||
|
|
||||||
|
// scripts.js : 체크 박스 체크에 따른 '모두 체크' 변경
|
||||||
|
checkAllChecked();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 신규 고객사 저장
|
||||||
|
function fncCreateOprInfo() {
|
||||||
|
|
||||||
|
if($('#custCode').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "고객사 코드는 필수 항목입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
} else if($('#serviceCode').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "서비스 코드는 필수 항목입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
} else if($('#oprMngName').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "운영관리코드 이름은 필수 항목입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
} else if ($('#dtmf').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "dtmf는 필수 항목입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
} else if ($('#routeUrl').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "라우팅url는 필수 항목입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
var isAready;
|
||||||
|
$('.oprMngCodes').each(function(){
|
||||||
|
var existOprMngCode = $(this).text();
|
||||||
|
if (existOprMngCode === $('#oprMngCode').val()){
|
||||||
|
isAready = "Y";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (isAready == 'Y') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "이미 존재하는 운영코드입니다.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var param = "oprMngCode=" + $('#oprMngCode').val();
|
||||||
|
param += "&custCode=" + $('#custCode').val();
|
||||||
|
param += "&serviceCode=" + $('#serviceCode').val();
|
||||||
|
param += "&oprMngName=" + $('#oprMngName').val();
|
||||||
|
param += "&dtmf=" + $('#dtmf').val();
|
||||||
|
param += "&routeUrl=" + $('#routeUrl').val();
|
||||||
|
param += "&useYn=Y";
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/createOprMngCode.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "저장되었습니다.",
|
||||||
|
icon: "success",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_modal a.close').trigger('click');
|
||||||
|
|
||||||
|
// 고객사 리스트 그리기
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 기존 고객사 수정
|
||||||
|
function fncUpdateOprInfo() {
|
||||||
|
|
||||||
|
if($('#editDtmf').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "DTMF 값을 입력해주세요.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if($('#editRouteUrl').val() == '') {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "라우팅 url을 입력해주세요.",
|
||||||
|
icon: "warning",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
var param = "oprMngCode=" + $('#editOprMngCode').val();
|
||||||
|
param += "&custCode=" + $('#editCustCode').val();
|
||||||
|
param += "&dtmf=" + $('#editDtmf').val();
|
||||||
|
param += "&routeUrl=" + $('#editRouteUrl').val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/updateOprMngCode.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "저장되었습니다.",
|
||||||
|
icon: "success",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_edit_modal a.close').trigger('click');
|
||||||
|
|
||||||
|
// 고객사 리스트 그리기
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 고객사 삭제
|
||||||
|
function fncDeleteOprMngCode() {
|
||||||
|
var param = "oprMngCode=" + $('#editOprMngCode').val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/deleteOprMngCode.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swal({
|
||||||
|
title: "Information",
|
||||||
|
text: "삭제되었습니다.",
|
||||||
|
icon: "success",
|
||||||
|
button: "확인"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_edit_modal a.close').trigger('click');
|
||||||
|
// 고객사 리스트 그리기
|
||||||
|
fncSearchOprMngCode();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<section id="Content" class="system_management">
|
||||||
|
<div class="location">
|
||||||
|
<ul>
|
||||||
|
<li class="home"><a href="#">HOME</a></li>
|
||||||
|
<li><a href="#">시스템관리</a></li>
|
||||||
|
<li><a href="#">운영관리코드 설정</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="sub_cont menu06_01_04">
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">운영관리코드 조회</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnSearchOpr" class="btn">조회</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table class="search">
|
||||||
|
<colgroup>
|
||||||
|
<col width="130px">
|
||||||
|
<col width="auto">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th class="tl">키워드</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="키워드를 입력해주세요." id="keyword" name="code" class="" onkeypress="return fncKeyPresshandler(event);">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">운영관리코드 리스트</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" rel="reg_modal" class="btn modalLoad" id="btnRegModal">추가</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<form id="custListForm">
|
||||||
|
<table id="listTable" class="">
|
||||||
|
<colgroup>
|
||||||
|
<col width="60px">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="100px">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>NO</th>
|
||||||
|
<th>운영관리 코드</th>
|
||||||
|
<th>고객사 코드</th>
|
||||||
|
<th>서비스 코드</th>
|
||||||
|
<th>운영관리코드 이름</th>
|
||||||
|
<th>DTMF</th>
|
||||||
|
<th>라우팅url</th>
|
||||||
|
<th>등록일</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- modal :: 고객사 등록 팝업 -->
|
||||||
|
<div class="modal" id="reg_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>운영관리코드 신규등록</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">운영관리코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="oprMngCode" placeholder="운영관리코드 이름을 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">고객사 코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select id="custCode" name="custCode" class="wide">
|
||||||
|
<option value="">고객사 코드를 선택해주세요.</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">서비스 코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select id="serviceCode" name="serviceCode" class="wide">
|
||||||
|
<option value="">서비스 코드를 선택해주세요.</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">운영관리코드 이름</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="oprMngName" placeholder="운영관리코드 이름을 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">dtmf</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="dtmf" placeholder="DTMF를 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">라우팅url</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="routeUrl" placeholder="라우팅url을 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn" id="btnSaveOpr" name="btnSaveOpr">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 고객사 등록 팝업 end -->
|
||||||
|
|
||||||
|
<!-- modal :: 고객사 수정 팝업 -->
|
||||||
|
<div class="modal" id="reg_edit_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>운영관리코드 수정</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">운영관리코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="editOprMngCode" name="required" readonly>
|
||||||
|
<input type="hidden" id="editCustCode">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">dtmf</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="editDtmf" placeholder="DTMF를 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">라우팅url</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="editRouteUrl" placeholder="라우팅url을 입력해주세요" name="required">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnEditOpr" class="btn">저장</a>
|
||||||
|
<a href="#" class="btn grey" id="btnDelOprMngCode">삭제</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 고객사 수정 팝업 end -->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,696 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>사용자관리</title>
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/topLinkTag.jsp" %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ICOMSYS ADMIN</h1>
|
||||||
|
|
||||||
|
<div class="skip_navigation">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="#Content" class="go_content">본문 바로가기</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Gnb">메뉴 바로가기</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/header.jsp" %>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<c:import url="/adm/menu/getLnbMenu.do" />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$("#selectCustName").on('change', function() {
|
||||||
|
$('#custName').val($("#selectCustName option:selected").val());
|
||||||
|
});
|
||||||
|
|
||||||
|
fncRetrieveUserList();
|
||||||
|
$("#testTb1").DataTable().on( 'select.dt', function ( e, dt, type, indexes ) {
|
||||||
|
var rowData = $("#testTb1").DataTable().row( indexes ).data();
|
||||||
|
$("#mdUserId").val(rowData.userId);
|
||||||
|
$("#mdUserName").val(rowData.userName);
|
||||||
|
$("#mdSelectCustName").val(rowData.custCode);
|
||||||
|
$("#mdSelectAuthName").val(rowData.authCode);
|
||||||
|
$("#mdUseFlag").val(rowData.useFlag);
|
||||||
|
$("#mdEMail").val(rowData.eMail);
|
||||||
|
$("#mdMobileNo").val(rowData.mobileNo);
|
||||||
|
$("#mdSystemUserId").val(rowData.systemUserId);
|
||||||
|
|
||||||
|
$('#mdSelectCustName').niceSelect('update');
|
||||||
|
$('#mdSelectAuthName').niceSelect('update');
|
||||||
|
$('#mdUseFlag').niceSelect('update');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("a.close").on('click', function(){
|
||||||
|
// 수정 Modal
|
||||||
|
$("#mdUserId").val('');
|
||||||
|
$("#mdUserName").val('');
|
||||||
|
$("#mdMobileNo").val('');
|
||||||
|
$("#mdEMail").val('');
|
||||||
|
$("#mdSelectCustName").val('');
|
||||||
|
$("#mdSelectAuthName").val('');
|
||||||
|
$("#mdUseFlag").val('N');
|
||||||
|
$("#mdSystemUserId").val('');
|
||||||
|
|
||||||
|
$('#mdSelectCustName').niceSelect('update');
|
||||||
|
$('#mdSelectAuthName').niceSelect('update');
|
||||||
|
$('#mdUseFlag').niceSelect('update');
|
||||||
|
|
||||||
|
// 등록 Modal
|
||||||
|
$("#mdNewUserId").val('');
|
||||||
|
$("#mdNewUserName").val('');
|
||||||
|
$("#mdNewMobileNo").val('');
|
||||||
|
$("#mdNewEMail").val('');
|
||||||
|
$("#mdNewSelectCustName").val('');
|
||||||
|
$("#mdNewSelectAuthName").val('');
|
||||||
|
$("#mdNewUseFlag").val('N');
|
||||||
|
$("#password").val('');
|
||||||
|
$("#password2").val('');
|
||||||
|
|
||||||
|
$('#mdNewSelectCustName').niceSelect('update');
|
||||||
|
$('#mdNewSelectAuthName').niceSelect('update');
|
||||||
|
$('#mdNewUseFlag').niceSelect('update');
|
||||||
|
})
|
||||||
|
// $(".modal .list").attr("style")
|
||||||
|
});
|
||||||
|
|
||||||
|
function fncUserIdKeyPress(e){
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
checkAreadyId();
|
||||||
|
} else {
|
||||||
|
$("#checkedId").val('')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncKeyPress(e){
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
fncRetrieveUserList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncRetrieveUserList(){
|
||||||
|
if($('#custName').val()=='' || $('#custName').val() == 'undefined'){
|
||||||
|
swalAlert("info", '고객사명은 필수 항목입니다.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var param = "siteCode="+$("#custName").val();
|
||||||
|
param += "&searchCondition=" + $("#searchCondition option:selected").val();
|
||||||
|
param += "&searchKeyword=" + $("#searchKeyword").val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/adm/egov/user/retrieveUserList.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
fncDrawUserList(data.nMap);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncDrawUserList(data){
|
||||||
|
var cnt = 0;
|
||||||
|
$("#testTb1").dataTable({
|
||||||
|
"autoWidth": false,
|
||||||
|
"paging": true,
|
||||||
|
"pagingType" : "full_numbers",
|
||||||
|
"ordering": true,
|
||||||
|
"info": false,
|
||||||
|
"filter": false,
|
||||||
|
"lengthChange": true,
|
||||||
|
"dom": 'rt<"bottom"fip><"clear">',
|
||||||
|
"pageLength" : '10',
|
||||||
|
"data": data,
|
||||||
|
"destroy": true,
|
||||||
|
"select": true,
|
||||||
|
"columns" : [
|
||||||
|
{data: "systemUserId"},
|
||||||
|
{data: "rownum"},
|
||||||
|
{data: "custName"},
|
||||||
|
{data: "userId"},
|
||||||
|
{data: "userName"},
|
||||||
|
{data: "eMail"},
|
||||||
|
{data: "mobileNo"},
|
||||||
|
{data: "useFlag"},
|
||||||
|
{data: "registDate"},
|
||||||
|
],
|
||||||
|
"columnDefs": [ {
|
||||||
|
orderable: false,
|
||||||
|
targets: 0,
|
||||||
|
render: function ( data, type, row ) {
|
||||||
|
cnt++;
|
||||||
|
apdStr = '<div class="chk_box">';
|
||||||
|
apdStr += ' <input type="checkbox" name="checkbox" value="'+data+'" >';
|
||||||
|
apdStr += ' <label for="chk01"></label>';
|
||||||
|
apdStr += '</div>';
|
||||||
|
return apdStr;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
orderable: false,
|
||||||
|
targets: 6,
|
||||||
|
render : function(data) {
|
||||||
|
if(data=='' || data=='undefined'){
|
||||||
|
data = '';
|
||||||
|
}else if(data.length==11){
|
||||||
|
data = data.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');
|
||||||
|
}else if(data.length==8){
|
||||||
|
data = data.replace(/(\d{4})(\d{4})/, '$1-$2');
|
||||||
|
}else{
|
||||||
|
if(data.indexOf('02')==0){
|
||||||
|
data = data.replace(/(\d{2})(\d{4})(\d{4})/, '$1-$2-$3');
|
||||||
|
} else {
|
||||||
|
data = data.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
orderable: false,
|
||||||
|
targets: 8,
|
||||||
|
render : function(data) {
|
||||||
|
return moment(data).format('YYYY-MM-DD HH:mm:ss');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
createdRow: function (row, data, index) {
|
||||||
|
$(row).addClass("modalLoad");
|
||||||
|
$(row).attr("rel", "reg_edit_modal");
|
||||||
|
},
|
||||||
|
drawCallback: function( settings ) {
|
||||||
|
// scripts.js : 조회list modal 연결
|
||||||
|
modalUi();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('.sel_box select').niceSelect();
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkAreadyId(){
|
||||||
|
if($('#mdNewUserId').val() == '' || $('#mdNewUserId').val() == 'undefined'){
|
||||||
|
swalAlert("info", '중복 조회 할 ID를 입력해 주세요.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if( fnCheckNotKorean($('#mdNewUserId').val()) ) {
|
||||||
|
var param = "checkId=" + $('#mdNewUserId').val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/adm/egov/user/EgovIdDplctCnfirm.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
if(data.usedCnt == "0"){
|
||||||
|
swal('Success', data.checkId + '는 사용할 수 있는 ID 입니다.', {
|
||||||
|
icon: "success",
|
||||||
|
buttons:"확인"
|
||||||
|
});
|
||||||
|
$("#checkedId").val(data.usedCnt);
|
||||||
|
} else {
|
||||||
|
swalAlert("info", data.checkId + '는 사용할 수 없는 ID 입니다.');
|
||||||
|
$("#checkedId").val(data.usedCnt);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function(data) {
|
||||||
|
swalAlert('error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
swalAlert("info", '한글은 사용할 수 없습니다.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fnCheckNotKorean(koreanStr){
|
||||||
|
for(var i=0;i<koreanStr.length;i++){
|
||||||
|
var koreanChar = koreanStr.charCodeAt(i);
|
||||||
|
if( !( 0xAC00 <= koreanChar && koreanChar <= 0xD7A3 ) && !( 0x3131 <= koreanChar && koreanChar <= 0x318E ) ) {
|
||||||
|
}else{
|
||||||
|
//hangul finding....
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cudUserInfo(jobCudType){
|
||||||
|
var param = "&jobCudType="+jobCudType;
|
||||||
|
|
||||||
|
if( jobCudType == 'insert'){
|
||||||
|
if($("#checkedId").val()=="0") {
|
||||||
|
if($("#mdNewUserId").val()==""||$("#mdNewUserId").val()=="undefined"
|
||||||
|
|| $("#mdNewUserName").val()==""||$("#mdNewUserName").val()=="undefined"
|
||||||
|
|| $("#mdNewSelectCustName").val()==""||$("#mdNewSelectCustName").val()=="undefined"
|
||||||
|
|| $("#mdNewSelectAuthName").val()==""||$("#mdNewSelectAuthName").val()=="undefined"
|
||||||
|
|| $("#password").val()==""||$("#password").val()=="undefined"
|
||||||
|
|| $("#password2").val()==""||$("#password2").val()=="undefined" ) {
|
||||||
|
|
||||||
|
swalAlert('info', '필수 항목을 확인 후 진행해 주세요.');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let check = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$/;
|
||||||
|
|
||||||
|
if(!check.test($("#password").val()) && $("#password").val().length < 10) {
|
||||||
|
swalAlert('info', '비밀번호는 10자 이상 또는 영문,숫자,특수기호 포함 8자 이상이어야 합니다.');
|
||||||
|
return false;
|
||||||
|
} else if($("#password").val() != $("#password2").val() ){
|
||||||
|
swalAlert('info', '비밀번호를 확인해 주세요.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
param += "&userId="+$("#mdNewUserId").val();
|
||||||
|
param += "&userName="+$("#mdNewUserName").val();
|
||||||
|
param += "&mobileNo="+$("#mdNewMobileNo").val();
|
||||||
|
param += "&eMail="+$("#mdNewEMail").val();
|
||||||
|
param += "&useFlag="+$("#mdNewUseFlag").val();
|
||||||
|
param += "&siteCode="+$("#mdNewSelectCustName").val();
|
||||||
|
param += "&authCode="+$("#mdNewSelectAuthName").val();
|
||||||
|
param += "&password="+$("#password").val();
|
||||||
|
|
||||||
|
} else if ( $("#checkedId").val()==""||$("#checkedId").val()=="undefined" ){
|
||||||
|
swalAlert('info', '먼저 ID 중복 확인을 실행하십시오');
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
swalAlert('info', '사용할 수 없는 ID 입니다.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if($("#mdUserName").val()==""||$("#mdUserName").val()=="undefined" ) {
|
||||||
|
swalAlert('info', '필수 항목을 확인 후 진행해 주세요.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
param += "&userId="+$("#mdUserId").val();
|
||||||
|
param += "&userName="+$("#mdUserName").val();
|
||||||
|
param += "&mobileNo="+$("#mdMobileNo").val();
|
||||||
|
param += "&eMail="+$("#mdEMail").val();
|
||||||
|
param += "&useFlag="+$("#mdUseFlag").val();
|
||||||
|
param += "&siteCode="+$("#mdSelectCustName").val();
|
||||||
|
param += "&authCode="+$("#mdSelectAuthName").val();
|
||||||
|
param += "&systemUserId="+$("#mdSystemUserId").val();
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/adm/egov/user/EgovUserSelectUpdt.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
if(data.nMap.resultCode == "fail.common.login"){
|
||||||
|
swalAlert("info", '로그인한 후에 진행해 주세요.');
|
||||||
|
} else if(data.nMap.resultCode == "success.common.update" || data.nMap.resultCode == "success.common.insert") {
|
||||||
|
swalAlert('success', '저장');
|
||||||
|
$('a.close').trigger('click');
|
||||||
|
fncRetrieveUserList(data.nMap);
|
||||||
|
} else {
|
||||||
|
swalAlert('error');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function(data) {
|
||||||
|
swalAlert('error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncDeleteUser(){
|
||||||
|
var table = $('#testTb1').DataTable();
|
||||||
|
var param = table.$('input').serialize();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/adm/egov/user/EgovUserDelete.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
if(data.nMap.resultCode == "fail.common.login"){
|
||||||
|
swalAlert("info", '로그인한 후에 진행해 주세요.');
|
||||||
|
} else if(data.nMap.resultCode == "success.common.delete") {
|
||||||
|
swalAlert('success', '삭제');
|
||||||
|
$('a.close').trigger('click');
|
||||||
|
fncRetrieveUserList(data.nMap);
|
||||||
|
} else {
|
||||||
|
swalAlert('error');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function(data) {
|
||||||
|
swalAlert('error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<section id="Content" class="system_management">
|
||||||
|
<div class="location">
|
||||||
|
<ul>
|
||||||
|
<li class="home"><a href="#">HOME</a></li>
|
||||||
|
<li><a href="#">시스템관리</a></li>
|
||||||
|
<li><a href="#">사용자관리</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="sub_cont menu06_02">
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">사용자 조회</h2>
|
||||||
|
</div>
|
||||||
|
<div class="fr">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${'SYS_ADMIN'==LoginVO.authCode}">
|
||||||
|
<dl class="customer fl">
|
||||||
|
<dt class="fl">
|
||||||
|
고객사 :
|
||||||
|
</dt>
|
||||||
|
<dd class="fl">
|
||||||
|
<div class="sel_box">
|
||||||
|
<input name="custName" id="custName" type="hidden"/>
|
||||||
|
<select class="top" id="selectCustName" name="selectCustName" title="검색조건-고객사" >
|
||||||
|
<option value="">고객사 선택</option>
|
||||||
|
<c:forEach var="siteInfo" items="${siteLists}" varStatus="status">
|
||||||
|
<option value="<c:out value="${siteInfo.custCode}"/>"><c:out value="${siteInfo.custName}"/></option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="custName" id="custName" type="hidden" value="${LoginVO.siteCode}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
<div class="btn_wrap fl">
|
||||||
|
<a href="#" class="btn" id="btnSend" onclick="fncRetrieveUserList(); return false;">조회</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table class="search">
|
||||||
|
<colgroup>
|
||||||
|
<col width="130px">
|
||||||
|
<col width="42%">
|
||||||
|
<col width="130px">
|
||||||
|
<col width="42%">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>조회조건</th>
|
||||||
|
<td>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select id="searchCondition" class="wide">
|
||||||
|
<!-- <option value="">조회조건 선택</option> -->
|
||||||
|
<option value="0">ID</option>
|
||||||
|
<option value="1">이름</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th class="tl">조회 명</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="조회명을 입력해주세요." id="searchKeyword" name="code" class="" onkeypress="return fncKeyPress();">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">사용자 리스트</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn grey" onclick="fncDeleteUser(); return false;">삭제</a>
|
||||||
|
<a href="#" rel="reg_modal" class="btn line modalLoad">신규등록</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table id="testTb1" class="click">
|
||||||
|
<colgroup>
|
||||||
|
<col width="60px">
|
||||||
|
<col width="70px">
|
||||||
|
<col width="300px">
|
||||||
|
<col width="*">
|
||||||
|
<col width="*">
|
||||||
|
<col width="250px">
|
||||||
|
<col width="250px">
|
||||||
|
<col width="150px">
|
||||||
|
<col width="250px">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="all" id="chk00" value="">
|
||||||
|
<label for="chk00"></label>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th>NO</th>
|
||||||
|
<th>고객사</th>
|
||||||
|
<th>아이디</th>
|
||||||
|
<th>사용자 이름</th>
|
||||||
|
<th>이메일</th>
|
||||||
|
<th>전화번호</th>
|
||||||
|
<th>사용여부</th>
|
||||||
|
<th>등록일시</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- modal :: 사용자 수정 팝업 -->
|
||||||
|
<div class="modal" id="reg_edit_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>사용자 관리 수정</h3>
|
||||||
|
<input type="hidden" id="mdSystemUserId" id="mdSystemUserId">
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">사용자 ID</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" name="required" id="mdUserId" disabled>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">이름</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" name="required" id="mdUserName">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">고객사</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide" id="mdSelectCustName" name="mdSelectCustName" title="검색조건-고객사" >
|
||||||
|
<c:forEach var="siteInfo" items="${siteLists}" varStatus="status">
|
||||||
|
<option value="<c:out value="${siteInfo.custCode}"/>"><c:out value="${siteInfo.custName}"/></option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">권한</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide" id="mdSelectAuthName" name="mdSelectAuthName" title="검색조건-권한" >
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${'VIDEO_SITE_ADMIN'==LoginVO.authCode}">
|
||||||
|
<option value="VIDEO_SITE_USER" label="영상상담 Site 사용자"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="SYS_ADMIN">시스템관리자</option>
|
||||||
|
<c:forEach var="authInfo" items="${authLists}" varStatus="status">
|
||||||
|
<option value="<c:out value="${authInfo.code}"/>"><c:out value="${authInfo.codeNm}"/></option>
|
||||||
|
</c:forEach>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">사용여부</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select id="mdUseFlag" class="wide">
|
||||||
|
<option value="N">미사용</option>
|
||||||
|
<option value="Y">사용</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">이메일 주소</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="mdEMail">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">핸드폰 번호</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="mdMobileNo">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn" onclick="cudUserInfo('update'); return false;">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 사용자 서비스 수정 팝업 end -->
|
||||||
|
<!-- modal :: 사용자 등록 팝업 -->
|
||||||
|
<div class="modal" id="reg_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>사용자 관리 등록</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">사용자 ID</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box listen">
|
||||||
|
<input type="text" name="required" id="mdNewUserId" onkeypress="return fncUserIdKeyPress(event);" style="width: 326px;">
|
||||||
|
<input type="hidden" id="checkedId">
|
||||||
|
<a href="#" class="btn" onclick="checkAreadyId(); return false;" style="height: 36px;">중복검색</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">비밀번호</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box listen">
|
||||||
|
<input type="password" name="required" id="password">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">비밀번호 확인</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box listen">
|
||||||
|
<input type="password" name="required" id="password2">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">이름</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" name="required" id="mdNewUserName">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">고객사</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide" id="mdNewSelectCustName" name="mdNewSelectCustName" title="검색조건-고객사" >
|
||||||
|
<option value="">고객사 선택</option>
|
||||||
|
<c:forEach var="siteInfo" items="${siteLists}" varStatus="status">
|
||||||
|
<option value="<c:out value="${siteInfo.custCode}"/>"><c:out value="${siteInfo.custName}"/></option>
|
||||||
|
</c:forEach>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">권한</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select class="wide" id="mdNewSelectAuthName" name="mdNewSelectAuthName" title="검색조건-권한" >
|
||||||
|
<option value="">권한 선택</option>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${'VIDEO_SITE_ADMIN'==LoginVO.authCode}">
|
||||||
|
<option value="VIDEO_SITE_USER" label="영상상담 Site 사용자"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<option value="SYS_ADMIN">시스템관리자</option>
|
||||||
|
<c:forEach var="authInfo" items="${authLists}" varStatus="status">
|
||||||
|
<option value="<c:out value="${authInfo.code}"/>"><c:out value="${authInfo.codeNm}"/></option>
|
||||||
|
</c:forEach>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">사용여부</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="sel_box">
|
||||||
|
<select id="mdNewUseFlag" class="wide">
|
||||||
|
<option value="N">미사용</option>
|
||||||
|
<option value="Y">사용</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">이메일 주소</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="mdNewEMail">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">핸드폰 번호</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="mdNewMobileNo">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn" onclick="cudUserInfo('insert'); return false;">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 사용자 서비스 등록 팝업 end -->
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,533 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>메뉴권한관리</title>
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/topLinkTag.jsp" %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ICOMSYS ADMIN</h1>
|
||||||
|
|
||||||
|
<div class="skip_navigation">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="#Content" class="go_content">본문 바로가기</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Gnb">메뉴 바로가기</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/header.jsp" %>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<c:import url="/adm/menu/getLnbMenu.do" />
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready( function () {
|
||||||
|
|
||||||
|
// 권한 조회
|
||||||
|
$('#btnSearchCust').on('click',function() {
|
||||||
|
fncSearchCust();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 신규 권한 저장
|
||||||
|
$('#btnSaveCust').on('click',function() {
|
||||||
|
fncCreateCustInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 권한 수정
|
||||||
|
$('#btnEditCust').on('click',function() {
|
||||||
|
fncUpdateCustInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 권한 삭제
|
||||||
|
$('#btnDelCust').on('click',function() {
|
||||||
|
// scripts.js : swal(alert) 공통 알림
|
||||||
|
swalAlert('warning', "삭제", fncDeleteService);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 추가 modal
|
||||||
|
$('#btnRegModal').on('click',function() {
|
||||||
|
// 초기화
|
||||||
|
$('#serviceInfo').reset();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 권한 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
});
|
||||||
|
|
||||||
|
function fncKeyPresshandler(e) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
fncSearchCust();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 권한 리스트 그리기
|
||||||
|
function fncSearchCust() {
|
||||||
|
|
||||||
|
$('#listTable tbody').empty();
|
||||||
|
|
||||||
|
var param = "searchKeyword=" + $('#keyword').val();
|
||||||
|
var resultTr = '';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/retrieveAuthList.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data){
|
||||||
|
|
||||||
|
$.each($.parseJSON(data.nMap), function(i, val){
|
||||||
|
i += 1;
|
||||||
|
|
||||||
|
resultTr += '<tr class="modalLoad" rel="reg_edit_modal" data-auth-code="' + val.authCode
|
||||||
|
+ '" data-auth-name="' + val.authName + '" data-auth-desc="' + val.authDesc
|
||||||
|
+ '" data-regist-date="' + val.registDate + '">';
|
||||||
|
resultTr += ' <td>';
|
||||||
|
resultTr += ' <div class="chk_box">';
|
||||||
|
resultTr += ' <input type="checkbox" name="checkbox" id="chk'+ i +'" value="off">';
|
||||||
|
resultTr += ' <label for="chk'+ i +'"></label>';
|
||||||
|
resultTr += ' </div>';
|
||||||
|
resultTr += ' </td>';
|
||||||
|
resultTr += ' <td class="tl">' + val.authCode + '</td>';
|
||||||
|
resultTr += ' <td class="tl">' + val.authName + '</td>';
|
||||||
|
resultTr += ' <td class="tl">' + val.authDesc + '</td>';
|
||||||
|
resultTr += ' <td>' + val.registDate + '</td>';
|
||||||
|
resultTr += '</tr>';
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#listTable tbody').append(resultTr);
|
||||||
|
|
||||||
|
// 권한 수정 modal open event
|
||||||
|
$('#listTable tbody tr').on('dblclick', function() {
|
||||||
|
fncSearchDetail($(this));
|
||||||
|
});
|
||||||
|
|
||||||
|
// scripts.js : 권한 list modal 연결
|
||||||
|
modalUi();
|
||||||
|
|
||||||
|
// scripts.js : 체크 박스 체크에 따른 '모두 체크' 변경
|
||||||
|
checkAllChecked();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 수정 modal
|
||||||
|
function fncSearchDetail(tr){
|
||||||
|
// 값 가져오기
|
||||||
|
var authCode = $(tr).data('authCode');
|
||||||
|
var authName = $(tr).data('authName');
|
||||||
|
var authDesc = $(tr).data('authDesc');
|
||||||
|
|
||||||
|
// 값 채우기
|
||||||
|
$('#authCode').val(authCode);
|
||||||
|
$('#authName').val(authName);
|
||||||
|
$('#authDesc').text(authDesc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 신규 권한 저장
|
||||||
|
function fncCreateCustInfo() {
|
||||||
|
if($('input[name="authCode"]').val() == '') {
|
||||||
|
swalAlert('info', '권한코드는 필수 항목입니다.');
|
||||||
|
}
|
||||||
|
else if($('input[name="authName"]').val() == '') {
|
||||||
|
swalAlert('info', '권한명은 필수 항목입니다.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
swalAlert('warning', '저장', insertCustInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 권한 insert
|
||||||
|
function insertCustInfo() {
|
||||||
|
var param = $('#serviceInfo').serialize();
|
||||||
|
param += "&jobCudType=insert";
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/authWrite.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swalAlert('success', '저장');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_modal a.close').trigger('click');
|
||||||
|
|
||||||
|
// 권한 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 기존 권한 수정
|
||||||
|
function fncUpdateCustInfo() {
|
||||||
|
if($('#authCode').val() == '') {
|
||||||
|
swalAlert('info', '권한명은 필수 항목입니다.');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
swalAlert('warning', '수정', updateCustInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//권한 update
|
||||||
|
function updateCustInfo() {
|
||||||
|
var param = $('#editServiceInfo').serialize();
|
||||||
|
param += "&jobCudType=update";
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/authWrite.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swalAlert('success', '수정');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_edit_modal a.close').trigger('click');
|
||||||
|
|
||||||
|
// 권한 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 권한 삭제
|
||||||
|
function fncDeleteService() {
|
||||||
|
var checkbox = $("input[name=checkbox]:checked");
|
||||||
|
|
||||||
|
var param = '';
|
||||||
|
$.each(checkbox, function(i, val){
|
||||||
|
if(i == 0) {
|
||||||
|
param += 'authCodes=' + $(val).parents('tr').data('authCode');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
param += ';' + $(val).parents('tr').data('authCode');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/authListDelete.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
if(data.result == 'success') {
|
||||||
|
swalAlert('success', '삭제');
|
||||||
|
|
||||||
|
// 권한 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
swalAlert('info', '삭제하시는 권한의 하위권한를 먼저 삭제해주세요.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<section id="Content" class="system_management">
|
||||||
|
<div class="location">
|
||||||
|
<ul>
|
||||||
|
<li class="home"><a href="#">HOME</a></li>
|
||||||
|
<li><a href="#">시스템관리</a></li>
|
||||||
|
<li><a href="#">메뉴권한관리</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="sub_cont menu06_01_01">
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">권한 조회</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnSearchCust" class="btn">조회</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table class="search">
|
||||||
|
<colgroup>
|
||||||
|
<col width="130px">
|
||||||
|
<col width="auto">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th class="tl">권한명</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="권한명을 입력해주세요." id="keyword" class="" onkeypress="return fncKeyPresshandler(event);">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">권한 리스트</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn grey" id="btnDelCust">삭제</a>
|
||||||
|
<a href="#" rel="reg_modal" class="btn modalLoad" id="btnRegModal">추가</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<form id="custListForm">
|
||||||
|
<table id="listTable" class="">
|
||||||
|
<colgroup>
|
||||||
|
<col width="60px">
|
||||||
|
<col width="23%">
|
||||||
|
<col width="23%">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="170px">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="all" id="chk00" value="">
|
||||||
|
<label for="chk00"></label>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<th>권한코드</th>
|
||||||
|
<th>권한명</th>
|
||||||
|
<th>설명</th>
|
||||||
|
<th>등록일자</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<%--
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk01" value="">
|
||||||
|
<label for="chk01"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk02" value="">
|
||||||
|
<label for="chk02"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk03" value="">
|
||||||
|
<label for="chk03"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk04" value="">
|
||||||
|
<label for="chk04"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk05" value="">
|
||||||
|
<label for="chk05"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk06" value="">
|
||||||
|
<label for="chk06"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk07" value="">
|
||||||
|
<label for="chk07"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk08" value="">
|
||||||
|
<label for="chk08"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk09" value="">
|
||||||
|
<label for="chk09"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="modalLoad" rel="reg_edit_modal">
|
||||||
|
<td>
|
||||||
|
<div class="chk_box">
|
||||||
|
<input type="checkbox" name="checkbox" id="chk10" value="">
|
||||||
|
<label for="chk10"></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="tl">IS_AUTHENTICATED_ANONYMOUSLY</td>
|
||||||
|
<td class="tl">[Egov정의]인명사용자</td>
|
||||||
|
<td class="tl">[스프링기본권한]익명사용자(롤부여금지)</td>
|
||||||
|
<td>2019-04-09 21:11:33</td>
|
||||||
|
</tr>
|
||||||
|
<!-- <tr>-->
|
||||||
|
<!-- <td colspan="5">변경된 전처리 리스트가 없습니다.</td>-->
|
||||||
|
<!-- </tr>-->
|
||||||
|
--%>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- modal :: 권한 등록 팝업 -->
|
||||||
|
<div class="modal" id="reg_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>권한 신규등록</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<form id="serviceInfo">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="important">권한코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" name="authCode" placeholder="권한코드를 입력하세요.">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="important">권한명</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" name="authName" placeholder="권한명 입력하세요.">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">권한 설명</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<textarea name="authDesc"></textarea>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" class="btn" id="btnSaveCust">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 권한 등록 팝업 end -->
|
||||||
|
|
||||||
|
<!-- modal :: 권한 수정 팝업 -->
|
||||||
|
<div class="modal" id="reg_edit_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>권한 수정</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<form id="editServiceInfo">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">권한코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="authCode" name="authCode" value="IS_AUTHENTICATED_ANONYMOUSLY" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="important">권한명</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="authName" name="authName" value="[Egov정의]인명사용자">
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="">권한 설명</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<textarea id="authDesc" name="authDesc">[스프링기본권한]익명사용자(롤부여금지)</textarea>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnEditCust" class="btn">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 권한 수정 팝업 end -->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,499 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>권한별메뉴관리</title>
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/topLinkTag.jsp" %>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>ICOMSYS ADMIN</h1>
|
||||||
|
|
||||||
|
<div class="skip_navigation">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="#Content" class="go_content">본문 바로가기</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#Gnb">메뉴 바로가기</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<%@ include file="/WEB-INF/jsp/adm/include/header.jsp" %>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<c:import url="/adm/menu/getLnbMenu.do" />
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready( function () {
|
||||||
|
|
||||||
|
// 권한별메뉴 조회
|
||||||
|
$('#btnSearchCust').on('click',function() {
|
||||||
|
fncSearchCust();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 권한별메뉴 수정
|
||||||
|
$('#btnEditCust').on('click',function() {
|
||||||
|
fncUpdateCustInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 권한별메뉴 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
});
|
||||||
|
|
||||||
|
function fncKeyPresshandler(e) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
fncSearchCust();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 권한별메뉴 리스트 그리기
|
||||||
|
function fncSearchCust() {
|
||||||
|
|
||||||
|
$('#listTable tbody').empty();
|
||||||
|
|
||||||
|
var param = "searchKeyword=" + $('#keyword').val();
|
||||||
|
var resultTr = '';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/retrieveMenuAuth.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data){
|
||||||
|
|
||||||
|
$.each($.parseJSON(data.nMap), function(i, val) {
|
||||||
|
i += 1;
|
||||||
|
|
||||||
|
resultTr += '<tr class="modalLoad" rel="reg_edit_modal" data-auth-code="' + val.authCode + '">';
|
||||||
|
resultTr += ' <td class="tl">' + val.authCode + '</td>';
|
||||||
|
resultTr += ' <td class="tl">' + val.authName + '</td>';
|
||||||
|
resultTr += ' <td class="tl">' + val.authDesc + '</td>';
|
||||||
|
resultTr += ' <td>' + authHasYn(val.chkYeoBu) + '</td>';
|
||||||
|
resultTr += '</tr>';
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#listTable tbody').append(resultTr);
|
||||||
|
|
||||||
|
// 권한별메뉴 수정 modal open event
|
||||||
|
$('#listTable tbody tr').on('dblclick', function() {
|
||||||
|
fncSearchDetail($(this));
|
||||||
|
});
|
||||||
|
|
||||||
|
// scripts.js : 권한별메뉴 list modal 연결
|
||||||
|
modalUi();
|
||||||
|
|
||||||
|
// scripts.js : 체크 박스 체크에 따른 '모두 체크' 변경
|
||||||
|
checkAllChecked();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function authHasYn(count) {
|
||||||
|
return count > 0 ? 'Y' : 'N';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 수정 modal 값 가져오기
|
||||||
|
function fncSearchDetail(tr){
|
||||||
|
var authCode = $(tr).data('authCode');
|
||||||
|
|
||||||
|
var param = "authCode=" + authCode;
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/menuCreatSelect.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
fncSetDetailInfo(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//수정 modal 값 채우기
|
||||||
|
function fncSetDetailInfo(infoData) {
|
||||||
|
// 서비스 코드 양식 그리기
|
||||||
|
var shtml = '';
|
||||||
|
|
||||||
|
var instance = $('#menuTree').jstree(true);
|
||||||
|
|
||||||
|
// console.log('init instance : ' + instance);
|
||||||
|
if(instance) {
|
||||||
|
instance = $('#menuTree').jstree("destroy");
|
||||||
|
// console.log('init?? true' + instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#menuTree').empty();
|
||||||
|
|
||||||
|
// console.log('empty() instance : ' + instance);
|
||||||
|
|
||||||
|
var len = infoData.list_menulist.length;
|
||||||
|
var dataList = infoData.list_menulist;
|
||||||
|
var afterLevel;
|
||||||
|
var nowLevel;
|
||||||
|
var checkedArr = new Array;
|
||||||
|
var upperNode = new Array;
|
||||||
|
|
||||||
|
for(var i=0; len > i; i++) {
|
||||||
|
nowLevel = dataList[i].level;
|
||||||
|
|
||||||
|
if(dataList[i].useFlag != null && dataList[i].useFlag == 'Y') {
|
||||||
|
// 체크 되어 있는 서비스코드 항목
|
||||||
|
var menuNolen = dataList[i].menuNo.toString().length;
|
||||||
|
if(menuNolen >= 7 && dataList[i].menuNo.toString().substr(menuNolen-2, menuNolen) != "00") {
|
||||||
|
checkedArr.push('chk' + dataList[i].menuNo);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
upperNode.push('chk' + dataList[i].menuNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(menuNolen < 7 || dataList[i].menuNo.toString().substr(menuNolen-2, menuNolen) == "00") {
|
||||||
|
upperNode.push('chk' + dataList[i].menuNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(len > i + 1) {
|
||||||
|
afterLevel = dataList[i+1].level;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
afterLevel = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(i == 0) {
|
||||||
|
shtml += '<ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(nowLevel == afterLevel) {
|
||||||
|
// 다음 노드가 동위 노드
|
||||||
|
|
||||||
|
shtml += '<li id="chk' + dataList[i].menuNo + '">' + dataList[i].menuName + '</li>';
|
||||||
|
}
|
||||||
|
else if(nowLevel < afterLevel) {
|
||||||
|
// 다음 노드가 하위 노드
|
||||||
|
|
||||||
|
//shtml += '<li id="chk' + dataList[i].menuNo + '" data-jstree=\'{ "opened" : true }\'>' + dataList[i].menuName;
|
||||||
|
shtml += '<li id="chk' + dataList[i].menuNo + '" data-jstree=\'{ "checkbox_disabled" : true }\'>' + dataList[i].menuName;
|
||||||
|
//shtml += '<li id="chk' + dataList[i].menuNo + '">' + dataList[i].menuName;
|
||||||
|
shtml += '<ul>';
|
||||||
|
}
|
||||||
|
else if(afterLevel == 0) {
|
||||||
|
// 현재가 마지막 노드
|
||||||
|
|
||||||
|
shtml += '<li id="chk' + dataList[i].menuNo + '">' + dataList[i].menuName + '</li>';
|
||||||
|
|
||||||
|
for(var j=0; nowLevel > j; j++) {
|
||||||
|
shtml += '</ul>';
|
||||||
|
shtml += '</li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
shtml += '</ul>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// nowLevel > afterLevel : 다음 노드가 상위 노드
|
||||||
|
|
||||||
|
shtml += '<li id="chk' + dataList[i].menuNo + '">' + dataList[i].menuName + '</li>';
|
||||||
|
|
||||||
|
for(var j=0; (nowLevel - afterLevel) > j; j++) {
|
||||||
|
shtml += '</ul>';
|
||||||
|
shtml += '</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//$('#menuTree').append(shtml);
|
||||||
|
$('#menuTree').html(shtml);
|
||||||
|
|
||||||
|
instance = $('#menuTree').jstree(true);
|
||||||
|
//instance2.deselect_all();
|
||||||
|
//instance2.select_node('1');
|
||||||
|
|
||||||
|
// console.log('innerHtml instance : ' + instance);
|
||||||
|
// instance.deselect_all();
|
||||||
|
// console.log('instance : ' + instance);
|
||||||
|
|
||||||
|
if(instance) {
|
||||||
|
//instance.deselect_all();
|
||||||
|
//instance.select_node('1');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('#menuTree').jstree({
|
||||||
|
|
||||||
|
|
||||||
|
"core" : {
|
||||||
|
"check_callback" : function (operation, node, node_parent, node_position, more) {
|
||||||
|
// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node', 'copy_node' or 'edit'
|
||||||
|
// in case of 'rename_node' node_position is filled with the new node name
|
||||||
|
|
||||||
|
//return operation === 'rename_node' ? true : false;
|
||||||
|
//console.log('check_callback');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"checkbox" : {
|
||||||
|
//"keep_selected_style" : false
|
||||||
|
//"tie_selection" : false
|
||||||
|
},
|
||||||
|
"plugins" : [
|
||||||
|
"checkbox"
|
||||||
|
]
|
||||||
|
}).on("changed.jstree", function (e, data) {
|
||||||
|
//console.log('changed');
|
||||||
|
//console.log(data.instance.get_selected(true)[0].text);
|
||||||
|
//console.log(data.instance.get_node(data.selected[0]).text);
|
||||||
|
}).on("select_node.jstree", function (e, data) {
|
||||||
|
//console.log('select_node');
|
||||||
|
}).on("deselect_node.jstree", function (e, data) {
|
||||||
|
//console.log('unselect_node');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// json data 생성 형태
|
||||||
|
//{ "id" : "Test node", "state" : { "checkbox_disabled" : true } }
|
||||||
|
|
||||||
|
|
||||||
|
instance = $('#menuTree').jstree(true);
|
||||||
|
|
||||||
|
var selected1 = instance.get_selected();
|
||||||
|
//instance.select_all();
|
||||||
|
//instance.select_node("j1_1");
|
||||||
|
//instance.select_node("1");
|
||||||
|
//instance.select_node("2");
|
||||||
|
//instance.select_node("j1_3");
|
||||||
|
instance.select_node(checkedArr);
|
||||||
|
//instance.refresh();
|
||||||
|
//instance.set_id("j1_4", "aa");
|
||||||
|
var jsonData = instance.get_json();
|
||||||
|
var textData = instance.get_text();
|
||||||
|
//set_id(obj, id)
|
||||||
|
//get_json([obj, options])
|
||||||
|
//redraw([full])
|
||||||
|
//get_text(obj)
|
||||||
|
//get_undetermined ([full])
|
||||||
|
//class='jstree-undetermined'
|
||||||
|
|
||||||
|
// 안됨
|
||||||
|
//var selected3 = instance.get_undetermined();
|
||||||
|
var selected3 = instance._undetermined();
|
||||||
|
//instance.disable_checkbox(upperNode);
|
||||||
|
//instance.disable_checkbox();
|
||||||
|
instance.disable_node(upperNode);
|
||||||
|
|
||||||
|
var selected2 = instance.get_selected();
|
||||||
|
|
||||||
|
// tree 모두 펼치기
|
||||||
|
instance.open_all();
|
||||||
|
|
||||||
|
//console.log();
|
||||||
|
//instance.hide_checkboxes();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 값 채우기
|
||||||
|
$('#authCode').val(infoData.menuCreatVO.authCode);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 기존 권한별메뉴 수정
|
||||||
|
function fncUpdateCustInfo() {
|
||||||
|
swalAlert('warning', '수정', updateCustInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 권한별메뉴 update
|
||||||
|
function updateCustInfo() {
|
||||||
|
var param = "authCode=" + $('#authCode').val();
|
||||||
|
param += "&checkedAuthorForInsert=" + $('#authCode').val();
|
||||||
|
param += "&checkedMenuNoForInsert=";
|
||||||
|
|
||||||
|
// var checkbox = $('#serviceCode input[name=checkbox]:checked');
|
||||||
|
var checkbox = $('#menuTree').jstree('get_selected', true);
|
||||||
|
$.each(checkbox, function(i, val) {
|
||||||
|
if(i == 0) {
|
||||||
|
// param += $(val).data('text');
|
||||||
|
param += checkbox[i].id;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// param += ',' + $(val).data('text');
|
||||||
|
param += ',' + checkbox[i].id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#menuTree").find(".jstree-undetermined").each(function (i, element) {
|
||||||
|
param += ',' + $(element).closest('.jstree-node').attr("id");
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type : "post",
|
||||||
|
async : false,
|
||||||
|
datatype : "text",
|
||||||
|
url : "<c:url value='/admin/system/menuCreatInsert.do'/>",
|
||||||
|
data : param,
|
||||||
|
success : function(data) {
|
||||||
|
swalAlert('success', '수정');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// edit_modal close
|
||||||
|
$('#reg_edit_modal a.close').trigger('click');
|
||||||
|
|
||||||
|
// 권한별메뉴 리스트 그리기
|
||||||
|
fncSearchCust();
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<section id="Content" class="system_management">
|
||||||
|
<div class="location">
|
||||||
|
<ul>
|
||||||
|
<li class="home"><a href="#">HOME</a></li>
|
||||||
|
<li><a href="#">시스템관리</a></li>
|
||||||
|
<li><a href="#">권한별메뉴관리</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="sub_cont menu06_03_01">
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">권한별메뉴 조회</h2>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnSearchCust" class="btn">조회</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<table class="search">
|
||||||
|
<colgroup>
|
||||||
|
<col width="130px">
|
||||||
|
<col width="auto">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th class="tl">권한코드</th>
|
||||||
|
<td class="tl">
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" placeholder="권한코드를 입력해주세요." id="keyword" class="" onkeypress="return fncKeyPresshandler(event);">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cont_box">
|
||||||
|
<div class="box_title">
|
||||||
|
<div class="fl">
|
||||||
|
<h2 class="mt12">권한별메뉴 리스트</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tbl">
|
||||||
|
<form id="custListForm">
|
||||||
|
<table id="listTable" class="">
|
||||||
|
<colgroup>
|
||||||
|
<col width="30%">
|
||||||
|
<col width="25%">
|
||||||
|
<col width="auto">
|
||||||
|
<col width="110px">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>권한코드</th>
|
||||||
|
<th>권한명</th>
|
||||||
|
<th>권한설명</th>
|
||||||
|
<th>메뉴생성여부</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- modal :: 권한별메뉴 수정 팝업 -->
|
||||||
|
<div class="modal" id="reg_edit_modal">
|
||||||
|
<div class="modal_header">
|
||||||
|
<h3>권한별메뉴 수정</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal_body">
|
||||||
|
<div class="modal_cont">
|
||||||
|
<form id="editServiceInfo">
|
||||||
|
<dl>
|
||||||
|
<dt><h4><em class="">권한코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="ipt_box">
|
||||||
|
<input type="text" id="authCode" name="authCode" value="1" readonly>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="">
|
||||||
|
<dt><h4><em class="important">서비스코드</em></h4></dt>
|
||||||
|
<dd>
|
||||||
|
<div class="content tree">
|
||||||
|
<div id="menuTree" class="tree_wrap">
|
||||||
|
<ul>
|
||||||
|
<li data-jstree='{ "opened" : true }'>root
|
||||||
|
<ul>
|
||||||
|
<li data-jstree='{ "opened" : true }'>주소BOT
|
||||||
|
<ul>
|
||||||
|
<li>지명 유사어 관리</li>
|
||||||
|
<li>빌딩 유사어 관리</li>
|
||||||
|
<li>유의어 전처리 관리</li>
|
||||||
|
<li>주소봇 멘트 관리</li>
|
||||||
|
<li>발화 건물유형 관리</li>
|
||||||
|
<li>주소 월별 업데이트</li>
|
||||||
|
<li>주소처리내역(녹취)</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li data-jstree='{ "opened" : true }'>BOT 공통 관리
|
||||||
|
<ul>
|
||||||
|
<li data-jstree='{ "opened" : true }'>서비스별관리
|
||||||
|
<ul>
|
||||||
|
<li>요일/시간대별 멘트 관리</li>
|
||||||
|
<li>휴무일 관리</li>
|
||||||
|
<li>자연어 전처리 관리</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>공통 코드 관리</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li data-jstree='{ "opened" : true }'>무인접수BOT
|
||||||
|
<ul>
|
||||||
|
<li>무인 접수 리스트</li>
|
||||||
|
<li>제품군 유의어 관리</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li data-jstree='{ "opened" : true }'>영상상담
|
||||||
|
<ul>
|
||||||
|
<li>컨텐츠등록 관리</li>
|
||||||
|
<li>영상상담</li>
|
||||||
|
<li>상담이력 조회</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_footer">
|
||||||
|
<div class="btn_wrap fr">
|
||||||
|
<a href="#" id="btnEditCust" class="btn">저장</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal_controller">
|
||||||
|
<a href="#" class="close">close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- modal :: 권한별메뉴 수정 팝업 end -->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,9 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns:th="http://www.thymeleaf.org"
|
|
||||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
|
||||||
layout:decorate="~{layout/layout}">
|
|
||||||
<th:block layout:fragment="content">
|
|
||||||
<div id="pageControll">
|
|
||||||
</div>
|
|
||||||
</th:block>
|
|
||||||
</html>
|
|
Loading…
Reference in New Issue