Compare commits

..

1 Commits

Author SHA1 Message Date
kkw29 23ea0d9504 commit 2 years ago

2
.gitignore vendored

@ -6,7 +6,6 @@ build/
**/.idea
**/build
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
@ -15,6 +14,7 @@ build/
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

@ -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.

@ -29,6 +29,8 @@ spring:
dialect: com.icomsys.main_vm.common.util.CustomDialect
generate_statistics: true
jwt:
secret: f2d7e5002d67c8d118ebf800274b6a5c83ed7b3d3518b2cddcd7226f7484eb34
#https://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/dialect/package-summary.html

@ -55,8 +55,7 @@ spring:
cache: false
template-resolver-order: 0
check-template-location: true
jwt:
secret: f2d7e5002d67c8d118ebf800274b6a5c83ed7b3d3518b2cddcd7226f7484eb34
autoconfigure:
# exclude: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

@ -39,7 +39,17 @@ public class LoginController {
private final FileService fileService;
private final HttpServletRequest httpServletRequest;
@GetMapping(value = {"/adm/main/egovLoginUsr.do", "/"})
public ModelAndView loginUsrView() {
// loginService.Logout();
log.info("loginpage");
return new ModelAndView("layout/signin");
}
@GetMapping(value = "/adm/main/changePwd")
public String changePwd() {
return "adm/signin/changePwd";
}
@PostMapping(value = "/adm/main/pwd/update")
public ResponseEntity PwdUpdate(@RequestBody PwdUpdateReq dto) throws CustomNotFoundException, CustomBadRequestException {

@ -107,8 +107,8 @@ public class LoginService {
LoginVO userResult = user.toLoginVO();
// return "forward:/adm/main/actionMain.do";
// return "layout/adm/common/dashboard";
return "layout/main";
return "layout/adm/common/dashboard";
} else {
log.info("Fail!");
}

@ -24,7 +24,10 @@ public class SystemCommoncodeController {
private final SystemCommoncodeService systemOprmngcodeService;
@GetMapping("/oprmngcode/manage.do")
public String OprmngcodeView() {
return "/adm/common/system/commoncode";
}
@PostMapping("/oprmngcode/list")
@ResponseBody

@ -22,6 +22,16 @@ public class SystemCustController {
private final SystemCustService custService;
/**
* @Name JSP
* @Description JSP
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/cust/manage.do")
public String CustListView() {
return "/adm/common/system/cust";
}
/**
* @Name API
@ -37,7 +47,16 @@ public class SystemCustController {
return new DslDataTableRes<SystemIcsCustInfoRes>(result);
}
/**
* @Name API
* @Description API
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/cust/update")
public String custUpdate(@RequestParam(name = "custCode", required = true) String custCode) {
return "/adm/common/system/custUpdate";
}
/**
* @Name
@ -52,7 +71,17 @@ public class SystemCustController {
return custService.custSelect(custCode);
}
/**
* @Name
* @Description
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/cust/insert")
public String CustInsert() {
log.info("CustInsert Controller");
return "/adm/common/system/custInsert";
}
/**
* @Name

@ -26,6 +26,18 @@ public class SystemGroupAuthController {
private final SystemGroupAuthService groupAuthService;
/**
* @Name
* @Description
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/groupAuth/manage.do")
public String GroupAuthView() {
log.info("group Auth View controller");
return "/adm/common/system/groupAuth";
}
/**
* @Name API
* @Description API
@ -40,6 +52,17 @@ public class SystemGroupAuthController {
return new DslDataTableRes<SystemServiceAuthGroupRes>(result);
}
/**
* @Name
* @Description JSP .
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/groupAuth/view")
public String GroupAuthView(@RequestParam(name = "custCode", required = true) String custCode) {
log.info("view Controller - {}", custCode);
return "/adm/common/system/groupAuthView";
}
/**
* @Name
@ -65,6 +88,17 @@ public class SystemGroupAuthController {
groupAuthService.GroupAuthUpdateInsert(dto);
}
/**
* @Name
* @Description JSP
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/groupAuth/update")
public String GroupAuthUpdate() {
log.info("GroupAuthUpdate Controller");
return "/adm/common/system/groupAuthUpdate";
}
/**
* @Name

@ -19,7 +19,14 @@ import java.util.List;
public class SystemPolicyMenuController {
private final SystemPolicyMenuService systemPolicyMenuService;
/**
*
*/
@GetMapping("/policyMenu/manage.do")
public String PolicyMenuView(){
return "/adm/common/system/policyMenu";
}
@PostMapping("/policyMenu/list")
@ResponseBody

@ -21,9 +21,25 @@ import java.util.List;
@RequestMapping("/admin/common/system")
public class SystemServiceGroupController {
private final LoginService loginService;
private final SystemServiceGroupService systemServiceGroupService;
/**
* @Name
* @Description -> , ,
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/serviceGroup/manage.do")
public String ServiceGroupView() {
UserVo uv = loginService.getUserVo();
if (uv.getRoleVal().equals(RoleResource.SYSTEMADMIN.getName())) {
return "/adm/common/system/serviceGroupList";
} else {
return "/adm/common/system/serviceGroupView";
}
}
/**
* @Name
* @Description ->
@ -37,6 +53,16 @@ public class SystemServiceGroupController {
return new DslDataTableRes<SystemServiceGroupRes>(result);
}
/**
* @Name
* @Description ->
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/serviceGroup/view")
public String ServiceGroupView(@RequestParam(name = "serviceGroup", required = false) String serviceGroup) {
return "/adm/common/system/serviceGroupView";
}
/**
* @Name API

@ -22,7 +22,16 @@ public class SystemUserAdminController {
private final SystemUserAdminService systemUserAdminService;
/**
* @Name
* @Description .
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/userAdmin/manage.do")
public String UserAdminView() {
return "/adm/common/system/userAdmin";
}
@PostMapping("/userAdmin/list")
@ResponseBody

@ -22,6 +22,16 @@ public class SystemUserController {
private final SystemUserService systemUserService;
/**
* @Name
* @Description JSP
* @Author JangWonSeok
* @CreateDate 2023. 03. 09.
*/
@GetMapping("/user/manage.do")
public String UserView() {
return "/adm/common/system/user";
}
/**
* @Name Data SEARCH API

@ -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 {
}

@ -18,7 +18,6 @@ import com.icomsys.main_vm.biz.common.system.vo.SystemServiceGroupViewVo;
import com.icomsys.main_vm.biz.test.controller.testvo.APINodeVo;
import com.icomsys.main_vm.common.code.EnumToMap;
import com.icomsys.main_vm.common.code.enumresource.MenuResource;
import com.icomsys.main_vm.common.code.enumresource.PolicyResource;
import com.icomsys.main_vm.db.jpa.entity.conversation.TbProjectSetting;
import com.icomsys.main_vm.db.jpa.entity.system.TbIcsCustInfo;
import com.icomsys.main_vm.db.jpa.repo.scenario.TbApiNodeRepo;
@ -37,7 +36,6 @@ import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
@RequestMapping("/rest")
@RestController
@ -80,7 +78,7 @@ public class TestRestController {
@GetMapping("/test5")
public Object test5() {
log.info("test5 init");
return testRestService.authToMenuList(PolicyResource.ALL.stream().map(e -> e.getName().toString()).collect(Collectors.toList()), 1000001);
return testRestService.authToMenuList(testRestService.initData(), 1000001);
}
@ -93,7 +91,7 @@ public class TestRestController {
@GetMapping("/test6")
public Object test6() {
log.info("test6 init");
return testRestService.authToAuthList(PolicyResource.ALL.stream().map(e -> e.getName().toString()).collect(Collectors.toList()), 1000001);
return testRestService.authToAuthList(testRestService.initData(), 1000001);
}
@GetMapping("/test7")

@ -111,13 +111,13 @@ public enum MenuResource {
commonsystem("common", 9000000L, 1L, 2, "시스템관리", "시스템관리", "0"),
commonsystempolicyMenumanage("common", 9000001L, 9000000L, 3, "정책별 메뉴 조회", "정책별 메뉴 조회", "/view/admin/common/system/policyMenu/manage.do"),
commonsystemcustmanage("common", 9000002L, 9000000L, 3, "고객사 관리", "고객사 관리", "/view/admin/common/system/cust/manage.do"),
commonsystemserviceGroupmanage("common", 9000003L, 9000000L, 3, "서비스그룹 관리", "서비스그룹 관리", "/view/admin/common/system/serviceGroup/manage.do"),
commonsystemgroupAuthmanage("common", 9000004L, 9000000L, 3, "그룹별 권한관리", "그룹별 권한관리", "/view/admin/common/system/groupAuth/manage.do"),
commonsystemuserAdminmanage("common", 9000005L, 9000000L, 3, "운영자 관리(사용안함)", "운영자 관리", "/view/admin/common/system/userAdmin/manage.do"),
commonsystemusermanage("common", 9000006L, 9000000L, 3, "사용자 관리", "사용자 관리", "/view/admin/common/system/user/manage.do"),
commonsystemoprmngcodemanage("common", 9000007L, 9000000L, 3, "공통코드 관리", "공통코드 관리", "/view/admin/common/system/oprmngcode/manage.do");
commonsystempolicyMenumanage("common", 9000001L, 9000000L, 3, "정책별 메뉴 조회", "정책별 메뉴 조회", "/admin/common/system/policyMenu/manage.do"),
commonsystemcustmanage("common", 9000002L, 9000000L, 3, "고객사 관리", "고객사 관리", "/admin/common/system/cust/manage.do"),
commonsystemserviceGroupmanage("common", 9000003L, 9000000L, 3, "서비스그룹 관리", "서비스그룹 관리", "/admin/common/system/serviceGroup/manage.do"),
commonsystemgroupAuthmanage("common", 9000004L, 9000000L, 3, "그룹별 권한관리", "그룹별 권한관리", "/admin/common/system/groupAuth/manage.do"),
commonsystemuserAdminmanage("common", 9000005L, 9000000L, 3, "운영자 관리(사용안함)", "운영자 관리", "/admin/common/system/userAdmin/manage.do"),
commonsystemusermanage("common", 9000006L, 9000000L, 3, "사용자 관리", "사용자 관리", "/admin/common/system/user/manage.do"),
commonsystemoprmngcodemanage("common", 9000007L, 9000000L, 3, "공통코드 관리", "공통코드 관리", "/admin/common/system/oprmngcode/manage.do");
private String solVal;

@ -54,7 +54,6 @@ public class LoginFilter extends OncePerRequestFilter {
|| reqUrl.startsWith("/createEnv")
|| reqUrl.startsWith("/error")
|| reqUrl.startsWith("/files")
|| reqUrl.startsWith("/view")
|| reqUrl.equals("/")
) {
log.info("static file check");

@ -29,6 +29,8 @@ spring:
dialect: com.icomsys.main_vm.common.util.CustomDialect
generate_statistics: true
jwt:
secret: f2d7e5002d67c8d118ebf800274b6a5c83ed7b3d3518b2cddcd7226f7484eb34
#https://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/dialect/package-summary.html

@ -55,8 +55,7 @@ spring:
cache: false
template-resolver-order: 0
check-template-location: true
jwt:
secret: f2d7e5002d67c8d118ebf800274b6a5c83ed7b3d3518b2cddcd7226f7484eb34
autoconfigure:
# exclude: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

@ -155,7 +155,6 @@ function lnbEvt(){
$('.lnb > li > ul > li > ul').parent().addClass('has_children');
}
$('.lnb > li.has_children > a').attr('href', '#');
$('.lnb > li > a').on('click', function(e){
e.preventDefault();

@ -1,4 +1,8 @@
<!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">
<head>
<meta charset="UTF-8">
<title>대시보드</title>
@ -116,4 +120,5 @@
</section>
</body>
</th:block>
</html>

@ -1,3 +1,5 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>시나리오코드</title>
@ -72,12 +74,12 @@
fncDeleteCommonCode();
});
// $('#listTable').on('page.dt', function(){
// // var info = table.page.info();
// // console.log( 'Showing page: '+info.page+' of '+info.pages );
// // console.log( 'Showing page: ' );
// modalUi();
// });
// $('#listTable').on('page.dt', function(){
// // var info = table.page.info();
// // console.log( 'Showing page: '+info.page+' of '+info.pages );
// // console.log( 'Showing page: ' );
// modalUi();
// });
}
);
@ -136,7 +138,7 @@
});
}
function fncDeleteCommonCode() {
function fncDeleteCommonCode(){
var json = {};
var majorCode = $("#setMajorCode").val();
var custCode = $("#setCustCode").val();
@ -177,7 +179,7 @@
datatype: "JSON",
async: false,
url: "<c:url value='/adm/menu/oprmng'/>"
// + "?serviceType=S"
// + "?serviceType=S"
,
success: function (data) {
data.forEach(function (e, f) {
@ -335,8 +337,8 @@
//
// if the second column cell is blank apply special formatting
//
console.dir(row);
$(row).addClass('modalLoad').attr('rel', 'reg_edit_modal');
console.dir(row);
$(row).addClass('modalLoad').attr('rel','reg_edit_modal');
}
,
columnDefs: [
@ -529,7 +531,7 @@
<h2 class="mt12">공통 코드 리스트</h2>
</div>
<div class="btn_wrap fr">
<%-- <a href="#" class="btn grey" id="btnDelCust">삭제</a>--%>
<%-- <a href="#" class="btn grey" id="btnDelCust">삭제</a>--%>
<a href="#" rel="reg_modal" id="btn_reg_modal" class="btn line modalLoad">등록</a>
</div>
</div>
@ -642,6 +644,7 @@
<!-- modal :: 공통 코드 등록 팝업 end -->
<!-- modal :: 공통 코드 수정 팝업 -->
<%--<div class="modal open" id="reg_edit_modal">--%>
<div class="modal" id="reg_edit_modal">
<div class="modal_header">
<h3>공통 코드 수정</h3>
@ -662,9 +665,7 @@
</dl>
<dl>
<%--
<dt><h4><em class="important">대분류</em></h4></dt>
--%>
<%-- <dt><h4><em class="important">대분류</em></h4></dt>--%>
<dt><h4><em class="">대분류</em></h4></dt>
<dd>
<div class="ipt_box">
@ -725,3 +726,4 @@
<!-- modal :: 공통 코드 수정 팝업 end -->
</body>
</html>

@ -1,3 +1,5 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>고객사관리</title>
@ -33,14 +35,14 @@
// console.log(rowData.custCode);
// alert("cust - " + rowData.custCode)
// document.location.href = "/BotMain_VM/admin/common/system/cust/update" + "?custCode=" + rowData.custCode;
document.location.href = '/view/admin/common/system/cust/update' + "?custCode=" + rowData.custCode;
document.location.href = "<c:url value='/admin/common/system/cust/update'/>" + "?custCode=" + rowData.custCode;
// document.location.href = '/admin/common/system/cust/view';
}
function fnInsertBtn() {
// document.location.href = "/BotMain_VM/admin/common/system/cust/insert";
document.location.href = '/view/admin/common/system/cust/insert';
document.location.href = "<c:url value='/admin/common/system/cust/insert'/>";
}
var PagingDataTable = function () {
@ -49,7 +51,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/cust/list',
url: "<c:url value='/admin/common/system/cust/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -173,6 +175,10 @@
</li>
</ul>
</div>
<header id="header">
</header>
<section id="Content" class="system_management">
<div class="location">
<ul>
@ -199,6 +205,10 @@
<colgroup>
<col width="140px">
<col width="85%">
<%-- <col width="140px">--%>
<%-- <col width="25%">--%>
<%-- <col width="140px">--%>
<%-- <col width="25%">--%>
</colgroup>
<tbody>
<tr>
@ -220,6 +230,8 @@
<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>--%>
<a href="#" class="btn line modalLoad" id="btnRegModal">등록</a>
</div>
</div>
@ -230,20 +242,23 @@
<table id="listTable" class="">
<colgroup>
<col width="auto">
<!-- <col width="auto">-->
<!-- <col width="auto">-->
<col width="auto">
<col width="auto">
<col width="auto">
<col width="auto">
<col width="auto">
</colgroup>
<thead>
<tr>
<!-- <th>고객사코드</th>-->
<th>고객사코드</th>
<th>고객사명</th>
<th>고객사안내멘트</th>
<!-- <th>대표번호</th>-->
<th>대표번호</th>
<th>사용유무</th>
<th>생성일</th>
<%-- <th>registId</th>--%>
<%-- <th>updateDate</th>--%>
<%-- <th>updateId</th>--%>
</tr>
</thead>
@ -253,6 +268,6 @@
</form>
</div>
</div>
</div>
</section>
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>고객사화면</title>
@ -132,7 +135,7 @@
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/cust/save',
url: "<c:url value='/admin/common/system/cust/save'/>",
data: JSON.stringify(json),
})
.complete(function (data) {
@ -141,9 +144,10 @@
if (data.status == 200) {
// console.log("저장하였습니다.")
listgo();
} else if (data.status == 405) {
} else if (data.status == 405){
$.utils.warning("NLP연결에 실패했습니다.");
} else {
}
else {
$.utils.warning("오류가 발생했습니다.");
}
})
@ -199,7 +203,7 @@
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/serviceGroup/doubleCheck',
url: "<c:url value='/admin/common/system/serviceGroup/doubleCheck'/>",
data: JSON.stringify(checkJson),
})
.complete(function (data) {
@ -378,7 +382,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/jstree/policy/parent',
url: "<c:url value='/adm/menu/jstree/policy/parent'/>",
success: function (data) {
return data;
}
@ -393,7 +397,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/policybase',
url: "<c:url value='/admin/common/system/cust/policybase'/>",
success: function (data) {
return data;
}
@ -420,7 +424,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/doubleCheck' + '?custCode=' + custCode,
url: "<c:url value='/admin/common/system/cust/doubleCheck'/>" + '?custCode=' + custCode,
success: function (data) {
if (data === 'Y') {
@ -459,7 +463,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/service/doubleCheck' + '?serviceGroup=' + serviceGroup,
url: "<c:url value='/admin/common/system/cust/service/doubleCheck'/>" + '?serviceGroup=' + serviceGroup,
success: function (data) {
if (data === 'Y') {
// alert("사용할수있는 코드입니다")
@ -477,7 +481,7 @@
};
function listgo() {
document.location.href = '/view/admin/common/system/cust/manage.do';
document.location.href = "<c:url value='/admin/common/system/cust/manage.do'/>";
}
@ -585,8 +589,7 @@
<th class="tl">서비스그룹명</th>
<td>
<div class="ipt_box">
<input type="text" id="newServiceGroupName" value="" name=""
class="title-connect">
<input type="text" id="newServiceGroupName" value="" name="" class="title-connect">
</div>
</td>
</tr>
@ -602,26 +605,15 @@
</td>
</tr>
<%--
<tr>--%>
<%--
<th class="tl">운영관리코드</th>
--%>
<%--
<td>--%>
<%--
<div class="ipt_box" id="newOprDiv">--%>
<%-- <input type="text" id="newOprMngCode" value="" name="" --%>
<%-- class=" title-connect" readonly>--%>
<%--
</div>
--%>
<%--
</td>
--%>
<%--
</tr>
--%>
<%-- <tr>--%>
<%-- <th class="tl">운영관리코드</th>--%>
<%-- <td>--%>
<%-- <div class="ipt_box" id="newOprDiv">--%>
<%-- <input type="text" id="newOprMngCode" value="" name=""--%>
<%-- class=" title-connect" readonly>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<tr>
<th class="tl">서비스그룹 설명</th>
@ -662,4 +654,5 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>고객사화면</title>
@ -86,7 +89,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/select' + "?custCode=" + getQueryString(),
url: "<c:url value='/admin/common/system/cust/select'/>" + "?custCode=" + getQueryString(),
})
.complete(function (data) {
// console.log(data.status);
@ -290,22 +293,22 @@
var addServiceAuthList = new Array();
$(".tbl-card").children('li').each(function (i, e) {
console.log('get-----' + i);
var addServiceGroup = $('#' + $(this).find("input:eq(1)").attr("id")).val();
console.log('addServiceGroup-----' + addServiceGroup);
console.log('get-----'+i);
var addServiceGroup = $('#'+$(this).find("input:eq(1)").attr("id")).val();
console.log('addServiceGroup-----'+addServiceGroup);
var addServiceAuth = {};
// var addServiceGroupName = $(this).find("input:eq(0)").attr("id").replaceAll("addServiceGroupName", "");
var addOprMngCode = $(this).find("input:eq(2)").attr("id");
console.log('addOprMngCode-----' + addOprMngCode);
console.log('addOprMngCode-----'+addOprMngCode);
// var addServiceGroupDesc = $(this).find("input:eq(3)").attr("id").replaceAll("addServiceGroupDesc", "");
var addServiceGroupName = $('#' + $(this).find("input:eq(0)").attr("id")).val();
console.log('addServiceGroupName-----' + addServiceGroupName);
console.log('addServiceGroupName-----'+addServiceGroupName);
var addServiceGroupDesc = $('#' + $(this).find("input:eq(3)").attr("id")).val();
console.log('addServiceGroupDesc-----' + addServiceGroupDesc);
console.log('addServiceGroupDesc-----'+addServiceGroupDesc);
var addUseYn = $('#addUseYn' + addServiceGroup + ' option:selected').val();
console.log('addUseYn-----' + addUseYn);
console.log('addUseYn-----'+addUseYn);
var authList = new Array();
// console.log(JSON.stringify(authList));
// console.log(JSON.stringify($(this)));
@ -339,7 +342,7 @@
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/cust/modify',
url: "<c:url value='/admin/common/system/cust/modify'/>",
data: JSON.stringify(json),
})
.complete(function (data) {
@ -348,9 +351,10 @@
if (data.status == 200) {
// console.log("저장하였습니다.")
listgo();
} else if (data.status == 405) {
} else if (data.status == 405){
$.utils.warning("NLP연결에 실패했습니다.");
} else {
}
else {
$.utils.warning("오류가 발생했습니다.");
}
})
@ -398,7 +402,7 @@
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/serviceGroup/doubleCheck',
url: "<c:url value='/admin/common/system/serviceGroup/doubleCheck'/>",
data: JSON.stringify(checkJson),
})
.complete(function (data) {
@ -573,7 +577,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/jstree/policy/parent',
url: "<c:url value='/adm/menu/jstree/policy/parent'/>",
success: function (data) {
return data;
}
@ -588,7 +592,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/policybase',
url: "<c:url value='/admin/common/system/cust/policybase'/>",
success: function (data) {
return data;
}
@ -603,7 +607,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/doubleCheck' + '?custCode=' + custCode,
url: "<c:url value='/admin/common/system/cust/doubleCheck'/>" + '?custCode=' + custCode,
success: function (data) {
return data;
}
@ -621,7 +625,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/cust/service/doubleCheck' + '?serviceGroup=' + serviceGroup,
url: "<c:url value='/admin/common/system/cust/service/doubleCheck'/>" + '?serviceGroup=' + serviceGroup,
success: function (data) {
return data;
}
@ -633,7 +637,7 @@
};
function listgo() {
document.location.href = '/view/admin/common/system/cust/manage.do';
document.location.href = "<c:url value='/admin/common/system/cust/manage.do'/>";
}
@ -676,7 +680,7 @@
<div class="ipt_box type-flex">
<input id="newCustCode" type="text" value="" name="" class="" readonly>
<input id="newCustCodeDoubleCheck" type="hidden" value="N" name="" class="">
<%-- <a href="#" id="btnCustCodeDoubleCheck" class="btn basic">중복확인</a>--%>
<%-- <a href="#" id="btnCustCodeDoubleCheck" class="btn basic">중복확인</a>--%>
</div>
</td>
</tr>
@ -741,8 +745,7 @@
<th class="tl">서비스그룹명</th>
<td>
<div class="ipt_box">
<input type="text" id="newServiceGroupName" value="" name=""
class="title-connect">
<input type="text" id="newServiceGroupName" value="" name="" class="title-connect">
</div>
</td>
</tr>
@ -807,4 +810,5 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>그룹별권한</title>
@ -35,10 +38,11 @@
$('#insertServiceGroup').change(function () {
getRoleAndOpr($(this).val());
});
}
}
);
function getRoleAndOpr() {
var role = '';
$.ajax({
@ -46,7 +50,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/role',
url: "<c:url value='/adm/menu/role'/>",
success: function (data) {
role = data;
}
@ -58,6 +62,7 @@
return role;
};
@ -66,11 +71,12 @@
var setUrl = '';
var role = getRoleAndOpr();
// console.log(role)
if (role === 'SYSTEMADMIN') {
setUrl = '/adm/menu/oprmng';
} else {
setUrl = '/adm/menu/oprmng'
// + "?serviceType=S"
if(role ==='SYSTEMADMIN'){
setUrl = "<c:url value='/adm/menu/oprmng'/>" ;
}
else {
setUrl = "<c:url value='/adm/menu/oprmng'/>"
// + "?serviceType=S"
;
}
@ -94,8 +100,44 @@
$('#insertServiceGroup').niceSelect('update');
};
<%--function getOprAdmin() {--%>
<%-- $.ajax({--%>
<%-- type: "GET",--%>
<%-- contentType: "application/json; charset=utf-8",--%>
<%-- datatype: "JSON",--%>
<%-- url: "<c:url value='/adm/menu/oprmng/admin'/>",--%>
<%-- success: function (data) {--%>
<%-- data.forEach(function (e, f) {--%>
<%-- $('#serviceGroup').append("<option value=" + e.serviceGroup + ">" + e.serviceGroupName + "</option>");--%>
<%-- $('#serviceGroup').niceSelect('update');--%>
<%-- //--%>
<%-- // $('#insertServiceGroup').append("<option value=" + e.serviceGroup + ">" + e.serviceGroupName + "</option>");--%>
<%-- // $('#insertServiceGroup').niceSelect('update');--%>
<%-- });--%>
<%-- }--%>
<%-- })--%>
<%--};--%>
<%--function insertOpr() {--%>
<%-- var html = '';--%>
<%-- $.ajax({--%>
<%-- type: "GET",--%>
<%-- contentType: "application/json; charset=utf-8",--%>
<%-- datatype: "JSON",--%>
<%-- async: false,--%>
<%-- url: "<c:url value='/admin/common/system/groupAuth/insert/opr'/>",--%>
<%-- success: function (data) {--%>
<%-- data.forEach(function (e, f) {--%>
<%-- // console.log("aaaaa"+e.serviceGroup)--%>
<%-- html += '<option value="' + e.serviceGroup + '">' + e.serviceGroupName + '</option>';--%>
<%-- });--%>
<%-- }--%>
<%-- })--%>
<%--};--%>
function viewPage(rowData) {
document.location.href = '/view/admin/common/system/groupAuth/update' + "?authGroupSeq=" + rowData.authGroupSeq;
document.location.href = "<c:url value='/admin/common/system/groupAuth/update'/>" + "?authGroupSeq=" + rowData.authGroupSeq;
// document.location.href = "/BotMain_VM/admin/common/system/groupAuth/update" + "?authGroupSeq=" + rowData.authGroupSeq;
}
@ -144,7 +186,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/groupAuth/insert',
url: "<c:url value='/admin/common/system/groupAuth/insert'/>",
data: JSON.stringify(insertJson),
})
.complete(function (data) {
@ -152,7 +194,7 @@
// console.log(data.status);
if (data.status == 200) {
// document.location.href = "/BotMain_VM/admin/common/system/groupAuth/manage.do";
document.location.href = '/view/admin/common/system/groupAuth/manage.do';
document.location.href = "<c:url value='/admin/common/system/groupAuth/manage.do'/>";
} else {
// console.log(JSON.stringify(this));
}
@ -161,15 +203,16 @@
}
///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!수정!!!!!!!!!
function newTreeWrap(serviceGroup) {
if (serviceGroup === 'ALL') {
if(serviceGroup === 'ALL'){
return;
}
var treeData = [];
setUrl = '/admin/common/system/groupAuth/newTree' + "?serviceGroup=" + serviceGroup;
setUrl = "<c:url value='/admin/common/system/groupAuth/newTree'/>"+"?serviceGroup="+serviceGroup;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
@ -223,7 +266,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/groupAuth/list',
url: "<c:url value='/admin/common/system/groupAuth/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -387,6 +430,8 @@
<col width="5%">
<col width="140px">
<col width="15%">
<%-- <col width="140px">--%>
<%-- <col width="25%">--%>
</colgroup>
<tbody>
<tr>
@ -416,6 +461,7 @@
<h2 class="mt12">그룹별권한 리스트</h2>
</div>
<div class="btn_wrap fr">
<%-- <a href="#" class="btn grey" id="btnDelCust">삭제</a>--%>
<a href="#" rel="createGroupModal" class="btn line modalLoad">등록</a>
</div>
</div>
@ -519,3 +565,4 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>그룹별권한</title>
@ -46,7 +49,7 @@
}
function listgo() {
document.location.href = '/view/admin/common/system/groupAuth/manage.do';
document.location.href = "<c:url value='/admin/common/system/groupAuth/manage.do'/>";
}
function getUserSearch() {
@ -63,7 +66,7 @@
async: false,
datatype: "JSON",
// url: "/BotMain_VM/admin/common/system/groupAuth/userSearch" + "?authGroupSeq=" + getQueryString(),
url: '/admin/common/system/groupAuth/userSearch' + "?authGroupSeq=" + getQueryString(),
url: "<c:url value='/admin/common/system/groupAuth/userSearch'/>" + "?authGroupSeq=" + getQueryString(),
data: JSON.stringify(json),
success:
function (data) {
@ -119,13 +122,13 @@
datatype: "JSON",
async: false,
// url: "/BotMain_VM/admin/common/system/groupAuth/modify/update",
url: '/admin/common/system/groupAuth/modify/update',
url: "<c:url value='/admin/common/system/groupAuth/modify/update'/>",
data: JSON.stringify(json),
success:
function (data) {
// console.log("modfu suc - ");
// document.location.href = "/BotMain_VM/admin/common/system/groupAuth/update" + "?authGroupSeq=" + getQueryString();
document.location.href = '/view/admin/common/system/groupAuth/manage.do';
document.location.href = "<c:url value='/admin/common/system/groupAuth/manage.do'/>";
}
})
@ -145,7 +148,7 @@
contentType: "application/json; charset=utf-8",
async: false,
datatype: "JSON",
url: '/adm/menu/oprmng',
url: "<c:url value='/adm/menu/oprmng'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -165,7 +168,7 @@
async: false,
datatype: "JSON",
data: authGroupSeq,
url: '/admin/common/system/groupAuth/update/select',
url: "<c:url value='/admin/common/system/groupAuth/update/select'/>",
success: function (data) {
// console.log(data.authGroupSeq);
// console.log(data.authPolicyVal);
@ -361,12 +364,21 @@
<tr>
<th class="tl">소속사용자 <em class="red">*</em></th>
<td>
<%-- <div class="ipt_box listen">--%>
<%-- <input type="text" placeholder="유저명을 입력하세요" id="userSelBox" name="typeText">--%>
<%-- <div class="btn_wrap fl">--%>
<%-- <a href="#" id="btnSearchUser" class="btn">조회</a>--%>
<%-- </div>--%>
<%-- </div>--%>
<div class="ipt_box listen type-flex">
<input type="text" placeholder="유저명을 입력하세요" id="userSelBox" name="typeText">
<a href="#" id="btnSearchUser" class="btn">조회</a>
</div>
<select id="selectorUser" class="wide">
<%-- <option value="ALL">분류 선택</option>--%>
<%-- <option value="major">대분류</option>--%>
<%-- <option value="minor">중분류</option>--%>
</select>
@ -406,6 +418,7 @@
<div class="cont_box">
<div class="btn_wrap center">
<%-- <a href="#" class="btn basic grey">삭제</a>--%>
<a href="#" class="btn basic grey" id="btnDel">취소</a>
<a href="#" class="btn basic" id="btnSave">저장</a>
</div>
@ -415,4 +428,5 @@
</section>
</body>
</body>
</html>

@ -1,10 +1,13 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>그룹별권한</title>
</head>
<script>
z
$(document).ready(function () {
getOpr();
getServiceGroupQueryString();
@ -29,7 +32,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/adm/menu/oprmng',
url: "<c:url value='/adm/menu/oprmng'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -315,5 +318,7 @@
</div>
</section>
</body>
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>정책별메뉴</title>
@ -30,7 +33,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/adm/menu/oprmng',
url: "<c:url value='/adm/menu/oprmng'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -47,7 +50,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/policyMenu/list',
url: "<c:url value='/admin/common/system/policyMenu/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -211,6 +214,8 @@
<col width="40%">
<col width="140px">
<col width="40%">
<%-- <col width="140px">--%>
<%-- <col width="25%">--%>
</colgroup>
<tbody>
@ -296,3 +301,4 @@
</section>
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>서비스그룹 관리</title>
@ -43,10 +46,10 @@
if (getServiceGroupQueryString() == null) {
//유저어드민
setUrl = '/admin/common/system/serviceGroup/view';
setUrl = "<c:url value='/admin/common/system/serviceGroup/view'/>";
} else {
//시스템어드민
setUrl = '/admin/common/system/serviceGroup/view' + "?serviceGroup=" + getServiceGroupQueryString();
setUrl = "<c:url value='/admin/common/system/serviceGroup/view'/>" + "?serviceGroup=" + getServiceGroupQueryString();
}
@ -72,7 +75,7 @@
data.subServiceGroupRes.forEach(function (e, i) {
html += '<li class="tbl-card-li" id="tbl-card-li' + i + '">'
+ '<div class="tbl-card-li-inner">'
+ '<div class="tbl-card-li-inner">'
+ '<div class="tbl-card-title" id="tbl-card-title' + i + '">'
+ ' <div class="fl title-connected">' + e.subServiceGroup + '</div>'
+ ' </div>'
@ -251,6 +254,7 @@
<th class="tl">서비스그룹</th>
<td>
<div class="ipt_box">
<%-- <input type="text" id="mainServiceGroupName" value="mainServiceGroup" name="" class="" readonly>--%>
<input type="text" id="mainServiceGroupName" name="" class="" readonly>
</div>
</td>
@ -333,8 +337,7 @@
<th class="tl">시나리오 그룹코드</th>
<td>
<div class="ipt_box type-flex">
<input type="text" id="subServiceGroupName"
value="UPLUS_RCP_DAISO"
<input type="text" id="subServiceGroupName" value="UPLUS_RCP_DAISO"
name="" class="">
<a href="#" class="btn grey">중복확인</a>
</div>
@ -398,8 +401,7 @@
</li>
<li data-jstree='{ "opened" : true }'>BOT 공통 관리
<ul>
<li data-jstree='{ "opened" : true }'>
서비스별관리
<li data-jstree='{ "opened" : true }'>서비스별관리
<ul>
<li>요일/시간대별 멘트 관리</li>
<li>휴무일 관리</li>
@ -452,4 +454,5 @@
</div>
</section>
</body>
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>서비스그룹 관리List</title>
@ -7,34 +10,34 @@
<script>
$(document).ready(function () {
getMainOprSelectBox();
getMainOprSelectBox();
PagingDataTable();
PagingDataTable();
$('#listTable tbody').on('dblclick', 'tr', function () {
var data = $('#listTable').DataTable().row(this).data();
viewPage(data)
});
$('#btnSearchOpr').on('click', function () {
fnCustSearchBtn();
});
$('#btnSearchOpr').on('click', function () {
fnCustSearchBtn();
});
$("#Content").on("keyup", function (key) {
if (key.keyCode == 13) {
fnCustSearchBtn();
}
});
$("#Content").on("keyup", function (key) {
if (key.keyCode == 13) {
fnCustSearchBtn();
}
});
$('#btnRegModal').on('click', function () {
fnServiceGroupInsertBtn();
});
$('#btnRegModal').on('click', function () {
fnServiceGroupInsertBtn();
});
}
);
function fnServiceGroupInsertBtn() {
function fnServiceGroupInsertBtn(){
// document.location.href = "/BotMain_VM/admin/common/system/serviceGroup/insert";
document.location.href = '/view/admin/common/system/serviceGroup/insert';
document.location.href = "<c:url value='/admin/common/system/serviceGroup/insert'/>";
};
function getOpr() {
@ -42,7 +45,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/adm/menu/oprmng',
url: "<c:url value='/adm/menu/oprmng'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -58,7 +61,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/adm/menu/main/oprmng',
url: "<c:url value='/adm/menu/main/oprmng'/>",
success: function (data) {
data.forEach(function (e, f) {
$('#serviceGroup').append("<option value=" + e.serviceGroup + ">" + e.serviceGroupName + "</option>");
@ -71,7 +74,7 @@
function viewPage(rowData) {
// console.log(rowData.serviceGroup);
// document.location.href = "/BotMain_VM/admin/common/system/serviceGroup/view" + "?serviceGroup=" + rowData.serviceGroup;
document.location.href = '/view/admin/common/system/serviceGroup/view' + "?serviceGroup=" + rowData.serviceGroup;
document.location.href = "<c:url value='/admin/common/system/serviceGroup/view'/>" + "?serviceGroup=" + rowData.serviceGroup;
}
var PagingDataTable = function () {
@ -80,7 +83,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/serviceGroup/list',
url: "<c:url value='/admin/common/system/serviceGroup/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -220,6 +223,8 @@
</ul>
</div>
<header id="header">
</header>
<section id="Content" class="system_management">
<div class="location">
@ -249,6 +254,8 @@
<col width="25%">
<col width="140px">
<col width="40%">
<%-- <col width="140px">--%>
<%-- <col width="25%">--%>
</colgroup>
<tbody>
<tr>
@ -278,6 +285,10 @@
<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>--%>
<%-- <a href="#" class="btn line modalLoad" id="btnRegModal">신규등록</a>--%>
</div>
</div>
@ -314,3 +325,4 @@
</section>
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>서비스그룹 관리</title>
@ -86,7 +89,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/serviceGroup/doubleCheck',
url: "<c:url value='/admin/common/system/serviceGroup/doubleCheck'/>",
data: JSON.stringify(checkJson),
})
.complete(function (data) {
@ -119,8 +122,8 @@
var sol = "_RCP_";
if (e === 8) {
// setTimeout(() => {
var outText = cust + sol + $('#newServiceGroup').val();
$('#newOprDiv').html('<input type="text" id="newOprMngCode" value="' + outText.toUpperCase() + '" name="" class=" title-connect" readonly>')
var outText = cust + sol + $('#newServiceGroup').val();
$('#newOprDiv').html('<input type="text" id="newOprMngCode" value="' + outText.toUpperCase() + '" name="" class=" title-connect" readonly>')
// }, "100")
} else {
var temp = $('#newOprMngCode').val().replace(cust + sol, "");
@ -171,7 +174,7 @@
contentType: "application/json; charset=utf-8",
async: false,
datatype: "JSON",
url: '/admin/common/system/serviceGroup/insert',
url: "<c:url value='/admin/common/system/serviceGroup/insert'/>",
data: JSON.stringify(insertJson),
})
.complete(function (data) {
@ -179,10 +182,11 @@
// console.log(data.status);
if (data.status == 200) {
// document.location.href = "/BotMain_VM/admin/common/system/serviceGroup/view" + "?serviceGroup=" + mainServiceGroup;
document.location.href = '/view/admin/common/system/serviceGroup/view' + "?serviceGroup=" + mainServiceGroup;
} else if (data.status == 405) {
document.location.href = "<c:url value='/admin/common/system/serviceGroup/view'/>" + "?serviceGroup=" + mainServiceGroup;
} else if (data.status == 405){
$.utils.warning("NLP연결에 실패했습니다.");
} else {
}
else {
$.utils.warning("오류가 발생했습니다.");
}
})
@ -230,7 +234,7 @@
contentType: "application/json; charset=utf-8",
async: false,
datatype: "JSON",
url: '/admin/common/system/serviceGroup/update',
url: "<c:url value='/admin/common/system/serviceGroup/update'/>",
data: JSON.stringify(updateJson),
})
.complete(function (data) {
@ -238,10 +242,11 @@
// console.log(data.status);
if (data.status == 200) {
// document.location.href = "/BotMain_VM/admin/common/system/serviceGroup/view" + "?serviceGroup=" + mainServiceGroup;
document.location.href = '/view/admin/common/system/serviceGroup/view' + "?serviceGroup=" + mainServiceGroup;
} else if (data.status == 405) {
document.location.href = "<c:url value='/admin/common/system/serviceGroup/view'/>" + "?serviceGroup=" + mainServiceGroup;
} else if (data.status == 405){
$.utils.warning("NLP연결에 실패했습니다.");
} else {
}
else {
$.utils.warning("오류가 발생했습니다.");
}
})
@ -253,10 +258,10 @@
if (getServiceGroupQueryString() == null) {
//유저어드민
setUrl = '/admin/common/system/serviceGroup/select';
setUrl = "<c:url value='/admin/common/system/serviceGroup/select'/>";
} else {
//시스템어드민
setUrl = '/admin/common/system/serviceGroup/select' + "?serviceGroup=" + getServiceGroupQueryString();
setUrl = "<c:url value='/admin/common/system/serviceGroup/select'/>" + "?serviceGroup=" + getServiceGroupQueryString();
}
$.ajax({
type: "GET",
@ -398,7 +403,7 @@
var setParent = policyParent[e.authName] + idx;
}
if ($('#mainServiceGroup').val() == subService.subServiceGroup) {
if($('#mainServiceGroup').val() == subService.subServiceGroup){
if (subService.subPolicyVal.includes(e.authName)) {
treeData[i] = {
id: setId,
@ -406,8 +411,8 @@
text: e.menuName,
state: {
opened: true
, selected: true
, disabled: true
,selected: true
,disabled: true
}
};
@ -418,12 +423,13 @@
text: e.menuName,
state: {
opened: false
, selected: false
, disabled: true
,selected: false
,disabled: true
}
};
}
} else {
}
else {
if (subService.subPolicyVal.includes(e.authName)) {
treeData[i] = {
id: setId,
@ -431,7 +437,7 @@
text: e.menuName,
state: {
opened: true
, selected: true
,selected: true
}
};
@ -442,7 +448,7 @@
text: e.menuName,
state: {
opened: false
, selected: false
,selected: false
}
};
}
@ -477,10 +483,10 @@
if (getServiceGroupQueryString() == null) {
//유저어드민
setUrl = '/admin/common/system/serviceGroup/select';
setUrl = "<c:url value='/admin/common/system/serviceGroup/select'/>";
} else {
//시스템어드민
setUrl = '/admin/common/system/serviceGroup/select' + "?serviceGroup=" + getServiceGroupQueryString();
setUrl = "<c:url value='/admin/common/system/serviceGroup/select'/>" + "?serviceGroup=" + getServiceGroupQueryString();
}
$.ajax({
type: "GET",
@ -535,6 +541,10 @@
</script>
<header id="header">
</header>
<body>
<h1>ICOMSYS ADMIN</h1>
@ -580,6 +590,7 @@
<th class="tl">서비스그룹명</th>
<td>
<div class="ipt_box">
<%-- <input type="text" id="mainServiceGroupName" value="mainServiceGroup" name="" class="" readonly>--%>
<input type="text" id="mainServiceGroupName" name="" class="" readonly>
</div>
</td>
@ -655,8 +666,7 @@
<th class="tl">시나리오 그룹명<em class="red">*</em></th>
<td>
<div class="ipt_box">
<input type="text" id="newServiceGroupName" value="" name=""
class="title-connect">
<input type="text" id="newServiceGroupName" value="" name="" class="title-connect">
</div>
</td>
</tr>
@ -677,6 +687,16 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th class="tl">시나리오 그룹코드</th>--%>
<%-- <td>--%>
<%-- <div class="ipt_box" id="newOprDiv">--%>
<%-- <input type="text" id="newOprMngCode" value="" name=""--%>
<%-- class=" title-connect" readonly>--%>
<%-- </div>--%>
<%-- </td>--%>
<%-- </tr>--%>
<tr>
<th class="tl">시나리오그룹 설명<em class="red">*</em></th>
<td>
@ -726,4 +746,5 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>사용자관리</title>
@ -40,7 +43,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/oprmng' + "?serviceType=M",
url: "<c:url value='/adm/menu/oprmng'/>" + "?serviceType=M",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -59,7 +62,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/cust/select',
url: "<c:url value='/admin/common/system/user/cust/select'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -74,7 +77,7 @@
function viewPage(rowData) {
// console.log(rowData.userSeq);
// document.location.href = "/BotMain_VM/admin/common/system/user/view" + "?userSeq=" + rowData.userSeq;
document.location.href = '/view/admin/common/system/user/view' + "?userSeq=" + rowData.userSeq;
document.location.href = "<c:url value='/admin/common/system/user/view'/>" + "?userSeq=" + rowData.userSeq;
}
var PagingDataTable = function () {
@ -83,7 +86,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/user/list',
url: "<c:url value='/admin/common/system/user/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -192,7 +195,7 @@
targets: 6,
orderable: false,
render: function (data) {
if (data == null)
if(data == null)
data = '';
return '<a style="display: block;text-align: center;">' + data + '</a>';
}
@ -236,7 +239,7 @@
function fnInsertBtn() {
// document.location.href = "/BotMain_VM/admin/common/system/user/insert";
document.location.href = '/view/admin/common/system/user/insert';
document.location.href = "<c:url value='/admin/common/system/user/insert'/>";
}
@ -328,8 +331,8 @@
<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>--%>
<%-- <a href="#" class="btn grey" id="btnDelCust">삭제</a>--%>
<%-- <a href="#" rel="reg_modal" class="btn modalLoad" id="btnRegModal">추가</a>--%>
<a href="#" class="btn line modalLoad" id="btnRegModal">등록</a>
</div>
</div>
@ -355,6 +358,8 @@
<tr>
<th>고객사코드</th>
<th>고객사</th>
<%-- <th>서비스그룹코드</th>--%>
<%-- <th>서비스그룹</th>--%>
<th>사용자시퀀스</th>
<th>사용자아이디</th>
<th>사용자이름</th>
@ -375,5 +380,4 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>운영자관리</title>
@ -38,7 +41,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/oprmng' + "?serviceType=M",
url: "<c:url value='/adm/menu/oprmng'/>" + "?serviceType=M",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -57,7 +60,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/cust/select',
url: "<c:url value='/admin/common/system/user/cust/select'/>",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -72,7 +75,7 @@
function viewPage(rowData) {
// console.log(rowData.userSeq);
document.location.href = '/view/admin/common/system/userAdmin/view' + "?userSeq=" + rowData.userSeq;
document.location.href = "<c:url value='/admin/common/system/userAdmin/view'/>" + "?userSeq=" + rowData.userSeq;
// document.location.href = '/admin/common/system/cust/view';
}
@ -82,7 +85,7 @@
$('#listTable').DataTable(
{
ajax: {
url: '/admin/common/system/userAdmin/list',
url: "<c:url value='/admin/common/system/userAdmin/list'/>",
contentType: "application/json; charset=utf-8",
type: "POST",
dataType: "JSON",
@ -232,7 +235,7 @@
};
function fnInsertBtn() {
document.location.href = '/view/admin/common/system/userAdmin/insert';
document.location.href = "<c:url value='/admin/common/system/userAdmin/insert'/>";
}
@ -324,6 +327,8 @@
<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>--%>
<a href="#" class="btn line modalLoad" id="btnRegModal">등록</a>
</div>
</div>
@ -349,6 +354,8 @@
<tr>
<th>고객사코드</th>
<th>고객사</th>
<%-- <th>서비스그룹코드</th>--%>
<%-- <th>서비스그룹</th>--%>
<th>운영자시퀀스</th>
<th>운영자아이디</th>
<th>운영자이름</th>
@ -369,3 +376,4 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>사용자관리</title>
@ -26,10 +29,10 @@
// })
// });
//선택 이벤트
$('#newCustUser').change(function () {
SelectServiceGroupUpdate($(this).val())
});
//선택 이벤트
$('#newCustUser').change(function () {
SelectServiceGroupUpdate($(this).val())
});
//서비스그룹 추가 -> 적용버튼
@ -92,7 +95,7 @@
function listgo() {
// document.location.href = "/BotMain_VM/admin/common/system/user/manage.do";
document.location.href = '/view/admin/common/system/userAdmin/manage.do';
document.location.href = "<c:url value='/admin/common/system/userAdmin/manage.do'/>";
}
function delBtn() {
@ -183,7 +186,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/save',
url: "<c:url value='/admin/common/system/user/save'/>",
data: JSON.stringify(json)
}).complete(function (data) {
// console.log(data.status);
@ -223,7 +226,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + serviceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + serviceGroup,
success: function (data) {
data.forEach(function (e, i) {
html3
@ -308,7 +311,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + servoceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + servoceGroup,
success: function (data) {
data.forEach(function (e, i) {
html1
@ -337,7 +340,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/oprmng' + "?serviceType=M",
url: "<c:url value='/adm/menu/oprmng'/>"+ "?serviceType=M",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -358,7 +361,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/cust/select',
url: "<c:url value='/admin/common/system/user/cust/select'/>",
success: function (data) {
// console.log(JSON.stringify(data));
@ -378,14 +381,14 @@
}
;
function SelectServiceGroupUpdate(custCode) {
function SelectServiceGroupUpdate(custCode){
var html1 = '';
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/userAdmin/service/select' + "?custCode=" + custCode,
url: "<c:url value='/admin/common/system/userAdmin/service/select'/>" + "?custCode="+custCode,
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -422,7 +425,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/doubleCheck' + "?userId=" + userId,
url: "<c:url value='/admin/common/system/user/doubleCheck'/>" + "?userId=" + userId,
success: function (data) {
// console.log(data);
if (data == "Y") {
@ -452,10 +455,11 @@
var reg = /(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{10,}$/;
if (text2.length > 7) {
if(text2.length > 7){
if (text1 === text2) {
$('#passDoubleCheckUi').html(htmlY)
} else {
}
else {
$('#passDoubleCheckUi').html(htmlN)
}
}
@ -463,15 +467,19 @@
if (text1.length < 10 || text1.length > 20) {
$('#passCheckUi').html(htmlN)
return;
} else if (text1.search(/\s/) != -1) {
}
else if (text1.search(/\s/) != -1) {
$('#passCheckUi').html(htmlN)
return false;
} else if (false === reg.test(text1)) {
}
else if (false === reg.test(text1)) {
$('#passCheckUi').html(regDesc)
return false;
} else if ($('#newUserPassDoubleChkVal').val() == "Y") {
}
else if ($('#newUserPassDoubleChkVal').val() == "Y") {
newUserDoublePassCheck()
} else {
}
else {
$('#passCheckUi').html(htmlY)
return true;
}
@ -633,6 +641,7 @@
<td>
<div class="sel_box">
<select class="wide" id="newUserRoleVal">
<%-- <option value="USER">일반사용자</option>--%>
<option value="USERADMIN">운영자</option>
</select>
</div>
@ -692,6 +701,13 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th class="tl">권한선택</th>--%>
<%-- <td>--%>
<%-- <ul class="list-user-group-box-ul" id="newAuthChk">--%>
<%-- </ul>--%>
<%-- </td>--%>
<%-- </tr>--%>
</span>
</tbody>
</table>
@ -713,5 +729,6 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>운영자관리</title>
@ -67,7 +70,7 @@
datatype: "JSON",
async: false,
data: data,
url: '/admin/common/system/user/chk/reset',
url: "<c:url value='/admin/common/system/user/chk/reset'/>",
}).complete(function (data) {
// console.log(data.status);
var result = data.status;
@ -176,7 +179,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/update',
url: "<c:url value='/admin/common/system/user/update'/>",
data: JSON.stringify(json)
}).complete(function (data) {
// console.log(data.status);
@ -200,7 +203,7 @@
function listgo() {
// document.location.href = "/BotMain_VM/admin/common/system/user/manage.do";
document.location.href = '/view/admin/common/system/userAdmin/manage.do';
document.location.href = "<c:url value='/admin/common/system/userAdmin/manage.do'/>";
}
function getQueryString() {
@ -215,7 +218,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/viewData' + "?userSeq=" + getQueryString(),
url: "<c:url value='/admin/common/system/user/viewData'/>" + "?userSeq=" + getQueryString(),
success: function (data) {
// console.log("getData---");
// console.log(JSON.stringify(data));
@ -245,7 +248,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/oprmng' + "?serviceType=M",
url: "<c:url value='/adm/menu/oprmng'/>" + "?serviceType=M",
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -278,7 +281,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + serviceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + serviceGroup,
success: function (data) {
data.forEach(function (e, i) {
html3
@ -460,7 +463,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + servoceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + servoceGroup,
success: function (data) {
data.forEach(function (e, i) {
html1
@ -601,9 +604,7 @@
<td>
<div class="sel_box">
<select class="wide" id="updateRoleVal">
<%--
<option value="USER">일반사용자</option>
--%>
<%-- <option value="USER">일반사용자</option>--%>
<option value="USERADMIN">운영자</option>
</select>
</div>
@ -662,6 +663,13 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th class="tl">권한선택</th>--%>
<%-- <td>--%>
<%-- <ul class="list-user-group-box-ul" id="newAuthChk">--%>
<%-- </ul>--%>
<%-- </td>--%>
<%-- </tr>--%>
</span>
</tbody>
</table>
@ -683,5 +691,6 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>사용자관리</title>
@ -86,7 +89,7 @@
function listgo() {
// document.location.href = "/BotMain_VM/admin/common/system/user/manage.do";
document.location.href = '/view/admin/common/system/user/manage.do';
document.location.href = "<c:url value='/admin/common/system/user/manage.do'/>";
}
function delBtn() {
@ -191,7 +194,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/save',
url: "<c:url value='/admin/common/system/user/save'/>",
data: JSON.stringify(json)
}).complete(function (data) {
// console.log(data.status);
@ -232,7 +235,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + serviceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + serviceGroup,
success: function (data) {
data.forEach(function (e, i) {
html3
@ -323,7 +326,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + servoceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + servoceGroup,
success: function (data) {
data.forEach(function (e, i) {
html1
@ -352,7 +355,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/adm/menu/oprmng'
url: "<c:url value='/adm/menu/oprmng'/>"
// + "?serviceType=S"
,
success: function (data) {
@ -375,7 +378,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/cust/select',
url: "<c:url value='/admin/common/system/user/cust/select'/>",
success: function (data) {
// console.log(JSON.stringify(data));
@ -402,7 +405,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/service/select' + "?custCode=" + custCode,
url: "<c:url value='/admin/common/system/user/service/select'/>" + "?custCode=" + custCode,
success: function (data) {
// console.log(JSON.stringify(data));
data.forEach(function (e, f) {
@ -436,7 +439,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/doubleCheck' + "?userId=" + userId,
url: "<c:url value='/admin/common/system/user/doubleCheck'/>" + "?userId=" + userId,
success: function (data) {
// console.log(data);
if (data == "Y") {
@ -737,6 +740,13 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th class="tl">권한선택</th>--%>
<%-- <td>--%>
<%-- <ul class="list-user-group-box-ul" id="newAuthChk">--%>
<%-- </ul>--%>
<%-- </td>--%>
<%-- </tr>--%>
</span>
</tbody>
</table>
@ -758,5 +768,6 @@
</body>
</html>

@ -1,3 +1,6 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>사용자관리</title>
@ -45,7 +48,7 @@
function listgo() {
// document.location.href = "/BotMain_VM/admin/common/system/user/manage.do";
document.location.href = '/admin/common/system/user/manage.do';
document.location.href = "<c:url value='/admin/common/system/user/manage.do'/>";
}
//서비스그룹 추가 -> 적용버튼
@ -74,14 +77,14 @@
});
function getUv() {
function getUv(){
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
data: data,
url: '/admin/common/system/user/chk/reset',
url: "<c:url value='/admin/common/system/user/chk/reset'/>",
}).complete(function (data) {
// console.log(data.status);
var result = data.status;
@ -103,7 +106,7 @@
datatype: "JSON",
async: false,
data: data,
url: '/admin/common/system/user/chk/reset',
url: "<c:url value='/admin/common/system/user/chk/reset'/>",
}).complete(function (data) {
// console.log(data.status);
var result = data.status;
@ -120,6 +123,7 @@
}
function saveBtn() {
var userSeq = $('#updateUserSeq').val();
@ -178,7 +182,7 @@
$.utils.warning("비밀번호가 일치하지 않습니다.");
return;
}
if (userPass.length > 0) {
if(userPass.length > 0){
var reg = /(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,15}$/;
if (false === reg.test(userPass)) {
$.utils.warning("비밀번호를 확인해주세요.");
@ -207,7 +211,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/update',
url: "<c:url value='/admin/common/system/user/update'/>",
data: JSON.stringify(json)
}).complete(function (data) {
// console.log(data.status);
@ -216,7 +220,7 @@
// alert("성공하였습니다. 리스트로 돌아갑니다.")
$.utils.success("성공하였습니다. 리스트로 돌아갑니다.");
// $.utils.warning("1글자 이상 입력해주세요.");
document.location.href = '/view/admin/common/system/user/manage.do';
document.location.href = "<c:url value='/admin/common/system/user/manage.do'/>";
} else {
// alert("실패하였습니다.")
$.utils.warning("실패하였습니다.");
@ -225,6 +229,7 @@
}
function getQueryString() {
var param = new URLSearchParams(location.search).get("userSeq");
// console.log(param)
@ -237,7 +242,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/viewData' + "?userSeq=" + getQueryString(),
url: "<c:url value='/admin/common/system/user/viewData'/>" + "?userSeq=" + getQueryString(),
success: function (data) {
// console.log("getData---");
// console.log(JSON.stringify(data));
@ -245,7 +250,7 @@
$('#updateUserId').val(data.userId);
$('#updateUserName').val(data.userName);
$('#updateMobile').val(data.mobileNo);
$('#updateUseYn').val(data.useYn).prop('selected', true);
$('#updateUseYn').val(data.useYn).prop('selected',true);
$('#updateLoginCheck').val(data.loginCheck);
$('#updateEmail').val(data.email);
var role = data.roleVal;
@ -267,8 +272,8 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/adm/menu/oprmng'
// +"?serviceType=S"
url: "<c:url value='/adm/menu/oprmng'/>"
// +"?serviceType=S"
,
success: function (data) {
// console.log(JSON.stringify(data));
@ -304,7 +309,7 @@
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + serviceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + serviceGroup,
success: function (data) {
data.forEach(function (e, i) {
html3
@ -486,7 +491,7 @@
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
url: '/admin/common/system/user/authlist' + "?serviceGroup=" + servoceGroup,
url: "<c:url value='/admin/common/system/user/authlist'/>" + "?serviceGroup=" + servoceGroup,
success: function (data) {
data.forEach(function (e, i) {
html1
@ -685,6 +690,13 @@
</td>
</tr>
<%-- <tr>--%>
<%-- <th class="tl">권한선택</th>--%>
<%-- <td>--%>
<%-- <ul class="list-user-group-box-ul" id="newAuthChk">--%>
<%-- </ul>--%>
<%-- </td>--%>
<%-- </tr>--%>
</span>
</tbody>
</table>
@ -706,5 +718,6 @@
</body>
</html>

@ -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>

@ -3,16 +3,17 @@
<!-- Footer -->
<th:block th:fragment="footerFragment">
<script>
$(document).ready(function () {
lnbEvt();
currentPage();
modalUi();
fileupload();
tabUi();
})
</script>
<div class="footer row gray-bg" style="">
<div class="col-lg-12">
<div class="p-sm">
<div class="pull-right">
<!-- 10GB of <strong>250GB</strong> Free. -->
</div>
<div>
</div>
</div>
</div>
</div>
</th:block>
</html>

@ -1,8 +1,16 @@
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="sidebarFragment">
<script type=text/javascript>
</script>
<style>
header + article {
z-index: 0;
}
</style>
<article>
<div class="lnb_menu_btn_area open">
<a href="#" class="lnb_menu_menu">
@ -14,80 +22,64 @@
</a>
</div>
<nav>
<ul class="lnb" id="menuSeq1">
<ul class="lnb">
<!-- <c:choose>-->
<!-- <c:when test="${empty list_menulist }">-->
<!-- <li>Refresh</li>-->
<!-- </ul>-->
<!-- </c:when>-->
<!-- <c:otherwise>-->
<!-- <c:forEach var="result" items="${list_menulist}" varStatus="status">-->
<!-- <c:choose>-->
<!-- <c:when test="${result.level eq '2'}">-->
<!-- <li>-->
<!-- <a href="#"><c:out value="${result.menuName}"/></a>-->
<!-- <ul class="depth<c:out value="${result.level}"/>">-->
<!-- </c:when>-->
<!-- <c:when test="${result.level eq '3'}">-->
<!-- <c:choose>-->
<!-- <c:when test="${result.level >= result.nextLevel}">-->
<!-- <li>-->
<!-- <a href="${pageContext.request.contextPath}<c:out value="${result.url}" />"><span><c:out-->
<!-- value="${result.menuName}"/></span></a>-->
<!-- </li>-->
<!-- </c:when>-->
<!-- <c:when test="${result.nextLevel eq '4'}">-->
<!-- <li>-->
<!-- <a href="#"><c:out value="${result.menuName}"/></a>-->
<!-- <ul class="depth<c:out value="${result.level}"/>">-->
<!-- </c:when>-->
<!-- </c:choose>-->
<!-- <c:if test="${result.nextLevel eq '2'}">-->
<!-- </ul>-->
<!-- </li>-->
<!-- </c:if>-->
<!-- </c:when>-->
<!-- <c:when test="${result.level eq '4'}">-->
<!-- <li>-->
<!-- <a href="${pageContext.request.contextPath}<c:out value="${result.url}" />"><span><c:out-->
<!-- value="${result.menuName}"/></span></a>-->
<!-- </li>-->
<!-- <c:if test="${empty result.nextLevel or result.nextLevel eq '2'}">-->
<!-- </ul>-->
<!-- </li>-->
<!-- </ul>-->
<!-- </li>-->
<!-- </c:if>-->
<!-- <c:if test="${result.nextLevel eq '3'}">-->
<!-- </ul>-->
<!-- </li>-->
<!-- </c:if>-->
<!-- </c:when>-->
<!-- </c:choose>-->
<!-- </c:forEach>-->
<!-- </c:otherwise>-->
<!-- </c:choose>-->
</ul>
</nav>
</article>
<script type=text/javascript>
$(document).ready(function () {
GetAuth();
PageControll('/admin/common/dashboard/manage.do');
}).off(lnbEvt())
function GetAuth() {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "JSON",
async: false,
url: '/rest/test5',
success: function (data) {
data.forEach(function (e, i) {
var addMenu = '';
if (!(e.level == '0' || e.level == '1') && !$("#menuSeq" + e.seq).length > 0) {
var menuUrl = "#";
if (e.url != '0') {
menuUrl = e.url;
}
addMenu += '<li>'
//+ '<a href=' + menuUrl + '>'
+ '<a value=' + menuUrl + '>'
// + '<a href="'+'javascript:PageControll('+ menuUrl +')">'
+ '<span>'
+ e.menuName + '</span></a>'
+ '<ul class="depth' + e.level + '" id="menuSeq' + e.seq + '">'
+ '</ul>'
+ '</li>'
$('#menuSeq' + e.seqUpper).append(addMenu);
}
})
$(".lnb").on("click", "a", function() {
PageControll($(this).attr("value"));
});
}
})
};
function PageControll(e) {
if (e == '#') {
return;
}
var redi = '';
if (e == "" || e == null) {
redi = '/admin/common/dashboard/manage.do'
} else {
redi = e;
}
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "HTML",
async: false,
url: redi,
success: function (data) {
$('#pageControll').html(data);
}
});
}
</script>
<script th:src="@{/lib/assets/js/scripts.js}"></script>
</th:block>
</html>
</html>

@ -3,6 +3,6 @@
<th:block th:replace="layout/fragments/head :: headFragment"></th:block>
<th:block th:replace="layout/fragments/sidebar :: sidebarFragment"></th:block>
<!-- <th:block th:replace="layout/fragments/top :: topbarFragment"></th:block>-->
<th:block layout:fragment="content"></th:block>
<!--<th:block th:replace="layout/fragments/footer :: footerFragment"></th:block>-->
<th:block layout:fragment="content"></th:block>
<!-- <th:block th:replace="layout/fragments/footer :: footerFragment"></th:block>-->
</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>

@ -140,9 +140,8 @@
})
.complete(function (data) {
if (data.status == 200) {
console.log(data);
document.cookie = 'accessToken=' + data.responseText + '; path=/;';
console.log("cookie ="+document.cookie)
document.signinInfoForm.action = '/adm/main/actionSecurityLogin.do';
document.signinInfoForm.submit();
} else if (data.status == 400) {

Loading…
Cancel
Save