This commit is contained in:
com02 2021-11-18 19:05:15 +09:00
commit 431ec0b3fd
28 changed files with 458 additions and 1908 deletions

View File

@ -54,36 +54,4 @@ public interface RentService
*/
public Map<String, String> getRentStats(String mbInfoId);
//
// /**
// * 반납 연기 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listPostpones(DataApiReqVO reqVO);
//
// /**
// * 대출 취소 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO);
//
// /**
// * 대출 예약 목록을 조회한다.
// *
// * @param reqVO
// * @return
// */
// public DataApiResVO listReservations(DataApiReqVO reqVO);
//
// public DataApiResVO cancelReservations(DataApiReqVO reqVO);
//
// public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO);
//
// public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO);
}

View File

@ -1,89 +0,0 @@
package nlib.col.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import nlib.restful.DataApi;
import nlib.restful.service.DataApiReqVO;
import nlib.restful.service.DataApiResVO;
@Repository("rentDAO_BK")
public class RentDAO_BK extends DataApi
{
private static final Logger log = LoggerFactory.getLogger(RentDAO.class);
/**
* 자원의 URI
*/
public static final String RESOURCE_URI = "/uac/service/col/rent";
/**
* 대출 목록 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 반납 연기 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listPostpones(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 취소 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
/**
* 대출 예약 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listReservations(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/list");
return request(reqVO);
}
public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
return null;
}
/**
* 열람 요청 목록을 조회한다.
*
* @param reqVO
* @return
*/
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read/list");
return request(reqVO);
}
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
reqVO.setReqUrl(RESOURCE_URI + "/read");
return request(reqVO);
}
}

View File

@ -232,57 +232,4 @@ public class RentServiceImpl implements RentService
return retMap;
}
//
// /*
// * 반납 연기 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listPostpones(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listPostpones(DataApiReqVO reqVO) {
// return rentDAO.listPostpones(reqVO);
// }
// /*
// * 대출 취소 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listCanceledRentItems(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
// return rentDAO.listCanceledRentItems(reqVO);
// }
//
// /*
// * 대출 예약 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listReservations(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listReservations(DataApiReqVO reqVO) {
// return rentDAO.listReservations(reqVO);
// }
//
// public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
// return null;
// }
//
// /*
// * 열람 요청 목록을 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
// return rentDAO.listRequestsForViewingItem(reqVO);
// }
// /*
// * 열람 요청 상세 조회한다.
// *
// * (non-Javadoc)
// * @see nlib.col.service.RentService#listRequestsForViewingItem(nlib.restful.service.DataApiReqVO)
// */
// public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
// return rentDAO.selectRequestInfoForViewingItem(reqVO);
// }
}

View File

@ -63,6 +63,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/js/**")
.antMatchers("/temp/**")
.antMatchers("/favicon/**")
.antMatchers("/html/**")
;
}

View File

@ -195,7 +195,7 @@
MB_INFO
SET
LEAVE_SITE_DATE = DATE_FORMAT(CURDATE(), '%Y%m%d')
,LOGIN_USER_ID=#{loginUserId} + '-' + {mbInfoId}
,LOGIN_USER_ID= CONCAT(#{loginUserId},'-',#{mbInfoId})
,STATUS = "D"
,BIRTHDAY = NULL
,ZIP_CODE = NULL

View File

@ -40,7 +40,7 @@ $( document ).ready(function() {
$("[id^=chk_item_]").prop("disabled", true);
$("[id^=chk_all_]").prop("disabled", true);
$("[id=selMngOrgCd]").change(function(obj) {
$("[name=selMngOrgCd]").change(function(obj) {
var checked = $(this).prop("checked");
var mngOrgCd = $(this).val();
@ -280,7 +280,7 @@ $(document).ready(function() {
<c:set var="mngOrgCdCnt" value="0" />
<!-- 문화원 시작 -->
<h3><label for="selMngOrgCd"><input type="radio" id="selMngOrgCd" name="selMngOrgCd" value="${cart.mngOrgCd}"><span id="_${cart.mngOrgCd}_nm">${cart.mngOrgNm }</span> (<span class="count" id="_${cart.mngOrgCd}_cnt"></span>)</label></h3>
<h3><label for="selMngOrgCd_${cart.mngOrgCd}"><input type="radio" id="selMngOrgCd_${cart.mngOrgCd}" name="selMngOrgCd" value="${cart.mngOrgCd}"><span id="_${cart.mngOrgCd}_nm">${cart.mngOrgNm }</span> (<span class="count" id="_${cart.mngOrgCd}_cnt"></span>)</label></h3>
<div class="list-cart">
<div class="list t-tit-line">
<div class="t-chk"><input type="checkbox" id="chk_all_${cart.mngOrgCd }" name="chk_all_${cart.mngOrgCd }" onclick="fn_selectAll('${cart.mngOrgCd}')"><label for="chk_all_${cart.mngOrgCd }" style="display:none">전체자료선택</label></div>
@ -381,18 +381,18 @@ $(document).ready(function() {
</div>
<div class="right">
<c:if test='${cartTypeCd == "1"}'>
<button type="button" name="btnApp" id="btnApp" class="btn btn-color" onclick="fn_appRent()">대출신청/예약 <span id="appCnt" name="appCnt" class="count">(0)</span></button>
<button type="button" name="btnApp" id="btnApp" class="btn btn-color" onclick="fn_appRent()">대출신청/예약 <span id="appCnt" class="count">(0)</span></button>
<script>BTN_APP_PREFIX = "대출신청/예약"; </script>
</c:if>
<c:if test='${cartTypeCd == "2"}'>
<button type="button" name="btnApp" id="btnApp" class="btn btn-color" onclick="fn_appVisit()">열람신청 <span id="appCnt" name="appCnt" class="count">(0)</span></button>
<button type="button" name="btnApp" id="btnApp" class="btn btn-color" onclick="fn_appVisit()">열람신청 <span id="appCnt" class="count">(0)</span></button>
<script>BTN_APP_PREFIX = "열람신청"; </script>
</c:if>
</div>
</div>
</c:if>
</div>
</div>
</div>

View File

@ -239,7 +239,7 @@ function fn_listPops(typeDivCd) {
</c:if>
<!-- 섹션6 -->
<c:if test="${fn:length(listOnline) > -1 }">
<c:if test="${fn:length(listOnline) > 0 }">
<section class="sec6">
<h2 class="blind">온라인자료관 섹션영역</h2>
<div class="inner">

View File

@ -195,7 +195,7 @@ $( document ).ready(function() {
<div class="contents row-bottom">
<div class="list-box noti-box">
<div class="title">
<span class="count">총 <em name="itemsCount" id="itemsCount">0</em>건</span>
<span class="count">총 <em id="itemsCount">0</em>건</span>
<div class="text">
<p>- 최근 한달동안 발송된 알림 내역만 보관됩니다.</p>
</div>
@ -220,6 +220,6 @@ $( document ).ready(function() {
<form name="articleForm" id="articleForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageSize" id="pageSize" value="${pageSize }" />
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" />
<input type="hidden" name="articleId" id="articleId" title="게시글번호" value="" readonly />
<input type="hidden" name="articleId" id="articleId" title="게시글번호" value="" />
</form>

View File

@ -151,25 +151,38 @@
} else {
$("div.list-data li.no-result").hide();
$( "div.list-data").empty();
var t_title = "";
t_title += "<div class=\"list t-tit-line\">"
t_title += "<div class=\"t-chk\"><input type=\"checkbox\" id=\"allChk\" onclick=\"selectAllChk();\"></div>"
t_title += "<div class=\"t-cultural\">문화원</div>"
t_title += "<div class=\"t-data\">자료정보</div>"
t_title += "<div class=\"t-btn\">이용</div>"
t_title += "</div>"
t_title += "<li class=\"no-result\" style=\"display:none;\">"
t_title += "<span>검색결과가 없습니다.</span>"
t_title += "</li>"
$( "div.list-data").append(t_title);
// 출력
$.each(jsonObj.data,function(key,obj) {
var t_data = "";
t_data += "<div class=\"img\"><a><img src=\"" + obj.rprsThumbUrlWithDefault + "\"</a>";
t_data += "<span id=\"favorites_" + obj.masterId + "\" class=\"favorites\" onclick=\"deleteInterests('single','" + obj.masterId + "');\"><img src=\"/images/icon/icon-cart-Favorites-on.png\" class=\"off\" alt=\"즐겨찾기 아이콘\"><img src=\"/images/icon/icon-cart-Favorites.png\" class=\"on\" alt=\"즐겨찾기 아이콘\"></span></div>";
t_data += "<div class=\"type\">"
if(obj.openDivCd != "3")
if(!fn_isEmpty(obj.openDivCd) && obj.openDivCd != "3" && obj.operReadRangeCd == "01" && obj.digitalReadYn == 'Y')
{
t_data += "<span class=\"online\">온라인열람</span>"
}
if(obj.operOutRangeCd != "02")
if(!fn_isEmpty(obj.openDivCd) && obj.openDivCd != "3" && !fn_isEmpty(obj.operOutRangeCd) && obj.operOutRangeCd != "02")
{
t_data += "<span class=\"loan\">대출</span>"
}
if(obj.operReadRangeCd != "03")
if(!fn_isEmpty(obj.openDivCd) && obj.openDivCd != "3" && !fn_isEmpty(obj.operReadRangeCd) && obj.operReadRangeCd != "03")
{
t_data += "<span class=\"visit\">방문열람</span>"
}
if(obj.openDivCd != "3" && obj.operOutRangeCd != "02" && obj.operReadRangeCd != "03")
if(!(!fn_isEmpty(obj.openDivCd) && obj.openDivCd != "3") && !(obj.operReadRangeCd == "01" && obj.digitalReadYn == 'Y') && !(!fn_isEmpty(obj.operOutRangeCd) && obj.operOutRangeCd != "02") && !(!fn_isEmpty(obj.operReadRangeCd) && obj.operReadRangeCd != "03"))
{
t_data += "<span class=\"etc\">기타</span>"
}
@ -307,15 +320,6 @@
</div>
<div class="list-data-wrap">
<div class="list-data">
<div class="list t-tit-line">
<div class="t-chk"><input type="checkbox" id="allChk" onclick="selectAllChk();"></div>
<div class="t-cultural">문화원</div>
<div class="t-data">자료정보</div>
<div class="t-btn">이용</div>
</div>
<li class="no-result" style="display:none;">
<span>검색결과가 없습니다.</span>
</li>
</div>
<ul id="paging" class="paging"></ul>
<div class="btn-box">

View File

@ -1,168 +1,137 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script>
$(document).ready(function(){
var cnt=${cnt};
if(cnt > 0) {
fn_showLayerPop();
} else {
window.close();
}
<%//비밀번호 찾기 페이지에서 다시 돌아왔을 경우 %>
var previousPage = "${vo.previousPage}";
if(previousPage == "alreadySignUpPopup")
{
$("#alreadySingUpForm").css("display","none");
$("#selectAccountForm").css("display","block");
}
});
function selectAccount(mbInfoId,name,email)
{
$("#alreadySingUpForm").css("display","none");
$("#mbInfoId").val(mbInfoId);
$("#selectName").text(name);
$("#selectEmail").text(email);
$("#nameTemp").val(name);
$("#emailTemp").val(email);
$("#selectAccountForm").css("display","block");
}
function goPrevious()
{
$("#selectAccountForm").css("display","none");
$("#alreadySingUpForm").css("display","block");
}
function accountLink()
{
password=$("#selectPassword").val();
if(password == "")
{
alert("비밀번호 입력이 필요합니다.");
return false;
}
$.ajax({
url : "${pageContext.request.contextPath}/member/snsAccountLink.ajax",
type : "POST",
async: false,
data : {"mbInfoId":$("#mbInfoId").val()
,"password":password
,"name":$("#nameTemp").val()
,"email":$("#emailTemp").val()
},
success : function(result){
if(result=="link")
{
alert("계정이 통합되었습니다.");
location.href="${pageContext.request.contextPath}/member/snsAccountLinkLogin.do"
}else if(result=="mismatch")
{
alert("올바르지 않은 비밀번호입니다.");
}
},error : function(){
}
})
}
</script>
</head>
<body>
<form id="alreadySingUpForm" name="alreadySingUpForm">
<!-- 계정연결 팝업 -->
<div class="pop-login-connect">
<div class="row Title">
<p>계정연결</p>
<h3>서비스에 이미 가입된<br>계정이 있습니다.</h3>
</div>
<div class="inner">
<div class="row Text">
<p>계정연결을 통해 간편하게 <span>로그인할 계정</span>을 선택하세요.</p>
</div>
<div class="row First">
<c:forEach items="${result}" var="result" varStatus="status">
<div class="Btn" onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.email}"/>');">
<button type="button"><span class="name"><c:out value="${result.name}"/></span><span class="mail"><c:out value="${result.email}"/></span></button>
</div>
</c:forEach>
</div>
<div class="row btn">
<p><a href="javascript:void(0);" class="cancel" onclick="fn_closeLayerPopup();">아니요, 내가 아닙니다.</a></p>
</div>
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
</div>
<div class="Bg"></div>
</div>
</form>
<form id="selectAccountForm" name="selectAccountForm" style="display:none;">
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value='${vo.mbInfoId }'/>">
<input type="hidden" id="nameTemp" name="nameTemp" value="<c:out value='${vo.nameTemp }'/>">
<input type="hidden" id="emailTemp" name="emailTemp" value="<c:out value='${vo.emailTemp }'/>">
<input type="hidden" id="mobileNo" name="mobileNo" value="<c:out value='${vo.mobileNo }'/>">
<input type="hidden" id="previousPage" name="previousPage" value="alreadySignUpPopup">
<!-- 계정연결 비밀번호 팝업 -->
<div class="pop-login-password">
<div class="row Title">
<p>계정연결</p>
<h3>비밀번호 입력</h3>
</div>
<div class="inner">
<div class="row Text">
<p>선택한 계정의 <span>비밀번호</span>를 입력해주세요!</p>
</div>
<div class="row First">
<div class="Btn"><button type="button"><span class="name" id="selectName" name="selectName"><c:out value="${vo.nameTemp}"/></span><span class="mail" id="selectEmail" name="selectEmail"><c:out value="${vo.emailTemp}"/></span></button></div>
<div class="passwd"><input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"></div>
</div>
<div class="row btn">
<p><a href="javascript:void(0);" class="cancel" onclick="forgetPassword('selectAccountForm');">비밀번호를 잊으셨나요? &gt;</a></p>
</div>
<div class="row btn-box">
<button type="button" class="btn btn-gray" onclick="goPrevious();" id="cancel">이전으로</button>
<button type="button" class="btn btn-color" onclick="accountLink();" >계정 연결하기</button>
</div>
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
</div>
<div class="Bg"></div>
</div>
</form>
<%-- <p1>서비스에 이미 가입된 계정이 있습니다.</p1>
<table>
<c:forEach items="${result}" var="result" varStatus="status">
<tr onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.email}"/>');">
<td><c:out value="${result.name}"/></td>
<td><c:out value="${result.email}"/></td>
</tr>
</c:forEach>
</table>
<a href="javascript:void(0);" onclick="fn_closeLayerPopup();">아니요, 내가 아닙니다.</a>
</form>
<form id="selectAccountForm" name="selectAccountForm" style="display:none;">
<p1>비밀번호 입력</p1>
<div id="accountInfo">
<input type="text" id="selectName" name="selectName" readonly><input type="text" id="selectEmail" name="selectEmail" readonly>
</div>
<input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"><br>
<a href="javascript:notAlreadySingUp();" onclick="return false;">비밀번호를 잊으셨나요?</a>
<input type="button" onclick="goPrevious();" value="이전으로"><input type="button" onclick="accountLink();" value="계정 연결하기">
<input type="hidden" id="mbInfoId" name="mbInfoId"> --%>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<script>
$(document).ready(function(){
var cnt=${cnt};
if(cnt > 0) {
fn_showLayerPop();
} else {
window.close();
}
<%//비밀번호 찾기 페이지에서 다시 돌아왔을 경우 %>
var previousPage = "${vo.previousPage}";
if(previousPage == "alreadySignUpPopup")
{
$("#alreadySingUpForm").css("display","none");
$("#selectAccountForm").css("display","block");
}
});
function selectAccount(mbInfoId,name,email)
{
$("#alreadySingUpForm").css("display","none");
$("#mbInfoId").val(mbInfoId);
$("#selectName").text(name);
$("#selectEmail").text(email);
$("#nameTemp").val(name);
$("#emailTemp").val(email);
$("#selectAccountForm").css("display","block");
}
function goPrevious()
{
$("#selectAccountForm").css("display","none");
$("#alreadySingUpForm").css("display","block");
}
function accountLink()
{
password=$("#selectPassword").val();
if(password == "")
{
alert("비밀번호 입력이 필요합니다.");
return false;
}
$.ajax({
url : "${pageContext.request.contextPath}/member/snsAccountLink.ajax",
type : "POST",
async: false,
data : {"mbInfoId":$("#mbInfoId").val()
,"password":password
,"name":$("#nameTemp").val()
,"email":$("#emailTemp").val()
},
success : function(result){
if(result=="link")
{
alert("계정이 통합되었습니다.");
location.href="${pageContext.request.contextPath}/member/snsAccountLinkLogin.do"
}else if(result=="mismatch")
{
alert("올바르지 않은 비밀번호입니다.");
}
},error : function(){
}
})
}
</script>
<form id="alreadySingUpForm" name="alreadySingUpForm">
<!-- 계정연결 팝업 -->
<div class="pop-login-connect">
<div class="row Title">
<p>계정연결</p>
<h3>서비스에 이미 가입된<br>계정이 있습니다.</h3>
</div>
<div class="inner">
<div class="row Text">
<p>계정연결을 통해 간편하게 <span>로그인할 계정</span>을 선택하세요.</p>
</div>
<div class="row First">
<c:forEach items="${result}" var="result" varStatus="status">
<div class="Btn" onClick="selectAccount('<c:out value="${result.mbInfoId}"/>','<c:out value="${result.name}"/>','<c:out value="${result.email}"/>');">
<button type="button"><span class="name"><c:out value="${result.name}"/></span><span class="mail"><c:out value="${result.email}"/></span></button>
</div>
</c:forEach>
</div>
<div class="row btn">
<p><a href="javascript:void(0);" class="cancel" onclick="fn_closeLayerPopup();">아니요, 내가 아닙니다.</a></p>
</div>
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
</div>
<div class="Bg"></div>
</div>
</form>
<form id="selectAccountForm" name="selectAccountForm" style="display:none;">
<input type="hidden" id="mbInfoId" name="mbInfoId" value="<c:out value='${vo.mbInfoId }'/>">
<input type="hidden" id="nameTemp" name="nameTemp" value="<c:out value='${vo.nameTemp }'/>">
<input type="hidden" id="emailTemp" name="emailTemp" value="<c:out value='${vo.emailTemp }'/>">
<input type="hidden" id="mobileNo" name="mobileNo" value="<c:out value='${vo.mobileNo }'/>">
<input type="hidden" id="previousPage" name="previousPage" value="alreadySignUpPopup">
<!-- 계정연결 비밀번호 팝업 -->
<div class="pop-login-password">
<div class="row Title">
<p>계정연결</p>
<h3>비밀번호 입력</h3>
</div>
<div class="inner">
<div class="row Text">
<p>선택한 계정의 <span>비밀번호</span>를 입력해주세요!</p>
</div>
<div class="row First">
<div class="Btn"><button type="button"><span class="name" id="selectName" name="selectName"><c:out value="${vo.nameTemp}"/></span><span class="mail" id="selectEmail" name="selectEmail"><c:out value="${vo.emailTemp}"/></span></button></div>
<div class="passwd"><input type="password" id="selectPassword" name="selectPassword" placeholder="비밀번호"></div>
</div>
<div class="row btn">
<p><a href="javascript:void(0);" class="cancel" onclick="forgetPassword('selectAccountForm');">비밀번호를 잊으셨나요? &gt;</a></p>
</div>
<div class="row btn-box">
<button type="button" class="btn btn-gray" onclick="goPrevious();" id="cancel">이전으로</button>
<button type="button" class="btn btn-color" onclick="accountLink();" >계정 연결하기</button>
</div>
<button type="button" class="login-close" onclick="fn_closeLayerPopup();"></button>
</div>
<div class="Bg"></div>
</div>
</form>

View File

@ -36,8 +36,14 @@ $(document).ready(function() {
}
});
var mailDoubleSubmitFlag = false;
function goFindPw(){
if(mailDoubleSubmitFlag)
{
alert("메일 전송중입니다. 잠시만 기다려주세요.");
return false;
}
var data = $("form[name=initPw]").serialize();
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if($("#initPw [name=email]").val() == "")
@ -52,11 +58,13 @@ function goFindPw(){
alert("이메일을 다시 확인해주세요. (예: example@mail.com)");
return false;
}
mailDoubleSubmitFlag = true;
$.ajax({
url : "${pageContext.request.contextPath}/member/initPassword.ajax",
type : "POST",
data : data,
success : function(result){
mailDoubleSubmitFlag = false;
if(result == "success")
{
alert("입력하신 이메일로 임시 비밀번호가 발송되었습니다. 메일을 확인해주세요.");
@ -80,6 +88,7 @@ function goFindPw(){
}
},error : function(){
mailDoubleSubmitFlag = false;
alert("이메일 발송에 실패하였습니다. 관리자에게 문의하여 주시기 바랍니다.");
}
})

View File

@ -237,11 +237,17 @@ $(document).ready(function() {
}
});
})
<%
//이메일 인증
%>
var mailDoubleSubmitFlag = false;
function emailCert(){
if(mailDoubleSubmitFlag)
{
alert("메일 전송중입니다. 잠시만 기다려주세요.");
return false;
}
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
@ -251,10 +257,11 @@ function emailCert(){
return false;
}
mailDoubleSubmitFlag = true;
$.ajax({
url : "${pageContext.request.contextPath}/member/emailCertNum.ajax",
type : "POST",
async: false,
async: true,
data : {"email" : $("#email").val()},
success : function(result){
alert(result.msg);
@ -264,14 +271,17 @@ function emailCert(){
$("#emailCertYn").val("N");
$("[id^='emailSuc']").css("display","none");
$("[id^='emailVrfctNo']").css("display","inline-block");
mailDoubleSubmitFlag = false;
}
if(result.emailCertYn=="N")
{
$("#emailCertYn").val("N");
$("[id^='emailSuc']").css("display","none");
mailDoubleSubmitFlag = false;
}
},error : function(){
mailDoubleSubmitFlag = false;
}
})
}
@ -308,11 +318,20 @@ function certEmailCheck(){
})
}
var mobileDoubleSubmitFlag = false;
<%
//핸드폰 인증번호 받기
%>
function mobileCert(){
if(mobileDoubleSubmitFlag)
{
alert("인증번호 전송중입니다. 잠시만 기다려주세요.");
return false;
}
mobileDoubleSubmitFlag = true;
var mobileNo = $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val();
mobileNo = mobileNo.replace(/-/gi,"");
$("#mobileNo").val(mobileNo);
@ -327,14 +346,16 @@ function mobileCert(){
$.ajax({
url : "${pageContext.request.contextPath}/member/mobileCertNum.ajax",
type : "POST",
async: false,
async: true,
data : {"mobileNo" : mobileNo},
success : function(result){
alert("인증번호가 발송됐습니다.");
$("#mobileCertYn").val("N");
$("[id^='mobileSuc']").css("display","none");
$("[id^='mobileVrfctNo']").css("display","inline-block");
mobileDoubleSubmitFlag = false;
},error : function(){
mobileDoubleSubmitFlag = false;
}
})
}
@ -466,6 +487,11 @@ function calcAge(birth) {
var age = monthDay < birthdaymd ? year - birthdayy - 1 : year - birthdayy;
return age;
}
function fn_cancel(){
document.joinForm.action ="/member/selectMemberJoiningInfo.do";
document.joinForm.submit();
}
</script>
</head>
@ -631,7 +657,7 @@ function calcAge(birth) {
</div>
<div class="btn-box">
<button type="button" class="btn btn-gray" id="cancel">취소</button>
<button type="button" class="btn btn-gray" id="cancel" onclick="fn_cancel();">취소</button>
<button type="button" class="btn btn-color" onclick="signUp();">가입하기</button>
</div>
</form>

View File

@ -124,12 +124,12 @@ function fn_search(reqStatusDivCd) {
div.attr('class', 'list');
div.append($('<div />').attr('class', 'n-cultural').html("[" + obj.mngOrgNm + "]"));
div.append($('<div />').attr('class', 'n-data').html("<a href=\"javascript:void(0)\" onclick=\"fn_viewDetail('" + obj.masterId + "')\">" + obj.title + "</a>"));
div.append($('<div />').attr('class', 'n-subscription').html('<span class="date">' + fn_formatDateStr(obj.reqDd,"-") + '</span>')); /* 신청일자 */
div.append($('<div />').attr('class', 'n-subscription').html('<span class="date">' + gfn_formatDateStr(obj.reqDd,"-") + '</span>')); /* 신청일자 */
div.append($('<div />').attr('class', 'n-visit').html(
'<span class="date">' + fn_formatDateStr(obj.hopeReqPridDtmFrom,"-") + '</span><span class="date">' + fn_formatDateStr(obj.hopeReqPridDtmTo,"-") + '</span>'
'<span class="date">' + gfn_formatDateStr(obj.hopeReqPridDtmFrom,"-") + '</span><span class="date">' + gfn_formatDateStr(obj.hopeReqPridDtmTo,"-") + '</span>'
)); /* 희망열람기간 */
div.append($('<div />').attr('class', 'n-return').html(
'<span class="date">' + fn_formatDateStr(obj.reqPsblDtmFrom,"-") + '</span><span class="date">' + fn_formatDateStr(obj.reqPsblDtmTo,"-") + '</span>'
'<span class="date">' + gfn_formatDateStr(obj.reqPsblDtmFrom,"-") + '</span><span class="date">' + gfn_formatDateStr(obj.reqPsblDtmTo,"-") + '</span>'
)); /* 방문예정일자 */
var statusHtml1 = "";
@ -141,17 +141,17 @@ function fn_search(reqStatusDivCd) {
statusHtml1 = '<span class="ti imposs">' + obj.reqStatusDivNm + '<span class="da"></span></span>';
statusHtml2 = '<button type="button" onclick="fn_cancel(\'' + obj.title + '\',\'' + obj.mngOrgCd + '\', \'' + obj.reqId + '\', \'' + obj.masterId + '\')">취소</button>';
} else if(obj.reqStatusDivCd == "A1") { // 승인
statusHtml1 = '<span class="ti poss">' + obj.reqStatusDivNm + '<span class="da">' + fn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml1 = '<span class="ti poss">' + obj.reqStatusDivNm + '<span class="da">' + gfn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml2 = '<button type="button" onclick="fn_cancel(\'' + obj.title + '\',\'' + obj.mngOrgCd + '\', \'' + obj.reqId + '\', \'' + obj.masterId + '\')">취소</button>';
} else if(obj.reqStatusDivCd == "A2") { // 반려
statusHtml1 = '<span class="ti poss">' + obj.reqStatusDivNm + '<span class="da">' + fn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml1 = '<span class="ti poss">' + obj.reqStatusDivNm + '<span class="da">' + gfn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml2 = '<button type="button" onclick="fn_reson(\'' + obj.reqId + '\')">사유</button>';
statusHtml3 = '<div id="rejected_reason_' + obj.reqId + '" style="display:none;">' + obj.rtnCont + '</div>';
} else if(obj.reqStatusDivCd == "R") { // 열람완료
statusHtml1 = '<span class="ti imposs">' + obj.reqStatusDivNm + '<span class="da">' + fn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml1 = '<span class="ti imposs">' + obj.reqStatusDivNm + '<span class="da">' + gfn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml2 = '';
} else if(obj.reqStatusDivCd == "C" || obj.reqStatusDivCd == "D") { // 취소, 미열람
statusHtml1 = '<span class="ti imposs">' + obj.reqStatusDivNm + '<span class="da">' + fn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml1 = '<span class="ti imposs">' + obj.reqStatusDivNm + '<span class="da">' + gfn_formatDateStr(obj.modDd,"-") + '</span></span>';
statusHtml2 = '';
}
@ -244,8 +244,8 @@ function fn_search(reqStatusDivCd) {
<div class="list-box visit-box">
<form name="frm" id="frm" method="post">
<input type="hidden" name="reqStatusDivCd" id="reqStatusDivCd" value="${reqStatusDivCd }" />
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="hidden" name="pageSize" id="pageSize" title="페이지크기" value="${pageSize }" size="5" maxlength="5" />
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" />
<input type="hidden" name="pageSize" id="pageSize" title="페이지크기" value="${pageSize }" />
<input type="hidden" name="masterId" id="masterId" title="페이지크기" value="" />
<div class="tab">
@ -257,7 +257,7 @@ function fn_search(reqStatusDivCd) {
</ul>
<div class="title">
<span class="count">총 <em name="itemsCount" id="itemsCount">0</em>건</span>
<span class="count">총 <em id="itemsCount">0</em>건</span>
<div class="list-search-wrap list-top">
<div class="list-select">
<select name="mngOrgCd" id="mngOrgCd" title="문화원 선택">

View File

@ -1,159 +0,0 @@
<%
/**
* <pre>
* @Class Name : listCanceledRentItems.jsp
*
* @Description : 대출 취소목록을 조회한다.
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21.
* @version 1.0
*
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">대출 취소 목록</c:set>
<!DOCTYPE html>
<html>
<head>
<title>${pageTitle}</title>
<!-- GRID -->
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
<script>
window.onload = function() {
//=======================================================
// 그리드 생성 환경설정
//=======================================================
$("#jsGrid").jsGrid({
pageSize : $("#pageSize").val(),
controller: {
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
var data = $.Deferred();
//======================================
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//======================================
var reqUrl = "${pageContext.request.contextPath}/rent/listCanceledRentItemsAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex);
var inputData = {
"searchKeyword" : searchKeyword
, "pageIndex" : pageIndex
, "pageSize": pageSize};
//--------------------------------------
// 요청 처리
//--------------------------------------
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: reqUrl,
dataType: "json",
data: JSON.stringify(inputData),
}).done(function(response){
<%
// 그리드 데이터 예시 :
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%>
data.resolve(JSON.parse(response));
});
return data.promise();
} // loadData
},
//======================================
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
//======================================
fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" },
{ title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" },
{ title:"저자", name: "author", type: "text", width: 100, align: "center"},
{ title:"출판사", name: "publisher", type: "text", width: 100, align: "center"},
{ title:"취소일자", name: "rentDate", type: "text", width: 100, align: "center"}
]
});
// 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
// 검색 버튼 클릭
$("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
//초기 자료 조회
fn_search_article();
}; // window.onload
// 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search"
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})),
'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
}
);
}
</script>
</head>
<body>
<h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm"
method="post">
<!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
</c:forEach>
</select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
</form>
</body>
</html>

View File

@ -1,170 +0,0 @@
<%
/**
* <pre>
* @Class Name : listPostpones.jsp
*
* @Description : 반납 연기 목록을 조회한다.
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 30. JSYOO 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 30.
* @version 1.0
*
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">반납 연기 목록</c:set>
<!DOCTYPE html>
<html>
<head>
<title>${pageTitle}</title>
<!-- GRID -->
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
<script>
window.onload = function() {
//=======================================================
// 그리드 생성 환경설정
//=======================================================
$("#jsGrid").jsGrid({
pageSize : $("#pageSize").val(),
controller: {
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
var data = $.Deferred();
//======================================
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//======================================
var reqUrl = "${pageContext.request.contextPath}/rent/listPostponesAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex);
var inputData = {
"searchKeyword" : searchKeyword
, "pageIndex" : pageIndex
, "pageSize": pageSize};
//--------------------------------------
// 요청 처리
//--------------------------------------
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: reqUrl,
dataType: "json",
data: JSON.stringify(inputData),
}).done(function(response){
<%
// 그리드 데이터 예시 :
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%>
data.resolve(JSON.parse(response));
});
return data.promise();
} // loadData
},
rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수
// 클릭된 행의 자료 객체
var getData = args.item;
// 추출할 컬럼의 데이터 가져오기
var articleNo = getData["articleNo"];
},
//======================================
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
//======================================
fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" },
{ title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" },
{ title:"저자", name: "author", type: "text", width: 100, align: "center"},
{ title:"출판사", name: "publisher", type: "text", width: 100, align: "center"},
{ title:"대여일", name: "rentDate", type: "text", width: 100, align: "center"},
{ title:"반납예정일", name: "retDueDate", type: "text", width: 100, align: "center"}
]
});
// 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
// 검색 버튼 클릭
$("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
//초기 자료 조회
fn_search_article();
}; // window.onload
// 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search"
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})),
'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
}
);
}
</script>
</head>
<body>
<h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm"
method="post">
<!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
</c:forEach>
</select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
<input type="button" value="대출 취소목록" onClick="location.href='${pageContext.request.contextPath}/rent/listCanceledRentItems.do'">
<input type="button" value="반납 연기" onClick="location.href='${pageContext.request.contextPath}/rent/listCanceledRentItems.do'">
</form>
</body>
</html>

View File

@ -127,9 +127,9 @@ function fn_search(bookLtRvStatusCd) {
div.attr('class', 'list');
div.append($('<div />').attr('class', 'n-cultural').html("[" + obj.mngOrgNm + "]"));
div.append($('<div />').attr('class', 'n-data').html("<a href=\"javascript:void(0)\" onclick=\"fn_viewDetail('" + obj.masterId + "')\">" + obj.title + "</a>"));
div.append($('<div />').attr('class', 'n-reservation').html(fn_formatDateStr(obj.rsrvDd,"-"))); /* 대출신청예약일자 */
div.append($('<div />').attr('class', 'n-expiry').html(fn_formatDateStr(obj.rsrvExpctDd,"-"))); /* 대출예약만료일자 */
div.append($('<div />').attr('class', 'n-return').html(fn_formatDateStr(obj.rtnExpctDd,"-"))); /* 반납일자 */
div.append($('<div />').attr('class', 'n-reservation').html(gfn_formatDateStr(obj.rsrvDd,"-"))); /* 대출신청예약일자 */
div.append($('<div />').attr('class', 'n-expiry').html(gfn_formatDateStr(obj.rsrvExpctDd,"-"))); /* 대출예약만료일자 */
div.append($('<div />').attr('class', 'n-return').html(gfn_formatDateStr(obj.rtnExpctDd,"-"))); /* 반납일자 */
var statusHtml = "";
if(obj.bookLtRvStatusCd == null) {
@ -137,7 +137,7 @@ function fn_search(bookLtRvStatusCd) {
} else if(obj.bookLtRvStatusCd.startsWith("A")) {
statusHtml = "<button type='button' onclick='fn_cancel(\"" + obj.title + "\",\"" + obj.bookLtRvStatusNm + "\",\"" + obj.mngOrgCd + "\", \"" + obj.rsrvId + "\")'>취소</button>";
} else if(obj.bookLtRvStatusCd.startsWith("R")) {
statusHtml = "&nbsp;<span>" + fn_formatDateStr(obj.rtnDd,"-") + "</span>";
statusHtml = "&nbsp;<span>" + gfn_formatDateStr(obj.rtnDd,"-") + "</span>";
}
div.append($('<div />').attr('class', 'n-use').html("<span>" + obj.bookLtRvStatusNm + "</span>" + statusHtml));
@ -218,8 +218,8 @@ function fn_search(bookLtRvStatusCd) {
<div class="list-box loan-box">
<form name="frm" id="frm" method="post">
<input type="hidden" name="bookLtRvStatusCd" id="bookLtRvStatusCd" value="${bookLtRvStatusCd }" />
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="hidden" name="pageSize" id="pageSize" title="페이지크기" value="${pageSize }" size="5" maxlength="5" />
<input type="hidden" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" />
<input type="hidden" name="pageSize" id="pageSize" title="페이지크기" value="${pageSize }" />
<input type="hidden" name="masterId" id="masterId" title="페이지크기" value="" />
<div class="tab">
@ -232,7 +232,7 @@ function fn_search(bookLtRvStatusCd) {
</ul>
<div class="title">
<span class="count">총 <em name="itemsCount" id="itemsCount">0</em>건</span>
<span class="count">총 <em id="itemsCount">0</em>건</span>
<div class="list-search-wrap list-top">
<div class="list-select">
<select name="mngOrgCd" id="mngOrgCd" title="문화원 선택">

View File

@ -1,179 +0,0 @@
<%
/**
* <pre>
* @Class Name : listRequestsForViewingItem.jsp
*
* @Description : 열람 요청을 조회한다.
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21.
* @version 1.0
*
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">열람 요청</c:set>
<!DOCTYPE html>
<html>
<head>
<title>${pageTitle}</title>
<!-- GRID -->
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
<script type="text/javaScript" language="javascript">
window.onload = function() {
//=======================================================
// 그리드 생성 환경설정
//=======================================================
$("#jsGrid").jsGrid({
pageSize : $("#pageSize").val(),
controller: {
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
var data = $.Deferred();
//======================================
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//======================================
var reqUrl = "${pageContext.request.contextPath}/rent/listRequestsForViewingItemAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex);
var inputData = {
"searchKeyword" : searchKeyword
, "pageIndex" : pageIndex
, "pageSize": pageSize};
//--------------------------------------
// 요청 처리
//--------------------------------------
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: reqUrl,
dataType: "json",
data: JSON.stringify(inputData),
}).done(function(response){
<%
// 그리드 데이터 예시 :
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%>
data.resolve(JSON.parse(response));
});
return data.promise();
} // loadData
},
rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수
// 클릭된 행의 자료 객체
var getData = args.item;
// 추출할 컬럼의 데이터 가져오기
var articleNo = getData["articleNo"];
// 상세 내용 보기
fn_view_detail(articleNo);
},
//======================================
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
//======================================
fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" },
{ title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" },
{ title:"저자", name: "author", type: "text", width: 100, align: "center"},
{ title:"출판사", name: "publisher", type: "text", width: 100, align: "center"},
{ title:"요청일자", name: "reqDate", type: "text", width: 100, align: "center"},
{ title:"상태", name: "state", type: "text", width: 100, align: "center"},
{ title:"열람기간", name: "readingPeriod", type: "text", width: 80, align: "center"}
]
});
// 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
// 검색 버튼 클릭
$("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
//초기 자료 조회
fn_search_article();
}; // window.onload
// 선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/rent/selectRequestInfoForViewingItem.do");
$("#articleForm").submit();
}
// 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search"
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})),
'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
}
);
}
</script>
</head>
<body>
<h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm"
method="post">
<!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
</c:forEach>
</select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
</form>
</body>
</html>

View File

@ -1,187 +0,0 @@
<%
/**
* <pre>
* @Class Name : listReserVations.jsp
*
* @Description : 대출 예약 목록을 조회한다.
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 21. JSYOO 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 21.
* @version 1.0
*
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">대출 예약 목록</c:set>
<!DOCTYPE html>
<html>
<head>
<title>${pageTitle}</title>
<!-- GRID -->
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.css" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid-theme.css" />
<script src="${pageContext.request.contextPath}/js/jsgrid/nlib-jsgrid.js"></script>
<script type="text/javaScript" language="javascript">
window.onload = function() {
//=======================================================
// 그리드 생성 환경설정
//=======================================================
$("#jsGrid").jsGrid({
pageSize : $("#pageSize").val(),
controller: {
loadData: function (filter) { // 그리드에 데이터를 가져올 때 실팽되는 함수
var data = $.Deferred();
//======================================
// 요청 정보 구성 : 시작 (각 요청에 맞게 조정)
//======================================
var reqUrl = "${pageContext.request.contextPath}/rent/listReservationsAjax.do";
var searchKeyword = document.articleForm.searchKeyword.value;
var pageIndex = ( filter && filter.pageIndex ? filter.pageIndex : $("#pageIndex").val());
var pageSize = ( filter && filter.pageSize ? filter.pageSize : $("#pageSize").val());
$("#pageIndex").val(pageIndex);
var inputData = {
"searchKeyword" : searchKeyword
, "pageIndex" : pageIndex
, "pageSize": pageSize};
//--------------------------------------
// 요청 처리
//--------------------------------------
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: reqUrl,
dataType: "json",
data: JSON.stringify(inputData),
}).done(function(response){
<%
// 그리드 데이터 예시 :
// (1) 페이징 클라이언트에서 수행하는 경우(pageloading = false) : [{ "articleNo": 1, "articleType": "01" }, { "articleNo": 2, "articleType": "02" }]
// (2) 페이징 서버에서 수행하는 경우(pageloading = true) : {data: [{...}], itemsCount: 255}
%>
data.resolve(JSON.parse(response));
});
return data.promise();
} // loadData
},
rowClick: function(args) { // 행 클릭 시, 실행되는 이벤트 함수
// 클릭된 행의 자료 객체
var getData = args.item;
// 추출할 컬럼의 데이터 가져오기
var articleNo = getData["articleNo"];
// 상세 내용 보기
fn_view_detail(articleNo);
},
//======================================
// 그리드 컬럼 정의 (각 요청에 맞게 조정)
//======================================
fields: [
{ title:"번호", name: "articleNo" , type: "number" , width: 50, align: "center"},
{ title:"자료명", name: "rentItem", type: "text" , width: 200, align: "center" },
{ title:"관리번호", name: "ctrlNum", type: "number", width: 50, align: "center" },
{ title:"저자", name: "author", type: "text", width: 100, align: "center"},
{ title:"출판사", name: "publisher", type: "text", width: 100, align: "center"},
{ title:"예약일", name: "rentDate", type: "text", width: 100, align: "center"},
{ title:"반납예정일", name: "retDueDate", type: "text", width: 100, align: "center"},
{ title:"예약취소", name:"", type: "text", width: 80, align: "center" , itemTemplate: function (_, item) {
var btn = $("<button type='button'>").text("취소").click(function (e) {
alert("Clicked!");
e.stopPropagation();
});
return $("<div>").append(item.loanExtension).append("&nbsp;&nbsp;&nbsp;").append(btn);
}
}
]
});
// 페이지 크기 변경시 재조회
$("#pageSize").on("change", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
// 검색 버튼 클릭
$("#btnSearch").on("click", function(e) {
fn_search_article($("#pageSize").val(), 1);
});
//초기 자료 조회
fn_search_article();
}; // window.onload
// 선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/board/selectQnA.do");
$("#articleForm").submit();
}
// 그리드 데이터 조회 호출
function fn_search_article(pageSize, pageIndex) {
$("#jsGrid").jsGrid("search"
, {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize})),
'pageIndex': (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1))
}
);
}
</script>
</head>
<body>
<h1>${pageTitle }</h1>
<form name="articleForm" id="articleForm"
method="post">
<!-- 검색조건 -->
<select name="pageSize" id="pageSize" title="목록에 보여줄 글 개수">
<c:forEach var="pageSizeItem" items="${pageSizeCodes}" varStatus="status">
<option value="<c:out value="${pageSizeItem.code }" />" <c:if test="${pageSizeItem.code == pageSize }">selected</c:if> ><c:out value="${pageSizeItem.name }" /></option>
</c:forEach>
</select>
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex }" size="5" maxlength="5" />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword }" size="35" maxlength="50" />
<input type="button" name="btnSearch" id="btnSearch" value="검색" />
<div id="jsGrid" name="jsGrid" style="height: 100%"></div>
<input type="text" name="articleNo" id="articleNo" value="" title="선택글번호" readonly />
</form>
</body>
</html>

View File

@ -1,169 +0,0 @@
<%
/**
* <pre>
* @Class Name : selectRequestInfoForViewingItem.jsp
*
* @Description : 열람요청 상세내용을 조회한다.
*
*
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
*
* </pre>
*
* @ ------------ -------- ---------------------------
* @ 수정일 수정자 수정내용
* @ ------------ -------- ---------------------------
* @ 2021. 7. 30. JSYOO 최초 생성
*
*
* @author 이씨플라자 * DIGITALSHIP JSYOO
* @since 2021. 7. 30.
* @version 1.0
*
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<c:set var="pageTitle">열람요청 - 상세조회</c:set>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>${pageTitle}</title>
<script type="text/javaScript" language="javascript">
//선택한 게시글 상세 보기로 이동
function fn_view_detail(articleNo) {
$("#articleNo").val(articleNo);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/rent/selectRequestInfoForViewingItem.do");
$("#articleForm").submit();
}
// 선택한 게시글 상세 보기로 이동
function fn_list() {
$("#articleForm").attr("action", "${pageContext.request.contextPath}/rent/listRequestForViewingItem.do");
$("#articleForm").submit();
}
// 수정 화면 이동
function fn_updateForm(passwd) {
if(passwd == null || passwd == "") {
alert("수정을 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다.");
return;
}
$("#articlePassword").val(passwd);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/rent/updateRequestInfoForViewingItemForm.do");
$("#articleForm").submit();
}
// 게시글 수정위한 비밀번호 확인
function fn_updatePassword() {
fn_promptPassword("수정을 위한 글 비밀번호를 입력하여 주시기 바랍니다.", "111", "fn_updateForm")
}
// 게시글 삭제위한 비밀번호 확인
function fn_deletePassword() {
fn_promptPassword("삭제를 위한 글 비밀번호를 입력하여 주시기 바랍니다.", "111", "fn_delete")
}
// 삭제 처리
function fn_delete(passwd) {
if(passwd == null || passwd == "") {
alert("삭제를 위한 게시물의 비밀번호를 입력하여 주시기 바랍니다.");
return;
}
$("#articlePassword").val(passwd);
$("#articleForm").attr("action", "${pageContext.request.contextPath}/rent/deleteRequestInfoForViewingItem.do");
$("#articleForm").submit();
}
</script>
</head>
<body>
<h1>${pageTitle }</h1>
메시지 : <span style="color:red;">${message }</span>
<br />
<form name="articleForm" id="articleForm"
action="${pageContext.request.contextPath}/board/listQnAs.do"
method="post">
<!-- HIDDEN 영역 : 시작 -->
<input type="text" name="pageIndex" id="pageIndex" title="페이지번호" value="${pageIndex}" readonly />
<input type="text" name="pageSize" id="pageSize" title="목록에 보여줄 글개수" value="${pageSize}" readonly />
<input type="text" name="searchKeyword" id="searchKeyword" title="검색어" value="${searchKeyword}" readonly />
<input type="text" name="articleNo" id="articleNo" title="선택글번호" value="${articleNo}" readonly />
<input type="text" name="articlePassword" id="articlePassword" title="글비밀번호" value="${articlePassword}" readonly />
<!-- HIDDEN 영역 : 종료 -->
<table class="table_content" style="width:100% !important; margin-top: 20px;">
<tr>
<th>유형</th>
<td>${article.articleTypeName }</td>
<th>작성자 : ${article.regUserName }</th>
<th>작성일 : ${article.regDate }</th>
<th>상태 : ${article.repStatus }</th>
</tr>
<tr>
<th rowspan="2">질문내용</th>
<td colspan="4">${article.contentQeust}</td>
</tr>
<tr>
<td colspan="4">${article.contentQeustFile}</td>
</tr>
<tr>
<th rowspan="2">답변내용</th>
<td colspan="4">${article.contentReply}</td>
</tr>
<tr>
<td colspan="4">${article.contentReplyFile}</td>
</tr>
</table>
<br/>
<table class="table_content" style="width:100% !important;">
<tr>
<th>이전글</th>
<td>${preArticle.articleTypeName }</td>
<td><a href="javascript:void(0)" onclick="fn_view_detail('${preArticle.articleNo }')">${preArticle.title }</a></td>
<th>작성자 : ${preArticle.regUserName }</th>
<th>작성일 : ${preArticle.regDate }</th>
<th>상태 : ${preArticle.repStatus }</th>
</tr>
<tr>
<th>다음글</th>
<td>${nextArticle.articleTypeName }</td>
<td><a href="javascript:void(0)" onclick="fn_view_detail('${nextArticle.articleNo }')">${nextArticle.title }</a></td>
<th>작성자 : ${nextArticle.regUserName }</th>
<th>작성일 : ${nextArticle.regDate }</th>
<th>상태 : ${nextArticle.repStatus }</th>
</tr>
</table>
<!-- 관련 작업 버튼 -->
<!--
<button type="button" name="btnList" id="btnList" class="float"
onclick="fn_list()">목록</button>
<button type="button" name="btnUpdate" id="btnUpdate" class="float"
onclick="fn_updatePassword()">수정</button>
<button type="button" name="btnDelete" id="btnDelete" class="float"
onclick="fn_deletePassword()">삭제</button> -->
</form>
</body>
</html>

View File

@ -36,7 +36,14 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javaScript" language="javascript" defer="defer">
$(document).ready(function() {
// sns연동이 하나일때 연결해제버튼 제거
<%
//인증완료
%>
$("[id^='mobileSuc']").css("display","inline-block");
$("[id^='emailSuc']").css("display","inline-block");
<%
// sns연동이 하나일때 연결해제버튼 제거
%>
if($("inputinput[name='unlinkBtn']").length==1)
{
$("input[name='unlinkBtn']").remove();
@ -262,10 +269,16 @@ function changePassword(){
<%
//이메일 인증
%>
var mailDoubleSubmitFlag = false;
function emailCert(){
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(mailDoubleSubmitFlag)
{
alert("메일 전송중입니다. 잠시만 기다려주세요.");
return false;
}
var regExp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
if(!regExp.test($("#email").val()) || $("#email").val()==""){
@ -273,10 +286,12 @@ function emailCert(){
return false;
}
mailDoubleSubmitFlag = true;
$.ajax({
url : "${pageContext.request.contextPath}/member/emailCertNum.ajax",
type : "POST",
async: false,
async: true,
data : {"email" : $("#email").val(),
"pageName" : "myInfo"},
success : function(result){
@ -287,13 +302,16 @@ function emailCert(){
$("#emailCertYn").val("N");
$("[id^='emailSuc']").css("display","none");
$("[id^='emailVrfctNo']").css("display","inline-block");
mailDoubleSubmitFlag = false;
}
if(result.emailCertYn=="N")
{
$("#emailCertYn").val("N");
$("[id^='emailSuc']").css("display","none");
mailDoubleSubmitFlag = false;
}
},error : function(){
mailDoubleSubmitFlag = false;
}
})
}
@ -331,10 +349,20 @@ function certEmailCheck(){
})
}
var mobileDoubleSubmitFlag = false;
<%
//핸드폰 인증번호 받기
%>
function mobileCert(){
if(mobileDoubleSubmitFlag)
{
alert("인증번호 전송중입니다. 잠시만 기다려주세요.");
return false;
}
mobileDoubleSubmitFlag = true;
var mobileNo = $("#mobileNo_1").val()+ $("#mobileNo_2").val()+ $("#mobileNo_3").val();
mobileNo = mobileNo.replace(/-/gi,"");
$("#mobileNo").val(mobileNo);
@ -358,7 +386,9 @@ function mobileCert(){
$("#mobileCertYn").val("N");
$("[id^='mobileSuc']").css("display","none");
$("[id^='mobileVrfctNo']").css("display","inline-block");
mobileDoubleSubmitFlag = false;
},error : function(){
mobileDoubleSubmitFlag = false;
}
})
}
@ -570,9 +600,9 @@ function snsUnlink(snsId){
<div class="form-group Userbirth">
<label>생년월일</label>
<div class="con">
<select name="birth_yy" id="birth_yy"></select>
<select name="birth_mm" id="birth_mm"></select>
<select name="birth_dd" id="birth_dd"></select>
<select name="birth_yy" id="birth_yy"></select>
<select name="birth_mm" id="birth_mm"></select>
<select name="birth_dd" id="birth_dd"></select>
</div>
</div>

View File

@ -30,11 +30,14 @@ $(document).ready(function() {
</script>
<div class="inner">
<sec:authorize access="isAuthenticated()">
<div class="left is_login">
<button id="mo_alram_icon" type="button" class="noti-btn"><img src="/images/icon/icon-alram.png" alt="alram" /></button>
<button id="mo_alram_icon" type="button" class="noti-btn" onclick="javascript:location.href='${pageContext.request.contextPath}/cmm/listNotifications.do';"><img src="/images/icon/icon-alram.png" alt="alram" /></button>
<span class="line"></span>
<button type="button" class="member-btn"><img src="/images/icon/icon-member-mo.png" alt="member" />회원증</button>
<button type="button" class="member-btn" onclick="fn_getMemberCard();"><img src="/images/icon/icon-member-mo.png" alt="member" />회원증</button>
</div>
</sec:authorize>
<div class="right">
<button id="mo_search_icon" type="button"><img src="/images/icon/icon-data-search-white.png" alt="search" /></button>
<button id="primary-nav-button" type="button" class="Btn eff"><i class="eff">Menu</i></button>
@ -66,8 +69,6 @@ $(document).ready(function() {
<li><a href="javascript:void(0)" data-gotoUrl="${pageContext.request.contextPath}/read/listReadItems.do" title="방문열람관리" data-reqLogin="true"><span class="underline blue">방문열람관리</span></a></li>
</ul>
</li>
</ul>
</nav>
</div>
@ -76,8 +77,15 @@ $(document).ready(function() {
<div class="login_box">
<h2>로그인하여 <br />더 많은 정보를 확인해 보세요</h2>
<div class="btns_box">
<button type="button" class="btn_login login-btn">로그인</button>
<button type="button" onclick="location.href='/cart.html'">카트</button>
<sec:authorize access="not isAuthenticated()">
<button type="button" class="btn_login login-btn" onclick='fn_layerPopWithClass("/login/loginFormPopup.do", "pop-login")'>로그인</button>
</sec:authorize>
<sec:authorize access="isAuthenticated()">
<button type="button" class="btn_login login-btn" onclick="javascript:location.href='${pageContext.request.contextPath}/logout';">로그아웃</button>
</sec:authorize>
<button type="button" onclick="javascript:location.href='${pageContext.request.contextPath}/cart/listCartItems.do';">카트</button>
</div>
</div>
<div class="menu_box">

View File

@ -81,15 +81,15 @@
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/common/error.jsp</location>
<location>/common/error-throw.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/common/error.jsp</location>
<location>/common/error404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/common/error.jsp</location>
<location>/common/error500.jsp</location>
</error-page>
</web-app>

View File

@ -0,0 +1,24 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
%>
<div class="wrap">
<div class="error">
<div class="text">
<p><span>500 ERROR :</span> Service Error</p>
<p>죄송합니다. 현재 서비스가 원활하지 않습니다.</p>
<p><img src="/images/icon/icon-error.png" alt="에러 아이콘"></p>
</div>
<div class="box">
<p>서비스 이용에 불편을 드려 죄송합니다.<br>예상치못한 시스템 오류가 발생하였습니다.<br>시스템 관리자에게 문의해 주시거나 잠시 후 다시 시도해주세요.
</p>
<div class="btn">
<a href="javascript:void(0)" onclick="javascript:window.location.reload();" class="btn-white">새로고침</a>
</div>
</div>
</div>
</div>

View File

@ -1,33 +0,0 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="<c:url value='/css/egovframework/egov.css'/>" />
<title>NLIB</title>
</head>
<body>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" height="100%" align="center" valign="middle" style="padding-top: 150px;"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="<spring:message code='image.errorBg' />">
<span style="font-family: Tahoma; font-weight: bold; color: #000000; line-height: 150%; width: 440px; height: 70px;">Error</span>
&nbsp;<br>
status_code = <%=request.getAttribute("javax.servlet.error.status_code") %><br>
exception_type = <%=request.getAttribute("javax.servlet.error.exception_type") %><br>
message = <%=request.getAttribute("javax.servlet.error.message") %><br>
request_uri = <%=request.getAttribute("javax.servlet.error.request_uri") %><br>
exception = <%=request.getAttribute("javax.servlet.error.exception") %><br>
servlet_name = <%=request.getAttribute("javax.servlet.error.servlet_name") %><br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,44 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="format-detection" content="telephone=no" />
<title>소장자료관</title>
<link href="/css/common.css" rel="stylesheet">
<link href="/css/default.css" rel="stylesheet">
<script src="/js/jquery-1.11.2.min.js"></script>
<script src="/js/jquery.mCustomScrollbar.js"></script>
<script src="/js/swiper.min.js"></script>
<script src="/js/default.js"></script>
</head>
<body>
<div class="wrap">
<div class="error">
<div class="text">
<h1><a href="javascript:void(0)" onclick="javascript:location.href='/';"><img src="/images/icon/icon-logo.png" alt="문화원로고"><span class="title"><%=councilNm %></span></a><span class="collection">소장자료관</span></h1>
<p><span>404 ERROR :</span> Page not found</p>
<p>죄송합니다. 요청하신 페이지를 찾을 수 없습니다.</p>
<p><img src="/images/icon/icon-error.png" alt="에러 아이콘"></p>
</div>
<div class="box">
<p>방문하시려고 하는 페이지의 주소가 잘못 입력되었거나,<br>페이지의 주소가 변경 또는 삭제되어 찾을 수 없습니다.</p>
<div class="btn">
<a href="javascript:void(0)" onclick="javascript:history.back(-1);" class="btn-white">이전페이지로</a>
<a href="javascript:void(0)" onclick="/" class="btn-color">소장자료관으로</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,44 @@
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%
String councilCd = (String)session.getAttribute("councilCd");
String councilNm = (String)session.getAttribute("councilNm");
%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="format-detection" content="telephone=no" />
<title>소장자료관</title>
<link href="/css/common.css" rel="stylesheet">
<link href="/css/default.css" rel="stylesheet">
<script src="/js/jquery-1.11.2.min.js"></script>
<script src="/js/jquery.mCustomScrollbar.js"></script>
<script src="/js/swiper.min.js"></script>
<script src="/js/default.js"></script>
</head>
<body>
<div class="wrap">
<div class="error">
<div class="text">
<h1><a href="javascript:void(0)" onclick="javascript:location.href='/';"><img src="/images/icon/icon-logo.png" alt="문화원로고"><span class="title"><%=councilNm %></span></a><span class="collection">소장자료관</span></h1>
<p><span>500 ERROR :</span> Service Error</p>
<p>죄송합니다. 현재 서비스가 원활하지 않습니다.</p>
<p><img src="/images/icon/icon-error.png" alt="에러 아이콘"></p>
</div>
<div class="box">
<p>서비스 이용에 불편을 드려 죄송합니다.<br>예상치못한 시스템 오류가 발생하였습니다.<br>시스템 관리자에게 문의해 주시거나 잠시 후 다시 시도해주세요.
</p>
<div class="btn">
<a href="javascript:void(0)" onclick="javascript:window.location.reload();" class="btn-white">새로고침</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,460 +0,0 @@
$(document).ready(function(){
/* 상단 메뉴 Fixed */
$( window ).scroll(function() {
var TopVal = $( window ).scrollTop();
var TopFixed1 = 300;
var TopFixed2 = 303;
if( TopFixed1 <= TopVal){
$("#header").removeClass("scroll_off");
$("#header").addClass("scroll_on");
$(".nav-wrap").removeClass("scroll_off");
$(".nav-wrap").addClass("scroll_on");
}else{
$("#header").removeClass("scroll_on");
$("#header").addClass("scroll_off");
$(".nav-wrap").removeClass("scroll_on");
$(".nav-wrap").addClass("scroll_off");
}
});
/* 메인 메뉴 반응형 */
jQuery(function($) {
$.fn.responsivenav = function(args) {
// Default settings
var defaults = {
responsive: true,
width: 768, // Responsive width
button: $(this).attr('id')+'-button', // Menu button id
animation: { // Menu animation
effect: 'slide', // Accepts 'slide' or 'fade'
show: 150,
hide: 100
},
selected: 'selected', // Selected class
arrow: 'downarrow' // Dropdown arrow class
};
var settings = $.extend(defaults, args);
// Initialize the menu and the button
init($(this).attr('id'), settings.button);
function init(menuid, buttonid) {
setupMenu(menuid, buttonid);
// Add a handler function for the resize and orientationchange event
$(window).bind('resize orientationchange', function(){ resizeMenu(menuid, buttonid); });
// Trigger initial resize
resizeMenu(menuid, buttonid);
}
function setupMenu(menuid, buttonid) {
var $mainmenu = $('#'+menuid+'>ul');
var $headers = $mainmenu.find("ul").parent();
// Add dropdown arrows
$headers.each(function(i) {
var $curobj = $(this);
$curobj.children('a:eq(0)').append('<span class="'+settings.arrow+'"></span>');
});
if ( settings.responsive ) {
// Menu button click event
// Displays top-level menu items
$('#'+buttonid).click(function(e) {
e.preventDefault();
if ( isSelected($('#'+buttonid)) ) {
// Close menu
collapseChildren('#'+menuid);
animateHide($('#'+menuid), $('#'+buttonid));
} else {
// Open menu
animateShow($('#'+menuid), $('#'+buttonid));
}
});
}
}
function resizeMenu(menuid, buttonid) {
var $ww = document.body.clientWidth;
// Add mobile class to elements for CSS use
// instead of relying on media-query support
if ( $ww > settings.width || !settings.responsive) {
$('#'+menuid).removeClass('mobile');
$('#'+buttonid).removeClass('mobile');
} else {
$('#'+menuid).addClass('mobile');
$('#'+buttonid).addClass('mobile');
}
var $headers = $('#'+menuid+'>ul').find('ul').parent();
$headers.each(function(i) {
var $curobj = $(this);
var $link = $curobj.children('a:eq(0)');
var $subul = $curobj.find('ul:eq(0)');
// Unbind events
$curobj.unbind('mouseenter mouseleave');
$link.unbind('click');
animateHide($curobj.children('ul:eq(0)'));
if ( $ww > settings.width || !settings.responsive ) {
// Full menu
$curobj.hover(function(e) {
var $targetul = $(this).children('ul:eq(0)');
var $dims = { w: this.offsetWidth,
h: this.offsetHeight,
subulw: $subul.outerWidth(),
subulh: $subul.outerHeight()
};
var $istopheader = $curobj.parents('ul').length == 1 ? true : false;
$subul.css($istopheader ? {} : { top: 0 });
var $offsets = { left: $(this).offset().left,
top: $(this).offset().top
};
var $menuleft = $istopheader ? 0 : $dims.w;
$menuleft = ( $offsets.left + $menuleft + $dims.subulw > $(window).width() ) ? ( $istopheader ? -$dims.subulw + $dims.w : -$dims.w ) : $menuleft;
$targetul.css({ left:$menuleft+'px',
width:$dims.subulw+'px'
});
animateShow($targetul);
},
function(e) {
var $targetul = $(this).children('ul:eq(0)');
animateHide($targetul);
});
} else {
// Compact menu
$link.click(function(e) {
e.preventDefault();
var $targetul = $curobj.children('ul:eq(0)');
if ( isSelected($curobj) ) {
collapseChildren($targetul);
animateHide($targetul);
} else {
//collapseSiblings($curobj);
animateShow($targetul);
}
});
}
});
collapseChildren('#'+menuid);
if ( settings.responsive && isSelected($('#'+buttonid)) ) {
//collapseChildren('#'+menuid);
$('#'+menuid).hide();
$('#'+menuid).removeAttr('style');
$('#'+buttonid).removeClass(settings.selected);
}
}
function collapseChildren(elementid) {
// Closes all submenus of the specified element
var $headers = $(elementid).find('ul');
$headers.each(function(i) {
if ( isSelected($(this).parent()) ) {
animateHide($(this));
}
});
}
function collapseSiblings(element) {
var $siblings = element.siblings('li');
$siblings.each(function(i) {
collapseChildren($(this));
});
}
function isSelected(element) {
return element.hasClass(settings.selected);
}
function animateShow(menu, button) {
if ( !button ) { var button = menu.parent(); }
button.addClass(settings.selected);
if ( settings.animation.effect == 'fade' ) {
menu.fadeIn(settings.animation.show);
$(".BG").fadeIn("fast");
} else if ( settings.animation.effect == 'slide' ) {
menu.slideDown(settings.animation.show);
$(".BG").fadeIn("fast");
} else {
menu.show();
menu.removeClass('hide');
}
}
function animateHide(menu, button) {
if ( !button ) { var button = menu.parent(); }
if ( settings.animation.effect == 'fade' ) {
menu.fadeOut(settings.animation.hide, function() {
menu.removeAttr('style');
button.removeClass(settings.selected);
$(".BG").fadeOut("fast");
});
} else if ( settings.animation.effect == 'slide' ) {
menu.slideUp(settings.animation.hide, function() {
menu.removeAttr('style');
button.removeClass(settings.selected);
$(".BG").fadeOut("fast");
});
} else {
menu.hide();
menu.addClass('hide');
menu.removeAttr('style');
button.removeClass(settings.selected);
}
}
$(".BG").click(function(){
$(".BG").fadeOut("fast");
$("#primary-nav.mobile").hide();
$("#primary-nav-button").removeClass("selected");
});
};
});
jQuery(function ($) {
$('#primary-nav').responsivenav();
$('#top-nav').responsivenav({responsive:false});
});
/* 메인 메뉴 반응형 end */
/* 인기자료 탭메뉴 */
(function ($) {
$('.tab ul.tabs').addClass('active').find('> li:eq(0)').addClass('current');
$('.tab ul.tabs li a').click(function (g) {
var tab = $(this).closest('.tab'),
index = $(this).closest('li').index();
tab.find('ul.tabs > li').removeClass('current');
$(this).closest('li').addClass('current');
tab.find('.tab_content').find('div.tabs_item').not('div.tabs_item:eq(' + index + ')').hide();
tab.find('.tab_content').find('div.tabs_item:eq(' + index + ')').show();
g.preventDefault();
});
})(jQuery);
/* 푸터 관련사이트 */
$(".family_site").click(function(){
$(this).toggleClass("on");
$(this) .find(".site_depth").slideToggle("fast");
});
/* 로그인 팝업 */
$(".login-btn").click(function(){
$(".pop-login").fadeIn();
});
$(".pop-login .login-close").click(function(){
$(".pop-login").fadeOut();
});
/* 로그인 연결 팝업 */
$(".login-connect-btn").click(function(){
$(".pop-login-connect").fadeIn();
});
$(".pop-login-connect .login-close").click(function(){
$(".pop-login-connect").fadeOut();
});
/* 로그인 연결 패스워드 팝업 */
$(".login-password-btn").click(function(){
$(".pop-login-password").fadeIn();
});
$(".pop-login-password .login-close").click(function(){
$(".pop-login-password").fadeOut();
});
// scroll top button
$(window).scroll(function() {
var $window = $(window);
var $document = $(document);
var $footer = $('#footer');
var $scrollBtn = $('#btn-go-top');
$scrollBtn.on('click', function () {
$("html, body").stop().animate({
scrollTop: 0
}, 600);
return false;
});
btnXPosition();
$window.resize(function () {
btnXPosition();
});
// top버튼 x좌표설정
function btnXPosition() {
var rightPosition = ($document.width() - 1756) / 2
// X position
if($document.width() > 1756) {
//$scrollBtn.css('right', rightPosition);
$scrollBtn.css('right', '25px');
} else {
$scrollBtn.css('right', '25px');
}
}
$window.on('scroll', function () {
if ($window.scrollTop() < $document.height() - $window.height() - $footer.outerHeight() + 37) {
$scrollBtn.addClass('go-top-fix');
} else {
$scrollBtn.removeClass('go-top-fix');
}
if ($window.scrollTop() < ($window.height() / 3)) {
$scrollBtn.addClass('go-top-hide');
} else {
$scrollBtn.removeClass('go-top-hide');
}
});
});
// 상세검색 팝업 - 문화원정보 선택영역 초기작업 메서드 분리
jQuery(function($) {
var depth2H = 0;
$('.pop-advanced-search .depth1-check input').each(function () {
if ($(this).is(":checked")) { // 활성화 line에 높이 잡아주기
$('.depth1').removeClass('on');
$(this).parents('.depth1').addClass('on');
depth2H = $(this).parents('.depth1-check').next('.depth2').outerHeight();
$(this).parents('.line').siblings('.line').attr('style', '');
$(this).parents('.line').height(depth2H + 50);
}
var tabLabel = $(this).next().text();
$(this).parent('.depth1-check').append('<button type="button" class="tab-name">'+tabLabel+'</button>');
$(this).siblings('.tab-name').on('click', function() {
$('.depth1').removeClass('on');
$(this).parents('.depth1').addClass('on');
depth2H = $(this).parents('.depth1-check').next('.depth2').outerHeight();
$('.line').attr('style', '');
$(this).parents('.line').height(depth2H + 50);
});
});
$('.pop-advanced-search .depth2 input').change(function() {
if ($(this).is(':checked')) {
$(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', true);
} else {
if ($(this).parents('.depth2').find('input:checked').length <= 0) {
$(this).parents('.depth2').siblings('.depth1-check').find('input').prop('checked', false);
}
}
});
// depth-1 열고 닫기
$('.filter-tit .btn-toggle').on('click', function() {
if($(this).text() == '닫기') {
$(this).text('열기');
$(this).parent('.filter-tit').siblings('.filter-list').stop().slideUp();
$('.filter .btn-toggle-more').css('display','none');
} else {
$(this).text('닫기');
$(this).parent('.filter-tit').siblings('.filter-list').stop().slideDown();
$('.filter .btn-toggle-more').css('display','block');
}
});
// depth-2 열고 닫기
$('.filter .depth-1 .btn-toggle').on('click', function () {
var _this = $(this).parents('li').index();
if ($(this).text() == '닫기') {
$(this).text('열기');
$(this).siblings('.check').find('.tab-name').trigger("click");
} else {
$(this).text('닫기');
$(this).siblings('.check').find('.tab-name').trigger("click");
}
});
$('.filter-wrap .tab-name').on('click', function() {
if ($('body').hasClass('pop-filter')) {
$(this).parents('.depth-1').removeClass('on');
}
});
// 상세검색 팝업 열기
$('.btn-search-detail').on('click', function () {
// 클릭 시, 컨텐츠 로딩되도록 처리 (2021.10.20)
$("#NLIB_LAYER_POPUP").addClass("popup pop-advanced-search");
$("#NLIB_LAYER_POPUP").load("/search/getDetailedSearchFormPopup.do");
$('.pop-advanced-search').fadeIn();
$('html,body').addClass('no-scroll');
});
//팝업닫기버튼 클릭
$('.btn-close-pop').on('click', function () {
$(this).parents('.popup').fadeOut();
$('html,body').removeClass('no-scroll');
});
});
// 회원가입 셀렉트박스
jQuery(function($) {
var now = new Date();
var year = now.getFullYear();
var mon = (now.getMonth() + 1) > 9 ? ''+(now.getMonth() + 1) : '0'+(now.getMonth() + 1);
var day = (now.getDate()) > 9 ? ''+(now.getDate()) : '0'+(now.getDate());
// 년도
for(var i = 1900 ; i <= year ; i++) {
$('#year').append('<option value="' + i + '">' + i + '년</option>');
}
// 월별
for(var i=1; i <= 12; i++) {
var mm = i > 9 ? i : "0"+i ;
$('#month').append('<option value="' + mm + '">' + mm + '월</option>');
}
// 일별
for(var i=1; i <= 31; i++) {
var dd = i > 9 ? i : "0"+i ;
$('#day').append('<option value="' + dd + '">' + dd+ '일</option>');
}
$("#year > option[value="+year+"]").attr("selected", "true");
$("#month > option[value="+mon+"]").attr("selected", "true");
$("#day > option[value="+day+"]").attr("selected", "true");
});
// 회원가입 체크박스
$('input.sex[type="checkbox"]').bind('click',function() {
$('input.sex[type="checkbox"]').not(this).prop("checked", false);
});
// 회원가입 체크박스
$('input.ser-chk1[type="checkbox"]').bind('click',function() {
$('input.ser-chk1-1[type="checkbox"]').not(this).prop("checked", true);
if($("input.ser-chk1").prop("checked")){
$("input.ser-chk1-1[type=checkbox]").prop("checked",true);
}else{
$("input.ser-chk1-1[type=checkbox]").prop("checked",false);
}
});
// 회원가입 체크박스
$('input.ser-chk2[type="checkbox"]').bind('click',function() {
$('input.ser-chk2-2[type="checkbox"]').not(this).prop("checked", true);
if($("input.ser-chk2").prop("checked")){
$("input.ser-chk2-2[type=checkbox]").prop("checked",true);
}else{
$("input.ser-chk2-2[type=checkbox]").prop("checked",false);
}
});
});

View File

@ -1,89 +1,44 @@
/*
*
* NLIB 공통 JavaScript
*
*
*/
var CONTEXT_PATH = "";
//---------------------------------------------------------------------------------------------------------------
// 레이어 팝업 관련 함수
//---------------------------------------------------------------------------------------------------------------
// 팝업으로 비밀번호를 입력받아서 콜백함수에 전달한다.
function fn_promptPassword(msg, placeholder, callbackFucName) {
var options = "top=200, left=200, width=300, height=200, status=no, menubar=no, toolbar=yes, resizable=no";
var thePrompt = window.open("", "_NLIB_POMPT_PASSWORD", options);
var theHTML = "<html><head><title>" + placeholder + "</title><style type='text/css'> body { background-color: #ffd; } button { margin: 10px; }</style></head><body>";
function fn_layerPopWithClass(url, addClasses) {
// 클릭 시, 로딩되도록 처리 (2021.10.20)
$("#NLIB_LAYER_POPUP").removeClass();
$("#NLIB_LAYER_POPUP").addClass(addClasses);
$("#NLIB_LAYER_POPUP").load(url);
theHTML += "<p>" + msg + "</p>";
theHTML += "<br/>";
theHTML += "비밀번호: <input type='text' id='thePass' placeholder='" + placeholder + "'/>";
theHTML += "&nbsp;<br />";
theHTML += "&nbsp;<br />";
theHTML += "<button title='확인' id='thePromptOk' onclick='opener.parent." + callbackFucName + "("
+ "document.getElementById(\"thePass\").value); window.close();'>확인</button>";
theHTML += "<button title='취소' id='thePromptClose' onclick='window.close();'>취소</button>";
theHTML += "</body></html>";
var classes = addClasses.split(" ");
thePrompt.document.body.innerHTML = theHTML;
}
/**
* ID를 name 으로 하는 객체의 값을 숫자(10진수) 변환하여 리턴한다.
* 값이 적절하지 않은 경우, defaultValue를 리턴한다.
*
* @param name
* @param defaultValue
* @returns
*/
function fn_getIntValue(name, defaultValue) {
var val = $("#" + name).val();
try {
return parseInt(val, 10);
} catch(error) {
console.error(error);
return defaultValue;
}
}
const POPUP_DEFAULT_WIDTH = 600; // 팝업 기본 창 가로 크기
const POPUP_DEFAULT_HEIGHT = 600; // 팝업 기본 창 세로 크기
/**
* 팝업을 생성하고 해당 URL로 접속한다.
*
* @param url
* @param popName
* @param width 생략 POPUP_DEFAULT_WIDTH
* @param height 생략 POPUP_DEFAULT_HEIGHT
* @returns
*/
function openPopup(url, popName, width, height) {
var options = "top=10, left=10, width=" + (width?width:POPUP_DEFAULT_WIDTH) + ", height=" + (height?height:POPUP_DEFAULT_HEIGHT) + ", status=no, menubar=no, toolbar=yes, resizable=no";
window.open(url, popName, options);
}
function validEmail(email) {
if(!email) return false;
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
function fn_openLayerPopup(title, content, linkName, linkUrl) {
$("div[name='NLIB_LAYER_POPUP']." + classes[0]).fadeIn();
var layerPopupHtml =
"<h2>" + title + "</h2><br/>" +
"<div>" + content + "</div><br/>" +
"<br/>&nbsp;" +
"<div style='text-align:center;'><a href='#' onclick='fn_closeLayerPopup()'>[확인]</a>";
if(linkUrl != null) {
layerPopupHtml += "&nbsp;&nbsp;&nbsp;&nbsp;<a href='" + linkUrl + "'>[" + linkName + "]</a>";
}
layerPopupHtml += "</div>";
$(layerPopupHtml).appendTo("#NLIB_LAYER_POPUP");
$('html,body').addClass('no-scroll');
}
// XXXXXXXXXXX : alreadySignUpPopup.jsp > fn_showLayerPop
function fn_showLayerPop() {
$("#NLIB_LAYER_POPUP").show();
console.log(layerPopupHtml);
}
function fn_layerPopFormSubmit(formName, display) {
var dataList = $("#" + formName).serialize();
var url = $("#" + formName).attr('action');
if(display) $("#NLIB_LAYER_POPUP").show();
else $("#NLIB_LAYER_POPUP").hide();
$.ajax({
type: "post",
url: url,
data: dataList
}).done(function(response){
$("#NLIB_LAYER_POPUP").empty().append(response);
});
}
function fn_closeLayerPopup() {
@ -93,6 +48,21 @@ function fn_closeLayerPopup() {
$('html,body').removeClass('no-scroll');
}
function fn_layerPopWithHtml(cHtml, addClasses) {
$("#NLIB_LAYER_POPUP").removeClass();
$("#NLIB_LAYER_POPUP").addClass(addClasses);
$("#NLIB_LAYER_POPUP").html(cHtml);
$("#NLIB_LAYER_POPUP").show();
var classes = addClasses.split(" ");
$("div[name='NLIB_LAYER_POPUP']." + classes[0]).fadeIn();
}
//---------------------------------------------------------------------------------------------------------------
// 알림 관련 함수
//---------------------------------------------------------------------------------------------------------------
function gfn_myAlert(newAlertNum) {
if(newAlertNum == "undefined" || newAlertNum == null || newAlertNum < 1) {
@ -147,57 +117,10 @@ function gfn_getCookie(cookieName){
return cookieValue;
}
function fn_layerPopWithHtml(cHtml, addClasses) {
$("#NLIB_LAYER_POPUP").removeClass();
$("#NLIB_LAYER_POPUP").addClass(addClasses);
$("#NLIB_LAYER_POPUP").html(cHtml);
$("#NLIB_LAYER_POPUP").show();
var classes = addClasses.split(" ");
$("div[name='NLIB_LAYER_POPUP']." + classes[0]).fadeIn();
}
function fn_layerPopWithClass(url, addClasses) {
// 클릭 시, 로딩되도록 처리 (2021.10.20)
$("#NLIB_LAYER_POPUP").removeClass();
$("#NLIB_LAYER_POPUP").addClass(addClasses);
$("#NLIB_LAYER_POPUP").load(url);
var classes = addClasses.split(" ");
$("div[name='NLIB_LAYER_POPUP']." + classes[0]).fadeIn();
$('html,body').addClass('no-scroll');
}
function fn_layerPop(url, classes) {
$("#NLIB_LAYER_POPUP").load(url);
$("#NLIB_LAYER_POPUP").show();
$('.pop-advanced-search').fadeIn();
$('html,body').addClass('no-scroll');
}
function fn_showLayerPop() {
$("#NLIB_LAYER_POPUP").show();
}
function fn_layerPopFormSubmit(formName, display) {
var dataList = $("#" + formName).serialize();
var url = $("#" + formName).attr('action');
if(display) $("#NLIB_LAYER_POPUP").show();
else $("#NLIB_LAYER_POPUP").hide();
$.ajax({
type: "post",
url: url,
data: dataList
}).done(function(response){
$("#NLIB_LAYER_POPUP").empty().append(response);
});
}
//---------------------------------------------------------------------------------------------------------------
// 문자열 처리 관련 함수
//---------------------------------------------------------------------------------------------------------------
function fn_isEmpty(value) {
if(value == null) return true;
@ -227,6 +150,16 @@ function fn_extractContentText(html) {
return new DOMParser().parseFromString(html, "text/html").documentElement.textContent;
}
function gfn_removeQuotes(str) {
if(fn_isEmpty(str)) return "";
return str.replace(/"/gi, '').replace(/'/gi, "");
}
//---------------------------------------------------------------------------------------------------------------
// RIS 처리 관련 함수
//---------------------------------------------------------------------------------------------------------------
function risShow(risId){
var tag = document.createElement("div");
@ -278,6 +211,13 @@ function risShow(risId){
$("#export-data").append(html);
}
function risDownload(risId){
$("#risId").val(risId);
document.risDownloadForm.action="/ris/risDownload.do";
document.risDownloadForm.submit();
}
function risClose(){
$("#export-data").remove();
}
@ -288,12 +228,6 @@ function forgetPassword(form)
fn_layerPopFormSubmit(form,true);
}
function risDownload(risId){
$("#risId").val(risId);
document.risDownloadForm.action="/ris/risDownload.do";
document.risDownloadForm.submit();
}
function fn_changeInterestBtn(masterId,onOff){
if(onOff == "on")
{
@ -431,15 +365,7 @@ function pageLoad(fnName,pageIndex, totRecordCount, startPage, endPage, lastPage
$("#paging").html(html);
}
// 자료 상세보기
function fn_viewItemDetailInfo(masterId){
$("#FRM_ITEM_DETAIL input[name=masterId]").val(masterId);
$("#FRM_ITEM_DETAIL").attr("action","/search/searchItemDetail.do");
$("#FRM_ITEM_DETAIL").submit();
}
function fn_formatDateStr(yyyymmdd, defVal) {
function gfn_formatDateStr(yyyymmdd, defVal) {
if(fn_isEmpty(yyyymmdd)) return defVal;
if(yyyymmdd.length == 8) {
return yyyymmdd.substr(0, 4) + "-" + yyyymmdd.substr(4,2) + "-" + yyyymmdd.substr(6);
@ -456,6 +382,7 @@ function fn_formatDateStr(yyyymmdd, defVal) {
var DOC_VIEW_URL = "https://port.nculture.org/npdfView.do?npdf=N";
var VIDEO_VIEW_URL = "https://port.nculture.org/nvodView.do?nvod=N";
var IMAGE_VIEW_URL = "https://port.nculture.org/nImageView.do?nImage=N";
function gfn_showDocPdf(interfaceId,masterId,typeDivCd,dtlsTypeDivCd) {
var url="";
@ -522,6 +449,7 @@ $( document ).on('click' , 'button.share', function (e) {
getShortUrlData(tUrl);
}
});
$( document )
.on('click', '#div_pop-sharing img.sns-pop', function(e) {
e.preventDefault();
@ -664,9 +592,3 @@ function gfn_reserveReadItem(mngOrgCd, masterId) {
return;
}
function gfn_removeQuotes(str) {
if(fn_isEmpty(str)) return "";
return str.replace(/"/gi, '').replace(/'/gi, "");
}