Merge remote-tracking branch 'origin/main'

main
minuk926 2 years ago
commit 36a6ec6535

@ -667,6 +667,13 @@
--> -->
<!-- ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory에러 방지 --> <!-- ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory에러 방지 -->
<!-- https://mvnrepository.com/artifact/org.jasypt/jasypt -->
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt-spring31</artifactId>
<version>1.9.3</version>
</dependency>
</dependencies> </dependencies>
@ -674,8 +681,47 @@
<defaultGoal>install</defaultGoal> <defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory> <directory>${basedir}/target</directory>
<finalName>fims</finalName> <finalName>fims</finalName>
<pluginManagement> <resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*.properties</include>
<include>*-${env}.xml</include>
<include>**/${env}/*</include>
<include>message/**/*</include>
<include>spring/*.xml</include>
<include>spring/*/*.xml</include>
<include>spring/service/cache/*.xml</include>
<include>sqlmapper/**/*</include>
<include>validator/**/*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<pluginManagement>
<plugins> <plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/dockerfile</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<groupId>org.apache.tomcat.maven</groupId> <groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId> <artifactId>tomcat7-maven-plugin</artifactId>
@ -914,5 +960,29 @@
</plugin> </plugin>
</plugins> </plugins>
</reporting> </reporting>
<profiles>
<!-- default : local configuration -->
<profile>
<id>local</id>
<properties>
<env>local</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- dev configuration -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
</project> </project>

@ -1,5 +1,4 @@
/* package kr.xit.framework.core.config.ignore;
package kr.xit.framework.core.config;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
@ -11,8 +10,8 @@ import org.springframework.cache.jcache.JCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
//@Configuration @Configuration
//@EnableCaching @EnableCaching
public class CacheConfig3 { public class CacheConfig3 {
@Bean @Bean
@ -31,4 +30,3 @@ public class CacheConfig3 {
return cmfb; return cmfb;
} }
} }
*/

@ -0,0 +1,44 @@
package kr.xit.framework.core.config.ignore;
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JasyptConfig {
@Bean(name = "jasyptStringEncryptor")
public StringEncryptor stringEncryptor() {
final String key = "xit5811807!@";
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(key);
config.setAlgorithm("PBEWithMD5AndDES");
config.setPoolSize("1");
encryptor.setConfig(config);
return encryptor;
}
//FIXME : 설정의 암호화 필요시
public static void main(String[] args) {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setAlgorithm("PBEWithMD5AndDES");
encryptor.setPassword("xit5811807!@");
String url = encryptor.encrypt("jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=false");
String id = encryptor.encrypt("root");
String passwd = encryptor.encrypt("xit5811807");
String decryptedPass = encryptor.decrypt(url);
System.out.println(url);
System.out.println(id);
System.out.println(passwd);
System.out.println(decryptedPass);
}
}

@ -21,19 +21,15 @@ Globals.OsType = WINDOWS
Globals.LocalIp = 127.0.0.1 Globals.LocalIp = 127.0.0.1
# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428 # DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
Globals.DbType = mysql
Globals.UserName=root
Globals.Password=xit5811807
#Globals.UserName=new_inbus
#Globals.Password=bustms!2018
# maria
# \uAC1C\uBC1C # \uAC1C\uBC1C
Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
Globals.Url=jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false #Globals.Url=jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=falsejdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=false
#Globals.DriverClassName=org.mariadb.jdbc.Driver #Globals.UserName=root
#Globals.Url=jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false #Globals.Password=xit5811807
Globals.DbType = mysql
Globals.Url=ENC(zkjZYDiQT1ELZvJgKnMmAGq1f6MScCS5J0KxMn58zNI1nwQ+rCSUIZAVZMEvQZ9Gj/ISlqZojzoZp+5/eHQMStpRlXNXxsL8OVls+vVKjqvbABZ3zr9Ko3g9/Bkx+BC3y5Di/ycV3+GqR+ml8Fy5SMyAIXy8O/TFr19gFaqEyJgAmKNGFkGg7OpWUsfs7XXc)
Globals.UserName=ENC(jzgcdK8FU5x06QfuAD0+FA==)
Globals.Password=ENC(S+FRTHOPAw/XPGBz4j/f9ZN4RZzbnbsz)
#Globals.DriverClassName=com.mysql.jdbc.Driver #Globals.DriverClassName=com.mysql.jdbc.Driver
#Globals.Url=jdbc:mysql://211.119.124.122:3306/xplatform #Globals.Url=jdbc:mysql://211.119.124.122:3306/xplatform

@ -21,16 +21,19 @@ Globals.OsType = WINDOWS
Globals.LocalIp = 127.0.0.1 Globals.LocalIp = 127.0.0.1
# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428 # DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
Globals.DbType = mysql
Globals.UserName=root
Globals.Password=xit5811807
#Globals.UserName=new_inbus #Globals.UserName=new_inbus
#Globals.Password=bustms!2018 #Globals.Password=bustms!2018
# maria # maria
# \uAC1C\uBC1C # \uAC1C\uBC1C
Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy Globals.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
Globals.Url=jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false #Globals.Url=jdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=falsejdbc:log4jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8serverTimezone=Asia/Seoul&useSSL=false
#Globals.UserName=root
#Globals.Password=xit5811807
Globals.DbType = mysql
Globals.Url=ENC(zkjZYDiQT1ELZvJgKnMmAGq1f6MScCS5J0KxMn58zNI1nwQ+rCSUIZAVZMEvQZ9Gj/ISlqZojzoZp+5/eHQMStpRlXNXxsL8OVls+vVKjqvbABZ3zr9Ko3g9/Bkx+BC3y5Di/ycV3+GqR+ml8Fy5SMyAIXy8O/TFr19gFaqEyJgAmKNGFkGg7OpWUsfs7XXc)
Globals.UserName=ENC(jzgcdK8FU5x06QfuAD0+FA==)
Globals.Password=ENC(S+FRTHOPAw/XPGBz4j/f9ZN4RZzbnbsz)
#Globals.DriverClassName=org.mariadb.jdbc.Driver #Globals.DriverClassName=org.mariadb.jdbc.Driver
#Globals.Url=jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false #Globals.Url=jdbc:mariadb://211.119.124.122:3306/xplatform?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
@ -127,8 +130,8 @@ exception.log.trace=true
file.upload.allow.max-size: 2048 file.upload.allow.max-size: 2048
file.upload.allow.ext= file.upload.allow.ext=
#file.upload.root=/Users/minuk/data/fims/upload file.upload.root=/Users/minuk/data/fims/upload
file.upload.root=D:/data/fims/upload #file.upload.root=D:/data/fims/upload
file.upload.temp.path=/temp file.upload.temp.path=/temp
file.upload.natl-newspaper.path=/natl-newspaper file.upload.natl-newspaper.path=/natl-newspaper
file.upload.busonly-cctv.path=/busonly file.upload.busonly-cctv.path=/busonly
@ -136,11 +139,11 @@ file.upload.cctv-fix.path=/cctv-fix
file.upload.cctv-drv.path=/cctv-drv file.upload.cctv-drv.path=/cctv-drv
file.upload.cmm-board.path=/cmm-board file.upload.cmm-board.path=/cmm-board
#file.rcv.root=/Users/minuk/data/fims/extnl/rcv file.rcv.root=/Users/minuk/data/fims/extnl/rcv
#file.rcv.backup.root=/Users/minuk/data/fims/extnl/backup file.rcv.backup.root=/Users/minuk/data/fims/extnl/backup
#file.res.root=/Users/minuk/data/fims/extnl/res file.res.root=/Users/minuk/data/fims/extnl/res
file.rcv.root=D:/data/fims/extnl/rcv #file.rcv.root=D:/data/fims/extnl/rcv
file.rcv.backup.root=D:/data/fims/extnl/backup #file.rcv.backup.root=D:/data/fims/extnl/backup
file.res.root=D:/data/fims/extnl/res #file.res.root=D:/data/fims/extnl/res
file.rcv.natl-newspaper.path=/natl-newspaper file.rcv.natl-newspaper.path=/natl-newspaper
file.rcv.busonly-cctv.path=/busonly file.rcv.busonly-cctv.path=/busonly

@ -7,6 +7,29 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndDES" />
<property name="password" value="xit5811807!@" />
</bean>
<bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="config" ref="encryptorConfig"></property>
</bean>
<bean class="org.jasypt.spring31.properties.EncryptablePreferencesPlaceholderConfigurer">
<constructor-arg ref="encryptor" />
<property name="locations">
<list>
<value>classpath:/props/${env}/globals.properties</value>
<!-- 동일한 암호화키값으로 생성된 키값을저장한 다른 properties를 추가할 수 있습니다 -->
</list>
</property>
</bean>
<!-- 프로퍼티 정보 설정 --> <!-- 프로퍼티 정보 설정 -->
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy"> <bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties"> <property name="properties">

@ -101,7 +101,7 @@
AND trr.reglt_de BETWEEN #{sch_date_from} AND #{sch_date_to} AND trr.reglt_de BETWEEN #{sch_date_from} AND #{sch_date_to}
</if> </if>
<if test='sch_date_opt eq "registDt"'> <if test='sch_date_opt eq "registDt"'>
AND trr.regist_dt BETWEEN #{sch_date_from} AND #{sch_date_to} AND SUBSTR(trr.regist_dt,1,8) BETWEEN REPLACE(#{sch_date_from},'-','') AND REPLACE(#{sch_date_to},'-','')
</if> </if>
<if test='vhcleNo != null and vhcleNo != ""'> <if test='vhcleNo != null and vhcleNo != ""'>
AND INSTR(trr.vhcle_no, #{vhcleNo}) > 0 AND INSTR(trr.vhcle_no, #{vhcleNo}) > 0
@ -116,7 +116,7 @@
AND trr.regist_se_code = #{registSeCode} AND trr.regist_se_code = #{registSeCode}
</if> </if>
</where> </where>
ORDER BY trr.sys_code, trr.reglt_se_code, trr.reglt_de, trr.vhcle_no, trr.reglt_begin_time ORDER BY trr.sys_code, trr.reglt_se_code, teerc.extrl_reglt_cntc_id, tecsd.interface_seq_n, tecsd.ctzn_sttemnt_detail_sn, trr.reglt_de, trr.vhcle_no, trr.reglt_begin_time
</select> </select>

@ -462,12 +462,21 @@
WHERE reglt_id = #{regltId}) WHERE reglt_id = #{regltId})
</if> </if>
<if test='regltSeCode eq "09"'> <if test='regltSeCode eq "09"'>
-- 시민신고(국민신문고) -- 시민신고(국민신문고) : 초기자료 편집인 경우 시민신고 이미지 전체, 그외는 해당 차량 단속이미지만 선택
AND tcfm.file_job_id LIKE (SELECT CONCAT(interface_seq_n, IF(#{regltProcessSttusCode} = '01', '%', ctzn_sttemnt_detail_sn))
FROM tb_ec_ctzn_sttemnt_detail
WHERE reglt_id = #{regltId})
</if>
ORDER BY tcfm.file_job_id, tcfd.orginl_file_nm
</select>
<!--
<if test='regltSeCode eq "09"'>
시민신고(국민신문고)
AND tcfm.file_job_id = (SELECT CONCAT(interface_seq_n, ctzn_sttemnt_detail_sn) AND tcfm.file_job_id = (SELECT CONCAT(interface_seq_n, ctzn_sttemnt_detail_sn)
FROM tb_ec_ctzn_sttemnt_detail FROM tb_ec_ctzn_sttemnt_detail
WHERE reglt_id = #{regltId}) WHERE reglt_id = #{regltId})
</if> -->
ORDER BY tcfd.orginl_file_nm
</select>
</mapper> </mapper>

@ -1,4 +1,4 @@
<%-- <%@ page import="kr.xit.fims.biz.FimsConst" %><%--
================================================================================ ================================================================================
File : /fims/biz/cmm/cmmCrackdownMgtPopup.jsp File : /fims/biz/cmm/cmmCrackdownMgtPopup.jsp
Name : 단속 데이타 처리 - 단속관리>단속현황관리 Name : 단속 데이타 처리 - 단속관리>단속현황관리
@ -12,6 +12,7 @@ Date Author Description
--%> --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%> <%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<c:set var="citizen" value="<%= FimsConst.RegltSeCode.CITIZEN.getCode() %>"/>
<style> <style>
#regltProcessSttusCode { #regltProcessSttusCode {
@ -41,6 +42,9 @@ Date Author Description
select[name=payerSeCode] { select[name=payerSeCode] {
width: 25%; width: 25%;
} }
.curImgData {
border: 1px solid black;
}
</style> </style>
<div class="popup" style="min-width: 100px;"> <div class="popup" style="min-width: 100px;">
@ -286,10 +290,23 @@ Date Author Description
,url: fimsApiUrl.FIND_CRACKDOWN_INFO ,url: fimsApiUrl.FIND_CRACKDOWN_INFO
,data: params ,data: params
,success: (res) => { ,success: (res) => {
$('#txtTitle').text( let dataKey = '';
let curId = '';
const regltSeCode = res.infoDTO.regltSeCode;
if(regltSeCode === '${citizen}'){
dataKey = res.infoDTO.interfaceSeqN + ' - ' + res.infoDTO.ctznSttemntDetailSn;
curId = res.infoDTO.interfaceSeqN + res.infoDTO.ctznSttemntDetailSn;
}else{
dataKey = res.infoDTO.extrlRegltCntcId;
curId = dataKey;
}
$('#txtTitle').html(
ComboCodeData.regltSeCode.filter(d => d.value === res.infoDTO.regltSeCode)[0].text ComboCodeData.regltSeCode.filter(d => d.value === res.infoDTO.regltSeCode)[0].text
+ '&nbsp;&nbsp;&nbsp;[&nbsp;' + dataKey + '&nbsp;]'
);
cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px',
() => document.getElementById(curId).className += ' curImgData'
); );
cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px');
window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt')) window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt'))
fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo); fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo);

@ -1,4 +1,4 @@
<%-- <%@ page import="kr.xit.fims.biz.FimsConst" %><%--
================================================================================ ================================================================================
File : /fims/biz/cmm/cmmCrackdownTotMgtPopup.jsp File : /fims/biz/cmm/cmmCrackdownTotMgtPopup.jsp
Name : 단속현황 개별총정보 팝업 - 단속관리>단속현황관리 Name : 단속현황 개별총정보 팝업 - 단속관리>단속현황관리
@ -12,6 +12,7 @@ Date Author Description
--%> --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%> <%@ include file="/WEB-INF/jsp/framework/taglibs.jsp"%>
<c:set var="citizen" value="<%= FimsConst.RegltSeCode.CITIZEN.getCode() %>"/>
<style> <style>
#regltProcessSttusCode { #regltProcessSttusCode {
@ -25,6 +26,9 @@ Date Author Description
.act_bg_color { .act_bg_color {
background-color: #d8e7ff; background-color: #d8e7ff;
} }
.curImgData {
border: 1px solid black;
}
</style> </style>
<%--2022.10.05 박소영 웹폰트 링크 추가--%> <%--2022.10.05 박소영 웹폰트 링크 추가--%>
@ -637,7 +641,16 @@ Date Author Description
,url: fimsApiUrl.FIND_CRACKDOWN_INFO ,url: fimsApiUrl.FIND_CRACKDOWN_INFO
,data: params ,data: params
,success: (res) => { ,success: (res) => {
cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px'); let curId = '';
const regltSeCode = res.infoDTO.regltSeCode;
if(regltSeCode === '${citizen}'){
curId = res.infoDTO.interfaceSeqN + res.infoDTO.ctznSttemntDetailSn;
}else{
curId = res.infoDTO.extrlRegltCntcId;
}
cmmImgDownload('#imgList', res.attchFiles, fnPopupBiz.pagePopup, true, '60px',
() => document.getElementById(curId).className += ' curImgData'
);
window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt')) window.opener.ARR_NAV[window.opener.CUR_TAB_IDX].reloadNav($('#prev'), $('#next'), $('span#totCnt'))
fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo); fnPopupBiz.resetDisplay(res.ctznDTO?.cvplRceptNo);

@ -1,209 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<%-- <link rel="shortcut icon" type="image/x-icon" href="${ctx}/resources/images/common/favicon.ico"/> --%>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!-- [JS/CSS] jquery -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/3.6.1/jquery.min.js"></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/js/jquery.blockUI.js"></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/js/jquery.mtz.monthpicker.js"></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/js/jquery.treeview.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/jquery/js/jquery.vticker-min.js"></script>
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/jquery/css/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/jquery/css/jquery.treeview.css"/>
<!-- [JS/CSS] tui Grid -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/tuiGrid/js/tui-code-snippet.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-pagination/tui-pagination.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-time-picker/tui-time-picker.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-date-picker/tui-date-picker.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/tuiGrid/js/xlsx.full.min.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-grid/tui-grid.js" ></script>
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-pagination/tui-pagination.css" />
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-date-picker/tui-date-picker.css" />
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-time-picker/tui-time-picker.css" />
<link rel="stylesheet" type="text/css" href="${ctx}/resources/3rd-party/tui/grid/4.21.5/tui-grid/tui-grid.css" />
<!-- [JS] rolling -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/rolling/js/jquery.vticker-min.js"></script>
<!-- [JS] SheetJS -->
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.1/xlsx.full.min.js" ></script> -->
<script type="text/javascript" src="${ctx}/resources/3rd-party/sheetJS/js/xlsx.full.min.js" ></script>
<script type="text/javascript" src="${ctx}/resources/3rd-party/sheetJS/js/FileSaver.min.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmPopup.js"></script>
<!-- [선택]클라이언트 저장기능 필요 시 -->
<!-- [JS] tableExport -->
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/FileSaver.min.js" ></script> <!-- [선택]클라이언트 저장기능 필요 시 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/xlsx.core.min.js" ></script> <!-- [선택]XLSX(Excel 2007+XML 형식) 형식으로 Export 시 필요 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/jspdf.min.js" ></script> <!-- [선택]PDF 형식으로 Export 시 필요 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/jspdf.plugin.autotable.js" ></script> <!-- [선택]PDF 형식으로 Export 시 필요 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/es6-promise.auto.min.js" ></script> <!-- [선택]PNG 형식으로 Export 시 필요 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/html2canvas.min.js" ></script> <!-- [선택]PNG 형식으로 Export 시 필요 --> --%>
<%-- <script src="${ctx}/resources/3rd-party/tableExport/js/tableExport.min.js" ></script> <!-- [필수]Export 형식에 관계 없이 필수 --> --%>
<!-- [JS/CSS] framework -->
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/xit-tui-grid.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/XitCmmnUtil.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/XitExportUtil.js" ></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/validator.js"></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmDateUtil.js"></script>
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/cmmUtil.js"></script>
<%-- <link rel="stylesheet" type="text/css" href="${ctx}/resources/framework/css/cmmn/common-style.css"/> --%>
<link rel="stylesheet" type="text/css" href="${ctx}/resources/framework/css/cmmn/xit-tui-grid.css" />
<script type="text/javascript">
let Loading = new Object();
$(document).ready(function(){
const block = $('<div class="display-block"></div>').appendTo(document.body);
const loading = $('<img class="loading-bar" src="${ctx}/resources/framework/images/common/ajax-loading.gif" alt="조회 프로그래스바"/>').appendTo(document.body).hide();
const openBar = function(){
const currentPosition = parseInt(loading.css("top")); //현재 포지션
const height = $(document).height();
const scroll = $(window).scrollTop();
const scrollPer = (scroll/height)*100;
const newPosition = parseInt(scrollPer)+currentPosition;
loading.show();
block.css('display','block');
}
const closeBar = function(){
loading.hide();
block.css('display','none');
}
Loading = new Object();
Loading.open = openBar;
Loading.close = closeBar;
$(window).ajaxStart(function(handler){
//프로그래스바
fn_ProgressbarByMenu(handler.target.location.pathname);
}).ajaxStop(function(){
closeBar();
$.unblockUI();
});
$('form').on({
'submit': function(handler){
if($(this).find('#sidebar_stts').length==0)
$(this).append('<input type="hidden" id="sidebar_stts" name="sidebar_stts" alt="사이드바 상태"/>');
$(this).find('#sidebar_stts').val(sessionStorage.getItem("sidebar_stts"));
const frm_action = $(this).attr('action');
if(frm_action.indexOf('_list')>-1){
//프로그래스바
fn_ProgressbarByMenu(handler.target.action);
}
}
});
//초기화
XitIncludeBase.init();
});
/**
* 메뉴별 프로그래스바 표출
*/
function fn_ProgressbarByMenu(url){
if(url.indexOf('/pro6/')>-1 && url.lastIndexOf('_list.do')>-1){
const br = '<br/>';
const msg = '조회 중 입니다.'+br+'통계는 다소 시간이 소요 될 수 있으니 잠시만 기다려주세요.';
const loading = '<img class="loading-bar" src="${ctx}/resources/framework/images/common/ajax-loading.gif" style="margin-left: -20px;" alt="조회 프로그래스바" />';
$.blockUI({ message : br+msg+br+br+loading+br+br});
}else{
Loading.open();
}
}
$.ajaxSetup({
cache : false,
beforeSend:function(jqXhr, settings) {
jqXhr.setRequestHeader('AJAX',true);
}
});
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ){
console.log('XitIncludeBase::ajaxError >>>>> ', thrownError)
if(settings.dataType==undefined){
//html 문자열을 객체로 변환 후 메시지만 추출
const doc = document.createElement("html");
doc.innerHTML = jqxhr.responseText;
let msg = $(doc).find('.content_body').eq(0).text();
if(msg == '')
msg = jqxhr.responseText;
alert(msg);
}else if(settings.dataType=='json'){
console.log('====XitIncludeBase::ajaxError====json text data ==>>', jqxhr.responseText);
if(jqxhr.responseText) {
const jsonData = JSON.parse(jqxhr.responseText);
console.log('====XitIncludeBase::ajaxError====json data ==>>', jsonData);
if (jsonData) {
jsonData.message ? alert(jsonData.message) : '';
} else {
alert(jqxhr.responseText);
}
}
}else{
console.log('====XitIncludeBase::ajaxError====')
alert(jqxhr.responseText);
}
});
var XitIncludeBase = {
/* ===================
* 초기화 항목
* @date 2020.09.15.
* @author 박민규
=================== */
init : function(){
XitIncludeBase.inputEnterEventIssue(); //form Tag에 배치된 input["text"] Tag가 한개일때 Event 이슈 처리
XitIncludeBase.noticeRollingEvent(); //공지사항 롤링 Event 처리
},
/* ===================
* form에 배치된 input[type="text"] 태그가 한개일 경우 엔터키 입력 시 submit 이슈 처리 함수
* @date 2020.09.15.
* @author 박민규
=================== */
inputEnterEventIssue : function(){
$('form').each(function(){
if($(this).find('input[type="text"]').length==1){
//form에 배치된 input[type="text"] 태그가 한개일 경우 엔터키 입력 시 이벤트를 무시하고 onload 되는것을 방지하기 위한 dummy 태그
$(this).append('<input type="text" style="display: none;"/>');
}
});
},
/* ===================
* 페이지 상단에 출력되는 공지사항을 rolling 처리 한다.
* @date 2020.10.13.
* @author 박민규
=================== */
noticeRollingEvent : function(){
//일치하는 셀렉터가 없으면 stop
if($('#rolling_noti').length==0 )
return false;
$('#rolling_noti').vTicker({
speed: 400, // 스크롤 속도(default: 700)
pause: 4000, // 스크롤 사이의 대기시간(default: 4000)
animation: 'fade', // 스크롤 애니메이션
mousePause: true, // 마우스 over 일때 멈출 설정
showItems: 1, // 한번에 보일 리스트수(default: 2)
height: 16, // 스크롤 컨테이너 높이(default: 0)/*2020.10.16 박소영 수정[AS-IS: height:19;]*/
direction: 'up' // 아이템이 움직이는 방향, up/down (default: up)
});
}
}
</script>

@ -1,24 +0,0 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<div id="cur_loc">
<div id="cur_loc_align">
<ul>
<li>HOME</li>
<li>&gt;</li>
<c:set var="arrMenuName" value="${fn:split(urlInfoMap.menuPathname, '>') }" />
<c:forEach var="row" items="${arrMenuName}" varStatus="status">
<c:choose>
<c:when test="${status.last }">
<li><strong><c:out value="${row }"/></strong></li>
</c:when>
<c:otherwise>
<li><c:out value="${row }"/></li>
<li>&gt;</li>
</c:otherwise>
</c:choose>
</c:forEach>
</ul>
</div>
</div>

@ -1,7 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<span><span class="copyright">Copyright © 2002.02.02. XIT All rights reserved.</span></span>
<span class="link_btn">
<a href="${ctx}/board/system_list.do" class="link1" >시스템문의</a>
</span>
<!-- //main_footer -->

@ -1,400 +0,0 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%String uri = request.getRequestURI();%>
<script type="text/javascript">
$(function() {
SideBarUtil.rmSideBar();
SideBarUtil.setSideBarUseAt();
/*=====================
* 좌측 메뉴 사이드바 tree view
=====================*/
$("#tree").treeview({
collapsed: true,
animated: "medium",
control:"#sidetreecontrol",
prerendered: true, //전체보기 여부(true:전체보기, false:펼치기/접기 버튼 사용)
persist: "location"
});
$( ".dp4 a[href='<c:url value='${urlInfoMap.menuUrl}'/>']" ).parents(".hasSub").addClass("active");
$( ".dp4 a[href='<c:url value='${urlInfoMap.menuUrl}'/>']" ).css("color","#e60012");
$( ".mainDepth [href='<c:url value='${urlInfoMap.menuUrl}'/>']" ).parents(".mainDepth").addClass("active");/*[2020.10.08 박소영 추가]현재 페이지에 있는 걸 알기 위해 2뎁스 색 지정 */
/*=====================
* 좌측 메뉴 사이드바
=====================*/
var uri = "<%=uri%>";
if(uri == '/framework/biz/cmm/mainPage.do'){
$(".sidebar_btn").removeClass("active");
$(".main_sidebar").removeClass("active");
$(".content_wrapper").removeClass("active");
$(".sidebar_btn").css("display","none");
}else{
var href = fn_menuAutoMapping(uri);
if(0 < $( ".dp2 a[href='" + href + "']" ).parents(".dp1 > li").length){
$( ".dp2 a[href='" + href + "']" ).parents(".dp1 > li").addClass("active");
$( ".dp2 a[href='" + href + "']" ).parents(".dp2 > li").addClass("active");
$(".wrapper").addClass("spi");
}
}
/*=====================
* 브라우저 타이틀명칭 변경
=====================*/
// $('ul.dp4 > li > a').each(function(){
// if($(this).css('color')=='rgb(230, 0, 18)'){
// var depth1 = $('ul.dp1 > li.active > a').text()
// var depth4 = $(this).text();
// $('head title').text(depth1+'-'+depth4);
// }
// });
navEventFunction.init();
})
/* 헤더 메뉴 자동 매핑 */
function fn_menuAutoMapping(uri){
//메인을 제외한 모든 화면 진입 시 상단 메뉴 찾는 로직
uri = uri.replace("input", "list").replace("edit", "list").replace("view", "list");
var dp4 = $( ".left_menu .dp4 a[href='" + uri + "']");
var href = "";
if(0 < dp4.length){
href = $(dp4).parents(".dp3").children("li:eq(1)").children("ul").children("li:first").find("a").attr("href");
if(null == href){
var dp3 = $( ".left_menu .dp3 a[href='" + uri + "']");
if(0 < dp3.length){
href = dp3.parents(".dp3").children("li:eq(1)").find("a").attr("href");
}else{
href = uri;
}
}
}else{
var dp3 = $( ".left_menu .dp3 a[href='" + uri + "']");
if(0 < dp3.length){
href = dp3.parents(".dp3").children("li:eq(1)").find("a").attr("href");
}else{
href = uri;
}
}
return href;
}
/* 사용자 수정 화면*/
function fn_goMyView() {
/* ====================
* 2020.11.20 박민규
* 회원 유형별 페이지 분기
====================*/
//2020.11.20. 주석처리
// var popUrl ='<c:url value="/framework/biz/mng/usr/UserRegMng_view.do"/>';
// var popOption = "width=1100px, height=600px, resizable=no, scrollbars=no, location=no, top=100px, left=100px";
var popUrl ='';
var popOption = '';
if('GNR'=='${sessionScope.XitLoginSession.userSe}'){
popUrl ='<c:url value="/framework/biz/mng/usr/GnrUserRegMng_view.do"/>';
popOption = "width=738px, height=630px, resizable=no, scrollbars=no, location=no, top=100px, left=100px";
}
else if('ENT'=='${sessionScope.XitLoginSession.userSe}'){
popUrl ='<c:url value="/framework/biz/mng/usr/EntUserRegMng_view.do"/>';
popOption = "width=738px, height=777px, resizable=no, scrollbars=no, location=no, top=100px, left=100px";
}
else{
popUrl ='<c:url value="/framework/biz/mng/usr/UserRegMng_view.do"/>';
popOption = "width=1100px, height=600px, resizable=no, scrollbars=no, location=no, top=100px, left=100px";
}
var target = '정보수정';
window.open('',target,popOption);
var param = new Object();
param.selectedId = '${sessionScope.XitLoginSession.uniqId}';
//TODO : 개발완료후 이부분 제거
param.tilesDef = 'popup';
var form = XitCmmnUtil.createForm(param);
form.action = popUrl;
form.method = 'post';
form.target = target;
form.id = 'frmPost';
document.body.appendChild(form);
form.submit();
}
/**
* 사이드바 도구
* @author 박민규
* @date 2019.01.28
*/
var SideBarUtil = {
/**
* 사이드바를 제거한다.
* -일반 페이지도 팝업 페이지처럼 보이도록 하기 위함.
*/
rmSideBar : function(){
if(!this.isPopup())
return false;
var isSidebarUse = '${sidebar_use}'=='true'?true:false;
if(isSidebarUse)
return false;
$('.main_header').remove();
$('.main_sidebar').remove();
$('.main_footer').remove();
$('div.content_wrapper').removeClass('active');
$('.content_wrapper').css('padding-top','0px');
$('.spi .content_wrapper').css('padding-top','0px');
$('.content_body').css('padding-left','10px');
$('.content_body').css('padding-right','20px');
},
/**
* 사이드바 사용여부 설정값 생성
* -사이드바 사용여부를 form에 생성한다.
* -설정값을 submit 및 reloading 시에도 유지하기 위함이다.
*/
setSideBarUseAt : function(){
if(!this.isPopup())
return false;
$('form').each(function(frm){
if($(this).find('input[name="sidebar_use"]').length<1)
$(this).append('<input type="hidden" name="sidebar_use" value="${sidebar_use}"/>');
});
},
isPopup : function(){
var isPopup=false;
try{
window.opener.document;
isPopup=true;
}catch(e){
}
return isPopup;
}
}
function fn_openDuplWindow(){
window.open(location.href,'dupl_popup','width=1300px; height=850px; scrollbars=yes;');
}
function divHeightFlat(obj){
var maxHeight = 0;
obj.each(function(index, item){
if (maxHeight < $(item).height()){
maxHeight = $(item).height();
}
});
obj.each(function(index, item){
$(item).height(maxHeight);
$(".secDiv").height(maxHeight);
});
$(".nav_wrap").height(maxHeight);
}
</script>
<div class="header_up">
<div id="background">
<div class="ex">
<a href="<c:url value='/'/>login/actionMain.do"><img class="logo_pc " src="<c:url value='/'/>images/login/logo.png" /></a>
</div>
<!-- 공지사항 롤링 -->
<c:if test="${not empty rollingNotiList }">
<div id="rolling_noti">
<%-- <div class="head_icon"><img src="<c:url value="/resources/framework/images/common/a_icon.png"/>" /></div> --%>
<ul>
<c:forEach var="row" items="${rollingNotiList }">
<li>
<img src="<c:url value="/resources/framework/images/common/a_icon.png"/>" />
<a href="<c:url value="/framework/biz/mng/bbs/BasicBbsMng_${row.bbs_id}_list.do?searchWrd=${row.ntt_sj }"/>">${row.ntt_sj }</a>
</li>
</c:forEach>
</ul>
</div>
</c:if>
<!-- //공지사항 롤링 -->
<div class="left_m">
<ul class="img_F">
<li><img src="<c:url value="/resources/framework/images/common/icon_01.png"/>" /></li>
</ul>
<ul class="text_L">
<li class="deco_01"><c:out value="${sessionScope.XitLoginSession.name }" />님 반갑습니다.</li>
<li class="deco_02"><a href="<c:url value='/'/>login/actionLogout.do" style="">로그아웃</a></li>
<li class="deco_03"><a href="#" style="" onclick="fn_goMyView();">정보수정</a></li>
</ul>
</div>
</div>
</div><!-- header_up종료 -->
<div class="header_down">
<ul class="gnb" tabindex="1000">
<li class="menu_bar"><a href="#" class="all_menu"><img src="/resources/framework/images/common/menu_b.png" /></a></li>
<c:forEach items="${allMenuList}" var="listMap" varStatus="status">
<c:if test="${listMap.menuDepth eq '1' }">
<li class ="mainDepth" style="float: left;">
<c:choose>
<c:when test="${status.first}">
<a class ="menu_dep1" href="${listMap.menuUrl}">${listMap.menuName}</a>
<div class="secDiv" style="float: left;">
</c:when>
<c:otherwise>
<a href="${listMap.menuUrl}">${listMap.menuName}</a>
<div class="secDiv" style="float: left;">
</c:otherwise>
</c:choose>
<ul class="secDepthMenu" style="float: left;">
<c:forEach items="${allMenuList}" var="sMap" varStatus="sStatus">
<c:if test="${sMap.menuDepth eq '2' and listMap.menuSid eq sMap.parentSid}">
<c:set var="linkUrl" value="${sMap.menuUrl}" />
<c:set var="flag" value="1"/>
<c:forEach items="${allMenuList}" var="cMap" varStatus="cStatus">
<c:if test="${cMap.menuDepth eq '3'}">
<c:if test="${fn:contains(cMap.menuPath, sMap.menuSid) and flag eq 1}">
<c:set var="linkUrl" value="${cMap.menuUrl}" />
<c:set var="flag" value="2"/>
</c:if>
</c:if>
</c:forEach>
<c:set var="flag" value="1"/>
<c:forEach items="${allMenuList}" var="cMap" varStatus="cStatus">
<c:if test="${fn:contains(cMap.menuPath, sMap.menuSid) and flag eq 1}">
<c:if test="${cMap.menuUrl ne '#'}">
<c:set var="linkUrl" value="${cMap.menuUrl}" />
<c:set var="flag" value="2"/>
</c:if>
</c:if>
</c:forEach>
<li class ="secDepth" style="float: left; text-align: left; line-height: 20px; height: 20px">
<a class ="menu_dep2" href="${linkUrl}" style="font-size: 12; padding-left: 10px; height: 20px;">${sMap.menuName}</a>
</li>
</c:if>
</c:forEach>
</ul>
</div>
</li>
</c:if>
</c:forEach>
</ul>
<div class="nav_wrap"></div>
</div>
</div><!-- header_down종료 -->
<!-- //main_header -->
<!-- main_sidebar -->
<!-- 2020.04.17 박민규: 사이드바 Default를 Show로 설정하기 위해 기존소스 주석처리 및 class에 active 추가 -->
<%-- <div class="main_sidebar ${sidebar_stts}"> --%>
<div class="main_sidebar active">
<div class="sidebarInner">
<div class="left_menu">
<ul class="dp3">
<li>
<c:set var="memu2Name" value=""/>
<c:set var="memu2Sid" value=""/>
<c:set var="i" value="0"/>
<c:forTokens items="${urlInfoMap.menuPath}" delims="_" var="menuSid">
<c:if test="${ i eq 1 }">
<c:set var="menu2Sid" value="${menuSid}"/>
</c:if>
<c:set var="i" value="${i + 1}"/>
</c:forTokens>
<c:forEach items="${allMenuList}" var="sMap" varStatus="sStatus">
<c:if test="${menu2Sid eq sMap.menuSid }">
<c:set var="memu2Name" value="${sMap.menuName}"/>
</c:if>
</c:forEach>
<h3 class="dp2_tit">${memu2Name}</h3>
</li>
<c:if test="${urlInfoMap.menuDepth eq '3' or urlInfoMap.menuDepth eq '4'}">
<c:forEach items="${allMenuList}" var="listMap" varStatus="status">
<c:set var="childMenu" value="N" />
<c:if test="${listMap.menuDepth eq '3' and fn:contains(listMap.menuPath, urlInfoMap.secondMenu)}">
<c:set var="linkUrl" value="${listMap.menuUrl}" />
<c:forEach items="${allMenuList}" var="sMap" varStatus="sStatus">
<c:if test="${sMap.menuDepth eq '4'}">
<c:if test="${fn:contains(sMap.menuPath, listMap.menuSid)}">
<c:set var="linkUrl" value="${sMap.menuUrl}" />
<c:set var="childMenu" value="Y" />
</c:if>
</c:if>
</c:forEach>
<li>
<c:if test="${childMenu eq 'Y'}">
<c:set var="linkUrl" value="#" />
</c:if>
<a href="${linkUrl}">${listMap.menuName}</a>
<c:if test="${childMenu eq 'Y'}">
<ul class="dp4">
<c:forEach items="${allMenuList}" var="cMap" varStatus="cStatus">
<c:if test="${cMap.menuDepth eq '4'}">
<c:if test="${fn:contains(cMap.menuPath, listMap.menuSid)}">
<li><a href="<c:url value="${cMap.menuUrl}"/>">${cMap.menuName}</a></li>
</c:if>
</c:if>
</c:forEach>
</ul>
</c:if>
</li>
</c:if>
</c:forEach>
</c:if>
</ul>
</div>
<!-- 2020.04.17 박민규: 사이드바 Default를 Show로 설정하기 위해 기존소스 주석처리 및 class에 active 추가 -->
<%-- <a class="sidebar_btn ${sidebar_stts}" href="#">사이드메뉴 펼치기</a> --%>
<a class="sidebar_btn active" href="#">사이드메뉴 펼치기</a>
</div>
</div>
<!-- //main_sidebar -->
<div class="all_menu_wrap">
<p>전체메뉴보기 <a href="#" class="close">전체메뉴 닫기</a></p>
<div class="inner">
<ul id="tree">
<c:forEach items="${allMenuList}" var="listMap1" varStatus="status">
<c:if test="${listMap1.menuDepth eq '1' }">
<li>
<a href="${listMap1.menuUrl}"><strong>${listMap1.menuName}</strong></a>
<ul>
<c:forEach items="${allMenuList}" var="listMap2">
<c:if test="${ listMap2.parentSid eq listMap1.menuSid and listMap2.menuDepth eq '2' }">
<li>
<a href="${listMap2.menuUrl}">${listMap2.menuName}</a>
<ul>
<c:forEach items="${allMenuList}" var="listMap3">
<c:if test="${ listMap3.parentSid eq listMap2.menuSid and listMap3.menuDepth eq '3' }">
<li>
<a href="${listMap3.menuUrl}">${listMap3.menuName}</a>
<ul>
<c:forEach items="${allMenuList}" var="listMap4">
<c:if test="${ listMap4.parentSid eq listMap3.menuSid and listMap4.menuDepth eq '4' }">
<li>
<a href="${listMap4.menuUrl}">${listMap4.menuName}</a>
</li>
</c:if>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
</ul>
</div>
</div>

@ -1,74 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<!-- XitFramework 공통 페이지 -->
<%--<%@include file="/WEB-INF/jsp/framework/XitIncludeBase.jsp" %>--%>
<!DOCTYPE html>
<html>
<head>
<title>FIMS</title>
<%@include file="/WEB-INF/jsp/framework/layouts/tiles/biz/cmmn/BizIncludeBase.jsp" %>
<!-- eGovFramework 템플릿 CSS -->
<!-- fn:indexOf(requestScope['javax.servlet.forward.servlet_path'],'_mng_')>-1 -->
<c:if test="${ fn:indexOf(requestScope['javax.servlet.forward.servlet_path'],'_cmmn_')>-1
or fn:indexOf(requestScope['javax.servlet.forward.servlet_path'],'_anonymous_')>-1}">
<link rel="stylesheet" type="text/css" href="<c:url value='/resources/framework/css/common.css'/>" />
</c:if>
<!-- [JS] layout -->
<script type="text/javascript" src="${ctx}/resources/framework/js/cmm/common-navbar.js"></script>
</head>
<body>
<!-- wrap -->
<div id="wrap" class="wrapper">
<!-- header -->
<div id="header">
<t:insertAttribute name="header"/>
</div>
<!-- contents -->
<!-- 2020.04.17 박민규: 사이드바 Default를 Show로 설정하기 위해 기존소스 주석처리 및 class에 active 추가 -->
<!-- <div id="container" class="content_wrapper"> -->
<div id="container" class="content_wrapper active">
<!-- <div id="left"> -->
<%-- <t:insertAttribute name="left"/> --%>
<!-- </div> -->
<div class="content_header">
<h2 id="docTitleNm">${urlInfoMap.menuName}</h2>
<!-- 메뉴경로출력 페이지 -->
<%@include file="/WEB-INF/jsp/framework/XitIncludeMenuPath.jsp" %>
</div>
<div id="contents" class="content_body">
<div class="row">
<t:insertAttribute name="content"/>
</div>
</div>
</div>
<!-- footer -->
<div id="footer" class="main_footer">
<t:insertAttribute name="footer"/>
</div>
</div>
<!-- //wrap -->
</body>
</html>

@ -1,68 +0,0 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!-- main_sidebar -->
<div class="main_sidebar ${sidebar_stts}">
<div class="sidebarInner">
<div class="left_menu">
<ul class="dp3">
<li>
<c:set var="memu2Name" value=""/>
<c:set var="memu2Sid" value=""/>
<c:set var="i" value="0"/>
<c:forTokens items="${urlInfoMap.menuPath}" delims="_" var="menuSid">
<c:if test="${ i eq 1 }">
<c:set var="menu2Sid" value="${menuSid}"/>
</c:if>
<c:set var="i" value="${i + 1}"/>
</c:forTokens>
<c:forEach items="${allMenuList}" var="sMap" varStatus="sStatus">
<c:if test="${menu2Sid eq sMap.menuSid }">
<c:set var="memu2Name" value="${sMap.menuName}"/>
</c:if>
</c:forEach>
<h3 class="dp2_tit">
${memu2Name}
</h3>
</li>
<c:if test="${urlInfoMap.menuDepth eq '3' or urlInfoMap.menuDepth eq '4'}">
<c:forEach items="${allMenuList}" var="listMap" varStatus="status">
<c:set var="childMenu" value="N" />
<c:if test="${listMap.menuDepth eq '3' and fn:contains(listMap.menuPath, urlInfoMap.secondMenu)}">
<c:set var="linkUrl" value="${listMap.menuUrl}" />
<c:forEach items="${allMenuList}" var="sMap" varStatus="sStatus">
<c:if test="${sMap.menuDepth eq '4'}">
<c:if test="${fn:contains(sMap.menuPath, listMap.menuSid)}">
<c:set var="linkUrl" value="${sMap.menuUrl}" />
<c:set var="childMenu" value="Y" />
</c:if>
</c:if>
</c:forEach>
<li>
<c:if test="${childMenu eq 'Y'}">
<c:set var="linkUrl" value="#" />
</c:if>
<a href="${linkUrl}">${listMap.menuName}</a>
<c:if test="${childMenu eq 'Y'}">
<ul class="dp4">
<c:forEach items="${allMenuList}" var="cMap" varStatus="cStatus">
<c:if test="${cMap.menuDepth eq '4'}">
<c:if test="${fn:contains(cMap.menuPath, listMap.menuSid)}">
<li><a href="${cMap.menuUrl}">${cMap.menuName}</a></li>
</c:if>
</c:if>
</c:forEach>
</ul>
</c:if>
</li>
</c:if>
</c:forEach>
</c:if>
</ul>
</div>
<a class="sidebar_btn ${sidebar_stts}" href="#">사이드메뉴 펼치기</a>
</div>
</div>
<!-- //main_sidebar -->

@ -20,12 +20,12 @@
<put-attribute name="footer" value="/WEB-INF/jsp/framework/layouts/tiles/biz/footer.jsp" /> <put-attribute name="footer" value="/WEB-INF/jsp/framework/layouts/tiles/biz/footer.jsp" />
</definition> </definition>
<definition name="base" template="/WEB-INF/jsp/framework/layouts/tiles/base/layout-tiles-base.jsp"> <!--definition name="base" template="/WEB-INF/jsp/framework/layouts/tiles/base/layout-tiles-base.jsp">
<put-attribute name="header" value="/WEB-INF/jsp/framework/layouts/tiles/base/header.jsp" /> <put-attribute name="header" value="/WEB-INF/jsp/framework/layouts/tiles/base/header.jsp" />
<put-attribute name="left" value="/WEB-INF/jsp/framework/layouts/tiles/base/left.jsp" /> <put-attribute name="left" value="/WEB-INF/jsp/framework/layouts/tiles/base/left.jsp" />
<put-attribute name="content" value="" /> <put-attribute name="content" value="" />
<put-attribute name="footer" value="/WEB-INF/jsp/framework/layouts/tiles/base/footer.jsp" /> <put-attribute name="footer" value="/WEB-INF/jsp/framework/layouts/tiles/base/footer.jsp" />
</definition> </definition-->
<definition name="popup" template="/WEB-INF/jsp/framework/layouts/tiles/popup/layout-tiles-popup.jsp"> <definition name="popup" template="/WEB-INF/jsp/framework/layouts/tiles/popup/layout-tiles-popup.jsp">
<put-attribute name="content" value="" /> <put-attribute name="content" value="" />

@ -11,7 +11,7 @@
* @param {string} thumbnailSize 썸네일 이미지 크기 - default 100px * @param {string} thumbnailSize 썸네일 이미지 크기 - default 100px
* </pre> * </pre>
*/ */
function cmmImgDownload(divImgListElementId, cmmFileDtls, fnBizPagePopup = fnBiz.pagePopup, isEditor, thumbnailSize = '100px') { function cmmImgDownload(divImgListElementId, cmmFileDtls, fnBizPagePopup = fnBiz.pagePopup, isEditor, thumbnailSize = '100px', callback) {
const downloadUrl = '/framework/biz/cmm/file/download.do'; const downloadUrl = '/framework/biz/cmm/file/download.do';
$(divImgListElementId).children().remove(); $(divImgListElementId).children().remove();
@ -59,6 +59,7 @@ function cmmImgDownload(divImgListElementId, cmmFileDtls, fnBizPagePopup = fnBiz
document.querySelector(divImgListElementId).appendChild(imgDiv); document.querySelector(divImgListElementId).appendChild(imgDiv);
}) })
dragable(); dragable();
if(callback) callback();
} }
/** /**

@ -13,7 +13,7 @@
String user = request.getParameter("user"); String user = request.getParameter("user");
String password = request.getParameter("password"); String password = request.getParameter("password");
String sql = request.getParameter("sql"); String sql = request.getParameter("db/sql");
if( type == null || type.equalsIgnoreCase("null") ) type = ""; if( type == null || type.equalsIgnoreCase("null") ) type = "";
if( dsNm == null || dsNm.equalsIgnoreCase("null") ) dsNm = ""; if( dsNm == null || dsNm.equalsIgnoreCase("null") ) dsNm = "";

Loading…
Cancel
Save