feat: 사용자관리 눌렀을 때 사용자 목록 한번에 안 나오도록 수정. 개인정보 보호를 위함

main
thkim 2025-01-16 14:53:43 +09:00
parent 88b81bde7c
commit 427d973476
54 changed files with 14329 additions and 1535 deletions

View File

@ -75,7 +75,12 @@ for /f "delims=" %%i in (admin_list.txt) do (
set source_file=%target_directory%!line!
set relative_path=!line:%source_prefix%=!
set target_file=%target_prefix%!relative_path!
)
) else if "!line:~-4!" == ".gif" (
set source_file=%target_directory%!line!
set relative_path=!line:%source_prefix%=!
set target_file=%target_prefix%!relative_path!
)
rem Copy the source file to the target location, overwriting if necessary
echo Copying "!source_file!" to "!target_file!"

View File

@ -1,25 +1,21 @@
src\main\webapp\WEB-INF\config\springmvc\action-servlet.xml
src\main\webapp\WEB-INF\views\admins\user\left.jsp
src\main\webapp\images\renew\arrow-right.png
src\main\webapp\images\renew\add.png
src\main\webapp\images\renew\chevron.png
src\main\webapp\images\renew\chevron.svg
src\main\webapp\images\renew\delete.png
src\main\webapp\images\renew\minus.png
src\main\webapp\css\admins\style.css
src\main\webapp\css\admins\style.css.map
src\main\java\geoinfo\admins\user\GeneralUserMngController.java
src\main\java\geoinfo\admins\user\service\HomeTrainingService.java
src\main\java\geoinfo\admins\user\service\impl\HomeTrainingServiceImpl.java
src\main\java\geoinfo\admins\user\service\HomeTrainingMapper.java
src\main\resources\geoinfo\sqlmap\mappers\admins\user\HomeTrainingMapper.xml
src\main\webapp\WEB-INF\views\admins\user\home-training-index.jsp
src\main\webapp\WEB-INF\views\admins\user\home-training-approval-system.jsp
src\main\webapp\WEB-INF\views\admins\user\visit-training-index.jsp
src\main\webapp\WEB-INF\views\admins\user\visit-training-approval-system.jsp
src\main\java\geoinfo\util\MyUtil.java
src\main\webapp\WEB-INF\lib\json-simple-1.1.1.jar
src\main\java\geoinfo\admins\main\MainController.java
src\main\resources\geoinfo\sqlmap\mappers\admins\main\Login_SQL.xml
src\main\webapp\images\admins\frame\top_menu.gif
src\main\webapp\WEB-INF\views\admins\frame\top.jsp
src\main\webapp\WEB-INF\views\admins\main\index.jsp
src\main\webapp\WEB-INF\views\admins\main\main.jsp
src\main\webapp\WEB-INF\views\admins\frame\mainframe.jsp
src\main\webapp\WEB-INF\views\admins\constructionProjectManagement\00.jsp
src\main\webapp\WEB-INF\views\admins\constructionProjectManagement\left.jsp
src\main\webapp\WEB-INF\views\admins\constructionProjectManagement\construction-project-statistics-index.jsp
src\main\webapp\images\admins\constructionProjectManagement\1_tit_01.gif
src\main\java\geoinfo\admins\constructionProjectManagement\ConstructionProjectManagementController.java
src\main\webapp\js\admins\chart.js
#일반사용자관리 첫 화면 사용자 목록 안 보이도록 하기
src\main\webapp\WEB-INF\views\admins\frame\top.jsp
src\main\webapp\WEB-INF\views\admins\main\index.jsp
src\main\webapp\WEB-INF\views\admins\main\main.jsp
src\main\java\geoinfo\admins\user\GeneralUserMngController.java
src\main\webapp\WEB-INF\views\admins\user\00.jsp
src\main\webapp\js\admins\adlogin.js
src\main\webapp\WEB-INF\views\admins\main\index.jsp
src\main\webapp\WEB-INF\views\admins\frame\mainframe.jsp

Binary file not shown.

Binary file not shown.

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.admins.user.service.HomeTrainingMapper">
<resultMap id="spAddHomeTrainingRegResult" type="java.util.HashMap">
<result property="wvtRegId" column="p_wvt_reg_id" jdbcType="NUMERIC"/>
<result property="resultCode" column="p_result_code" jdbcType="VARCHAR"/>
<result property="errMsg" column="p_err_msg" jdbcType="VARCHAR"/>
</resultMap>
<select id="callSpAddHomeTrainingReg" parameterType="map" statementType="CALLABLE" resultMap="spAddHomeTrainingRegResult">
{ CALL SP_ADD_HOME_TRAINING_REG(
#{trainingName},
#{trainingDatetime},
#{trainingLocation},
#{trainingAdmin},
#{trainingTel},
#{regStartDate},
#{regEndDate},
#{userId},
#{p_wvt_reg_id, mode=OUT, jdbcType=INTEGER},
#{p_result_code, mode=OUT, jdbcType=INTEGER},
#{p_err_msg, mode=OUT, jdbcType=VARCHAR}
) }
</select>
<!--
p_wvt_reg_id : 조회할 레코드의 일련번호(숫자)
p_training_name : 집합교육명
p_start_date : 확정된 날짜의 검색 시작일자
p_end_date : 확정된 날짜의 검색 종료일자
p_state_code : 상태 코드
p_ncount : 페이지당 한번에 가져올 갯수
p_npage : 페이지 번호
-->
<select id="callSpGetHomeTrainingReg" parameterType="map" resultType="egovMap">
<![CDATA[
select * FROM TABLE(SP_GET_HOME_TRAINING_REG(#{wvtRegId},#{trainingName},#{startDate},#{endDate},#{stateCode},#{ncount},#{npage}))
]]>
</select>
<select id="callSpCntHomeTrainingReg" parameterType="map" resultType="long">
select SP_CNT_HOME_TRAINING_REG(#{wvtRegId},#{trainingName},#{startDate},#{endDate},#{stateCode}) from DUAL
</select>
<select id="callSpGetHomeTrainingReq" parameterType="map" resultType="egovMap">
<![CDATA[
select * FROM TABLE(
SP_GET_HOME_TRAINING_REQ(
#{wvtId},
#{wvtRegId},
#{companyName},
#{reqName},
#{reqTel},
#{stateCode},
#{ncount},
#{npage}
)
)
]]>
</select>
<select id="callSpCntHomeTrainingReq" parameterType="map" resultType="long">
select SP_CNT_HOME_TRAINING_REQ(
#{wvtId},
#{wvtRegId},
#{companyName},
#{reqName},
#{reqTel},
#{stateCode}
) from DUAL
</select>
<select id="callSpDelHomeTrainingReg" parameterType="map" statementType="CALLABLE">
CALL SP_DEL_HOME_TRAINING_REG(
#{whtRegId},
#{userId},
#{p_result_code, mode=OUT, jdbcType=INTEGER},
#{p_err_msg, mode=OUT, jdbcType=VARCHAR}
)
</select>
</mapper>

Binary file not shown.

Binary file not shown.

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="geoinfo.admins.main.service.MainMapper">
<select id="encryptChk" parameterType="map" resultType="String">
<![CDATA[
SELECT ENCRYPT_CHANGE
FROM WEB_MEMBER_IN
WHERE TRIM(USERID) = #{id}
]]>
</select>
<select id="getMemberInfo" parameterType="map" resultType="egovMap">
<![CDATA[
SELECT USERID,
USER_NAME,
PASSWD,
CLS
FROM WEB_MEMBER_IN
WHERE TRIM(USERID) = #{id}
AND TRIM(PASSWD) = #{pw}
]]>
</select>
<update id="updateEncrypt" parameterType="map">
<![CDATA[
UPDATE WEB_MEMBER_IN
SET PASSWD = #{pw},
ENCRYPT_CHANGE = 'Y'
WHERE USERID = #{id}
]]>
</update>
<insert id="insertAccessLog" parameterType="map">
<![CDATA[
INSERT INTO TBL_ACCESS_LOG (USERID, IPADD, REGDATE, DEPARTMENT, MENU, WORK)
VALUES (#{id}, #{ipAdd}, SYSDATE, '지하공간', '관리자로그인', '로그인')
]]>
</insert>
</mapper>

Binary file not shown.

Binary file not shown.

View File

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:oxm="http://www.springframework.org/schema/oxm" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
<context:component-scan base-package="geoinfo,com">
<context:include-filter type="annotation" expression="org.springframework.context.annotation.Configuration" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<mvc:annotation-driven />
<!-- <mvc:default-servlet-handler /> -->
<!-- <mvc:interceptors> -->
<!-- <mvc:interceptor> -->
<!-- <mvc:mapping path="/**"/> -->
<!-- <bean id="loggerInterceptor" class="ictway.com.git.geoinfo.interceptor.loggerInterceptor"></bean> -->
<!-- </mvc:interceptor> -->
<!-- <mvc:interceptor> <mvc:mapping path="/**"/> <bean id="loginInterceptor" class="com.ygt.gtyoon.interceptor.LoginInterceptor"></bean> </mvc:interceptor> -->
<!-- </mvc:interceptors> -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0" />
<!-- <bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
<property name="contentType" value="application/json;charset=UTF-8" />
<property name="prefixJson" value="false" />
<property name="extractValueFromSingleKeyModel" value="true" />
<property name="modelKeys" value="jsonView" />
<property name="objectMapper">
<bean class="geoinfo.com.jackson.JacksonObjectMapper" />
</property>
</bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="packagesToScan">
<list>
<value>geoinfo.**.service</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/views/" p:suffix=".jsp">
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles/tiles-layout.xml</value>
</list>
</property>
<property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory" />
</bean>
</beans>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

View File

@ -1,3 +0,0 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.29289 8.8929C5.68342 8.50238 6.31658 8.50238 6.70711 8.8929L12 14.1858L17.2929 8.8929C17.6834 8.50238 18.3166 8.50238 18.7071 8.8929C19.0976 9.28342 19.0976 9.91659 18.7071 10.3071L12.7071 16.3071C12.3166 16.6976 11.6834 16.6976 11.2929 16.3071L5.29289 10.3071C4.90237 9.91659 4.90237 9.28342 5.29289 8.8929Z" fill="black"/>
</svg>

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

View File

@ -1,195 +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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<script>
window.onload = function() {
// 페이지 로딩 후 실행될 코드
const activeEle = document.getElementById('${pId}');
if( activeEle ) {
activeEle.classList.add('active');
const menuItemEle = findClosestMenuItem(activeEle, 'menu-item');
if( menuItemEle ) {
menuItemEle.classList.add('active');
}
}
};
//상위 element에서 특정 class를 갖는 element를 검색한다.
function findClosestMenuItem(element, className) {
let currentElement = element.parentElement; // 현재 element의 부모 element부터 시작
while (currentElement) {
if (currentElement.classList.contains(className)) {
return currentElement; // 'menu-item' 클래스를 찾으면 해당 element 반환
}
currentElement = currentElement.parentElement; // 상위 element로 이동
}
return null; // 'menu-item' 클래스를 가진 element를 찾지 못하면 null 반환
}
function onClickSubMenuItem(e) {
// 클릭된 요소 가져오기
const clickedElement = e.target;
// data-url 속성 값 가져오기
const dataUrl = clickedElement.dataset.url;
goUrl(dataUrl, '${menuId}');
}
</script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
background-image: url(${pageContext.request.contextPath}/images/admins/left_bak.jpg);
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
img { border:0; }
-->
</style>
</head>
<body>
<table width="244" border="0" cellpadding="0" cellspacing="0" >
<!-- <tr height=10><td colspan="3"><img src="/admins/img/left_top_border.gif"></td></tr>
<tr height=30><td colspan="3"><img src="/admins/img/user/left_title.gif"></td></tr>-->
<tr>
<td width="244" height="668" valign="top" background="${pageContext.request.contextPath}/images/admins/left_bak.jpg">
<table>
<tr>
<td><img src="${pageContext.request.contextPath}/images/admins/user/1_tit_01.gif" width="244" height="62" /></td>
</tr>
<tr>
<td width=209>
<c:choose>
<c:when test="${pId eq '00'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_01_over.gif" style="cursor:hand" onClick="javascript:goUrl('00', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_01.gif" style="cursor:hand" onClick="javascript:goUrl('00', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '01'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_02_over.gif" style="cursor:hand" onClick="javascript:goUrl('01', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_02.gif" style="cursor:hand" onClick="javascript:goUrl('01', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '02'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_03_over.gif" style="cursor:hand" onClick="javascript:goUrl('02', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_03.gif" style="cursor:hand" onClick="javascript:goUrl('02', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '03'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_04_over.gif" style="cursor:hand" onClick="javascript:goUrl('03', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_04.gif" style="cursor:hand" onClick="javascript:goUrl('03', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '40'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_05_over.png" style="cursor:hand" onClick="javascript:goUrl('40', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_05.png" style="cursor:hand" onClick="javascript:goUrl('40', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '05'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_06_over.gif" style="cursor:hand" onClick="javascript:goUrl('05', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_06.gif" style="cursor:hand" onClick="javascript:goUrl('05', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${pId eq '07'}" >
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_07_over.gif" style="cursor:hand" onClick="javascript:goUrl('07', '${menuId}')">
</c:when>
<c:otherwise>
<img src="${pageContext.request.contextPath}/images/admins/user/1_left_07.gif" style="cursor:hand" onClick="javascript:goUrl('07', '${menuId}')">
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<td>
<div class="menu-item">
<span style="cursor:hand" onClick="javascript:goUrl('home-training-index', '${menuId}')"><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;집합교육 관리</span>
<ul class="sub-menu">
<li class="sub-menu-item" data-url="home-training-index" id="home-training-index" onClick="javascript:onClickSubMenuItem(event)"><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;집합교육 개설</li>
<!-- <li class="sub-menu-item" data-url="home-training-approval-system" id="home-training-approval-system" onClick="onClickSubMenuItem(event)" ><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;방문교육 신청 승인</li> -->
</ul>
</div>
</td>
</tr>
<tr>
<td>
<div class="menu-item">
<span style="cursor:hand" data-url="visit-training-index" onClick="javascript:onClickSubMenuItem(event)"><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;방문교육 관리</span>
<ul class="sub-menu">
<li class="sub-menu-item" data-url="visit-training-index" id="visit-training-index" onClick="javascript:onClickSubMenuItem(event)"><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;교육가능 일자 지정</li>
<li class="sub-menu-item" data-url="visit-training-approval-system" id="visit-training-approval-system" onClick="onClickSubMenuItem(event)" ><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;방문교육 신청 승인</li>
</ul>
</div>
</td>
</tr>
</table>
</td>
</tr>
<!-- <tr><td colspan="3">&nbsp;</td></tr>
<tr height=177><td colspan="3"><img src="/admins/img/left_logo.gif"></td></tr> -->
</table>
</body>
</html>

View File

@ -1,173 +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="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>국토지반정보 포털 관리시스템</title>
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script>
var context = "${pageContext.request.contextPath}";
function getCookie(name)
{
var nameOfCookie = name + "=";
var x = 0;
while ( x <= document.cookie.length )
{
var y = (x+nameOfCookie.length);
if ( document.cookie.substring( x, y ) == nameOfCookie ) {
if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
endOfCookie = document.cookie.length;
return unescape( document.cookie.substring( y, endOfCookie ) );
}
x = document.cookie.indexOf( " ", x ) + 1;
if ( x == 0 )
break;
}
return "";
}
/*
function download_approved() { //공지사항 띄우기
var cookie_name = 'download_approved_01';
if (getCookie(cookie_name) != "download_approved_01")
{
noticeWindow2 = window.open('/admins/popup/download_approved.jsp',cookie_name,'scrollbars=no,width=500,height=380,left=550,top=200', true);
if (noticeWindow2) {
noticeWindow2.focus();
}
}
}//body 부분 추가onload="download_approved();"
*/
$(document).ready(function(){
$("#layer_pop").click(function(){
$("div").css("background-image","url(${pageContext.request.contextPath}/images/admins/btn_1.png)");
//$(this).text('승인 대기 0건');
});
});
function removeDOM() {
document.documentElement.innerHTML = ''; // 전체 DOM 제거
window.location.href = "about:blank"; // 페이지 변경
}
document.addEventListener('keydown', function(event) {
var e = event || window.event; // IE 호환성을 위한 event 객체 가져오기
if ((e.ctrlKey && e.shiftKey && e.keyCode === 73) || e.keyCode === 123) {
// Ctrl+Shift+I 또는 F12 키 눌림 감지
console.log('디버깅이 감지되었습니다.');
removeDOM();
e.returnValue = false; // 개발자 도구 열림 방지 (IE)
if (e.preventDefault) e.preventDefault(); // 개발자 도구 열림 방지 (표준)
}
/** Ctrl+P 막기 **/
if (e.ctrlKey && e.keyCode == 80) {
e.cancelBubble = true;
e.returnValue = false; // IE
if (e.preventDefault) e.preventDefault(); // 표준
if (e.stopPropagation) e.stopPropagation(); // 표준
}
});
/** 스크린 캡처 막기 **/
document.addEventListener('keyup', function(e) {
if (e.key == 'PrintScreen') {
navigator.clipboard.writeText('');
}
});
</script>
<style type="text/css">
#layer_pop{
position:absolute;
width:115px;
height:18px;
top:112px;
left:950px;
background-image:url("${pageContext.request.contextPath}/images/admins/btn_1.png");
background-repeat : no-repeat;
border : 0px solid #333;
font-size: 12px;
text-align:center;
color : #FFFFFF;
cursor : pointer;
vertical-align: middle;
padding-top: 3px;
padding-bottom: 3px;
}
</style>
</head>
<body>
<table border='0' width="100%"cellspacing="0" cellpadding="0">
<tr>
<td valign="top" background="${pageContext.request.contextPath}/images/admins/frame/top_main_bak.gif">
<table width="934" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--- 탑메뉴 시작 --->
<td width="244" valign="top">
<a href="${pageContext.request.contextPath}/index.do">
<img src="${pageContext.request.contextPath}/images/admins/frame/top_main.gif" width="244" height="135" border="0" usemap="#Map" />
</a>
</td>
<td width="690" valign="top"><img src="${pageContext.request.contextPath}/images/admins/frame/top_menu.gif" width="690" height="135" border="0" usemap="#Map2" /></td>
<!--- 탑메뉴 끝 --->
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="244" height="668" valign="top" background="${pageContext.request.contextPath}/images/admins/left_bak.jpg">
<iframe width="244" height="668" marginheight="0" src="${pageContext.request.contextPath}/admins/${menuId}/left.do?pId=${pId}&menuId=${menuId}" name="leftFrame" frameborder="0" scrolling="no"></iframe>
</td>
<td width="10" valign="top">&nbsp;</td>
<td width="100%" valign="top">
<iframe height="650" width="1200" marginheight="0" src="${pageContext.request.contextPath}/admins/frame/mainframe.do?menuId=${menuId}&pId=${pId}&viewName=${viewName}&idx=${idx}" name="mainFrame" frameborder="0" scrolling="no"></iframe>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td background="${pageContext.request.contextPath}/images/admins/frame/bottom_bak.gif">
<table width="934" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="${pageContext.request.contextPath}/images/admins/frame/bottom.gif" width="934" height="55" /></td>
</tr>
</table>
</td>
</tr>
</table>
<map name="Map" id="Map">
<area shape="rect" coords="160,98,217,116" href="${pageContext.request.contextPath}/admins/main/logout.do" target="_top"/>
</map>
<map name="Map2" id="Map2">
<area shape="rect" coords="10,91,96,119" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=user&pId=00" target="_top"/>
<area shape="rect" coords="108,91,254,120" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=userLog&pId=00" target="_top" />
<area shape="rect" coords="265,91,404,122" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=chLog&pId=00" target="_top" />
<area shape="rect" coords="419,91,486,121" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=notice&pId=00" target="_top" />
<area shape="rect" coords="500,92,556,121" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=board&pId=00" target="_top" />
<area shape="rect" coords="566,93,681,121" href="${pageContext.request.contextPath}/admins/main/main.do?menuId=manager&pId=00" target="_top" />
</map>
<%-- <c:choose>
<c:when test="${nDownApp gt 0}">
<div id="layer_pop" onclick="mainFrame.iframeMain.location.href ='${pageContext.request.contextPath}/admins/chLog/20.do?check=1';" style = "background-image:url('${pageContext.request.contextPath}/images/admins/btn_2.png');">승인 대기 <c:out value="${nDownApp}"/>건</div>
</c:when>
<c:otherwise>
<div id="layer_pop" onclick="mainFrame.iframeMain.location.href ='${pageContext.request.contextPath}/admins/chLog/20.do?check=1';" style = "">승인 대기 0건</div>
</c:otherwise>
</c:choose> --%>
</body>
</html>

View File

@ -1,22 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title></title>
<script src="${pageContext.request.contextPath}/js/map/main.js"></script>
<script>
var waitWin;
</script>
</head>
<body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0">
<!--
iframe의 width 최소값은 727입니다.
727보다 작게 할 경우 iframe 내부에 가로스크롤바가 생길 수 있습니다.
727보다 크게 하는 경우는 문제 없습니다.
-->
<iframe src="${pageContext.request.contextPath}/admins/${menuId}/${pId}.do" frameborder="0" height="650" width="1200" scrolling="yes" name="iframeMain" style="overflow-x: hidden;"></iframe>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,782 +0,0 @@
@charset "UTF-8";
/* 기본 */
img {
border: 0;
}
body {
margin-left: 16;
margin-top: 20;
margin-right: 16;
margin-bottom: 0;
scrollbar-face-color: #FFFFFF;
scrollbar-shadow-color: #A0A0A0;
scrollbar-highlight-color: #FFFFFF;
scrollbar-3dlight-color: #A0A0A0;
scrollbar-darkshadow-color: #F6F6F6;
scrollbar-track-color: #F6F6F6;
scrollbar-arrow-color: #A0A0A0;
}
/* 페이지 네비게이션 */
.navi_cur {
font-family: "굴림체";
font-size: 9pt;
color: #3F3F3F;
line-height: 150%;
font-weight: bold;
}
a.navi:link {
font-family: "굴림체";
font-size: 9pt;
color: #3F3F3F;
text-decoration: none;
line-height: 150%;
}
a.navi:visited {
font-family: "굴림체";
font-size: 9pt;
color: #3F3F3F;
text-decoration: none;
line-height: 150%;
}
a.navi:hover {
font-family: "굴림체";
font-size: 9pt;
color: #3F3F3F;
text-decoration: underline;
line-height: 150%;
}
/* 목록 헤드와 내용 */
.list_head {
font-size: 9pt;
font-family: ;
font-weight: bold;
line-height: 150%;
color: #B64E0F;
}
.list_head2 {
font-size: 9pt;
font-family: ;
font-weight: bold;
line-height: 150%;
color: #1180B5;
}
.list_head_noti {
font-size: 9pt;
font-family: ;
font-weight: bold;
line-height: 150%;
color: #B64E0F;
}
.list_content {
font-size: 9pt;
font-family: ;
line-height: 150%;
color: #525252;
}
/* search */
.search {
font-size: 9pt;
color: #545454;
}
.search1 {
font-size: 9pt;
color: #545454;
}
.date_search {
font-size: 9pt;
font-weight: bold;
color: #545454;
}
/* 폼 */
Select {
font-size: 9pt;
}
input {
font-size: 9pt;
}
.write {
background-color: #FFFFFF;
border-color: #C5C5C5;
border-width: 1px;
border-style: solid;
font-size: 10pt;
}
.input {
font-size: 9pt;
border: 1x solid #C8D0D5;
text-align: left;
color: #333333;
}
.input1 {
font-size: 9pt;
border: 1x solid #8C8C8C;
}
.input2 {
font-size: 9pt;
border: 1x solid #D1DEDE;
text-align: justify;
padding-right: 3px;
background-color: #F4F7F7;
height: 17px;
padding-left: 3px;
}
.input3 {
font-size: 9pt;
border: 1x solid #8C8C8C;
text-align: center;
padding-top: 2px;
}
Input.search {
background-color: #F9F9F9;
border-color: #C5C5C5;
border-width: 1px;
border-style: solid;
font-size: 10pt;
}
/* 일반 */
a:link {
font-family: "굴림체";
font-size: 9pt;
color: #525252;
text-decoration: none;
line-height: 150%;
}
a:visited {
font-family: "굴림체";
font-size: 9pt;
color: #525252;
text-decoration: none;
line-height: 150%;
}
a:hover {
font-family: "굴림체";
font-size: 9pt;
color: #FF8000;
text-decoration: underline;
line-height: 150%;
}
/* FAQ */
.faq_q {
font-size: 9pt;
line-height: 150%;
color: #1F177C;
font-weight: bold;
}
.faq_a {
font-size: 9pt;
line-height: 150%;
color: #1F177C;
}
/* QnA */
.qna_head {
font-size: 9pt;
font-family: ;
font-weight: bold;
line-height: 150%;
color: #939393;
}
.qna_content {
font-size: 9pt;
font-family: ;
line-height: 150%;
color: #939393;
padding-left: 5px;
padding-right: 5px;
}
.qna_contentH {
font-size: 9pt;
font-family: ;
line-height: 150%;
color: #939393;
padding: 5px;
}
.qna_reply {
font-size: 9pt;
font-family: ;
line-height: 120%;
color: #3F83FF;
padding-left: 5px;
padding-right: 5px;
}
.qna_reply_gray {
font-size: 9pt;
font-family: ;
line-height: 150%;
color: #939393;
}
/* 팝업타이틀, 입력창(input, select) 추가 2017.08.01 */
.pop_title {
height: 20px;
border-bottom: 1px solid #31b0e5;
background: url("../../images/admins/bullet03.png") 10px 10px no-repeat;
padding: 7px 0 7px 27px;
font-size: 14px;
font-family: ;
font-weight: bold;
line-height: 150%;
color: #1180B5;
}
.input_txt {
padding: 3px;
border: 1px solid #ccc;
border-radius: 3px;
color: #666;
font-size: 12px;
}
/* 2023.10.11 LHJ 게시판 제목에서 길이 초과된 뒷부분 생략 추가 */
#Table_List {
table-layout: fixed;
}
#Table_List td {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
/* 2023.10.23 LHJ 팝업 미리보기 화면 추가 */
.popup_noti {
width: 500px;
height: 600px;
display: flex;
flex-direction: column;
position: relative;
}
.bg_noti:nth-child(1) {
flex-grow: 2.5;
background-color: #FFCCB3;
}
.bg_noti:nth-child(2) {
flex-grow: 1.5;
background-color: #FFF2D0;
}
.bg_noti:nth-child(3) {
flex-grow: 6;
background-color: #DCF1EA;
}
.bg_white {
position: absolute;
top: 10%;
left: 7%;
right: 7%;
bottom: 5%;
background-color: white;
border: 1px solid black;
}
.subject_noti {
position: absolute;
top: 10%;
left: 7%;
right: 7%;
font-family: "NanumGothicB";
font-weight: bold;
font-size: 15pt;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.contents_noti pre {
display: block;
padding: inherit;
margin: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
word-break: break-all;
word-wrap: break-word;
white-space: pre-wrap;
background-color: inherit;
border: inherit;
border-radius: inherit;
font-family: inherit;
}
.contents_noti {
position: absolute;
top: 27%;
left: 7%;
right: 7%;
bottom: 5%;
font-family: "Nanum Gothic";
font-size: 9pt;
overflow-y: auto;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 10;
-webkit-box-orient: vertical;
}
.menu-item {
padding: 0px 5px;
width: 230px;
text-align: center;
margin-bottom: 9px;
}
.menu-item span {
box-sizing: border-box;
display: inline-block;
width: 220px;
padding: 5px 20px;
padding-left: 31px;
box-shadow: inset 2px 2px 6px #b7b7b7;
border-radius: 20px;
text-align: left;
background: #ffffff;
color: #888888;
font-size: 14px;
font-weight: 600;
margin-left: 4px;
}
.menu-item .sub-menu {
display: none;
}
.menu-item.active {
margin-bottom: 3px;
}
.menu-item.active span {
color: #2b85c6;
}
.menu-item.active .sub-menu {
display: block;
margin: 0px;
margin-top: 3px;
padding: 0px;
text-align: right;
}
.menu-item.active .sub-menu .sub-menu-item {
box-sizing: border-box;
display: inline-block;
width: 180px;
padding: 5px 20px;
padding-left: 31px;
box-shadow: inset 2px 2px 6px #b7b7b7;
border-radius: 20px;
text-align: left;
background: #ffffff;
color: #888888;
font-size: 14px;
font-weight: 600;
margin-left: 4px;
margin-right: 4px;
margin-bottom: 3px;
cursor: pointer;
}
.menu-item.active .sub-menu .sub-menu-item.active {
color: #2b85c6;
}
.main-title {
font-size: 20px;
}
.sub-title {
font-size: 20px;
color: #df8107;
}
.home-trainning {
width: 100%;
max-width: 1600px;
position: relative;
/* 신청인정보 */
}
.home-trainning th,
.home-trainning tr {
height: 36px;
}
.home-trainning .contentBtn {
display: flex;
gap: 10px;
justify-content: end;
margin: 10px 0;
}
.home-trainning button {
background-color: #007BFF;
color: #fff;
border-radius: 6px;
border: none;
padding: 5px 10px;
}
.home-trainning .Table_Main {
width: 100%;
max-width: 1600px;
border: 1px solid #e9e9e9;
text-align: center;
}
.home-trainning .Table_Main.course-list-table tbody tr {
cursor: pointer;
}
.home-trainning .Table_Main.course-list-table tbody tr:hover {
background: #f1f1f1;
}
.home-trainning .Table_Main.new-course-creation-table {
margin-bottom: 50px;
}
.home-trainning .Table_Main.new-course-creation-table .new-course-creation-tbody tr td input {
width: 100%;
height: 100%;
height: 35px;
border: none;
padding: 0px 5px;
font-size: 14px;
}
.home-trainning .Table_Main.new-course-creation-table .new-course-creation-tbody tr td input.reg-start-end-date {
width: 40%;
padding: 0px;
}
.home-trainning .Table_List {
background: #e9eff4;
}
.home-trainning .application {
width: 60px;
padding: 5px;
background: #E9F0F5;
border-radius: 6px;
border: none;
font-weight: 600;
font-size: 12px;
}
.home-trainning .applicationEnd {
color: red;
}
.home-trainning .home-visit-item {
display: none;
}
.home-trainning #UserDate {
margin: 25px 0;
display: none;
}
.home-trainning .DateTitle {
font-size: 18px;
font-weight: 700;
line-height: 18px;
display: inline-block;
margin-right: 20px;
}
.home-trainning .AddBtn {
display: block;
margin: 30px auto;
padding: 10px 20px;
background-color: #007BFF;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
.home-trainning button:hover {
background-color: #0056b3;
}
.home-trainning #ContentAdd {
display: none;
}
.home-trainning .DateTitle {
font-size: 18px;
font-weight: 700;
line-height: 18px;
display: inline-block;
margin-right: 20px;
}
.home-trainning .DateText {
font-size: 15px;
font-weight: 400;
line-height: 12px;
align-items: center;
}
.home-trainning .DateText .home-visit-item-training-name {
font-weight: 600;
}
.visit-trainning {
/* 기본 레이아웃 설정 */
/* 캘린더 CSS */
/* Form css */
/* 관리자용 css */
}
.visit-trainning .page-content-wrapper {
display: inline-block;
width: auto;
margin: 0 auto;
}
.visit-trainning .page-sidebar-wrapper {
float: left;
width: 222px;
height: 1000px;
}
.visit-trainning .page-content {
width: 100%;
}
.visit-trainning .content-bg {
background-color: #e9eff4;
padding: 30px;
}
.visit-trainning .CalendarOverlay {
display: inline-flex;
}
.visit-trainning .Calendar {
padding: 30px;
background: white;
border-radius: 16px;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 12px;
display: flex;
}
.visit-trainning .Header {
align-self: stretch;
justify-content: space-between;
align-items: center;
display: inline-flex;
}
.visit-trainning .yyyy-mm {
color: black;
font-size: 24px;
font-family: Inter;
font-weight: 900;
word-wrap: break-word;
}
.visit-trainning .Frame9 {
justify-content: flex-start;
align-items: flex-start;
gap: 12px;
display: flex;
}
.visit-trainning .Chevron {
padding: 8px;
justify-content: flex-start;
align-items: flex-start;
gap: 10px;
display: flex;
}
.visit-trainning .page-prev {
margin-top: 3px;
width: 26px;
height: 26px;
transform: rotate(90deg);
}
.visit-trainning .page-next {
margin-top: 3px;
width: 26px;
height: 26px;
transform: rotate(-90deg);
}
.visit-trainning .month {
margin: 0px auto;
}
.visit-trainning .month .Days {
flex-direction: column;
justify-content: flex-start;
align-items: center;
display: flex;
}
.visit-trainning .month .Row {
justify-content: flex-start;
align-items: center;
display: flex;
}
.visit-trainning .month .Cell {
display: flex;
justify-content: center;
align-items: center;
width: 64px;
height: 64px;
padding: 10px;
box-sizing: border-box;
padding: 20px;
}
.visit-trainning .month .Cell:hover {
background-color: #e9eff4;
}
.visit-trainning .month .Day {
display: flex;
justify-content: center;
align-items: center;
width: 64px;
height: 64px;
padding: 10px;
border: 1px solid #D5D4DF;
box-sizing: border-box;
padding: 20px;
}
.visit-trainning .month .Week {
width: 24px;
height: 24px;
text-align: center;
color: black;
font-size: 14px;
font-family: Inter;
font-weight: 600;
word-wrap: break-word;
border: 1px solid #fff;
}
.visit-trainning .month .Day {
border: 1px #D5D4DF solid;
display: flex;
justify-content: center;
align-items: center;
font-size: 14px;
}
.visit-trainning .month .inactive {
width: 64px;
height: 64 px;
text-align: center;
color: #A8A8A8;
font-size: 14px;
font-family: Inter;
font-weight: 400;
word-wrap: break-word;
}
.visit-trainning .month .Weekdays {
width: 24px;
height: 24px;
text-align: center;
color: black;
font-size: 14px;
font-family: Inter;
font-weight: 400;
word-wrap: break-word;
}
.visit-trainning .month .Su {
color: #FF6666;
}
.visit-trainning .month .Sa {
color: #3378C1;
}
.visit-trainning .month .today {
background-color: #45539d;
font-weight: bold;
color: #fff;
pointer-events: none;
}
.visit-trainning .Application {
width: 430px;
margin-top: 15px;
float: right;
}
.visit-trainning .InputBox {
width: 342px;
height: 34px;
background: white;
border-radius: 6px;
border: 1px solid rgba(66, 80, 102, 0.4);
}
.visit-trainning #Agency, .visit-trainning #Place {
width: 160px;
}
.visit-trainning #Name {
width: 91px;
}
.visit-trainning #Persons {
width: 79px;
}
.visit-trainning #Tel, .visit-trainning #Place {
margin-left: -13px;
}
.visit-trainning #Hope1, .visit-trainning #Hope2, .visit-trainning #Hope3 {
width: 342px;
margin-left: -20px;
}
.visit-trainning label {
margin: 0 25px 0 20px;
display: inline-block;
text-align: left;
line-height: 50px;
font-size: 14px;
}
.visit-trainning .possible {
width: 100px;
height: 32px;
padding: 5px;
background: #E9F0F5;
border-radius: 6px;
border: none;
}
.visit-trainning .impossibility {
width: 100px;
height: 32px;
padding: 5px;
background: #EAEAEA;
border-radius: 6px;
border: none;
}
.visit-trainning-approval-system th,
.visit-trainning-approval-system tr {
height: 36px;
}
.visit-trainning-approval-system #Table_Main {
width: 1020px;
border: 1px solid #e9e9e9;
text-align: center;
}
.visit-trainning-approval-system .Table_List {
background: #e9eff4;
}
.visit-trainning-approval-system .caption {
font-size: 11px;
margin: 10px;
}
.visit-trainning-approval-system .HopeDay {
color: #2e5aac;
bordeR: 1px solid #89a7e0;
padding: 5px;
background: #fff;
border-radius: 2px;
}
.visit-trainning-approval-system .cancel {
border: 1px solid red;
color: red;
border-radius: 2px;
padding: 4px 8px;
background-color: #fff;
}
.visit-trainning-approval-system .HopeDay.clicked {
background-color: #89a7e0;
color: white;
}
.visit-trainning-approval-system .statusConfirmed {
color: #2e5aac;
}
/*# sourceMappingURL=style.css.map */

View File

@ -1 +0,0 @@
{"version":3,"sourceRoot":"","sources":["sass/style.scss"],"names":[],"mappings":";AAAA;AACA;EAAM;;;AACN;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EAAY;EAAoB;EAAiB;EAAgB;EAAkB;;;AACnF;EAAc;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC1F;EAAgB;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC5F;EAAc;EAAoB;EAAiB;EAAgB;EAA4B;;;AAE/F;AACA;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAkB;EAAe;EAAkB;EAAkB;EAAkB;;;AACvF;EAAiB;EAAe;EAAkB;EAAkB;;;AAEpE;AACA;EAAY;EAAe;;;AAC3B;EAAY;EAAe;;;AAC3B;EAAe;EAAe;EAAkB;;;AAEhD;AACA;EAAY;;;AACZ;EAAU;;;AACV;EAAY;EAA0B;EAAsB;EAAkB;EAAoB;;;AAClG;EAAW;EAAe;EAA0B;EAAkB;;;AACtE;EAAW;EAAe;;;AAC1B;EAAW;EAAe;EAAyB;EAAqB;EAAoB;EAA2B;EAAc;;;AACrI;EAAW;EAAe;EAAyB;EAAoB;;;AACvE;EAAe;EAA0B;EAAsB;EAAkB;EAAoB;;;AAErG;AACA;EAAU;EAAoB;EAAgB;EAAgB;EAAuB;;;AACrF;EAAY;EAAoB;EAAgB;EAAgB;EAAuB;;;AACvF;EAAW;EAAoB;EAAgB;EAAgB;EAA4B;;;AAE3F;AACA;EAAY;EAAe;EAAkB;EAAe;;;AAC5D;EAAW;EAAe;EAAkB;;;AAG5C;AACA;EAAc;EAAe;EAAkB;EAAkB;EAAkB;;;AACnF;EAAgB;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACpG;EAAiB;EAAe;EAAkB;EAAkB;EAAe;;;AACnF;EAAe;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACnG;EAAkB;EAAe;EAAkB;EAAkB;;;AAErE;AACA;EAAa;EAAa;EAAiC;EAAwE;EAAwB;EAAiB;EAAkB;EAAkB;EAAkB;;;AAClO;EAAY;EAAa;EAAuB;EAAmB;EAAY;;;AAE/E;AACA;EAAa;;;AACb;EAAgB;EAAyB;EAAqB;;;AAE9D;AACA;EACI;EACH;EACG;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACA;EACA;;;AAEL;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;;AAOpB;EACI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;AAwEA;;AAvEA;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGQ;EACI;;AACA;EACI;;AAOhB;EACI;;AAIY;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AAQ5B;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAIJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;;;AAMZ;AACI;AAmBA;AA8IA;AAsCA;;AAtMA;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;EACA;;AAIJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACK;EACA;EACA;EACA;EACA;;AAEL;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEJ;EACI;EACC;EACA;EACA;EACA;;AAEL;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACC;;AAGL;EACI;EACC;EACA;EACA;EACA;;AAKL;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACK;EACD;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACG;EACC;;AAIJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACG","file":"style.css"}

View File

@ -0,0 +1,553 @@
package geoinfo.admins.constructionProjectManagement;
import java.net.URLEncoder;
import java.security.SecureRandom;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import geoinfo.admins.board.RefrncRoomController;
import geoinfo.admins.user.service.GeneralUserMngService;
import geoinfo.admins.user.service.HomeTrainingService;
import geoinfo.com.EgovExcel;
import geoinfo.com.GeoinfoCommon;
import geoinfo.comm.util.ScriptUtil;
import geoinfo.session.UserInfo;
import geoinfo.util.MyUtil;
import whois.whoisSMS;
@Controller
public class ConstructionProjectManagementController {
@Resource(name = "generalUserMngService")
private GeneralUserMngService masterService;
@Resource(name = "homeTrainingService")
private HomeTrainingService homeTrainingService;
/**
*
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/construction-project-statistics-index.do")
public String homeTrainingIndex(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/construction-project-statistics-index";
}
/**
*
* @param request
* @param strJSON
* @param response
* @return
*/
@RequestMapping(value = "admins/constructionProjectManagement/home-training-index/add.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject addHomeTraining(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"strJSON" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
String failMsg = "";
try {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> hashMap = homeTrainingService.addHomeTraining(request, response, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
long lWvtRegId = MyUtil.getLongFromObject(hashMap.get("p_wvt_reg_id"));
if( nRetCode == 100 ) {
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "true");
jsonResponse.put("message", "등록이 완료되었습니다.");
} else {
if( nRetCode == 11 ) {
lpszRetMsg += "\n" +
"사업명: " + params.get("constName");
}
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "false");
jsonResponse.put("message", lpszRetMsg);
isFail = true;
failMsg = lpszRetMsg;
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"strJSON:[\n" + strJSON + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
}
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if( isFail ) {
jsonResponse.put("resultCode", -2);
jsonResponse.put("result", "false");
jsonResponse.put("message", failMsg);
}
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jsonResponse;
}
/**
*
* @param request
* @param strJSON
* @param response
* @return
*/
@RequestMapping(value = "admins/constructionProjectManagement/home-training-index/update.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject updateHomeTraining(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"strJSON" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
String failMsg = "";
try {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> hashMap = homeTrainingService.updateHomeTraining(request, response, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
if( nRetCode == 100 ) {
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "true");
jsonResponse.put("message", "수정이 완료되었습니다.");
} else {
if( nRetCode == 11 ) {
lpszRetMsg += "\n" +
"사업명: " + params.get("constName");
}
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "false");
jsonResponse.put("message", lpszRetMsg);
isFail = true;
failMsg = lpszRetMsg;
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"strJSON:[\n" + strJSON + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
}
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if( isFail ) {
jsonResponse.put("resultCode", -2);
jsonResponse.put("result", "false");
jsonResponse.put("message", failMsg);
}
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jsonResponse;
}
@RequestMapping(value = "admins/constructionProjectManagement/home-training-index/list.do", method = RequestMethod.GET)
@ResponseBody
public JSONObject getHomeTraining(
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params.toString()" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
try {
homeTrainingService.getHomeTraining(request, response, jsonResponse, params);
jsonResponse.put("resultCode", 100);
jsonResponse.put("result", "true");
jsonResponse.put("message", "조회가 완료되었습니다.");
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
String eMsg = e.getMessage();
if( eMsg != null ) {
if( eMsg.equals("로그인이 필요한 서비스입니다.") ) {
jsonResponse.put("resultCode", 401);
}
}
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
return jsonResponse;
}
/**
* .
* @param request
* @param params
* @param response
* @return
*/
@RequestMapping(value = "admins/constructionProjectManagement/home-training-index/item/list.do", method = RequestMethod.GET)
@ResponseBody
public JSONObject getHomeTrainingItemList(
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params.toString()" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
try {
homeTrainingService.getHomeTrainingItemList(request, response, jsonResponse, params);
jsonResponse.put("resultCode", 100);
jsonResponse.put("result", "true");
jsonResponse.put("message", "조회가 완료되었습니다.");
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
return jsonResponse;
}
@RequestMapping(value = "admins/constructionProjectManagement/home-training-index/item/delete.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject deleteHomeTrainingItem(
HttpServletRequest request,
@RequestBody String strJSON,
HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"strJSON" + strJSON + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONParser jsonParser = new JSONParser();
JSONArray jsonArr = null;
boolean isFail = false;
String failMsg = "";
try {
jsonArr = (JSONArray)jsonParser.parse(strJSON);
for (Object obj : jsonArr) {
JSONObject jsonObject = (JSONObject) obj;
// JSONObject를 HashMap으로 변환
HashMap<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> hashMap = homeTrainingService.deleteHomeTrainingItem(request, response, params);
int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code"));
String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg"));
if( nRetCode == 100 ) {
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "true");
jsonResponse.put("message", "삭제가 완료되었습니다.");
} else {
if( nRetCode == 11 ) {
lpszRetMsg += "\n" +
"사업명: " + params.get("constName");
}
jsonResponse.put("resultCode", nRetCode);
jsonResponse.put("result", "false");
jsonResponse.put("message", lpszRetMsg);
isFail = true;
failMsg = lpszRetMsg;
break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"strJSON:[\n" + strJSON + "\n]\n" +
"e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" +
"new Date().toString():[" + new Date().toString() + "]\n" + "\n" +
"---------- BUG REPORTING END ----------" + "\n" +
"";
System.out.println(strTxt);
jsonResponse.put("resultCode", -1);
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
}
}
} catch (org.json.simple.parser.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if( isFail ) {
jsonResponse.put("resultCode", -2);
jsonResponse.put("result", "false");
jsonResponse.put("message", failMsg);
}
System.out.println("\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n");
return jsonResponse;
}
/**
*
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/home-training-approval-system")
public String homeTrainingApprovalSystem(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/home-training-approval-system";
}
/**
*
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/visit-training-index.do")
public String visitTrainingIndex(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/visit-training-index";
}
/**
*
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/visit-training-approval-system")
public String visitTrainingApprovalSystem(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/visit-training-approval-system";
}
}

View File

@ -113,9 +113,16 @@ public class GeneralUserMngController {
params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex());
params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage());
List<?> resultList = masterService.selectInfoList(params);
String isFirst = request.getParameter("isFirst");
List<?> resultList = null;
int totalCnt = 0;
if( isFirst == null || !isFirst.toLowerCase().trim().equals("true") ) {
resultList = masterService.selectInfoList(params);
totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString());
}
int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString());
paginationInfo.setTotalRecordCount(totalCnt);
model.addAttribute("params", params);

View File

@ -24,7 +24,7 @@ function linkPage(index){
function goDetail(idx, aid) {
document.listForm.idx.value = idx;
document.listForm.action = "${pageContext.request.contextPath}/admins/board/00-view.do";
document.listForm.submit();
document.listForm.submit();
}
function goWrite() {
@ -32,13 +32,13 @@ function goWrite() {
}
function searchPsBoard() {
if ( $("select[name=searchTitle]").val() == "0" ) {
alert("검색항목을 선택하세요.");
$("select[name=searchTitle]").focus();
return false;
}
if ( $("input[name=searchKey]").val() == "" ) {
alert("검색어를 입력하세요.");
$("input[name=searchKey]").focus();
@ -46,7 +46,7 @@ function searchPsBoard() {
}
document.listForm.pageIndex.value = "1";
document.listForm.action = "${pageContext.request.contextPath}/admins/board/00.do";
document.listForm.submit();
document.listForm.submit();
}
$(document).ready(
@ -56,9 +56,9 @@ $(document).ready(
if ( $(this).val() == "<c:out value='${searchTitle}' />" ) {
$(this).prop("selected", "selected");
}
}
}
);
}
}
);
</script>
@ -82,15 +82,15 @@ $(document).ready(
<td align="right" class="search">
<select id="searchTitle" name="searchTitle">
<option value="0">선택</option>
<option value="1">제목</option>
<option value="1">제목</option>
<option value="2">내용</option>
<option value="3">글쓴이</option>
<option value="3">글쓴이</option>
</select>
<input type="text" class="search" name="searchKey" id="searchKey" value="<c:out value='${searchKey}' />">
<input type="text" class="search" name="searchKey" id="searchKey" value="<c:out value='${searchKey}' />">
<input type="image" src="/images/admins/search.gif" align="absmiddle" onClick="javascript:searchPsBoard();">
</td>
</tr>
<tr height=12>
<td colspan=2>
<img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12">
@ -164,7 +164,7 @@ $(document).ready(
<table width=100% >
<tr align="center">
<td id="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</td>
</tr>
</table>

View File

@ -9,10 +9,10 @@
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
var context = "${pageContext.request.contextPath}";
let xhr;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
@ -20,7 +20,7 @@
// IE5, IE6 일때
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
function unixTimestampToFormattedDate(unixTimestamp) {
const date = new Date(unixTimestamp);
@ -33,8 +33,8 @@
return year + '-' + month + '-' + day + '(' + dayOfWeek + ')';
}
function formatUnixTimestamp(unixTimestamp) {
const date = new Date(unixTimestamp);
@ -43,7 +43,7 @@
const day = date.getDate();
let hours = date.getHours();
const minutes = date.getMinutes();
let ampm = "오전";
if (hours >= 12) {
ampm = "오후";
@ -55,19 +55,19 @@
return year+"년 " + month +"월 " + day + "일 " + ampm + " " + hours + "시";
}
function onClickDeleteCourseItem(e) {
const whtRegIdEle = document.querySelector('input[name="wht-reg-id"]:checked');
if( whtRegIdEle == false ) {
alert('삭제할 교육을 선택하십시오');
return false;
}
const whtRegId = whtRegIdEle.getAttribute('data-seq');
const trainingName = whtRegIdEle.getAttribute('data-training-name');
if(confirm("아래 집합교육을 삭제 하시겠습니까? \n\n " + trainingName + "[" + whtRegId + "]")) {
} else {
return false;
@ -75,9 +75,9 @@
var jsonData = new Array();
jsonData.push({whtRegId});
console.log('%o', jsonData);
console.log('%o', jsonData);
xhr.open('POST', 'home-training-index/item/delete.do', true);
xhr.setRequestHeader('Content-type', 'application/json');
@ -86,18 +86,18 @@
// 요청 성공 시 처리
console.log(xhr.responseText);
const obj = JSON.parse(xhr.responseText);
updateList();
updateList();
alert(obj.message);
} else if (xhr.readyState === 4) {
// 요청 실패 시 처리
// 요청 실패 시 처리
console.error('요청 실패:', xhr.status);
}
};
xhr.send(JSON.stringify(jsonData));
xhr.send(JSON.stringify(jsonData));
}
function getCurrentTimeFormatted() {
const now = new Date();
@ -110,13 +110,13 @@
return year + month + day + "_" + hours + minutes + seconds;
}
function downloadTableAsCSV(tableId) {
function downloadTableAsCSVUtf8(tableId) {
let filename = getCurrentTimeFormatted() + '_' + String(document.getElementById('home-visit-item-training-name').innerHTML).replace(/ /g, "_") + '.csv';
// 테이블 요소 가져오기
var table = document.getElementById(tableId);
@ -127,8 +127,7 @@
for (var i = 0; i < rows.length; i++) {
var row = [], cols = rows[i].querySelectorAll("td, th");
for (var j =  
0; j < cols.length; j++) {
for (var j = 0; j < cols.length; j++) {
// 특수 문자 처리 및 공백 제거
var data = cols[j].innerText.replace(/(\r\n|\n|\r)/gm, "").replace(/(\s\s)/gm, " ");
data = data.replace(/"/g, '""'); // 큰따옴표 이스케이프
@ -144,28 +143,72 @@
var link = document.createElement("a");
link.style.display = "none";
link.setAttribute("target", "_blank");
link.setAttribute("href", 'data:text/csv;charset=utf-8,' + encodeURIComponent(  
csvString));
link.setAttribute("href", 'data:text/csv;charset=utf-8,' + encodeURIComponent( csvString ));
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
document.body  
document.body  
.removeChild(link);
}
function downloadTableAsCSVAscii(tableId) {
let filename = getCurrentTimeFormatted() + '_' + String(document.getElementById('home-visit-item-training-name').innerHTML).replace(/ /g, "_") + '.csv';
// 테이블 요소 가져오기
var table = document.getElementById(tableId);
// CSV 문자열 생성
var csv = [];
var rows = table.querySelectorAll("tr");
for (var i = 0; i < rows.length; i++) {
var row = [], cols = rows[i].querySelectorAll("td, th");
for (var j = 0; j < cols.length; j++) {
// 특수 문자 처리 및 공백 제거
var data = cols[j].innerText.replace(/(\r\n|\n|\r)/gm, "").replace(/(\s\s)/gm, " ");
data = data.replace(/"/g, '""'); // 큰따옴표 이스케이프
row.push('"' + data + '"');
}
csv.push(row.join(","));
}
var csvString = csv.join("\n");
var BOM = "\uFEFF";
var csvData = BOM + csvString;
var blob = new Blob([csvData], { type: "text/csv;charset=windows-1252" });
// CSV 파일 다운로드
var link = document.createElement("a");
link.style.display = "none";
link.setAttribute("target", "_blank");
link.setAttribute("href", window.URL.createObjectURL(blob) );
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
document.body  
.removeChild(link);
}
function onClickCourseItem(e) {
const wvtRegId = e.getAttribute('data-seq');
const trainingName = e.getAttribute('data-training-name');
// 클릭된 행에서 input radio 요소 찾기
const radioInput = e.querySelector('input[type="radio"][name="wht-reg-id"]');
// input radio 요소 체크
if (radioInput) {
radioInput.checked = true;
}
xhr.open('GET', 'home-training-index/item/list.do?wvtRegId=' + wvtRegId, true);
xhr.setRequestHeader('Content-type', 'application/json');
@ -174,20 +217,20 @@
// 요청 성공 시 처리
const obj = JSON.parse(xhr.responseText);
const data = obj.data;
// 명단 보여주기
// 명단 보여주기
document.getElementById('home-visit-item').style.display = "block";
// 교육명 설정
document.getElementById('home-visit-item-training-name').innerHTML = trainingName;
// 목록 생성
{
const homeVisitItemListEle = document.getElementById('home-visit-item-list');
let homeVisitItemListHTML = '';
let homeVisitItemListHTML = '';
let actualEducationParticipants = 0;
for( idx in data ) {
for( idx in data ) {
//A:신청함, D:삭제, C:취소, T:출첵 완료
if( data[idx].stateCode === 'D' ) {
@ -196,10 +239,13 @@
continue;
}
actualEducationParticipants ++;
homeVisitItemListHTML +=
`
<tr onClick="onClickCourseItem(this)" data-seq="` + data[idx].whtRegId +`" data-training-name="` + data[idx].trainingName +`" >
<tr onClick="onClickCourseItem(this)"
data-seq="` + data[idx].whtRegId +`" ` +
`data-training-name="` + trainingName + `" ` +
`>
<td>` + data[idx].reqName + `</td>
<td>` + data[idx].companyName + `</td>
<td>` + data[idx].reqDept + `</td>
@ -230,7 +276,7 @@
xhr.send();
}
function getNameByStateCodeHomeVisitList(stateCode) {
//A:접수중,D:삭제,C:취소,P:예정,F:마감
if( stateCode === 'A' ) {
@ -243,9 +289,9 @@
return '오픈전';
} else if( stateCode === 'F' ) {
return '마감됨';
}
}
}
function updateList() {
xhr.open('GET', 'home-training-index/list.do', true);
xhr.setRequestHeader('Content-type', 'application/json');
@ -255,13 +301,13 @@
// 요청 성공 시 처리
const obj = JSON.parse(xhr.responseText);
const data = obj.data;
const homeVisitListEle = document.getElementById('home-visit-list');
let homeVisitListHTML = '';
let homeVisitListHTML = '';
let aliveEducationsCount = 0;
for( idx in data ) {
for( idx in data ) {
////A:접수중,D:삭제,C:취소,P:예정,F:마감
if( data[idx].stateCode === 'D' ) {
continue;
@ -269,12 +315,29 @@
continue;
}
aliveEducationsCount++;
homeVisitListHTML +=
`
<tr onClick="onClickCourseItem(this)" data-seq="` + data[idx].whtRegId +`" data-training-name="` + data[idx].trainingName +`" >
<td><input type="radio" name="wht-reg-id" value="` + data[idx].whtRegId +`" data-seq="` + data[idx].whtRegId +`" data-training-name="` + data[idx].trainingName +`"></td>
<td>` + data[idx].whtRegId + `</td>
<tr onClick="onClickCourseItem(this)" ` +
`data-seq="` + data[idx].whtRegId +`" ` +
`data-training-name="` + data[idx].trainingName +`" ` +
`data-training-date-time="` + data[idx].trainingDatetime +`" ` +
`data-training-location="` + data[idx].trainingLocation +`" ` +
`data-reg-start-date="` + data[idx].regStartDate +`" ` +
`data-reg-end-date="` + data[idx].regEndDate +`" ` +
`data-attendance="` + data[idx].attendance +`" ` +
`data-state-code="` + data[idx].stateCode +`" ` +
`>
<td><input type="radio" name="wht-reg-id" value="` + data[idx].whtRegId +`" data-seq="` + data[idx].whtRegId + `" ` +
`data-training-name="` + data[idx].trainingName +`" ` +
`data-training-date-time="` + data[idx].trainingDatetime +`" ` +
`data-training-location="` + data[idx].trainingLocation +`" ` +
`data-reg-start-date="` + data[idx].regStartDate +`" ` +
`data-reg-end-date="` + data[idx].regEndDate +`" ` +
`data-attendance="` + data[idx].attendance +`" ` +
`data-state-code="` + data[idx].stateCode +`" ` +
`></td>
<td>` + aliveEducationsCount + `</td>
<td>` + data[idx].trainingName + `</td>
<td>` + formatUnixTimestamp(data[idx].trainingDatetime) + `</td>
<td>` + data[idx].trainingLocation + `</td>
@ -315,8 +378,8 @@
}
});
}
const rows = document.querySelectorAll('.table-contents tbody tr td:nth-child(7)');
rows.forEach(function (cell) {
@ -330,19 +393,19 @@
cell.style.color = 'blue';
}
});
const requestRegistryButtonEle = document.getElementById('request-registry-button');
if( requestRegistryButtonEle ) {
requestRegistryButtonEle.addEventListener('click', function () {
var dataIndexValue;
var jsonData = new Array();
for (var i = 0; i < 1 ; i++) { // 여러 개를 한 번에 입력받는다면 입력받는 레코드만큼 loop를 순환하도록 수정되어야 한다.
var jsonItem = {};
//dataIndexValue = tableDataElements[i].getAttribute('data-index');
// 집합교육명
var trainingNameEle = document.getElementById('training-name');
if (trainingNameEle) {
@ -372,9 +435,9 @@
}
console.log('%o', jsonData);
xhr.open('POST', 'home-training-index/add.do', true);
xhr.setRequestHeader('Content-type', 'application/json');
@ -383,18 +446,18 @@
// 요청 성공 시 처리
console.log(xhr.responseText);
const obj = JSON.parse(xhr.responseText);
updateList();
updateList();
alert(obj.message);
} else if (xhr.readyState === 4) {
// 요청 실패 시 처리
// 요청 실패 시 처리
console.error('요청 실패:', xhr.status);
}
};
xhr.send(JSON.stringify(jsonData));
xhr.send(JSON.stringify(jsonData));
});
}
const trainingDatetimeInput = document.getElementById('training-datetime');
const regEndDateInput = document.getElementById('reg-end-date');
@ -406,18 +469,18 @@
const formattedDate = year + '-' + month + '-' + day;
regEndDateInput.value = formattedDate;
let [date, time] = this.value.split('T');
time = time.split(':');
time[1] = '00'; // 분을 00으로 설정
const newDatetime = date + 'T' + time.join(':');
this.value = newDatetime;
});
{
const regStartDateInput = document.getElementById('reg-start-date');
@ -428,24 +491,161 @@
const formattedDate = year + '-' + month + '-' + day;
regStartDateInput.value = formattedDate;
}
updateList();
});
function openModal(e) {
const whtRegIdEle = document.querySelector('input[name="wht-reg-id"]:checked');
if( typeof whtRegIdEle === 'undefined' ) {
alert('수정할 교육을 선택하십시오');
return false;
}
if( whtRegIdEle == false ) {
alert('수정할 교육을 선택하십시오');
return false;
}
const wvtRegId = whtRegIdEle.getAttribute('data-seq');
const trainingName = whtRegIdEle.getAttribute('data-training-name');
const trainingDateTime = whtRegIdEle.getAttribute('data-training-date-time');
const trainingLocation = whtRegIdEle.getAttribute('data-training-location');
const regStartDate = whtRegIdEle.getAttribute('data-reg-start-date');
const regEndDate = whtRegIdEle.getAttribute('data-reg-end-date');
const modifyWvtRegIdEle = document.getElementById('modify-wvt-reg-id');
if( modifyWvtRegIdEle ) {
modifyWvtRegIdEle.value = wvtRegId;
}
const modifyTrainingNameEle = document.getElementById('modify-training-name');
if( modifyTrainingNameEle ) {
modifyTrainingNameEle.value = trainingName;
}
const modifyTrainingDatetimeEle = document.getElementById('modify-training-datetime');
if( modifyTrainingDatetimeEle ) {
const d = new Date(Number(trainingDateTime));
const dateTimeLocalValue = (new Date(d.getTime() - d.getTimezoneOffset() * 60000).toISOString()).slice(0, -1);
modifyTrainingDatetimeEle.value = dateTimeLocalValue;
}
const modifyTrainingLocationEle = document.getElementById('modify-training-location');
if( modifyTrainingLocationEle ) {
modifyTrainingLocationEle.value = trainingLocation;
}
const modifyRegStartDateEle = document.getElementById('modify-reg-start-date');
if( modifyRegStartDateEle ) {
const d = new Date(Number(regStartDate));
const dateTimeLocalValue = (new Date(d.getTime() - d.getTimezoneOffset() * 60000).toISOString()).slice(0, -14);
modifyRegStartDateEle.value = dateTimeLocalValue;
}
const modifyRegEndDateEle = document.getElementById('modify-reg-end-date');
if( modifyRegEndDateEle ) {
const d = new Date(Number(regEndDate));
const dateTimeLocalValue = (new Date(d.getTime() - d.getTimezoneOffset() * 60000).toISOString()).slice(0, -14);
modifyRegEndDateEle.value = dateTimeLocalValue;
}
const myModalEle = document.getElementById('my-modal');
myModalEle.style.display = "block";
// 모달 바깥 영역 클릭 시 모달 닫기
window.onclick = function(event) {
if (event.target == e) {
e.style.display = "none";
}
}
}
function closeMyModal(e) {
const myModalEle = document.getElementById('my-modal');
myModalEle.style.display = "none";
const modifyButtonEle = document.getElementById('modify-button');
modifyButtonEle.style.display = "inline-block";
}
function onClickModifyButton(e) {
var dataIndexValue;
var jsonData = new Array();
for (var i = 0; i < 1 ; i++) { // 여러 개를 한 번에 입력받는다면 입력받는 레코드만큼 loop를 순환하도록 수정되어야 한다.
var jsonItem = {};
//dataIndexValue = tableDataElements[i].getAttribute('data-index');
//wvtRegId
var wvtRegIdEle = document.getElementById('modify-wvt-reg-id');
if (wvtRegIdEle) {
jsonItem.wvtRegId = wvtRegIdEle.value;
}
// 집합교육명
var trainingNameEle = document.getElementById('modify-training-name');
if (trainingNameEle) {
jsonItem.trainingName = trainingNameEle.value;
}
// 교육일시
var trainingDatetimeEle = document.getElementById('modify-training-datetime');
if (trainingDatetimeEle) {
jsonItem.trainingDatetime = trainingDatetimeEle.value;
}
// 교육장소
var trainingLocationEle = document.getElementById('modify-training-location');
if (trainingLocationEle) {
jsonItem.trainingLocation = trainingLocationEle.value;
}
// 접수기간 - 시작
var regStartDateEle = document.getElementById('modify-reg-start-date');
if (regStartDateEle) {
jsonItem.regStartDate = regStartDateEle.value;
}
// 접수기간 - 종료
var regEndDateEle = document.getElementById('modify-reg-end-date');
if (regEndDateEle) {
jsonItem.regEndDate = regEndDateEle.value;
}
jsonData.push(jsonItem);
}
console.log('%o', jsonData);
xhr.open('POST', 'home-training-index/update.do', true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 요청 성공 시 처리
console.log(xhr.responseText);
const obj = JSON.parse(xhr.responseText);
closeMyModal(null);
updateList();
alert(obj.message);
} else if (xhr.readyState === 4) {
// 요청 실패 시 처리
console.error('요청 실패:', xhr.status);
}
};
xhr.send(JSON.stringify(jsonData));
}
</script>
</head>
<body>
<h1>집합교육</h1>
<div class="home-trainning">
<div class="contentBtn">
<button class="modify" onClick="alert('기능 준비중');">수정</button>
<button id="modify-button" class="modify" onClick="openModal(this);">수정</button>
<button class="delete" onClick="onClickDeleteCourseItem(this);">삭제</button>
</div>
<table class="Table_Main course-list-table table-contents" id="course-list-table">
@ -473,7 +673,7 @@
</tbody>
</table>
<button class="AddBtn" id="add-btn">추가</button>
<!-- 추가 버튼 눌렸을 경우 -->
<table class="Table_Main new-course-creation-table" id="ContentAdd">
<colgroup>
@ -502,13 +702,13 @@
</tr>
</tbody>
</table>
<!-- 명단 클릭 했을 경우 -->
<div class="home-visit-item" id="home-visit-item">
<h2 class="DateTitle">교육 대상자 명단</h2>
<span class="DateText">⁕ 신청 집합교육명 : <span id="home-visit-item-training-name" class="home-visit-item-training-name"></span>
<button onClick="downloadTableAsCSV('home-visit-item-table')" id="export-list-of-participants-attending-the-education" class="export-list-of-participants-attending-the-education" style="float: right; margin-bottom: 10px;">교육 대상자 명단 내보내기</button>
<button onClick="downloadTableAsCSVAscii('home-visit-item-table')" id="export-list-of-participants-attending-the-education" class="export-list-of-participants-attending-the-education" style="float: right; margin-bottom: 10px;">교육 대상자 명단 내보내기</button>
</span>
<table class="Table_Main table-contents" id="home-visit-item-table">
<colgroup>
@ -534,7 +734,38 @@
<tbody id="home-visit-item-list">
</tbody>
</table>
</div>
</div>
<div id="my-modal" class="my-modal">
<div id="my-modal-box" class="modal-box">
<div class="modal-content">
<span id="my-modal-close" class="my-modal-close" onClick="closeMyModal(this);">&times;</span>
<div class="my-modal-modify-home-training-header">
교육 내용 수정
</div>
<div class="my-modal-modify-home-training-body">
<div class="input-item">
<input type="hidden" id="modify-wvt-reg-id" />
<label>집합교육명</label> <input type="text" id="modify-training-name" />
</div>
<div class="input-item">
<label>교육일시</label> <input type="datetime-local" id="modify-training-datetime" placeholder="">
</div>
<div class="input-item">
<label>교육장소</label> <input type="text" id="modify-training-location" />
</div>
<div class="input-item">
<label>접수기간</label>
<input type="date" id="modify-reg-start-date" class="modify-reg-start-end-date" placeholder="">
~
<input type="date" id="modify-reg-end-date" class="modify-reg-start-end-date" placeholder="">
</div>
</div>
<div class="my-modal-modify-home-training-footer">
<button onClick="onClickModifyButton(this);" id="my-modal-modify-button" class="my-modal-modify-button" >수정</button>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,132 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title>사용자정보 상세보기</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
-->
</style>
<script>
var context = "${pageContext.request.contextPath}";
function adminPassChange(userId){
var passChange = window.open('${pageContext.request.contextPath}/admins/user/passChange.do?userId='+userId,"passChange",'scrollbars=no,width=300,height=150,left=500,top=200', true);
}
</script>
</head>
<body>
<%-- <table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="${pageContext.request.contextPath}/images/admins/user/user_detail_back.gif"> --%>
<table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="">
<tr>
<td width=21 rowspan=4>&nbsp;</td>
<td height=39><img src="${pageContext.request.contextPath}/images/admins/user/user_detail_title.gif"></td>
<td width=12 rowspan=4>&nbsp;</td>
</tr>
<tr>
<td valign=top>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=15%>아이디</td>
<td width=20%>이름</td>
<td width=20%>전화번호</td>
<td >이메일</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td><c:out value="${result.userid}" /></td>
<td><c:out value="${result.userName}" /></td>
<td><c:out value="${result.phone}" /></td>
<td><c:out value="${result.email}" /></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=15%>업종</td>
<td width=20%>회사명</td>
<td width=20%>부서</td>
<td>주소</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td><c:out value="${result.upjong}" /></td>
<td><c:out value="${result.companyName}" /></td>
<td><c:out value="${result.partName}" /></td>
<td><c:out value="${result.zipCode}" /> &nbsp;<c:out value="${result.address}" /></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 align="center">
<c:choose>
<c:when test="${result.cls eq '3' && result.agreeyn eq 'N'}">
<td width=15% bgcolor="#F5F5F5" class="list_head2">사업자등록번호</td>
<td width=20% bgcolor="#FFFFFF" class="list_content">&nbsp;<c:out value="${result.companyregistno}" /></td>
<td width=20% bgcolor="#F5F5F5" class="list_head2">가입 요청일</td>
</c:when>
<c:otherwise>
<td width=15% bgcolor="#F5F5F5" class="list_head2">사업자등록번호</td>
<td width=20% bgcolor="#FFFFFF" class="list_content">&nbsp;<c:out value="${result.companyregistno}" /></td>
<td width=20% bgcolor="#F5F5F5" class="list_head2">가입일</td>
</c:otherwise>
</c:choose>
<td bgcolor="#FFFFFF" class="list_content">&nbsp;<c:out value="${result.datetime}" /></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 align="center">
<td width=15% bgcolor="#F5F5F5" class="list_head2">승인여부</td>
<c:choose>
<c:when test="${result.agreeyn eq 'N'}">
<td width=15% bgcolor="#FFFFFF" class="list_content">&nbsp;<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_ok.gif" onClick="javascript:agree_user_yn('${result.userid}','Y','${result.cls}')" style="cursor:hand"></td>
</c:when>
<c:otherwise>
<td width=15% bgcolor="#FFFFFF" class="list_content">&nbsp;<c:out value="이용가능" /></td>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${result.cls eq 0}">
<td colspan="4" bgcolor="#F5F5F5" class="list_head2">개인회원에서 기업회원으로 변경</td>
<td bgcolor="#FFFFFF" class="list_content">&nbsp;<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_modify.gif" onClick="javascript:agree_user_yn('${result.userid}','Y','1')" style="cursor:hand"></td>
</c:when>
<c:otherwise>
<td colspan="4" bgcolor="#F5F5F5" class="list_head2">기업회원에서 개인회원으로 변경</td>
<td bgcolor="#FFFFFF" class="list_content">&nbsp;<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_modify.gif" onClick="javascript:agree_user_yn('${result.userid}','Y','0')" style="cursor:hand"></td>
</c:otherwise>
</c:choose>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1>
<tr height=25 align=center class="list_head2">
</tr>
<tr height=25 align=center class="list_content">
</tr>
</table>
</td>
</tr>
<tr>
<td valign=top align="center"><img src="${pageContext.request.contextPath}/images/admins/cus_bnt_delet.gif" style="cursor:hand" onClick="javascript:user_del('${result.userid}','${result.cls}');">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_cancel.gif" style="cursor:hand" onClick="javascript:window.close();">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_passCh.gif" onClick="adminPassChange('${result.userid}')" style="cursor:hand">
</td>
</tr>
<tr height=10><td>&nbsp;</td></tr>
</table>
</body>
</html>

View File

@ -0,0 +1,126 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title>사용자정보 상세보기</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/passChange.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
-->
</style>
<script>
var context = "${pageContext.request.contextPath}";
/* function adminPassChange(userId){
var passChange = window.open('${pageContext.request.contextPath}/admins/user/passChange.do?userId='+userId,"passChange",'scrollbars=no,width=300,height=150,left=500,top=200', true);
} */
</script>
</head>
<body>
<%-- <table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="${pageContext.request.contextPath}/images/admins/user/user_detail_back.gif"> --%>
<table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="">
<tr>
<td width=21 rowspan=4>&nbsp;</td>
<td height=39><img src="${pageContext.request.contextPath}/images/admins/user/user_detail_title.gif"></td>
<td width=12 rowspan=4>&nbsp;</td>
</tr>
<tr>
<td valign=top>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=25%>아이디</td>
<td width=25%>이름</td>
<td width=25%>전화번호</td>
<td >이메일</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<c:set var="setPrephoneno" value="${result.prephoneno}" />
<td><c:out value="${result.userid}" /></td>
<td><c:out value="${result.preusername}" /> --> <c:out value="${result.username}" /></td>
<td>${result.prephoneno} --> <c:out value="${result.phoneno}" /></td>
<td><c:out value="${result.preemail}" /> --> <c:out value="${result.email}" /></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=25%>직업</td>
<td width=25%>회사명</td>
<td width=25%>부서</td>
<td>주소</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td><c:out value="${result.upjong}" /></td>
<td><c:out value="${result.companyName}" /></td>
<td><c:out value="${result.partName}" /></td>
<td><%-- <c:out value="${result.zipCode}" /> &nbsp; --%><c:out value="${result.address}" /></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1>
<tr height=25 align=center class="list_head2">
</tr>
<tr height=25 align=center class="list_content">
</tr>
</table>
</td>
</tr>
<tr>
<td style="text-align: center;">
<img src="http://localhost/files/web/pwIni/${result.filename}" class="file-preview-img" style="width: 350px;">
</td>
</tr>
<tr>
<td valign=top align="center">
<c:if test="${result.accept == '0'}">   
<img src="${pageContext.request.contextPath}/images/admins/btn_pass_ini.gif" onClick="javascript:adminPassChange('${result.userid}','${requestdate}','${result.phoneno}');" style="cursor:hand">
<img src="${pageContext.request.contextPath}/images/admins/btn_return.gif" onClick="javascript:passReturn('${result.userid}','${requestdate}');" style="cursor:hand">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_cancel.gif" style="cursor:hand" onClick="javascript:window.close();">
</c:if>
</td>
</tr>
<tr height=10><td>&nbsp;</td></tr>
</table>
<form name="frmSend" method="post" action="/whoisSms.do">
<div style="background-color:#f9f9f9; border:1px solid #cfcfd1; display: none;" id="smsMsg">
<div class="pop_title" style="border-bottom:1px solid #dddddd;">문자메시지</div>
<table>
<tr>
<td width="120" align="center">메시지</td>
<td width="86%">
<div class="pop_contents">
<textarea name="sms_msg" id="sms_msg" rows="5" style="width:96%;">[한국건설기술연구원]${result.userid}에 대한 비밀번호 초기화 요청은 반려되었습니다</textarea>
</div>
</td>
</tr>
<tr>
<td width="120" align="center">받는 사람 번호</td>
<td width="86%"><div class="pop_contents"><input name="sms_to" id="sms_to"value="${result.changephone}"></div></td>
</tr>
</table>
<div style="text-align:center;margin-bottom:10px;"><a href="#" onClick="fn_sendMesSubmit('${result.userid}','${requestdate}');"><input type="button" class="btn" value="전송" /></a></div>
</div>
</form>
</body>
</html>

View File

@ -0,0 +1,183 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
document.addEventListener('DOMContentLoaded', function() {
var searchTitle = document.getElementById('searchTitle');
var searchValue = document.getElementById('searchValue');
var searchContainer = searchValue.parentNode;
var tildeText = document.createElement('span');
tildeText.innerHTML = '~';
var searchBgndt = document.createElement('input');
var searchEnddt = document.createElement('input');
function createInput(input, id) {
input.type = 'text';
input.id = id;
input.name = id;
input.className = 'search';
input.style.display = 'inline-block';
input.style.width = '12ch';
input.placeholder = 'YYYYMMDD';
input.style.color = '#000'; // Text color
input.maxLength = 8; // Limit input length
input.onfocus = function() {
this.placeholder = '';
this.style.color = '#000'; // Text color
};
input.onblur = function() {
if (this.value === '') {
this.placeholder = 'YYYYMMDD';
}
};
}
createInput(searchBgndt, 'searchBgndt');
createInput(searchEnddt, 'searchEnddt');
searchBgndt.style.marginRight = '2px';
searchEnddt.style.marginLeft = '2px';
searchBgndt.value = "${params.searchBgndt}";
searchEnddt.value = "${params.searchEnddt}";
function addInputs() {
searchValue.style.display = 'none';
searchContainer.insertBefore(searchBgndt, searchValue);
searchContainer.insertBefore(tildeText, searchValue);
searchContainer.insertBefore(searchEnddt, searchValue);
}
function removeInputs() {
if (document.getElementById('searchBgndt')) {
searchBgndt.remove();
tildeText.remove();
searchEnddt.remove();
}
searchValue.style.display = 'inline-block';
}
if (searchTitle.value == '7') {
addInputs();
}
searchTitle.addEventListener('change', function() {
if (this.value == '7') {
addInputs();
} else {
removeInputs();
}
});
});
var context = "${pageContext.request.contextPath}";
function linkPage(index){
$("#pageIndex").val(index);
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/01.do").submit();
}
/* function excelDownload(){
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/01_excel.do").submit();
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/01.do");
}
*/
$(function(){
var searchTitle = "${params.searchTitle}";
searchTitle = searchTitle == "" ? "0" : searchTitle;
$("#searchTitle").val(searchTitle);
});
</script>
</head>
<body>
<form id="searchForm" name="searchForm" method="post">
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/user/1_toptit_02.gif"></td></tr>
<tr height=20 colspan=2><td>&nbsp;</td></tr>
<tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
<%-- <img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()"></td> --%>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 검색 ---------------------------------------------------------------------------------->
<td align="right" class="search">
<select id="searchTitle" name="searchTitle">
<option value="0" selected>전체</option>
<option value="2">아이디</option>
<option value="1">이름</option>
<option value="4">회사명</option>
<option value="3">업종</option>
<option value="6">사업자등록번호</option>
<option value="5">이메일</option>
<option value="7">가입기간</option>
</select>
<input type="text" class="search" id="searchValue" name="searchValue" value="${params.searchValue}" />
<input type="image" src="${pageContext.request.contextPath}/images/admins/search.gif" >
</td>
<!-- END : 검색 ---------------------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<tbody>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D6D6D6">
<!-- START : list head ----------------------------------------------------------------------------->
<tr height=28 bgcolor="#FBF4E4" class="list_head" align="center">
<td width="4%">번호</td>
<td width="12%">아이디</td>
<td width="8%">이름</td>
<td width="13%">회사명</td>
<td width="12%">업종</td>
<td width="14%">사업자등록번호</td>
<td width="17%">이메일</td>
<td width="11%">가입일</td>
<td width="8%">상세보기</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.companyName}</td>
<td>${resultList.upjong}</td>
<td>${resultList.companyRegistNo}</td>
<td>${resultList.email}</td>
<td>${resultList.datetimes}</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','02')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->
</table>
</tbody>
</td>
</tr>
<tr height=42>
<!-- START : 네비게이션 ---------------------------------------------------------------------------->
<td align=center class="navi" colspan='2'>
<table width=100% >
<tr align="center">
<td>
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage"/>
</td>
</tr>
</table>
</td>
<!-- END : 네비게이션 ---------------------------------------------------------------------------->
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,185 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
document.addEventListener('DOMContentLoaded', function() {
var searchTitle = document.getElementById('searchTitle');
var searchValue = document.getElementById('searchValue');
var searchContainer = searchValue.parentNode;
var tildeText = document.createElement('span');
tildeText.innerHTML = '~';
var searchBgndt = document.createElement('input');
var searchEnddt = document.createElement('input');
function createInput(input, id) {
input.type = 'text';
input.id = id;
input.name = id;
input.className = 'search';
input.style.display = 'inline-block';
input.style.width = '12ch';
input.placeholder = 'YYYYMMDD';
input.style.color = '#000'; // Text color
input.maxLength = 8; // Limit input length
input.onfocus = function() {
this.placeholder = '';
this.style.color = '#000'; // Text color
};
input.onblur = function() {
if (this.value === '') {
this.placeholder = 'YYYYMMDD';
}
};
}
createInput(searchBgndt, 'searchBgndt');
createInput(searchEnddt, 'searchEnddt');
searchBgndt.style.marginRight = '2px';
searchEnddt.style.marginLeft = '2px';
searchBgndt.value = "${params.searchBgndt}";
searchEnddt.value = "${params.searchEnddt}";
function addInputs() {
searchValue.style.display = 'none';
searchContainer.insertBefore(searchBgndt, searchValue);
searchContainer.insertBefore(tildeText, searchValue);
searchContainer.insertBefore(searchEnddt, searchValue);
}
function removeInputs() {
if (document.getElementById('searchBgndt')) {
searchBgndt.remove();
tildeText.remove();
searchEnddt.remove();
}
searchValue.style.display = 'inline-block';
}
if (searchTitle.value == '7') {
addInputs();
}
searchTitle.addEventListener('change', function() {
if (this.value == '7') {
addInputs();
} else {
removeInputs();
}
});
});
var context = "${pageContext.request.contextPath}";
function linkPage(index){
$("#pageIndex").val(index);
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/02.do").submit();
}
/* function excelDownload(){
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/02_excel.do").submit();
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/02.do");
}
*/
$(function(){
var searchTitle = "${params.searchTitle}";
searchTitle = searchTitle == "" ? "0" : searchTitle;
$("#searchTitle").val(searchTitle);
});
</script>
</head>
<body>
<form id="searchForm" name="searchForm" method="post">
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/user/1_toptit_03.gif"></td></tr>
<tr height=20 colspan=2><td>&nbsp;</td></tr>
<tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
<%-- <img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()"></td> --%>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 검색 ---------------------------------------------------------------------------------->
<td align="right" class="search">
<select id="searchTitle" name="searchTitle">
<option value="0" selected>전체</option>
<option value="2">아이디</option>
<option value="1">이름</option>
<option value="4">회사명</option>
<option value="3">업종</option>
<option value="6">사업자등록번호</option>
<option value="5">이메일</option>
<option value="7">가입기간</option>
</select>
<input type="text" class="search" id="searchValue" name="searchValue" value="${params.searchValue}" />
<input type="image" src="${pageContext.request.contextPath}/images/admins/search.gif" align="absmiddle">
</td>
<!-- END : 검색 ---------------------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<tbody>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D6D6D6">
<!-- START : list head ----------------------------------------------------------------------------->
<tr height=28 bgcolor="#FBF4E4" class="list_head" align="center">
<td width="4%">번호</td>
<td width="12%">아이디</td>
<td width="8%">이름</td>
<td width="13%">회사명</td>
<td width="12%">업종</td>
<td width="14%">사업자등록번호</td>
<td width="17%">이메일</td>
<td width="11%">가입일</td>
<td width="8%">상세보기</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.companyName}</td>
<td>${resultList.upjong}</td>
<td>${resultList.companyRegistNo}</td>
<td>${resultList.email}</td>
<td>${resultList.datetimes}</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','02')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->
</table>
</tbody>
</td>
</tr>
<tr height=42>
<!-- START : 네비게이션 ---------------------------------------------------------------------------->
<td align=center class="navi" colspan='2'>
<table width=100% >
<tr align="center">
<td>
<!-- REPEAT LINK -->
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage"/>
<!-- END OF REPEAT LINK -->
</td>
</tr>
</table>
</td>
<!-- END : 네비게이션 ---------------------------------------------------------------------------->
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,37 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
</head>
<body>
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/userLog/2_toptit_03.gif"></td></tr>
<tr height=20><td colspan=2>&nbsp;</td></tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#C9C9C9">
<tr height=28 bgcolor="#F5F5F5" class="list_head" align="center">
<td width="50%">사용자 그룹</td>
<td width="50%">등 록 수</td>
</tr>
<!-- REPEAT TABLE-->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.name}</td>
<td>${resultList.cnt}</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE-->
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,98 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script src ="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script>
var context = "${pageContext.request.contextPath}";
function fn_delUser(userid,region,regionSgg){
// 선택 된 아이디를 삭제
if( confirm( userid + '를 삭제할까요?') ){
$.ajax({
type : "POST",
url : "05_delUser.json",
data : {
userid : userid,
region : region,
regionSgg : regionSgg
},
dataType : "json",
success : function( json ){
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
alert("정상적으로 삭제 되었습니다.");
//opener.linkPage(1);
//window.close();
window.location.reload();
return;
} else {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
} else {
alert("추가 중에 오류가 발생하였습니다. 다시 시도해주세요");
return ;
}
}
</script>
</head>
<body>
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/userLog/2_toptit_09.gif"></td></tr>
<tr height=20><td colspan=2>&nbsp;</td></tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#FFFFFF">
<tr height=25 align="right">
<td width=15% bgcolor="#FFFFFF" class="list_head2"><img src="${pageContext.request.contextPath}/images/admins/btn_add.gif" onClick="javascript:openAddUser()" style="cursor:hand"></td>
</tr>
</table>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#C9C9C9">
<tr height=28 bgcolor="#F5F5F5" class="list_head" align="center">
<td width="10%">아이디</td>
<td width="10%">이름</td>
<td width="10%">회사</td>
<td width="15%">연락처</td>
<td width="10%">지역(시,도)</td>
<td width="15%">지역(시,군,구)</td>
<td width="20%">권한날짜</td>
<td width="10%">삭제</td>
</tr>
<!-- REPEAT TABLE-->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.companyName}</td>
<td>${resultList.phone}</td>
<td>${resultList.regionName}</td>
<td>${resultList.regionSggName}</td>
<td>${resultList.startDate} ~ ${resultList.endDate}</td>
<td><img src="${pageContext.request.contextPath}/images/admins/cus_bnt_delet.gif" onClick="javascript:fn_delUser('${resultList.userid}','${resultList.region}','${resultList.regionSgg}')" style="cursor:hand"> </td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE-->
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,308 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title>사용자 추가</title>
<meta http-equiv="Context-Type" content="text/html; charset=utf-8">
<script src ="${pageContext.request.contextPath}/js/jquery/jquery.min.js"></script>
<!--<script src ="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script> -->
<script src ="${pageContext.request.contextPath}/js/admins/user.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
-->
</style>
<script type="text/javaScript" >
var context = "${pageContext.request.contextPath}";
function fn_onSelChangeRegion(){
// 시도 선택에 따른 시,군,구 리스트 갱신
var selectedIdx = document.getElementById("SEARCH_REGION").selectedIndex;
if( selectedIdx > 0 ) {
fn_onSelChangeRegionSgg(selectedIdx);
}
}
function clearSgg(){
document.getElementById("SEARCH_REGION_SGG").options.length=1;
document.getElementById("SEARCH_REGION_SGG").options[0] = new Option('-', '');
//for( var i = document.getElementById("SEARCH_REGION_SGG").options.lenght-1; i > 0; i--)
//{
// document.getElementById("SEARCH_REGION_SGG").options[i]=null;
//}
}
function fn_onSelChangeRegionSgg(selectedIdx){
var code = document.getElementById("SEARCH_REGION").options[selectedIdx].value;
$.ajax({
type : "POST",
url : "05_getLocCodeSgg.json",
data : { code : code },
dataType : "json",
success:function(json){
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
// 리스트 삭제 / 갱신
clearSgg();
// 시, 군, 구 리스트 갱신
for (var i = 0; i < json.locationSgg.length; i++) {
document.getElementById("SEARCH_REGION_SGG").options[i+1] = new Option(json.locationSgg[i].name, json.locationSgg[i].code);
}
} else {
//alert(xhr.status); // 오류 코드
//alert(error); // 오류 내용
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
}
function fn_onInsertUser(){
var userid = document.getElementById("SEARCH_USERID").value;
var userName = document.getElementById("SEARCH_USER_NAME").value;
var companyName = document.getElementById("SEARCH_COMPANY_NAME").value;
var phone = document.getElementById("SEARCH_PHONE").value;
var region = document.getElementById("SEARCH_REGION").value;
var regionSgg = document.getElementById("SEARCH_REGION_SGG").value;
//var regionName = document.getElementById("SEARCH_REGION").text;
var index = document.getElementById("SEARCH_REGION").selectedIndex;
var regionName = document.getElementById("SEARCH_REGION").options[index].text;
var indexSgg = document.getElementById("SEARCH_REGION_SGG").selectedIndex;
var regionSggName = document.getElementById("SEARCH_REGION_SGG").options[indexSgg].text;
var startDate = document.getElementById("startDate").value;
var endDate = document.getElementById("endDate").value;
// 예외처리
if( confirm( userid + '를 추가할까요?') ){
$.ajax({
type : "POST",
url : "05_insertUser.json",
data : {
userid : userid,
userName : userName,
companyName : companyName,
phone : phone,
region : region,
regionName : regionName,
regionSgg : regionSgg,
regionSggName : regionSggName,
startDate : startDate,
endDate : endDate },
dataType : "json",
success : function( json ){
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
alert("정상적으로 추가가 되었습니다.");
//opener.linkPage(1);
window.close();
window.opener.location.reload();
} else if( resultData == "Exist" ) {
alert("설정 된 지역이 존재합니다. 1개의 지역만 설정 가능합니다.");
//opener.linkPage(1);
window.close();
window.opener.location.reload();
} else {
//alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
} else {
alert("추가 중에 오류가 발생하였습니다. 다시 시도해주세요");
return ;
}
}
//function addUser(userId,userName,companyName,phone,region){
// var result = window.open('${pageContext.request.contextPath}/admins/user/passChange.do?userId=
//}
// 사용자 추가
function fn_onUserInfoEvent(){
// 사용자 정보 입력
// 입력 된 사용자 아이디를 얻어온다.
//var str = ${ SEARCH_USER };
var str = document.getElementById("SEARCH_USER").value;
if( str == "" ) {
alert("입력 된 내용이 없습니다.");
return;
}
$.ajax({
type : "POST",
data : { userid : str },
url : "getUserInfo.json",
async : false,
dataType : "json",
success : function( json ) {
resultData = json.RESULT_KEY;
if( resultData == "Success" ) {
document.getElementById("SEARCH_USERID").value = json.userid;
document.getElementById("SEARCH_USER_NAME").value = json.userName;
document.getElementById("SEARCH_COMPANY_NAME").value = json.companyName;
document.getElementById("SEARCH_PHONE").value = json.phone;
document.getElementById("SEARCH_REGION").value = json.phone;
//$("#SEARCH_USER").val(json.userId);
//$("#SEARCH_USER_NAME").val(json.userName);
//$("#SEARCH_COMPANY_NAME ").val(json.companyName);
//$("#SEARCH_PHONE").val(json.phone);
// 날짜
var today = new Date();
var year = (today.getYear() + 1900).toString();
var month = (today.getMonth() +1).toString();
if( (today.getMonth() +1) < 10 )
month = '0' + month;
var day = (today.getDate()).toString();
if( (today.getDate()) < 10 )
day = '0' + day;
var date = year + month + day;
document.getElementById("startDate").value = date;
document.getElementById("endDate").value = date;
} else {
alert("확인 된 사용자가 없습니다. 확인 후 다시 입력 바랍니다. ");
return false;
}
},
error : function( xhr, option, error ) {
alert(xhr.status); // 오류 코드
alert(error); // 오류 내용
}
});
}
//달력팝업
function fn_CalPopupDiv1(id, calId, divId) {
var cal = $("#" + calId);
var calPosition = cal.position();
$.ajax({
type : 'post',
url : '${pageContext.request.contextPath}/web/popup/calender.do',
async : false,
data : { id : id },
error : function(xhr, status) {
alert('Unknown error ' + status);
},
success : function(data) {
$("#" + divId).css({
'top' : calPosition.top - 30,
'left' : calPosition.left + 20
});
$("#" + divId).removeClass("trViewOff");
$("#" + divId).html(data);
}
});
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- <table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="${pageContext.request.contextPath}/images/admins/user/user_detail_back.gif"> --%>
<table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="">
<tr>
<td width=21 rowspan=4>&nbsp;</td>
<td height=39><img src="${pageContext.request.contextPath}/images/admins/user/user_detail_title.gif"></td>
<td width=12 rowspan=4>&nbsp;</td>
</tr>
<tr>
<td valign=top>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=0 bgcolor="#CACACA">
<tr height=25 align="right">
<td bgcolor="#FFFFFF" class="list_content" valign=middle>
추가 아이디 :
<input id = "SEARCH_USER" name = "SEARCH_USER" onChange="fn_onSearchChangeEvent()" type="text" style="width: 25%;" maxlength="25%" />
<a href="#" onClick="fn_onUserInfoEvent()"><img src="/images/join/btn_search.gif" alt="추가" /></a>
</td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=25%>아이디</td>
<td width=25%>이름</td>
<td width=25%>회사</td>
<td width=25%>연락처</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td border=0><input type="text" id="SEARCH_USERID" name = "SEARCH_USERID" class="readonly" readonly="readonly" style="width: 90%;" ></td>
<td><input type="text" id="SEARCH_USER_NAME" name = "SEARCH_USER_NAME" class="readonly" readonly="readonly" style="width: 90%;"></td>
<td><input type="text" id="SEARCH_COMPANY_NAME" name = "SEARCH_COMPANY_NAME" class="readonly" readonly="readonly" style="width: 90%;"></td>
<td><input type="text" id="SEARCH_PHONE" name = "SEARCH_PHONE" class="readonly" readonly="readonly" style="width: 90%;"></td>
</tr>
</table>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=25%>시작일</td>
<td width=25%>종료일</td>
<td width=25%>지역선택(시,도)</td>
<td width=25%>지역선택(시,군,구)</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td><input id="startDate" name="startDate" type="text" value="" style="width: 75%;" maxlength="8" onKeyPress="submitEvent()" />
<a href="#" onclick="fn_CalPopupDiv1('startDate','fromCalImg','calenderDiv');return false;"><img src="${pageContext.request.contextPath}/images/web/icon_calendar.png" id="fromCalImg" style="margin-top: -5px;" /></a></td>
<td><input id="endDate" name="endDate" type="text" value="" style="width: 75%;" maxlength="8" onKeyPress="submitEvent()" />
<a href="#" onclick="fn_CalPopupDiv1('endDate','toCalImg','calenderDiv');return false;"><img src="${pageContext.request.contextPath}/images/web/icon_calendar.png" id="toCalImg" style="margin-top: -5px;" /></a></td>
<td >
<select name="SEARCH_REGION" id = "SEARCH_REGION" style="width: 90%;" onChange="fn_onSelChangeRegion()" class="selectbox">
<option value="0">-</option>
<c:forEach var = "item" items="${result.location}">
<option value="${item.code}">${item.name}</option>
</c:forEach>
</select>
</td>
<td >
<select name="SEARCH_REGION_SGG" id = "SEARCH_REGION_SGG" style="width: 90%;" onChange="fn_onSelChangeRegionSgg()" class="selectbox">
<option value="0">-</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign=top align="center">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_save.gif" style="cursor:hand" onClick="javascript:fn_onInsertUser();">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_cancel.gif" style="cursor:hand" onClick="javascript:window.close();">
</td>
</tr>
<tr height=10><td>&nbsp;</td></tr>
</table>
<div id="calenderDiv" class="trViewOff" style="position: absolute;"></div>
</body>
</html>

View File

@ -0,0 +1,125 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
var context = "${pageContext.request.contextPath}";
function linkPage(index){
$("#pageIndex").val(index);
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/07.do").submit();
}
/* function excelDownload(){
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/01_excel.do").submit();
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/01.do");
}
*/
$(function(){
var searchTitle = "${params.searchTitle}";
searchTitle = searchTitle == "" ? "3" : searchTitle;
$("#searchTitle").val(searchTitle);
});
</script>
</head>
<body>
<form id="searchForm" name="searchForm" method="post">
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/user/1_toptit_07.gif"></td></tr>
<tr height=20 colspan=2><td>&nbsp;</td></tr>
<tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
<%-- <img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()"></td> --%>
<!-- END : 엑셀 다운로드 ------------------------------------------------------------------------->
<!-- START : 검색 ---------------------------------------------------------------------------------->
<td align="right" class="search">
<select id="searchTitle" name="searchTitle" onchange="linkPage('1');">
<option value="3">전체</option>
<option value="0">미확인</option>
<option value="1">승인</option>
<option value="2">반려</option>
</select>
<%-- <input type="text" class="search" id="searchValue" name="searchValue" value="${params.searchValue}" />
<input type="image" src="${pageContext.request.contextPath}/images/admins/search.gif" > --%>
</td>
<!-- END : 검색 ---------------------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tr>
<td colspan=2>
<tbody>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D6D6D6">
<!-- START : list head ----------------------------------------------------------------------------->
<tr height=28 bgcolor="#FBF4E4" class="list_head" align="center">
<td width="4%">번호</td>
<td width="12%">아이디</td>
<td width="12%">수정한이름</td>
<td width="19%">회사명</td>
<td width="23%">수정한이메일</td>
<td width="12%">요청날짜</td>
<td width="8%">상태</td>
<td width="10%">상세보기</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.username}</td>
<td>${resultList.companyName}</td>
<td>${resultList.email}</td>
<c:set var="requestdate" value='${resultList.requestdate}' />
<td>${fn:substring(requestdate,0,4)}-${fn:substring(requestdate,4,6)}-${fn:substring(requestdate,6,8)}</td>
<td>
<c:choose>
<c:when test="${resultList.accept == '0'}">
미확인
</c:when>
<c:when test="${resultList.accept == '1'}">
승인
</c:when>
<c:otherwise>
반려
</c:otherwise>
</c:choose>
</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetailInI('${resultList.userid}','02','${resultList.requestdate}')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->
</table>
</tbody>
</td>
</tr>
<tr height=42>
<!-- START : 네비게이션 ---------------------------------------------------------------------------->
<td align=center class="navi" colspan='2'>
<table width=100% >
<tr align="center">
<td>
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage"/>
</td>
</tr>
</table>
</td>
<!-- END : 네비게이션 ---------------------------------------------------------------------------->
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,189 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
document.addEventListener('DOMContentLoaded', function() {
var searchTitle = document.getElementById('searchTitle');
var searchValue = document.getElementById('searchValue');
var searchContainer = searchValue.parentNode;
var tildeText = document.createElement('span');
tildeText.innerHTML = '~';
var searchBgndt = document.createElement('input');
var searchEnddt = document.createElement('input');
function createInput(input, id) {
input.type = 'text';
input.id = id;
input.name = id;
input.className = 'search';
input.style.display = 'inline-block';
input.style.width = '12ch';
input.placeholder = 'YYYYMMDD';
input.style.color = '#000'; // Text color
input.maxLength = 8; // Limit input length
input.onfocus = function() {
this.placeholder = '';
this.style.color = '#000'; // Text color
};
input.onblur = function() {
if (this.value === '') {
this.placeholder = 'YYYYMMDD';
}
};
}
createInput(searchBgndt, 'searchBgndt');
createInput(searchEnddt, 'searchEnddt');
searchBgndt.style.marginRight = '2px';
searchEnddt.style.marginLeft = '2px';
searchBgndt.value = "${params.searchBgndt}";
searchEnddt.value = "${params.searchEnddt}";
function addInputs() {
searchValue.style.display = 'none';
searchContainer.insertBefore(searchBgndt, searchValue);
searchContainer.insertBefore(tildeText, searchValue);
searchContainer.insertBefore(searchEnddt, searchValue);
}
function removeInputs() {
if (document.getElementById('searchBgndt')) {
searchBgndt.remove();
tildeText.remove();
searchEnddt.remove();
}
searchValue.style.display = 'inline-block';
}
if (searchTitle.value == '7') {
addInputs();
}
searchTitle.addEventListener('change', function() {
if (this.value == '7') {
addInputs();
} else {
removeInputs();
}
});
});
var context = "${pageContext.request.contextPath}";
function linkPage(index){
$("#pageIndex").val(index);
$("#searchForm").attr("action", "${pageContext.request.contextPath}/admins/user/40.do").submit();
}
$(function(){
var searchTitle = "${params.searchTitle}";
searchTitle = searchTitle == "" ? "0" : searchTitle;
$("#searchTitle").val(searchTitle);
});
</script>
</head>
<body>
<form id="searchForm" name="searchForm" method="post">
<input type="hidden" id="pageIndex" name="pageIndex" value="${params.pageIndex}" />
<table id="Table_Main" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/user/1_toptit_05.png"></td></tr>
<tr height=20 ><td>&nbsp;</td></tr>
<tr height=25>
<!-- START : 엑셀 다운로드 ------------------------------------------------------------------------->
<td>
<%-- <img src="${pageContext.request.contextPath}/images/admins/excel.gif" style="cursor:hand" onClick="javascript:excelDownload()"></td> --%>
<!-- START : 검색 ---------------------------------------------------------------------------------->
<td align="right" class="search">
<select id="searchTitle" name="searchTitle">
<option value="0" selected>전체</option>
<option value="2">아이디</option>
<option value="1">이름</option>
<option value="4">소속지자체</option>
<option value="5">이메일</option>
<option value="7">가입기간</option>
</select>
<input type="text" class="search" id="searchValue" name="searchValue" value="${params.searchValue}" />
<input type="image" src="${pageContext.request.contextPath}/images/admins/search.gif" onClick="javascript:search()">
</td>
<!-- END : 검색 ---------------------------------------------------------------------------------->
</tr>
<tr height=12><td colspan=2><img src="${pageContext.request.contextPath}/images/admins/spacer.gif" width="1" height="12"></td></tr>
<tbody>
<tr>
<td colspan=2>
<table id="Table_List" width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#D6D6D6">
<!-- START : list head ----------------------------------------------------------------------------->
<tr height=28 bgcolor="#FBF4E4" class="list_head" align="center">
<td width="4%">번호</td>
<td width="12%">아이디</td>
<td width="10%">이름</td>
<td width="21%">소속지자체</td>
<td width="23%">이메일</td>
<td width="12%">가입일</td>
<td width="10%">승인상태</td>
<td width="8%">상세보기</td>
</tr>
<!-- END : list head ----------------------------------------------------------------------------->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.localgove}</td>
<td>${resultList.email}</td>
<td>${resultList.datetimes}</td>
<td>
<c:choose>
<c:when test="${resultList.liqYn eq 'A' || resultList.liqYn eq 'E'}">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_ok.gif" onClick="javascript:agree_user('${resultList.userid}','Y','O')" style="cursor:hand">
</c:when>
<c:otherwise>
승인
</c:otherwise>
</c:choose>
</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openImg('${resultList.userid}')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<!-- END OF REPEAT TABLE -->
</table>
</td>
</tr>
</tbody>
<tr height=42>
<!-- START : 네비게이션 ---------------------------------------------------------------------------->
<td align=center class="navi" colspan='2'>
<table width=100% >
<tr align="center">
<td id="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage"/>
</td>
</tr>
</table>
</td>
<!-- END : 네비게이션 ---------------------------------------------------------------------------->
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,84 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<title>지자체 공무원 증빙문서</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
-->
</style>
<script>
var context = "${pageContext.request.contextPath}";
function fileDownload(filename, savename){
location.href = "${pageContext.request.contextPath}/admins/liq/fileDownload.do?savename="+savename+"&filename="+filename;
}
</script>
</head>
<body>
<form id="searchForm" name="searchForm" enctype="multipart/form-data">
<input type="hidden" name="savename" id="savename" value="${result.savename}"/>
<input type="hidden" name="filename" id="filename" value="${result.filename}"/>
<input type="hidden" name="chk" id="chk" value=""/>
<%-- <table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="${pageContext.request.contextPath}/images/admins/user/user_detail_back.gif"> --%>
<table id="Table_Main" width="100%" height=240 border=0 cellpadding=0 cellspacing=0 background="">
<tr>
<td width=21 rowspan=4>&nbsp;</td>
<td height=39><img src="${pageContext.request.contextPath}/images/admins/user/user_detail_title.gif"></td>
<td width=12 rowspan=4>&nbsp;</td>
</tr>
<tr>
<td valign=top>
<table id="Table_Info" width=100% border=0 cellpadding=0 cellspacing=1 bgcolor="#CACACA">
<tr height=25 bgcolor="#F5F5F5" align=center class="list_head2">
<td width=15%>아이디</td>
<td width=20%>이름</td>
<td width=20%>전화번호</td>
<td >이메일</td>
<td width=20%>소속지자체</td>
</tr>
<tr height=25 bgcolor="#FFFFFF" align=center class="list_content">
<td><c:out value="${result.userid}" /></td>
<td><c:out value="${result.userName}" /></td>
<td><c:out value="${result.phone}" /></td>
<td><c:out value="${result.email}" /></td>
<td><c:out value="${result.localgove}" /></td>
</tr>
<tr height=25 align="center">
<td colspan="2" bgcolor="#F5F5F5" class="list_head2" >지자체 공무원 증빙문서</td>
<td colspan="4" bgcolor="#FFFFFF" class="list_content" align="center">
<a href="javascript:fileDownload('${result.filename}','${result.savename}')">${result.filename}</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign=top align="center">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_ok.gif" onClick="javascript:agree_user('${result.userid}','Y','X')" style="cursor:hand">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_delet.gif" style="cursor:hand" onClick="javascript:agree_user('${result.userid}','N','X')">
<img src="${pageContext.request.contextPath}/images/admins/cus_bnt_cancel.gif" style="cursor:hand" onClick="javascript:window.close();">
</td>
</tr>
<tr height=10><td>&nbsp;</td></tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1,177 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<!-- <script src="${pageContext.request.contextPath}/js/admins/chart.js"></script> -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
var context = "${pageContext.request.contextPath}";
let xhr;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
// IE5, IE6 일때
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
const ctx = document.getElementById('myChart');
new Chart(ctx, {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
</head>
<body>
<h1>건설현장 통계</h1>
<div class="home-trainning">
<div class="container-fluid">
<div class="row content">
<div class="col-sm-12">
<h4>검색</h4>
<div class="well">
<div class="container mt-5">
<form class="form-inline">
<div class="form-group mb-2 mr-2">
<label for="project-name" class="mr-2">프로젝트명:</label>
<input type="text" class="form-control" id="project-name" placeholder="프로젝트명 입력">
</div>
<div class="form-group mb-2 mr-2">
<label for="client-name" class="mr-2">발주기관 명:</label>
<input type="text" class="form-control" id="client-name" placeholder="발주기관 명 입력">
</div>
<div class="form-group mb-2 mr-2 w-50">
<label for="manager-name" class="mr-2">담당자:</label>
<input type="text" class="form-control" id="manager-name" placeholder="담당자 이름 입력">
</div>
<div class="form-group mb-2 mr-2">
<label for="contact-number" class="mr-2">연락처:</label>
<input type="text" class="form-control" id="contact-number" placeholder="연락처 입력">
</div>
</form>
</div>
<div class="text-right mt-3">
<button type="submit" class="btn btn-primary mb-2">검색</button>
</div>
</div>
<h4>건설현장 등록 건수</h4>
<div class="row">
<div class="col-sm-3">
<div class="well">
<h4>전체 등록 수</h4>
<p>12 건</p>
</div>
</div>
<div class="col-sm-3">
<div class="well">
<h4>부산광역시</h4>
<p>12 건</p>
</div>
</div>
<div class="col-sm-3">
<div class="well">
<h4>대구광역시</h4>
<p>0 건</p>
</div>
</div>
<div class="col-sm-3">
<div class="well">
<h4>세종특별자치시</h4>
<p>0 건</p>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="well">
<p class="fw-bold" style="font-size: 18px; color:#c87202;">최근 입력된 건설현장</p>
<p>부산 북항 재개발 사업 - 부산광역시</p>
<p>가덕도 신공항 건설공사 - 부산광역시</p>
<p>부산 에코델타시티 조성사업 - 부산광역시</p>
<p>동해남부선 복선전철화 사업 - 부산광역시</p>
<p>부산 도시철도 1호선 연장 공사 - 부산광역시</p>
<div class="d-flex justify-content-between align-items-center">
<div class="btn-group">
<button type="button" class="btn btn-sm btn-outline-secondary">+ 더 보기</button>
</div>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="well">
<p class="fw-bold" style="font-size: 18px; color:#c87202;">단계별 건수</p>
<p><b>타당성조사 및 계획검토:</b> 12건</p>
<p><b>기본설계:</b> 0건</p>
<p><b>실시설계:</b> 0건</p>
<p><b>시공중:</b> 0건</p>
<p><b>준공:</b> 0건</p>
<p><b>유지보수:</b> 0건</p>
</div>
</div>
<div class="col-sm-4">
<div class="well">
<p class="fw-bold" style="font-size: 18px; color:#c87202;">프로젝트 연결률</p>
<p><b>부산광역시:</b> 8.33%</p>
<p><b>대전광역시:</b> 0%</p>
<p><b>세종특별자치시:</b> 0%</p>
<p><b>서울특별시:</b> 0%</p>
<p><b>대구광역시:</b> 0%</p>
<div class="d-flex justify-content-between align-items-center">
<div class="btn-group">
<button type="button" class="btn btn-sm btn-outline-secondary">+ 더 보기</button>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<div class="well">
<p>Text</p>
</div>
</div>
<div class="col-sm-4">
<div class="well">
<p>Text</p>
</div>
</div>
</div>
</div>
</  
div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,92 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="${pageContext.request.contextPath}/js/admins/common.js"></script>
<script>
window.onload = function() {
// 페이지 로딩 후 실행될 코드
const activeEle = document.getElementById('${pId}');
if( activeEle ) {
activeEle.classList.add('active');
const menuItemEle = findClosestMenuItem(activeEle, 'menu-item');
if( menuItemEle ) {
menuItemEle.classList.add('active');
}
}
};
//상위 element에서 특정 class를 갖는 element를 검색한다.
function findClosestMenuItem(element, className) {
let currentElement = element.parentElement; // 현재 element의 부모 element부터 시작
while (currentElement) {
if (currentElement.classList.contains(className)) {
return currentElement; // 'menu-item' 클래스를 찾으면 해당 element 반환
}
currentElement = currentElement.parentElement; // 상위 element로 이동
}
return null; // 'menu-item' 클래스를 가진 element를 찾지 못하면 null 반환
}
function onClickSubMenuItem(e) {
// 클릭된 요소 가져오기
const clickedElement = e.target;
// data-url 속성 값 가져오기
const dataUrl = clickedElement.dataset.url;
goUrl(dataUrl, '${menuId}');
}
</script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<style type="text/css">
<!--
body
{
background-image: url(${pageContext.request.contextPath}/images/admins/left_bak.jpg);
margin-left:0;
margin-top:0;
margin-right:0;
margin-bottom:0;
}
img { border:0; }
-->
</style>
</head>
<body>
<table width="244" border="0" cellpadding="0" cellspacing="0" >
<!-- <tr height=10><td colspan="3"><img src="/admins/img/left_top_border.gif"></td></tr>
<tr height=30><td colspan="3"><img src="/admins/img/user/left_title.gif"></td></tr>-->
<tr>
<td width="244" height="668" valign="top" background="${pageContext.request.contextPath}/images/admins/left_bak.jpg">
<table>
<tr>
<td><img src="${pageContext.request.contextPath}/images/admins/constructionProjectManagement/1_tit_01.gif" width="244" height="62" /></td>
</tr>
<tr>
<td>
<div class="menu-item active">
<span style="cursor:hand" onClick="javascript:goUrl('construction-project-statistics-index', '${menuId}')"><img src="${pageContext.request.contextPath}/images/renew/arrow-right.png" /> &nbsp;건설현장 통계</span>
</div>
</td>
</tr>
</table>
</td>
</tr>
<!-- <tr><td colspan="3">&nbsp;</td></tr>
<tr height=177><td colspan="3"><img src="/admins/img/left_logo.gif"></td></tr> -->
</table>
</body>
</html>

View File

@ -0,0 +1,92 @@
<%@ 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="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원 비밀번호 변경</title>
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/jquery/jquery.form.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/passChange.js"></script>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script>
//비밀번호변경
function inputCheck(){
//alert(document.passCh.passwordch.value);
var f = document.adminPassChange;
//alert(f.passwordch.value);
if(fnCheckPassch(f.passChange.value)){
f.hiddenChPass.value = hex_sha256(f.passChange.value).substring(0,20);
var options = {
url : "${pageContext.request.contextPath}/admins/user/passChange_save.json",
contentType : "application/x-www-form-urlencoded;charset=UTF-8",
type : "post",
dataType : "json",
async : false,
success : function(json){
if (json.flag) {
alert("정상적으로 수정 되었습니다.");
window.close();
} else {
alert("수정 중에 오류가 발생하였습니다. 다시 시도해주세요");
}
},
error : function(response){
alert("수정 중에 오류가 발생하였습니다. 다시 시도해주세요");
}
};
try{
$("#adminPassChange").ajaxSubmit(options);
}catch(e){
alert("error= " + e);
}
}
}
//pass check
//비밀번호변경 check
function fnCheckPassch(pass){
var f = document.adminPassChange;
if(!/^[a-zA-Z0-9]{10,25}$/.test(pass)){
alert("비밀번호는 숫자와 영문자 조합으로 10~15 자리를 사용해야 합니다. ");
return false;
}
var chk_num = pass.search(/[0-9]/g);
var chk_eng = pass.search(/[a-z]/ig);
if(chk_num < 0 || chk_eng < 0){
alert("비밀번호는 숫자와 영문자를 혼용하여야 합니다.");
return false;
}
return true;
}
</script>
</head>
<form id="adminPassChange" name="adminPassChange" method="post">
<input type="hidden" id="userId" name="userId" value="${userId}" />
<input type="hidden" id="hiddenChPass" name="hiddenChPass" value="" />
<body>
<table id="Table_Main" width="100%" height=40 border=0 cellpadding=1 cellspacing=1 >
<tr height=25 bgcolor="#F5F5F5" >
<td align=center class="list_head2" width="150">아이디</td>
<td align=center bgcolor="#FFFFFF"><c:out value="${userId}" /></td>
</tr>
<tr height=25 bgcolor="#F5F5F5" >
<td align=center class="list_head2" width="150">변경할 비밀번호</td>
<td align=center bgcolor="#FFFFFF"><input type="text" id="passChange" name="passChange" maxlength="15"></td>
</tr>
<tr>
<td colspan="2" class="list_head"><font color="red"> * 비밀번호는 숫자와 영문자 조합으로 10~15 자리를 사용해야 합니다.</font></td>
</tr>
<tr>
<td colspan="2" align="center"><a href="#" onClick="inputCheck()"><img src="${pageContext.request.contextPath}/images/admins/cus_bnt_save.gif"></a></td>
</tr>
</table>
</body>
</form>
</html>

View File

@ -16,7 +16,7 @@ var waitWin;
727보다 크게 하는 경우는 문제 없습니다.
-->
<iframe src="${pageContext.request.contextPath}/admins/${menuId}/${pId}.do" frameborder="0" height="650" width="1200" scrolling="yes" name="iframeMain" style="overflow-x: hidden;"></iframe>
<iframe src="${pageContext.request.contextPath}/admins/${menuId}/${pId}.do?isFirst=true" frameborder="0" height="650" width="1200" scrolling="yes" name="iframeMain" style="overflow-x: hidden;"></iframe>
</body>
</html>

View File

@ -2,7 +2,7 @@
<html>
<script src="/admins/js/embedControl.js"></script>
<body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 bgcolor=#000000>
<!-- START : Ç÷¡½¬ ----------------------------------------------------------------------------->
<!-- START : 플래쉬 ----------------------------------------------------------------------------->
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!-- <tr>
<td width="690" height="136">
@ -16,6 +16,7 @@
<td width="244" valign="top"><img src="img/top_main.gif" width="244" height="135" border="0" usemap="#Map" /></td>
<!--- ž¸Þ´º ½ÃÀÛ --->
<td width="690" valign="top"><img src="img/top_menu.gif" width="690" height="135" border="0" usemap="#Map2" /></td>
<td valign="bottom"><span class="top-menu-item"><a href="/admins/main/main.do?menuId=constructionProjectManagement&pId=construction-project-statistics-index">건설현장 관리</a></span></td>
<!--- ž¸Þ´º ³¡ --->
</tr>
</table>
@ -34,6 +35,6 @@
<area shape="rect" coords="500,92,556,121" href="#" />
<area shape="rect" coords="566,93,681,121" href="#" />
</map>
<!-- END : Ç÷¡½¬ ----------------------------------------------------------------------------->
<!-- END : 플래쉬 ----------------------------------------------------------------------------->
</body>
</html>

View File

@ -9,6 +9,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>국토지반정보 포털 관리시스템</title>
<link rel="stylesheet" type="text/css" href="cid:css-53323fa9-339e-4d76-9618-79b8e59931a3@mhtml.blink" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/admins/style.css">
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/admin_dashboard.css">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script src="${pageContext.request.contextPath}/js/admins/user.js"></script>
@ -140,6 +141,7 @@ document.addEventListener('keyup', function(e) {
</td>
<td width="690" valign="top"><img src="${pageContext.request.contextPath}/images/admins/frame/top_menu.gif" width="690" height="135" border="0" usemap="#Map2" /></td>
<td valign="bottom"><span class="top-menu-item"><a href="/admins/main/main.do?menuId=constructionProjectManagement&pId=construction-project-statistics-index">건설현장 관리</a></span></td>
<!--- 탑메뉴 끝 --->
</tr>
</tbody></table>

View File

@ -5,6 +5,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>국토지반정보 포털 관리시스템</title>
<link rel="stylesheet" HREF="${pageContext.request.contextPath}/css/admins/style.css" type="text/css">
<script src="${pageContext.request.contextPath}/js/jquery/jquery-1.10.2.min.js"></script>
<script>
var context = "${pageContext.request.contextPath}";
@ -111,6 +112,7 @@ document.addEventListener('keyup', function(e) {
</a>
</td>
<td width="690" valign="top"><img src="${pageContext.request.contextPath}/images/admins/frame/top_menu.gif" width="690" height="135" border="0" usemap="#Map2" /></td>
<td valign="bottom"><span class="top-menu-item"><a href="/admins/main/main.do?menuId=constructionProjectManagement&pId=construction-project-statistics-index">건설현장 관리</a></span></td>
<!--- 탑메뉴 끝 --->
</tr>
</table>

View File

@ -154,21 +154,30 @@ $(function(){
<!-- END : list head ----------------------------------------------------------------------------->
<!-- REPEAT TABLE -->
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.companyName}</td>
<td>${resultList.upjong}</td>
<td>${resultList.companyRegistNo}</td>
<td>${resultList.email}</td>
<td>${resultList.datetimes}</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','${resultList.cls}')" style="cursor:hand">
</td>
</tr>
</c:forEach>
<c:choose>
<c:when test="${empty resultList}">
<tr height=28 align="center">
<td colspan="9"><span style="color:red;">개인정보보호를 위해 좌측 '일반사용자관리'를 눌러주십시오.</span></td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${resultList}" var="resultList" varStatus="status">
<tr height=28 bgcolor="#FFFFFF" class="list_content" align="center">
<td>${resultList.num}</td>
<td>${resultList.userid}</td>
<td>${resultList.userName}</td>
<td>${resultList.companyName}</td>
<td>${resultList.upjong}</td>
<td>${resultList.companyRegistNo}</td>
<td>${resultList.email}</td>
<td>${resultList.datetimes}</td>
<td>
<img src="${pageContext.request.contextPath}/images/admins/zoom.gif" onClick="javascript:openDetail('${resultList.userid}','${resultList.cls}')" style="cursor:hand">
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<!-- END OF REPEAT TABLE -->
</table>

View File

@ -21,6 +21,8 @@ a.navi:link {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-de
a.navi:visited {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;}
a.navi:hover {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: underline; line-height:150%; }
/* 목록 헤드와 내용 */
.list_head { font-size:9pt; font-family: ; font-weight:bold; line-height:150%; color:#B64E0F; }
.list_head2 { font-size:9pt; font-family: ; font-weight:bold; line-height:150%; color:#1180B5; }
@ -680,4 +682,39 @@ a:hover {font-family: "굴림체"; font-size: 9pt; color: #FF8000; text-decora
}
}
}
/** 헤더 */
.top-menu-item {
display: inline-block;
width: max-content;
margin-bottom: 17px;
cursor: pointer;
&>a {
text-decoration: none;
color: #ffffff;
font-weight: 600;
font-size: 18px;
opacity: 0.91;
&:link {
text-decoration: none;
color: #ffffff;
}
&:visited {
text-decoration: none;
color: #ffffff;
}
&:hover {
text-decoration: none;
color: #ffffff;
}
}
&::before {
content:' | ';
color: #ffffff;
opacity: 0.4;
padding-right: 4px;
font-weight: 100;
font-size: 17px;
}
}

View File

@ -849,4 +849,39 @@ a:hover {
cursor: pointer;
}
/** 헤더 */
.top-menu-item {
display: inline-block;
width: max-content;
margin-bottom: 17px;
cursor: pointer;
}
.top-menu-item > a {
text-decoration: none;
color: #ffffff;
font-weight: 600;
font-size: 18px;
opacity: 0.91;
}
.top-menu-item > a:link {
text-decoration: none;
color: #ffffff;
}
.top-menu-item > a:visited {
text-decoration: none;
color: #ffffff;
}
.top-menu-item > a:hover {
text-decoration: none;
color: #ffffff;
}
.top-menu-item::before {
content: " | ";
color: #ffffff;
opacity: 0.4;
padding-right: 4px;
font-weight: 100;
font-size: 17px;
}
/*# sourceMappingURL=style.css.map */

View File

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["sass/style.scss"],"names":[],"mappings":";AAAA;AACA;EAAM;;;AACN;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EAAY;EAAoB;EAAiB;EAAgB;EAAkB;;;AACnF;EAAc;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC1F;EAAgB;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC5F;EAAc;EAAoB;EAAiB;EAAgB;EAA4B;;;AAE/F;AACA;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAkB;EAAe;EAAkB;EAAkB;EAAkB;;;AACvF;EAAiB;EAAe;EAAkB;EAAkB;;;AAEpE;AACA;EAAY;EAAe;;;AAC3B;EAAY;EAAe;;;AAC3B;EAAe;EAAe;EAAkB;;;AAEhD;AACA;EAAY;;;AACZ;EAAU;;;AACV;EAAY;EAA0B;EAAsB;EAAkB;EAAoB;;;AAClG;EAAW;EAAe;EAA0B;EAAkB;;;AACtE;EAAW;EAAe;;;AAC1B;EAAW;EAAe;EAAyB;EAAqB;EAAoB;EAA2B;EAAc;;;AACrI;EAAW;EAAe;EAAyB;EAAoB;;;AACvE;EAAe;EAA0B;EAAsB;EAAkB;EAAoB;;;AAErG;AACA;EAAU;EAAoB;EAAgB;EAAgB;EAAuB;;;AACrF;EAAY;EAAoB;EAAgB;EAAgB;EAAuB;;;AACvF;EAAW;EAAoB;EAAgB;EAAgB;EAA4B;;;AAE3F;AACA;EAAY;EAAe;EAAkB;EAAe;;;AAC5D;EAAW;EAAe;EAAkB;;;AAG5C;AACA;EAAc;EAAe;EAAkB;EAAkB;EAAkB;;;AACnF;EAAgB;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACpG;EAAiB;EAAe;EAAkB;EAAkB;EAAe;;;AACnF;EAAe;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACnG;EAAkB;EAAe;EAAkB;EAAkB;;;AAErE;AACA;EAAa;EAAa;EAAiC;EAAwE;EAAwB;EAAiB;EAAkB;EAAkB;EAAkB;;;AAClO;EAAY;EAAa;EAAuB;EAAmB;EAAY;;;AAE/E;AACA;EAAa;;;AACb;EAAgB;EAAyB;EAAqB;;;AAE9D;AACA;EACI;EACH;EACG;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACA;EACA;;;AAEL;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;;AAOpB;EACI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;AAwEA;;AAvEA;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGQ;EACI;;AACA;EACI;;AAOhB;EACI;;AAIY;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AAQ5B;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAIJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;;;AAMZ;AACI;AAmBA;AA8IA;AAsCA;;AAtMA;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;EACA;;AAIJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACK;EACA;EACA;EACA;EACA;;AAEL;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEJ;EACI;EACC;EACA;EACA;EACA;;AAEL;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACC;;AAGL;EACI;EACC;EACA;EACA;EACA;;AAKL;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACK;EACD;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACG;EACC;;AAIJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACG;;;AAIP;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACD;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EAEA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIA;EACC;;AACA;EACC;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;;AACA;EACC;;AAQJ;EACC;EACA;;AACA;EACC;EACA;EACA","file":"style.css"}
{"version":3,"sourceRoot":"","sources":["sass/style.scss"],"names":[],"mappings":";AAAA;AACA;EAAM;;;AACN;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EAAY;EAAoB;EAAiB;EAAgB;EAAkB;;;AACnF;EAAc;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC1F;EAAgB;EAAoB;EAAiB;EAAgB;EAAuB;;;AAC5F;EAAc;EAAoB;EAAiB;EAAgB;EAA4B;;;AAI/F;AACA;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAe;EAAe;EAAkB;EAAkB;EAAkB;;;AACpF;EAAkB;EAAe;EAAkB;EAAkB;EAAkB;;;AACvF;EAAiB;EAAe;EAAkB;EAAkB;;;AAEpE;AACA;EAAY;EAAe;;;AAC3B;EAAY;EAAe;;;AAC3B;EAAe;EAAe;EAAkB;;;AAEhD;AACA;EAAY;;;AACZ;EAAU;;;AACV;EAAY;EAA0B;EAAsB;EAAkB;EAAoB;;;AAClG;EAAW;EAAe;EAA0B;EAAkB;;;AACtE;EAAW;EAAe;;;AAC1B;EAAW;EAAe;EAAyB;EAAqB;EAAoB;EAA2B;EAAc;;;AACrI;EAAW;EAAe;EAAyB;EAAoB;;;AACvE;EAAe;EAA0B;EAAsB;EAAkB;EAAoB;;;AAErG;AACA;EAAU;EAAoB;EAAgB;EAAgB;EAAuB;;;AACrF;EAAY;EAAoB;EAAgB;EAAgB;EAAuB;;;AACvF;EAAW;EAAoB;EAAgB;EAAgB;EAA4B;;;AAE3F;AACA;EAAY;EAAe;EAAkB;EAAe;;;AAC5D;EAAW;EAAe;EAAkB;;;AAG5C;AACA;EAAc;EAAe;EAAkB;EAAkB;EAAkB;;;AACnF;EAAgB;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACpG;EAAiB;EAAe;EAAkB;EAAkB;EAAe;;;AACnF;EAAe;EAAe;EAAkB;EAAkB;EAAe;EAAkB;;;AACnG;EAAkB;EAAe;EAAkB;EAAkB;;;AAErE;AACA;EAAa;EAAa;EAAiC;EAAwE;EAAwB;EAAiB;EAAkB;EAAkB;EAAkB;;;AAClO;EAAY;EAAa;EAAuB;EAAmB;EAAY;;;AAE/E;AACA;EAAa;;;AACb;EAAgB;EAAyB;EAAqB;;;AAE9D;AACA;EACI;EACH;EACG;EACA;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACC;EACA;EACA;EACA;EACA;;;AAEL;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AACA;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;;AAOpB;EACI;;;AAEJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;AAwEA;;AAvEA;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGQ;EACI;;AACA;EACI;;AAOhB;EACI;;AAIY;EACI;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;EACA;;AAQ5B;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAIJ;EACI;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AACA;EACI;;;AAMZ;AACI;AAmBA;AA8IA;AAsCA;;AAtMA;EACI;EACA;EACA;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;EACA;;AAIJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACK;EACA;EACA;EACA;EACA;;AAEL;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;;AACA;EACI;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACG;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEH;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAEJ;EACI;EACC;EACA;EACA;EACA;;AAEL;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;EACC;;AAGL;EACI;EACC;EACA;EACA;EACA;;AAKL;EACI;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACK;EACD;EACA;EACA;EACA;EACA;;;AAMJ;AAAA;EAEI;;AAEJ;EACI;EACA;EACA;;AAEJ;EACI;;AAEJ;EACG;EACC;;AAIJ;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEJ;EACG;;;AAIP;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACD;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EAEA;EACA;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIA;EACC;;AACA;EACC;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;;AACA;EACC;;AAQJ;EACC;EACA;;AACA;EACC;EACA;EACA;;;AAQH;AACA;EACC;EACA;EACG;EACH;;AACA;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AAED;EACC;EACA;;AAED;EACC;EACA;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA","file":"style.css"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because it is too large Load Diff