This commit is contained in:
name 2023-09-26 10:44:01 +09:00
commit 853fa9ebd5
25 changed files with 1775 additions and 225 deletions

View File

@ -578,4 +578,16 @@ public final class StringUtil2 {
}
public static String extractLogMethodNm(
String p_url
) throws Exception{
String[] s_arr = p_url.split("/");
if (s_arr.length>=3) {
return s_arr[s_arr.length-3]+"/"+s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1];
}
return p_url;
}
}

View File

@ -85,4 +85,10 @@ public class SendMgrSMSController {
return modelAndView;
}
@RequestMapping(value = "/kccadr/sendMgr/smsSendMgr_tabulator.do")
public String smsSendMgrPage_tabulator() {
return "/kccadr/sendMgr/smsSendMgr_tabulator";
}
}

View File

@ -33,7 +33,8 @@ public class SttsVO extends ComDefaultVO implements Serializable {
private String rcptTotCnt = ""; // 접수 총계
private String succCnt = ""; // 성립 건수(기일성립+조정권고성립)
private String jikSuccCnt = ""; // 직권결정 성립 건수
private String failCnt = ""; // 불성립 건수(모든 불성립)
private String failCnt = ""; // 불성립 건수(불성립 건수(직권 불성립 제외한 불성립))
private String failJikCnt = ""; // 불성립 건수(직권 불성립)
private String cancleCnt = ""; // 취하 건수
private String succPer = ""; // 성립율
private String finalTotCnt = ""; // 종결총계
@ -272,6 +273,14 @@ public class SttsVO extends ComDefaultVO implements Serializable {
public void setReqOlCd(String reqOlCd) {
this.reqOlCd = reqOlCd;
}
public String getFailJikCnt() {
return failJikCnt;
}
public void setFailJikCnt(String failJikCnt) {
this.failJikCnt = failJikCnt;
}

View File

@ -30,6 +30,8 @@ public interface EgovLoginLogService {
*/
public void logInsertLoginLog(LoginLog loinLog) throws Exception;
public int logInsertLoginLogNewStep1(LoginLog loinLog) throws Exception;
/**
* 접속로그를 조회한다.
*
@ -56,6 +58,10 @@ public interface EgovLoginLogService {
public List<LoginLog> selectAmdinLog(LoginLog loginLog) throws Exception;
public List<LoginLog> selectNAmdinLog(LoginLog loginLog) throws Exception;
public List<LoginLog> selectNWebLog(LoginLog loginLog) throws Exception;
public int selectAmdinLogTotCnt(LoginLog loginLog) throws Exception;
public List<LoginLog> selectLogMethodList(LoginLog loginLog) throws Exception;

View File

@ -146,6 +146,12 @@ public class LoginLog extends ComDefaultVO implements Serializable {
private String totalLogCnt;
private String useYn; //통계 사용여부
private String sortNum; //통계 순서
private String methodCd; //통계 순서
private List<LoginLog> logDataList = new ArrayList<LoginLog>() ;
@ -480,4 +486,27 @@ public class LoginLog extends ComDefaultVO implements Serializable {
this.totalLogCnt = totalLogCnt;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getSortNum() {
return sortNum;
}
public void setSortNum(String sortNum) {
this.sortNum = sortNum;
}
public String getMethodCd() {
return methodCd;
}
public void setMethodCd(String methodCd) {
this.methodCd = methodCd;
}
}

View File

@ -10,6 +10,7 @@ import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.com.cmm.util.StringUtil2;
import kcc.let.sym.log.clg.service.EgovLoginLogService;
import kcc.let.sym.log.clg.service.LoginLog;
@ -66,6 +67,59 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
loginLogDAO.logInsertWebLoginLog(loinLog); //사용자 페이지의 로그만 남김(메뉴에 등록된 페이지만 남김)
}
public int logInsertLoginLogNewStep1(LoginLog loinLog) throws Exception {
// TODO Auto-generated method stub
String logId = egovLoginLogIdGnrService.getNextStringId();
loinLog.setLogId(logId);
//method name 설정
//LETTNLOGINLOG_BAK 테이블을 위해서 추가됨
//String[] s_arr = loinLog.getUrl().split("/");
//loinLog.setMethodNm(s_arr[s_arr.length-3]+"/"+s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1]);
loinLog.setMethodNm(StringUtil2.extractLogMethodNm(loinLog.getUrl()));
System.out.println("loinLog.getMethodNm()");
System.out.println(loinLog.getMethodNm());
//loginLogDAO.logInsertLoginLog(loinLog);
int i=loginLogDAO.logInsertWebLoginLogNewStep1(loinLog); //사용자 페이지의 로그만 남김(메뉴에 등록된 페이지만 남김)
// System.out.println("=====i=====");
// System.out.println(i);
// System.out.println(i);
try {
if (loinLog.getUrl().length()>400) {
loinLog.setUrl(loinLog.getUrl().substring(0,399));
}
if (i<=0) {
//LETTNADMINMETHOD 테이블에 추가하기
loginLogDAO.logInsertWebLoginLogNewStep3(loinLog);
//다시 남기기
i=loginLogDAO.logInsertWebLoginLogNewStep1(loinLog); //사용자 페이지의 로그만 남김(메뉴에 등록된 페이지만 남김)
//lettnloginlog 남기기
i=loginLogDAO.logInsertWebLoginLogNewStep2(loinLog); //사용자 페이지의 로그만 남김(메뉴에 등록된 페이지만 남김)
}
}catch(Exception ex) {
ex.printStackTrace();
}
System.out.println("=====i=====");
System.out.println(i);
System.out.println(i);
return i;
}
/**
* 접속로그를 조회한다.
*
@ -122,6 +176,16 @@ public class EgovLoginLogServiceImpl extends EgovAbstractServiceImpl implements
return loginLogDAO.selectAmdinLog(loginLog);
}
@Override
public List<LoginLog> selectNAmdinLog(LoginLog loginLog) throws Exception {
return loginLogDAO.selectNAmdinLog(loginLog);
}
@Override
public List<LoginLog> selectNWebLog(LoginLog loginLog) throws Exception {
return loginLogDAO.selectNWebLog(loginLog);
}
@Override
public int selectAmdinLogTotCnt(LoginLog loginLog) throws Exception {
return loginLogDAO.selectAmdinLogTotCnt(loginLog);

View File

@ -102,6 +102,14 @@ public class LoginLogDAO extends EgovAbstractDAO {
return (List<LoginLog>)list("LoginLogDAO.selectAmdinLog", loginLog);
}
public List<LoginLog> selectNAmdinLog(LoginLog loginLog) throws Exception{
return (List<LoginLog>)list("LoginLogDAO.selectNAmdinLog", loginLog);
}
public List<LoginLog> selectNWebLog(LoginLog loginLog) throws Exception{
return (List<LoginLog>)list("LoginLogDAO.selectNWebLog", loginLog);
}
public int selectAmdinLogTotCnt(LoginLog loginLog) throws Exception{
return (Integer)select("LoginLogDAO.selectAmdinLogTotCnt", loginLog);
}
@ -135,6 +143,19 @@ public class LoginLogDAO extends EgovAbstractDAO {
insert("LoginLogDAO.logInsertWebLoginLog", loinLog);
}
public int logInsertWebLoginLogNewStep1(LoginLog loinLog) throws Exception{
return update("LoginLogDAO.logInsertWebLoginLogNewStep1", loinLog);
//return update("LoginLogDAO.logInsertWebLoginLogNewStep1_bak", loinLog);
}
public int logInsertWebLoginLogNewStep2(LoginLog loinLog) throws Exception{
return update("LoginLogDAO.logInsertWebLoginLogNewStep2", loinLog);
}
public int logInsertWebLoginLogNewStep3(LoginLog loinLog) throws Exception{
return update("LoginLogDAO.logInsertWebLoginLogNewStep3_bak", loinLog);
}
@SuppressWarnings("unchecked")
public List<LoginLog> selectWebLogList(LoginLog loginLog) throws Exception{
return (List<LoginLog>)list("LoginLogDAO.selectWebLogList", loginLog);

View File

@ -122,6 +122,84 @@ public class EgovLoginLogController {
return "sym/log/clg/EgovLoginLogList";
}
/**
* 로그인 로그 목록 조회(관리자)
*
* @param loginLog
* @return sym/log/clg/EgovLoginLogList
* @throws Exception
*/
@RequestMapping(value = "/sym/log/clg/NSelectLoginLogList.do")
public String NSelectLoginLogList(@ModelAttribute("searchVO") LoginLog loginLog, @RequestParam Map<String, Object> commandMap ,ModelMap model) throws Exception {
if(loginLog.getPageUnit() != 10) {
loginLog.setPageUnit(loginLog.getPageUnit());
}
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(loginLog.getPageIndex());
paginationInfo.setRecordCountPerPage(loginLog.getPageUnit());
paginationInfo.setPageSize(loginLog.getPageSize());
loginLog.setFirstIndex(paginationInfo.getFirstRecordIndex());
loginLog.setLastIndex(paginationInfo.getLastRecordIndex());
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
loginLog.setSearchSortCnd("b.CREAT_DT");
loginLog.setSearchSortOrd("desc");
}
List<LoginLog> adminLogList = loginLogService.selectNAmdinLog(loginLog);
int adminLogListCnt = 0;
if (adminLogList.size()>0) {
adminLogListCnt = adminLogList.get(0).getTotCnt();
}
paginationInfo.setTotalRecordCount(adminLogListCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("adminLogList", adminLogList);
return "sym/log/clg/NSelectLoginLogList";
}
/**
* 로그인 로그 목록 조회(관리자)
*
* @param loginLog
* @return sym/log/clg/EgovLoginLogList
* @throws Exception
*/
@RequestMapping(value = "/sym/log/clg/NSelectWebLogList.do")
public String NSelectWebLogList(@ModelAttribute("searchVO") LoginLog loginLog, @RequestParam Map<String, Object> commandMap ,ModelMap model) throws Exception {
if(loginLog.getPageUnit() != 10) {
loginLog.setPageUnit(loginLog.getPageUnit());
}
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(loginLog.getPageIndex());
paginationInfo.setRecordCountPerPage(loginLog.getPageUnit());
paginationInfo.setPageSize(loginLog.getPageSize());
loginLog.setFirstIndex(paginationInfo.getFirstRecordIndex());
loginLog.setLastIndex(paginationInfo.getLastRecordIndex());
loginLog.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(loginLog.getSearchSortCnd())){ //최초조회시 최신것 조회List
loginLog.setSearchSortCnd("b.CREAT_DT");
loginLog.setSearchSortOrd("desc");
}
List<LoginLog> adminLogList = loginLogService.selectNWebLog(loginLog);
int adminLogListCnt = 0;
if (adminLogList.size()>0) {
adminLogListCnt = adminLogList.get(0).getTotCnt();
}
paginationInfo.setTotalRecordCount(adminLogListCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("adminLogList", adminLogList);
return "sym/log/clg/NSelectWebLogList";
}
/**
* 로그인 로그 상세 조회
*
@ -245,11 +323,16 @@ public class EgovLoginLogController {
* @throws Exception
*/
@RequestMapping(value = "/sym/log/clg/SelectLogMethodList.do")
public String selectLogMethodList(@ModelAttribute("searchVO") LoginLog loginLog, @RequestParam Map<String, Object> commandMap ,ModelMap model) throws Exception {
public String selectLogMethodList(
@ModelAttribute("searchVO") LoginLog loginLog,
@RequestParam Map<String, Object> commandMap ,
ModelMap model
) throws Exception {
/*
if(loginLog.getPageUnit() != 10) {
loginLog.setPageUnit(loginLog.getPageUnit());
}
*/
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(loginLog.getPageIndex());
paginationInfo.setRecordCountPerPage(loginLog.getPageUnit());

View File

@ -435,6 +435,7 @@ public class EgovSysLogAspect {
* @throws Exception
*/
public void logAdminSelect(JoinPoint joinPoint) throws Throwable {
System.out.println("logAdminSelect");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if(isAuthenticated.booleanValue()) {
SysLog sysLog = new SysLog();

View File

@ -3,17 +3,18 @@ package kcc.let.sym.log.lgm.service.impl;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.StringUtil2;
import kcc.let.sym.log.lgm.service.EgovSysLogService;
import kcc.let.sym.log.lgm.service.SysLog;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* 로그관리(시스템) 위한 서비스 구현 클래스
* @author 공통서비스개발팀 이삼섭
@ -100,6 +101,9 @@ public class EgovSysLogServiceImpl extends EgovAbstractServiceImpl implements
return _map;
}
/*
* 관리자 로그 정보 이므로, method_cd='A' 이어야만 한다.
* */
@Override
public void logInsertAdminSysLog(SysLog sysLog) throws Exception {
String requstId = egovAdminLogIdGnrService.getNextStringId();
@ -108,7 +112,59 @@ public class EgovSysLogServiceImpl extends EgovAbstractServiceImpl implements
if(null != loginVO){
sysLog.setSiteId(loginVO.getSiteId());
}
sysLogDAO.logInsertAdminSysLog(sysLog);
//하기 내용으로 대체 - 2023-09-21
//sysLogDAO.logInsertAdminSysLog(sysLog);
//고유값으로 만들기
sysLog.setMethodNm(StringUtil2.extractLogMethodNm(sysLog.getUrl()));
//sysLogDAO.logInsertAdminSysLog(sysLog);
int i = sysLogDAO.logInsertAdminSysLogNewStep1(sysLog);
// System.out.println("=====i=====");
// System.out.println(i);
// System.out.println(i);
String[] s_arr = sysLog.getSrvcNm().split("[.]");
sysLog.setTrgetMenuNm(s_arr[s_arr.length-1]);
// System.out.println("=====i====="+sysLog.getTrgetMenuNm());
// System.out.println("=====i====="+sysLog.getSrvcNm());
// System.out.println("=====i====="+sysLog.getUrl());
// System.out.println("=====i====="+sysLog.getPageUnit());
// System.out.println("=====i====="+sysLog.getRqsterNm());
//
// System.out.println("=====i====="+sysLog.getMethodNm());
try {
//저장이 안되었으면 LETTNADMINMETHOD 테이블에 추가하고 다시 저장해보기
if (i<=0) {
//LETTNADMINMETHOD 테이블에 추가하기
i = sysLogDAO.logInsertAdminSysLogNewStep3(sysLog);
//다시 로그 남기기
i = sysLogDAO.logInsertAdminSysLogNewStep1(sysLog);
}
// System.out.println("====re=i=====");
// System.out.println(i);
// System.out.println(i);
//그래도 저장이 안되었으면 길이잘라서 log만 저장하기
if (i<=0) {
if (sysLog.getUrl().length()>1000) sysLog.setUrl(sysLog.getUrl().substring(0,1000));
i = sysLogDAO.logInsertAdminSysLogNewStep2(sysLog);
// System.out.println("=====i=====");
// System.out.println(i);
// System.out.println(i);
}
}catch(Exception ex) {
System.out.println(ex.getMessage());
}
}
}

View File

@ -2,11 +2,11 @@ package kcc.let.sym.log.lgm.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.let.sym.log.lgm.service.SysLog;
import org.springframework.stereotype.Repository;
/**
* 로그관리(시스템) 위한 데이터 접근 클래스
* @author 공통서비스개발팀 이삼섭
@ -96,4 +96,20 @@ public class SysLogDAO extends EgovAbstractDAO {
}
public int logInsertAdminSysLogNewStep1(SysLog sysLog) throws Exception{
return update("SysLogDAO.logInsertAdminSysLogNewStep1", sysLog);
//return update("SysLogDAO.logInsertAdminSysLogNewStep1_bak", sysLog);
}
public int logInsertAdminSysLogNewStep2(SysLog sysLog) throws Exception{
return update("SysLogDAO.logInsertAdminSysLogNewStep2", sysLog);
}
public int logInsertAdminSysLogNewStep3(SysLog sysLog) throws Exception{
return update("SysLogDAO.logInsertAdminSysLogNewStep3", sysLog);
}
}

View File

@ -735,7 +735,9 @@ public class MainController {
}else {
loginLog.setUrl(request.getRequestURI());
}
loginLogService.logInsertLoginLog(loginLog);
//loginLogService.logInsertLoginLog(loginLog);
loginLogService.logInsertLoginLogNewStep1(loginLog);
}
//오늘 접속 / 최종접속

View File

@ -168,68 +168,114 @@
<!-- 분쟁조정 통계 -->
<select id="SttsDAO.sttsYrlyPrcsList" parameterClass="SttsVO" resultClass="SttsVO">
WITH hst AS (
SELECT *
FROM adr_hstry hst
WHERE EXISTS (
SELECT 1
FROM (
SELECT
MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '309000' > stat_cd
GROUP BY adr_seq
) hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
WITH hst AS
( SELECT *
FROM adr_hstry hst
WHERE EXISTS
( SELECT 1
FROM ( SELECT MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '309000' <![CDATA[ > ]]> stat_cd
GROUP BY adr_seq
)
hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
)
)
)
SELECT
t.strYear
,t.rcptTotCnt /* 접수 총계 */
,t.succCnt /* 성립 건수(기일성립+조정권고성립) */
,t.jikSuccCnt /* 직권결정 성립 건수 */
,t.failCnt /* 불성립 건수(모든 불성립) */
,t.cancleCnt /* 취하 건수 */
,TRUNC(
(t.succCnt + t.jikSuccCnt)
/ IF((t.succCnt + t.jikSuccCnt + t.failCnt) = 0, 1, (t.succCnt + t.jikSuccCnt + t.failCnt))
* 100
, 2) AS succPer /* 성립율 */
,(t.succCnt + t.jikSuccCnt + t.failCnt + t.cancleCnt) AS finalTotCnt /* 종결총계 */
,(t.yearTotCnt - t.rcptTotCnt - t.succCnt - t.jikSuccCnt
- t.failCnt - t.cancleCnt) AS ingCnt /* 진행 건수 */
FROM (
SELECT
TO_CHAR(am.appr_de, 'YYYY') AS strYear
,COUNT(1) AS yearTotCnt /* 년도 총계 */
,COUNT(IF(am.stat_cd = '101050', 1, null)) AS rcptTotCnt /* 접수 총계 */
,COUNT(IF(hst.stat_cd = '304050', 1, null)) AS succCnt /* 성립 건수(기일성립+조정권고성립) */
,COUNT(IF(am.stat_cd = '400000' AND hst.stat_cd = '306050', 1, null))
AS jikSuccCnt /* 직권결정 성립 건수 */
,COUNT(IF(hst.stat_cd = '307050', 1, null)) AS failCnt /* 불성립 건수(모든 불성립) */
,COUNT(IF(hst.stat_cd = '305050', 1, null)) AS cancleCnt /* 취하 건수 */
FROM adr_mgr_master am /* 마스터 */
INNER JOIN adr_mgr_detail ad ON am.adr_seq = ad.adr_seq /* 상세 */
LEFT OUTER JOIN hst ON ad.adr_seq = hst.adr_seq /* 히스토리 */
WHERE 1=1
AND am.USE_YN != 'N'
AND
(
am.adr_no IS NOT NULL OR
(
am.adr_no IS NULL
AND am.stat_cd *1 <![CDATA[ < ]]> 201000
AND am.stat_cd NOT IN ('101000',
'101090' )
)
)
<isNotEmpty property="searchYear">
/* 년 */
AND am.appr_de BETWEEN TO_DATE(#searchYear#||'0101', 'yyyyMMdd')
AND TO_DATE(#searchYear#||'1231', 'yyyyMMdd')
</isNotEmpty>
GROUP BY TO_CHAR(am.appr_de, 'YYYY')
) t
, failJik AS
( SELECT *
FROM adr_hstry hst
WHERE EXISTS
( SELECT 1
FROM ( SELECT MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '307050' <![CDATA[ > ]]> stat_cd AND stat_cd LIKE '%50'
GROUP BY adr_seq
)
hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
)
)
SELECT t.strYear ,
t.rcptTotCnt
/* 접수 총계 */
,
t.succCnt
/* 성립 건수(기일성립+조정권고성립) */
,
t.jikSuccCnt
/* 직권결정 성립 건수 */
,
t.failCnt
/* 불성립 건수(직권 불성립 제외한 불성립) */
,
t.failJikCnt
/* 불성립 건수(직권 불성립) */
,
t.cancleCnt
/* 취하 건수 */
,
TRUNC( (t.succCnt + t.jikSuccCnt) / IF((t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt)) = 0, 1, (t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt))) * 100 , 2) AS succPer
/* 성립율 */
,
(t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt) + t.cancleCnt) AS finalTotCnt
/* 종결총계 */
,
(t.yearTotCnt - t.rcptTotCnt - t.succCnt - t.jikSuccCnt - (t.failCnt+t.failJikCnt) - t.cancleCnt) AS ingCnt
/* 진행 건수 */
FROM ( SELECT TO_CHAR(am.appr_de, 'YYYY') AS strYear ,
COUNT(1) AS yearTotCnt
/* 년도 총계 */
,
COUNT(IF(am.stat_cd = '101050', 1, NULL)) AS rcptTotCnt
/* 접수 총계 */
,
COUNT(IF(hst.stat_cd = '304050', 1, NULL)) AS succCnt
/* 성립 건수(기일성립+조정권고성립) */
,
COUNT(IF(am.stat_cd = '400000'
AND hst.stat_cd = '306050', 1, NULL)) AS jikSuccCnt
/* 직권결정 성립 건수 */
,
COUNT(IF(hst.stat_cd = '307050' AND failJik.stat_cd != '306050', 1, NULL)) AS failCnt
/* 불성립 건수(모든 불성립) */
,
COUNT(IF(hst.stat_cd = '307050' AND failJik.stat_cd = '306050', 1, NULL)) AS failJikCnt
/* 불성립 건수(모든 불성립) */
,
COUNT(IF(hst.stat_cd = '305050', 1, NULL)) AS cancleCnt
/* 취하 건수 */
FROM adr_mgr_master am
/* 마스터 */
INNER JOIN adr_mgr_detail ad
ON am.adr_seq = ad.adr_seq
/* 상세 */
LEFT OUTER JOIN hst
ON ad.adr_seq = hst.adr_seq
/* 히스토리 */
LEFT OUTER JOIN failJik
ON ad.adr_seq = failJik.adr_seq
WHERE 1 =1
AND am.USE_YN != 'N'
AND
(
am.adr_no IS NOT NULL OR
(
am.adr_no IS NULL
AND am.stat_cd *1 <![CDATA[ < ]]> 201000
AND am.stat_cd NOT IN ('101000',
'101090' )
)
)
<isNotEmpty property="searchYear">
/* 년 */
AND am.appr_de BETWEEN TO_DATE(#searchYear#||'0101', 'yyyyMMdd')
AND TO_DATE(#searchYear#||'1231', 'yyyyMMdd')
</isNotEmpty>
GROUP BY TO_CHAR(am.appr_de, 'YYYY')
)
t
</select>
<!-- 조정 사건부 현황 통계화면 -->

View File

@ -227,6 +227,118 @@
, now())
</insert>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectNAmdinLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectNAmdinLog */
SELECT
COUNT(1) OVER() AS totCnt
, a.MENU_NM AS menuNm
, a.APPRO_NM AS approNm
, a.METHOD_NM AS methodNm
, b.URL AS url
, b.creat_dt AS creatDt
, b.CONECT_IP AS loginIp
, b.CONECT_ID AS conectId
, c.USER_ID AS loginId
, c.USER_NM AS userNm
FROM LETTNADMINMETHOD a
, LETTNADMINLOG b
, COMVNUSERMASTER c
WHERE 1=1
AND a.use_yn='Y'
AND a.method_cd='A'
AND a.METHOD_NM =b.PROGRM_FILE_NM
AND b.CONECT_ID =c.ESNTL_ID
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') OR a.URL LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
a.URL LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND DATE_FORMAT(b.CREAT_DT, '%Y.%m.%d' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= DATE_FORMAT(b.CREAT_DT, '%Y.%m.%d' )
</isNotEmpty>
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectNWebLog" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* LoginLogDAO.selectNWebLog */
SELECT
COUNT(1) OVER() AS totCnt
, a.MENU_NM AS menuNm
, a.APPRO_NM AS approNm
, a.METHOD_NM AS methodNm
, b.URL AS url
, b.creat_dt AS creatDt
, b.CONECT_IP AS loginIp
, b.CONECT_ID AS conectId
, c.USER_ID AS loginId
, c.USER_NM AS userNm
FROM LETTNADMINMETHOD a
, lettnloginlog b
LEFT OUTER JOIN COMVNUSERMASTER c
ON(
1=1
AND b.CONECT_ID =c.ESNTL_ID
)
WHERE 1=1
AND a.use_yn='Y'
AND a.method_cd='U'
AND a.METHOD_NM =b.PROGRM_FILE_NM
<isNotEmpty property="searchKeyword">
<isEqual prepend="AND" property="searchCondition" compareValue="">
( a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%') OR a.URL LIKE CONCAT('%' , #searchKeyword#, '%') )
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="1">
a.MENU_NM LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
<isEqual prepend="AND" property="searchCondition" compareValue="2">
a.URL LIKE CONCAT('%' , #searchKeyword#, '%')
</isEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND DATE_FORMAT(b.CREAT_DT, '%Y.%m.%d' ) >= #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND #searchEndDt# >= DATE_FORMAT(b.CREAT_DT, '%Y.%m.%d' )
</isNotEmpty>
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 관리자 대쉬보드 접속 리스트 -->
<select id="LoginLogDAO.selectAmdinLog" parameterClass="loginLog" resultClass="loginLog">
@ -292,7 +404,7 @@
<!-- 관리자 로그설정 메소드 리스트 -->
<select id="LoginLogDAO.selectLogMethodList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 임시.*NOT_SQL_LOG.* selectLogMethodList */
SELECT
COUNT(A.ADMOT_ID) OVER() AS totCnt,
A.ADMOT_ID AS admotId,
@ -302,7 +414,10 @@
A.APPRO_NM AS approNm,
A.PARAM AS param,
A.CREAT_DT AS tempSortNum,
A.PRIVACY AS privacy
A.PRIVACY AS privacy,
A.USE_YN AS useYn,
A.SORT_NUM AS sortNum,
A.method_cd as dateType
FROM LETTNADMINMETHOD A
WHERE 1=1
<isNotEmpty property="searchKeyword">
@ -360,6 +475,8 @@
, MENU_NM = #menuNm#
, APPRO_NM = #approNm#
, PRIVACY = #privacy#
, USE_YN = #useYn#
, sort_num = #sortNum#
WHERE ADMOT_ID = #admotId#
</update>
@ -432,6 +549,124 @@
AND B.URL = #url#
</insert>
<!-- 사용자 접속 로그 등록(매뉴에 등록된 페이지만 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep1" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep1 */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, method_nm
, menu_nm
, #url#
, NOW()
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
LIMIT 1
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep2 */
INSERT INTO LETTNLOGINLOG
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NO
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, 'PROGRM_FILE_NM'
, '999999999'
, 'MENU_NM'
, #url#
, NOW()
FROM DUAL
</update>
<!-- 사용자 접속 로그 등록(매뉴에 없는 페이지 등록용 )-->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep2_bak" parameterClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */
/* 2023-06-20일 저장확인을 위해 update 추가함*/
/* LoginLogDAO.logInsertWebLoginLogNewStep2 */
INSERT INTO LETTNLOGINLOG_BAK
( LOG_ID
, CONECT_ID
, CONECT_IP
, USER_AT
, DEVICE_TYPE /**인테넛,모바일 */
, PROGRM_FILE_NM
, MENU_NO
, MENU_NM
, URL
, CREAT_DT )
SELECT
#logId#
, #loginId#
, #loginIp#
, #userAt# /**A:관리자, U:홈페이지 */
, #deviceType#
, 'PROGRM_FILE_NM'
, '999999999'
, 'MENU_NM'
, #url#
, NOW()
</update>
<!-- 시스템 관리자 로그 등록(LETTNADMINMETHOD 테이블에 등록하기) -->
<update id="LoginLogDAO.logInsertWebLoginLogNewStep3_bak" parameterClass="loginLog">
/* LoginLogDAO.logInsertWebLoginLogNewStep3_bak */
INSERT INTO lettnadminmethod (
admot_id,
method_nm,
param,
creat_dt,
menu_nm,
appro_nm,
privacy,
method_cd /* A or U */
)
SELECT
NVL(MAX(TO_NUMBER(REPLACE(admot_id, 'ADMOTID_', ''))) + 1, 1)
, #methodNm#
, 'N'
, NOW()
, #methodNm#
, #url#
, 'N'
, 'U'
FROM LETTNADMINMETHOD
</update>
<!-- 사용자 메뉴별 접속 리스트 -->
<select id="LoginLogDAO.selectWebLogList" parameterClass="loginLog" resultClass="loginLog">
/* 임시.*NOT_SQL_LOG.* */

View File

@ -192,5 +192,95 @@
</isEmpty>
LIMIT 1
</insert>
<!-- 시스템 관리자 로그 등록(LETTNADMINMETHOD 테이블에 등록된 것만 insert) -->
<update id="SysLogDAO.logInsertAdminSysLogNewStep1" parameterClass="sysLog">
/* SysLogDAO.logInsertAdminSysLogNewStep1 */
INSERT INTO LETTNADMINLOG
( ADMINLOG_ID
, CONECT_ID
, CONECT_IP
, CREAT_DT
, PROGRM_FILE_NM
, MENU_NM
, APPRO_NM
, URL
)
SELECT #requstId# ,
#rqesterId# ,
#rqesterIp# ,
now(),
#methodNm#,
MENU_NM ,
APPRO_NM ,
#url#
FROM LETTNADMINMETHOD
WHERE METHOD_NM = #methodNm#
AND method_cd='A'
<isNotEmpty prepend="AND" property="param">
PARAM = #param#
</isNotEmpty>
<isEmpty prepend="AND" property="param">
PARAM = 'N'
</isEmpty>
LIMIT 1
</update>
<!-- 시스템 관리자 로그 등록(LETTNADMINMETHOD 테이블에 등록된 것만 insert) -->
<update id="SysLogDAO.logInsertAdminSysLogNewStep2" parameterClass="sysLog">
/* SysLogDAO.logInsertAdminSysLogNewStep2 */
INSERT INTO LETTNADMINLOG
( ADMINLOG_ID
, CONECT_ID
, CONECT_IP
, CREAT_DT
, PROGRM_FILE_NM
, MENU_NM
, APPRO_NM
, URL
)
SELECT #requstId# ,
#rqesterId# ,
#rqesterIp# ,
now(),
#methodNm#,
'MENU_NM' ,
'APPRO_NM' ,
#url#
</update>
<!-- 시스템 관리자 로그 등록(LETTNADMINMETHOD 테이블에 등록하기) -->
<update id="SysLogDAO.logInsertAdminSysLogNewStep3" parameterClass="sysLog">
/* SysLogDAO.logInsertAdminSysLogNewStep3 */
INSERT INTO lettnadminmethod (
admot_id,
method_nm,
param,
creat_dt,
menu_nm,
appro_nm,
privacy,
method_cd /* A or U */
)
SELECT
MAX(REPLACE(admot_id,'ADMOTID_','')*1)+1
, #methodNm#
, 'N'
, NOW()
, #trgetMenuNm#
, #url#
, 'N'
, 'A'
FROM LETTNADMINMETHOD
</update>
</sqlMap>

View File

@ -80,6 +80,7 @@
<pattern>/cmm/main/mainPage.do</pattern><!-- 메인페이지 -->
<pattern>/cmm/main/exctvMainPage.do</pattern><!-- 메인페이지 -->
<pattern>/kccadr/*</pattern><!-- 전자조정시스템 -->
<pattern>/sym/log/clg/SelectLogMethodList.do</pattern><!-- 로그상세보기 팝업-->
</decorator>
<decorator name="adminPoplayout" page="/WEB-INF/jsp/layout/adminLayoutPopup.jsp">
@ -125,6 +126,7 @@
<pattern>/web/kccadr/payment/inipay/*</pattern> <!-- 결재 모듈 테스트 -->
<pattern>/kccadr/adjPgrMgr/drtCtr/drtCtrReg_for_ApprovManageEndDetail.do</pattern>
</decorator>
<!-- 관리자 게시글 작성, 템플릿 미리보기(헤더풋터 없음) -->

View File

@ -24,7 +24,10 @@
*/
%>
<link href="/tabulator/dist/css/tabulator.css" rel="stylesheet">
<!-- <link href="/tabulator/dist/css/tabulator.css" rel="stylesheet"> -->
<!-- <link href="/tabulator/dist/css/tabulator_bulma.min.css" rel="stylesheet"> -->
<link href="/tabulator/dist/css/tabulator_modern.min.css" rel="stylesheet">
<!-------------------------- tabulator use js ---------------------------------->
@ -117,21 +120,36 @@
clipboard:true,
reactiveData:true,
clipboardPasteAction:"replace",
validationMode:"highlight",
columns:[
{title:"메일주소", field:"mailAdress", width:200, editor:true},
{formatter:"buttonCross", width:30, hozAlign:"center",
{title:"메일주소", field:"mailAdress", width:200, editor:true},
{formatter:"buttonCross", width:30, hozAlign:"center", headerSort:false,
cellClick:function(e, cell){
$("#tabulatorArea").tabulator("deleteRow", 0);
cell.getRow().delete();
}
}
],
]
});
//메일추가 클릭 시 tabulator에 추가
document.getElementById("emailAdd").addEventListener("click", function(){
var inputEmail = $("#callTo").val();
if(inputEmail == "" || inputEmail == null){
alert("메일주소를 입력해 주세요");
return;
}
var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(taxExptext.test(inputEmail)==false){
alert("이메일주소 형식이 올바르지 않습니다.");
return false;
}
tabledata.push({mailAdress:inputEmail});
$("#callTo").val('');
// var test = $("#tabulatorArea").tabulator("getInvalidCells");
});
}
@ -184,7 +202,7 @@
<input type="text" class="write_info" id="callTo" name="callTo" placeholder="email주소를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='email주소를 입력하세요'">
<button type="button" class="btnType01" id="emailAdd">메일추가</button>
</br>
<div id="tabulatorArea" ></div>
<div id="tabulatorArea" style="border: 1px solid #d5d5d5; margin: 20px 0 0 0; border-radius: 10px;"></div>
</div>
</td>
</tr>

View File

@ -0,0 +1,212 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : smsSendMgr.do
* @Description : SMS 발송 화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2023.09.13 원영현 최초 생성
* @author 원영현
* @since 2023.09.13
* @version 1.0
* @see
*
*/
%>
<link href="/tabulator/dist/css/tabulator_modern.min.css" rel="stylesheet">
<!-------------------------- tabulator use js ---------------------------------->
<script type="text/javascript" src="/tabulator/jquery-ui-1.13.2.custom/external/jquery/jquery.js"></script>
<script type="text/javascript" src="/tabulator/jquery-ui-1.13.2.custom/jquery-ui.js"></script>
<script type="text/javascript" src="/tabulator/dist/js/tabulator.min.js"></script>
<script type="text/javascript" src="/tabulator/dist/js/jquery_wrapper.js"></script>
<!-------------------------- tabulator use js ---------------------------------->
<script type="text/javascript">
$( document ).ready(function() {
tabulator_create();
});
function fnSmsSend(){
var phone = $("#tabulatorArea").tabulator("getData", "phone");
var sendLength = phone.length;
var sendMsg = $("#sendMsg").val();
if(sendLength == 0){
alert("수신번호를 입력해 주세요");
return;
}
if(sendMsg == ""){
alert("발송내용을 입력해 주세요");
return;
}
//배열 생성
var phoneArr = new Array(sendLength);
for(var i=0; i < sendLength; i++){
phoneArr[i] = phone[i].phone;
}
$("#phoneList").val(phoneArr);
var data = new FormData(document.smsForm);
$.ajax({
type: "POST"
, url: "/kccadr/sendMgr/smsSendMgrAjax.do"
, data: data
, dataType:'json'
, async: false
, processData: false
, contentType: false
, cache: false
, success: function (returnData, status) {
console.log(returnData.result);
if(returnData.result == 'SUCCESS'){
alert("문자발송요청에 성공하였습니다.");
location.reload();
}else{
alert(returnData.message);
}
}
,error: function (e) {
alert("요청에 실패하였습니다.");
console.log("ERROR : ", e);
}
});
}
function tabulator_create(){
var tabledata = [
];
//Build Tabulator
//구현 편의성을 위해 jquery 로 만들기
// jquery로 만들어서 jquery로 함수 호출 가능
$("#tabulatorArea").tabulator({
//table setup options
height:"500px",
data:tabledata,
layout:"fitDataTable",
clipboard:true,
reactiveData:true,
clipboardPasteAction:"replace",
validationMode:"highlight",
columns:[
{title:"수신번호", field:"phone", width:200, editor:true},
{formatter:"buttonCross", width:30, hozAlign:"center", headerSort:false,
cellClick:function(e, cell){
cell.getRow().delete();
}
}
]
});
//메일추가 클릭 시 tabulator에 추가
document.getElementById("phoneAdd").addEventListener("click", function(){
var inputPhone = $("#callTo").val();
if(inputPhone == "" || inputPhone == null){
alert("수신번호를 입력해 주세요");
return;
}
var taxExptext = /^[0-9]{3}[0-9]{4}[0-9]{4}$/;
if(taxExptext.test(inputPhone)==false){
alert("휴대폰 번호 형식이 올바르지 않습니다.");
return false;
}
tabledata.push({phone:inputPhone});
$("#callTo").val('');
});
}
</script>
<form id="smsForm" name="smsForm" method="post">
<input type="hidden" id="phoneList" name="phoneList"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>SMS 발송</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>발송 관리</p>
</li>
<li>
<span class="cur_nav">SMS 발송</span>
</li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tbType02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>발송내용</th>
<td>
<textarea name="sendMsg" id="sendMsg" cols="30" rows="10"></textarea>
</td>
</tr>
<tr>
<th>수신번호</th>
<td>
<div class="input_form">
<input type="text" class="write_info" id="callTo" name="callTo" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'">
<button type="button" class="btnType01" id="phoneAdd">번호추가</button>
</br>
<div id="tabulatorArea" style="border: 1px solid #d5d5d5; margin: 20px 0 0 0; border-radius: 10px;"></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="area_left">
</div>
<div class="area_right">
<button class="btnType02" onclick="fnSmsSend(); return false;">발송</button>
</div>
</div>
<!-- //btn_wrap -->
</div>
</div>
</div>
<!-- //cont -->
</form>

View File

@ -116,6 +116,8 @@ $(document).ready(function() {
<col style="width: 8%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 10%;">
@ -125,7 +127,7 @@ $(document).ready(function() {
<tr>
<th rowspan="2">연도</th>
<th colspan="3">접수</th>
<th colspan="6">종결</th>
<th colspan="7">종결</th>
<th rowspan="2">진행</th>
</tr>
<tr>
@ -133,9 +135,10 @@ $(document).ready(function() {
<th>신규</th>
<th>계</th>
<th>성립</th>
<th>직권성립</th>
<th>불성립</th>
<th>성립(합의)</th>
<th>직권성립(직권)</th>
<th>불성립(합의)</th>
<th>불성립(직권)</th>
<!-- <th>직권불성립</th> -->
<th>취하</th>
@ -156,6 +159,7 @@ $(document).ready(function() {
<td><p><c:out value="${vo.succCnt}" /></p></td>
<td><p><c:out value="${vo.jikSuccCnt}" /></p></td>
<td><p><c:out value="${vo.failCnt}" /></p></td>
<td><p><c:out value="${vo.failJikCnt}" /></p></td>
<td><p><c:out value="${vo.cancleCnt}" /></p></td>
<td><p><c:out value="${vo.succPer}" /></p></td>

View File

@ -0,0 +1,209 @@
<%--
Class Name : EgovLoginLogList.jsp
Description : 로그인 로그 정보목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2009.03.11 이삼섭 최초 생성
2011.08.31 JJY 경량환경 버전 생성
author : 공통서비스 개발팀 이삼섭
since : 2009.03.11
--%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Language" content="ko" >
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>" ></script>
<script type="text/javascript">
$( document ).ready(function(){
var tempSearchBgnDe = "${searchVO.searchBgnDe}" ;
var tempSearchEndDe = "${searchVO.searchEndDe}" ;
if(""!=tempSearchBgnDe && tempSearchBgnDe.length==8){
$('#searchBgnDe').val(tempSearchBgnDe.substring(0,4)+"-"+tempSearchBgnDe.substring(4,6)+"-"+tempSearchBgnDe.substring(6,8));
}
if(""!=tempSearchEndDe && tempSearchEndDe.length==8){
$('#searchEndDe').val(tempSearchEndDe.substring(0,4)+"-"+tempSearchEndDe.substring(4,6)+"-"+tempSearchEndDe.substring(6,8));
}
});
/* ********************************************************
* PROTOTYPE JS FUNCTION
******************************************************** */
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.replaceAll = function(src, repl){
var str = this;
if(src == repl){return str;}
while(str.indexOf(src) != -1) {
str = str.replace(src, repl);
}
return str;
}
function fn_select(pageNo){
<%--<c:if test="${!empty loginId}">
if(""!= document.frm.searchKeyword.value){
updateRecentSearch();//최근검색어 등록
}
</c:if>--%>
linkPage(1);
}
function fn_egov_select_loginLog(pageNo){
linkPage(1);
}
function fn_egov_inqire_loginLog(logId){
var url = "<c:url value ='/sym/log/clg/InqireLoginLog.do?logId='/>" + logId;
var openParam = "scrollbars=yes,toolbar=0,location=no,resizable=0,status=0,menubar=0,width=640,height=320,left=0,top=0";
window.open(url,"p_loginLogInqire", openParam);
}
function linkPage(pageNo){
var frm = document.frm;
frm.pageIndex.value = pageNo;
if($('#searchConditionSite').length != 0){
frm.searchConditionSite.value = $('#searchConditionSite').val();
}
frm.action = "<c:url value='/sym/log/clg/SelectLoginLogList.do'/>";
frm.submit();
}
//엑셀 다운로드
function logListExcelDownload(){
document.frm.method = "post";
document.frm.action = "<c:url value='/sym/log/clg/roleListExcelDownload.do'/>";
document.frm.submit();
}
</script>
<title>로그인 로그 목록</title>
</head>
<body>
<noscript>자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="frm" id="frm" action ="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>" method="post">
<input type="hidden" name="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" />
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>관리자로그 관리</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>로그관리</p>
</li>
<li><span class="cur_nav">관리자로그 관리</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>메뉴명</option>
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>URL</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 8%">
<col style="width: 12%">
<col style="width: 9%">
<%-- <col style="width: 20%"> --%>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 24%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th>번호 <button type="button" class="sortBtn sort" id="sort_logId"></button></th>
<th>메뉴명 <button type="button" class="sortBtn sort" id="sort_menuNm"></button></th>
<th>접근구분 <button type="button" class="sortBtn sort" id="sort_approNm"></button></th>
<!-- <th>메소드 <button type="button" class="sortBtn sort" id="sort_progrmFileNm"></button></th> -->
<th>접속ID <button type="button" class="sortBtn sort" id="sort_loginId"></button></th>
<th>접속IP <button type="button" class="sortBtn sort" id="sort_loginIp"></button></th>
<th>접속URL <button type="button" class="sortBtn sort" id="sort_url"></button></th>
<th>접속일자 <button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${adminLogList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.approNm}"/></td>
<%-- <td><c:out value="${result.progrmFileNm}"/></td> --%>
<td><span class="privateInfo"><c:out value="${result.loginId}"/></span></td>
<td><c:out value="${result.loginIp}"/></td>
<td><c:out value="${result.url}"/></td>
<td><c:out value="${result.creatDt}"/></td>
</tr>
</c:forEach>
<c:if test="${empty adminLogList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
</div>
</div>
</div>
</form>
<form name="searchForm" method="get" action="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>">
<input name="pageIndex" type="hidden" value="1" />
<input name="searchCondition" type="hidden" />
<input name="searchKeyword" type="hidden" />
<input name="searchConditionSite" type="hidden" />
</form>
</body>
</html>

View File

@ -0,0 +1,208 @@
<%--
Class Name : EgovLoginLogList.jsp
Description : 로그인 로그 정보목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2009.03.11 이삼섭 최초 생성
2011.08.31 JJY 경량환경 버전 생성
author : 공통서비스 개발팀 이삼섭
since : 2009.03.11
--%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Language" content="ko" >
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>" ></script>
<script type="text/javascript">
$( document ).ready(function(){
var tempSearchBgnDe = "${searchVO.searchBgnDe}" ;
var tempSearchEndDe = "${searchVO.searchEndDe}" ;
if(""!=tempSearchBgnDe && tempSearchBgnDe.length==8){
$('#searchBgnDe').val(tempSearchBgnDe.substring(0,4)+"-"+tempSearchBgnDe.substring(4,6)+"-"+tempSearchBgnDe.substring(6,8));
}
if(""!=tempSearchEndDe && tempSearchEndDe.length==8){
$('#searchEndDe').val(tempSearchEndDe.substring(0,4)+"-"+tempSearchEndDe.substring(4,6)+"-"+tempSearchEndDe.substring(6,8));
}
});
/* ********************************************************
* PROTOTYPE JS FUNCTION
******************************************************** */
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.replaceAll = function(src, repl){
var str = this;
if(src == repl){return str;}
while(str.indexOf(src) != -1) {
str = str.replace(src, repl);
}
return str;
}
function fn_select(pageNo){
<%--<c:if test="${!empty loginId}">
if(""!= document.frm.searchKeyword.value){
updateRecentSearch();//최근검색어 등록
}
</c:if>--%>
linkPage(1);
}
function fn_egov_select_loginLog(pageNo){
linkPage(1);
}
function fn_egov_inqire_loginLog(logId){
var url = "<c:url value ='/sym/log/clg/InqireLoginLog.do?logId='/>" + logId;
var openParam = "scrollbars=yes,toolbar=0,location=no,resizable=0,status=0,menubar=0,width=640,height=320,left=0,top=0";
window.open(url,"p_loginLogInqire", openParam);
}
function linkPage(pageNo){
var frm = document.frm;
frm.pageIndex.value = pageNo;
if($('#searchConditionSite').length != 0){
frm.searchConditionSite.value = $('#searchConditionSite').val();
}
frm.action = "<c:url value='/sym/log/clg/SelectLoginLogList.do'/>";
frm.submit();
}
//엑셀 다운로드
function logListExcelDownload(){
document.frm.method = "post";
document.frm.action = "<c:url value='/sym/log/clg/roleListExcelDownload.do'/>";
document.frm.submit();
}
</script>
<title>로그인 로그 목록</title>
</head>
<body>
<noscript>자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="frm" id="frm" action ="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>" method="post">
<input type="hidden" name="cal_url" value="<c:url value='/sym/cmm/EgovNormalCalPopup.do'/>" />
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>사용자로그 관리</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>로그관리</p>
</li>
<li><span class="cur_nav">사용자로그 관리</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>메뉴명</option>
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>URL</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 12%">
<%-- <col style="width: 9%"> --%>
<col style="width: 6%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 24%">
<col style="width: 15%">
</colgroup>
<thead>
<tr>
<th>번호 <button type="button" class="sortBtn sort" id="sort_logId"></button></th>
<th>메뉴명 <button type="button" class="sortBtn sort" id="sort_menuNm"></button></th>
<!-- <th>접근구분 <button type="button" class="sortBtn sort" id="sort_approNm"></button></th> -->
<th>메소드 <button type="button" class="sortBtn sort" id="sort_progrmFileNm"></button></th>
<th>접속ID <button type="button" class="sortBtn sort" id="sort_loginId"></button></th>
<th>접속IP <button type="button" class="sortBtn sort" id="sort_loginIp"></button></th>
<th>접속URL <button type="button" class="sortBtn sort" id="sort_url"></button></th>
<th>접속일자 <button type="button" class="sortBtn sort" id="sort_creatDt"></button></th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${adminLogList}" varStatus="status">
<tr>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<%-- <td><c:out value="${result.methodNm}"/></td> --%>
<td><c:out value="${result.approNm}"/></td>
<td><span class="privateInfo"><c:out value="${result.loginId}"/></span></td>
<td><c:out value="${result.loginIp}"/></td>
<td><c:out value="${result.url}"/></td>
<td><c:out value="${result.creatDt}"/></td>
</tr>
</c:forEach>
<c:if test="${empty adminLogList}">
<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
</div>
</div>
</div>
</form>
<form name="searchForm" method="get" action="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>">
<input name="pageIndex" type="hidden" value="1" />
<input name="searchCondition" type="hidden" />
<input name="searchKeyword" type="hidden" />
<input name="searchConditionSite" type="hidden" />
</form>
</body>
</html>

View File

@ -1,5 +1,5 @@
<%--
Class Name : EgovLoginLogList.jsp
Class Name : SelectLogMethodList.jsp
Description : 로그인 로그 정보목록 화면
Modification Information
@ -124,7 +124,6 @@ function fnCheckAll(){
}
</script>
<title>로그인 로그 목록</title>
</head>
<body>
<noscript>자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
@ -137,37 +136,67 @@ function fnCheckAll(){
<input type="hidden" name="pageType" value="" />
<input type="hidden" name="admotId" value="" />
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">관리자로그설정관리</h2>
<p class="tType6 c_999999">관리자 로그 설정을 관리할 수 있습니다.</p>
</div>
<div class="pageCont">
<div class="listSerch">
<select name="searchCondition" id="searchCondition" class="select" title="검색조건선택">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>매뉴명</option>
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>메소드명</option>
</select>
<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<input type="button" class="btnType1" value="검색" onclick="fn_select('1'); return false;">
</div>
<div class="listTop">
<p class="tType5">건수 : <span class="tType4 c_456ded fwBold"><c:out value="${paginationInfo.totalRecordCount}"/></span>건</p>
<div class="rightWrap">
<!-- <input type="button" class="excelBtn" onclick="javascript:logListExcelDownload();"> -->
<input type="button" class="printBtn" >
<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
</select>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>관리자로그설정관리</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>운영관리</p>
</li>
<li><span class="cur_nav">관리자로그설정관리</span></li>
</ul>
</div>
</div>
<div class="tableWrap">
<table class="tbType1">
<colgroup>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<div class="list_util">
<div class="detail_search">
<ul>
<li>
<p class="tit_text">구분</p>
<select name="searchCondition" id="searchCondition">
<option value='' <c:if test="${searchVO.searchCondition == ''}">selected</c:if> >전체</option>
<option value='1' <c:if test="${searchVO.searchCondition == '1'}">selected</c:if>>매뉴명</option>
<option value='2' <c:if test="${searchVO.searchCondition == '2'}">selected</c:if>>메소드명</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="50"/>
<button class="btn_search" onclick="fn_select('1'); return false;">검색</button>
</li>
</ul>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list_top -->
<div class="list_top">
<p>
총 건수 :
<span>
<c:out value="${paginationInfo.totalRecordCount}" />
</span>
</p>
<div class="list_util">
<select class="sel2" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${searchVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="list tbType01">
<table>
<colgroup>
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 15%">
@ -176,11 +205,12 @@ function fnCheckAll(){
<col style="width: 15%">
<col style="width: 15%">
<col style="width: 10%">
<col style="width: 20%">
</colgroup>
<thead>
<col style="width: 7%">
<col style="width: 7%">
<col style="width: 7%">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" id="checkAll" onclick="javascript:fnCheckAll();"><label for="checkAll"></label></th>
<th>번호 <input type="button" class="sortBtn sort" id="sort_tempSortNum"></th>
<th>메뉴명 <input type="button" class="sortBtn sort" id="sort_menuNm"></th>
<th>메소드명 <input type="button" class="sortBtn sort" id="sort_methodNm"></th>
@ -188,55 +218,65 @@ function fnCheckAll(){
<th>파라미터 <input type="button" class="sortBtn sort" id="sort_param"></th>
<th>개인정보여부 <input type="button" class="sortBtn sort" id="sort_privacy"></th>
<th>등록일자 <input type="button" class="sortBtn sort" id="sort_creatDt"></th>
<th>게시판관리</th>
<th>사용자구분<input type="button" class="sortBtn sort" id="sort_method_cd"></th>
<th>통계사용여부<input type="button" class="sortBtn sort" id="sort_use_yn"></th>
<th>통계순서<input type="button" class="sortBtn sort" id="sort_sort_num"></th>
<th>관리</th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
<c:forEach var="result" items="${logMethodList}" varStatus="status">
<tr>
<td>
<input name="del" id="del" type="checkbox" value="${result.admotId}" />
</td>
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.methodNm}"/></td>
<td><c:out value="${result.approNm}"/></td>
<td><c:out value="${result.param}"/></td>
<td><c:out value="${result.privacy}"/></td>
<td><c:out value="${result.creatDt}"/></td>
<td>
<input type="button" value="수정" class="btnType1" onclick="fn_modify('${result.admotId}'); return false;">
</td>
</tr>
<tr>
<!--
<td>
<input name="del" id="del" type="checkbox" value="${result.admotId}" />
</td>
-->
<td>
<c:if test="${searchVO.searchSortOrd eq 'desc' }">
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</c:if>
<c:if test="${searchVO.searchSortOrd eq 'asc' }">
<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>
</c:if>
</td>
<td><c:out value="${result.menuNm}"/></td>
<td><c:out value="${result.methodNm}"/></td>
<td><c:out value="${result.approNm}"/></td>
<td><c:out value="${result.param}"/></td>
<td><c:out value="${result.privacy}"/></td>
<td><c:out value="${result.creatDt}"/></td>
<td><c:out value="${result.dateType}"/></td>
<td><c:out value="${result.useYn}"/></td>
<td><c:out value="${result.sortNum}"/></td>
<td>
<input type="button" value="수정" class="btnType1" onclick="fn_modify('${result.admotId}'); return false;">
</td>
</tr>
</c:forEach>
<c:if test="${empty logMethodList}">
<tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btnWrap">
<input type="button" class="btnType2" value="삭제" onclick="fn_delete(); return false;">
<input type="button" class="btnType1" value="등록" onclick="fn_insert(); return false;">
</div>
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty logMethodList}">
<div class="page">
</tbody>
</table>
</div>
<!-- //list -->
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty logMethodList}">
<div class="page">
<ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
</div>
</c:if>
<!-- //페이지 네비게이션 끝 -->
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
</div>
</c:if>
<!-- //페이지 네비게이션 끝 -->
</div>
</div>
</div>
<!-- //cont -->
</form>
<form name="searchForm" method="get" action="<c:url value='/sym/log/clg/SelectLoginLogList.do'/>">
<input name="pageIndex" type="hidden" value="1" />

View File

@ -1,42 +1,133 @@
<%--
Class Name : FmsFileModify.jsp
Description : 첨부파일 수정 페이지
Class Name : SelectLogMethodList.jsp
Description : 로그인 로그 정보목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2009.09.16 장동한 최초 생성
2009.03.11 이삼섭 최초 생성
2011.08.31 JJY 경량환경 버전 생성
author : 공통서비스 개발팀 장동한
since : 2009.09.16
Copyright (C) 2009 by MOPAS All right reserved.
author : 공통서비스 개발팀 이삼섭
since : 2009.03.11
--%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:set var="ImgUrl" value="${pageContext.request.contextPath}/images/egovframework/com/cmm/" />
<c:set var="CssUrl" value="${pageContext.request.contextPath}/css/egovframework/com/" />
<c:set var="JsUrl" value="${pageContext.request.contextPath}/js/egovframework/com/uss/ion/pwm/"/>
<!DOCTYPE html>
<html lang="ko">
<html>
<head>
<title>팝업창관리 관리</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javaScript" language="javascript">
<meta http-equiv="Content-Language" content="ko" >
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>" ></script>
<script type="text/javascript">
$( document ).ready(function(){
var tempSearchBgnDe = "${searchVO.searchBgnDe}" ;
var tempSearchEndDe = "${searchVO.searchEndDe}" ;
if(""!=tempSearchBgnDe && tempSearchBgnDe.length==8){
$('#searchBgnDe').val(tempSearchBgnDe.substring(0,4)+"-"+tempSearchBgnDe.substring(4,6)+"-"+tempSearchBgnDe.substring(6,8));
}
if(""!=tempSearchEndDe && tempSearchEndDe.length==8){
$('#searchEndDe').val(tempSearchEndDe.substring(0,4)+"-"+tempSearchEndDe.substring(4,6)+"-"+tempSearchEndDe.substring(6,8));
}
});
/* ********************************************************
* PROTOTYPE JS FUNCTION
******************************************************** */
String.prototype.trim = function(){
return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.replaceAll = function(src, repl){
var str = this;
if(src == repl){return str;}
while(str.indexOf(src) != -1) {
str = str.replace(src, repl);
}
return str;
}
function fn_select(pageNo){
<%--<c:if test="${!empty loginId}">
if(""!= document.frm.searchKeyword.value){
updateRecentSearch();//최근검색어 등록
}
</c:if>--%>
linkPage(1);
}
function fn_egov_select_loginLog(pageNo){
linkPage(1);
}
function fn_egov_inqire_loginLog(logId){
var url = "<c:url value ='/sym/log/clg/InqireLoginLog.do?logId='/>" + logId;
var openParam = "scrollbars=yes,toolbar=0,location=no,resizable=0,status=0,menubar=0,width=640,height=320,left=0,top=0";
window.open(url,"p_loginLogInqire", openParam);
}
function linkPage(pageNo){
var frm = document.frm;
frm.pageIndex.value = pageNo;
frm.action = "<c:url value='/sym/log/clg/SelectLogMethodList.do'/>";
frm.submit();
}
//엑셀 다운로드
function logListExcelDownload(){
document.frm.method = "post";
document.frm.action = "<c:url value='/sym/log/clg/roleListExcelDownload.do'/>";
document.frm.submit();
}
/* 등록 */
function fn_insert(){
var frm = document.frm;
frm.pageType.value="Insert" ;
frm.action = "<c:url value='/sym/log/clg/ViewLogMethod.do'/>";
frm.submit();
}
/* 수정 */
function fn_modify(id){
var frm = document.frm;
frm.pageType.value="Insert" ;
frm.admotId.value = id;
frm.pageType.value = "Modify";
//frm.action = "<c:url value='/uss/ion/cnf/metaTagModifyView.do'/>";
frm.action = "<c:url value='/sym/log/clg/ViewLogMethod.do'/>";
frm.submit();
}
/* 삭제 */
function fn_delete(){
if($("input:checkbox[name='del']").is(":checked")==true){
if(confirm("삭제하시겠습니까?")) {
document.frm.action = "<c:url value='/sym/log/clg/DeleteLogMethod.do'/>";
document.frm.submit();
}
}else{
alert("선택된 항목이 없습니다.");
return false;
}
}
function fnCheckAll(){
if( $("#checkAll").is(':checked') ){
$("input[name=del]").prop("checked", true);
}else{
$("input[name=del]").prop("checked", false);
}
}
/* pagination 페이지 링크 function */
function goList(){
//document.searchForm.submit();
location.href = "/sym/log/clg/SelectLogMethodList.do";
document.searchForm.submit();
//location.href = "<c:url value='/sym/log/clg/SelectLogMethodList.do'/>";
}
/* 등록시 값 확인 */
@ -99,28 +190,47 @@ function fn_delete() {
}
}
</script>
<style>
.del_file_btn{border: none;background-color: transparent;background-image: url(/direct/img/upload_delect_img.png);background-repeat: no-repeat;background-position: center center;vertical-align: middle;margin-top: -4px;margin-right: 15px;}
.file_size{color: #0388d2;font-weight: bold;}
.uploaded_obj{width: 100%;}
</style>
</head>
<body>
<noscript>자바스크립트를 지원하지 않는 브라우저에서는 일부 기능을 사용하실 수 없습니다.</noscript>
<form name="writeForm" method="post">
<input type="hidden" name="del" value="${loginLog.admotId}" />
<input type="hidden" name="admotId" value="${loginLog.admotId}" />
<div class="contWrap">
<div class="pageTitle">
<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
<h2 class="titType1 c_222222 fwBold">관리자로그설정관리</h2>
<p class="tType6 c_999999">관리자 로그 설정을 관리 합니다.</p>
</div>
<div class="pageCont">
<div class="listTop resisterList">
<p class="right block fwMd"><span class="tType4 c_e40000 fwBold">*</span>는 필수입력 항목입니다.</p>
</div>
<table class="tbType2">
<input name="searchCondition" type="hidden" value="<c:out value="${searchFr.searchCondition}" />" />
<input name="searchKeyword" type="hidden" value="<c:out value="${searchFr.searchKeyword}" />"/>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>관리자로그설정관리상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>운영관리</p>
</li>
<li><span>관리자로그설정관리</span></li>
<li><span class="cur_nav">상세화면</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list -->
<div class="list tb_type01">
<table class="tbType2">
<colgroup>
<col style="width: 20%">
<col style="width: 80%">
@ -128,35 +238,65 @@ function fn_delete() {
<tbody>
<tr>
<th><span class="reqArea">메뉴명</span></th>
<td colspan="3">
<input type="text" size="50" name="menuNm" value="${loginLog.menuNm}" title="menuNm" maxlength="100" />
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="menuNm" value="${loginLog.menuNm}" title="menuNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">메소드명</span></th>
<td colspan="3">
<input type="text" size="50" name="methodNm" value="${loginLog.methodNm}" title="methodNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">파라미터</span></th>
<td colspan="3">
<input type="text" size="50" name="param" value="${empty loginLog.admotId ? 'N' : loginLog.param }" title="param" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>
<br><span class="cfText c_ed4555">*N이 아닌 값을 사용할 경우는 url에 'logParam=파라미터값' 형식을 추가해야 적용됩니다.</span>
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="methodNm" value="${loginLog.methodNm}" title="methodNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">기능명</span></th>
<td colspan="3">
<input name="approNm" value="${loginLog.approNm}" title="approNm" maxlength="100" />
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="approNm" value="${loginLog.approNm}" title="approNm" maxlength="100" />
</td>
</tr>
<tr>
<th><span class="reqArea">파라미터</span></th>
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="param" value="${empty loginLog.admotId ? 'N' : loginLog.param }" title="param" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">*N이 아닌 값을 사용할 경우는 url에 'logParam=파라미터값' 형식을 추가해야 적용됩니다.</span>
</td>
</tr>
<tr>
<th><span class="reqArea">privacy</span></th>
<td colspan="3" style="text-align:left;">
<input type="text" size="100" name="privacy" value="${empty loginLog.admotId ? 'N' : loginLog.privacy }" title="privacy" maxlength="100" />
<br><span class="cfText">*기본값은 N 입니다.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">N / Y *개인정보 포함 여부를 표시합니다.</span>
</td>
</tr>
<tr>
<th><span class="reqArea">사용자구분</span></th>
<td colspan="3" style="text-align:left;">${loginLog.dateType}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="cfText c_ed4555">U(사용자) / A(관리자)</span>
</td>
</tr>
<tr>
<th><span class="reqArea">통계노출여부</span></th>
<td colspan="3" style="text-align:left;">
<select name="useYn" id="useYn" class="sel_type1">
<option value="N" <c:if test="${loginLog.useYn == 'N'}">selected</c:if>>미사용</option>
<option value="Y" <c:if test="${loginLog.useYn == 'Y'}">selected</c:if>>사용</option>
</select>
</td>
</tr>
<tr>
<th><span class="reqArea">통계순서</span></th>
<td colspan="3" style="text-align:left;">
<input type="text" size="10" name="sortNum" value="${loginLog.sortNum}" title="sortNum" maxlength="10" />
</td>
</tr>
<c:if test="${!empty loginLog.admotId }">
<tr>
<th><span class="reqArea">등록일자</span></th>
<td colspan="3">
<input name="creatDt" value="${loginLog.creatDt}" title="creatDt" maxlength="100" readonly />
<td colspan="3" style="text-align:left;">
${loginLog.creatDt}
<%-- <input name="creatDt" value="${loginLog.creatDt}" title="creatDt" maxlength="100" readonly /> --%>
</td>
</tr>
</c:if>
@ -173,8 +313,49 @@ function fn_delete() {
</c:if>
</div>
</div>
</div>
<!-- //list -->
<!-- btn_wrap -->
<!-- btn_wrap -->
<!--
<div class="btn_wrap btn_layout01">
<div class="area_right">
<button type="button" class="btnType02" onclick="fncDeleteGroupPolicy(); return false;">삭제</button>
</div>
<div class="area_right">
<button type="button" class="btnType02" onclick="fncInsertLoginGroupPolicy(); return false;">등록</button>
</div>
</div>
-->
<!-- //btn_wrap -->
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty logMethodList}">
<div class="page">
<ul class="inline">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</ul>
</div>
</c:if>
<!-- //페이지 네비게이션 끝 -->
</div>
</div>
</div>
<!-- //cont -->
</form>
<form name="searchForm" method="post" action="<c:url value='/sym/log/clg/SelectLogMethodList.do'/>">
<input name="pageIndex" type="hidden" value="1" />
<input name="searchCondition" type="hidden" value="<c:out value="${searchFr.searchCondition}" />" />
<input name="searchKeyword" type="hidden" value="<c:out value="${searchFr.searchKeyword}" />"/>
<input name="searchConditionSite" type="hidden" />
</form>
</body>
</html>

View File

@ -265,18 +265,18 @@ function fn_egov_inqire_notice(bbsId, nttId) {
</div>
</li>
<li>
<a href="<c:out value='${selectBoardList}'/>" title="문의 게시판 페이지 바로가기">
<i class="baro_inquiry_board"></i>문의게시판
<a href="<c:out value='${selectBoardList}'/>" title="1:1 문의 게시판 페이지 바로가기">
<i class="baro_inquiry_board"></i>1:1 문의
</a>
<div class="tooltip_box">
<div class="tooltip_type01">
<a href="<c:out value='${selectBoardList}'/>" title="문의 게시판 페이지 바로가기" class="text_area">
<a href="<c:out value='${selectBoardList}'/>" title="1:1 문의 게시판 페이지 바로가기" class="text_area">
<p class="tooltip_tit01">
조정신청 또는 진행 중 본인의 사건과<br>관련한 문의와 답변을 받을 수 있는 게시판
</p>
<p class="tooltip_tit02">- 전자조정시스템 회원가입 및 로그인 필수</p>
</a>
<button type="button" title="페이지 이동" onclick="location.href='<c:out value='${selectBoardList}'/>'">문의게시판 바로가기</button>
<button type="button" title="페이지 이동" onclick="location.href='<c:out value='${selectBoardList}'/>'">1:1 문의 바로가기</button>
</div>
</div>
</li>

File diff suppressed because one or more lines are too long