This commit is contained in:
subsub 2025-09-23 17:38:05 +09:00
commit a6990a54b9
14 changed files with 8196 additions and 16 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -178,6 +178,8 @@ public class SspnIdtmtController {
@Resource(name = "iTNotiUtil") @Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil; private ITNotiUtil iTNotiUtil;
private String p_lctr_div_cd = "60";
/** /**
* 대시보드 임시 * 대시보드 임시
*/ */
@ -222,7 +224,7 @@ public class SspnIdtmtController {
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회 //기반강화 조회
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
/* /*
@ -230,7 +232,7 @@ public class SspnIdtmtController {
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
} }
*/ */
vEPrcsDetailVO.setSiteId("50"); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소 vEPrcsDetailVO.setSiteId(p_lctr_div_cd); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrList(vEPrcsDetailVO);
//List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO); //List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
@ -292,7 +294,7 @@ public class SspnIdtmtController {
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회 //기반강화 조회
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
@ -326,7 +328,7 @@ public class SspnIdtmtController {
vEEduAplctReqVO.setUserId(loginVO.getUniqId()); vEEduAplctReqVO.setUserId(loginVO.getUniqId());
vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd()); vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd());
vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd()); vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); vEEduAplctReqVO.setLctrDivCd(p_lctr_div_cd);
VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO); VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO);
// VO를 먼저 null 체크 진행해야 에러안남 // VO를 먼저 null 체크 진행해야 에러안남
// vEEduAplctVO != null && // vEEduAplctVO != null &&
@ -526,7 +528,7 @@ public class SspnIdtmtController {
vEEduAplctReqVO.setUserId(loginVO.getUniqId()); vEEduAplctReqVO.setUserId(loginVO.getUniqId());
vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd()); vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd());
vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd());
vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); vEEduAplctReqVO.setLctrDivCd(p_lctr_div_cd);
VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO); VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO);
// VO를 먼저 null 체크 진행해야 에러안남 // VO를 먼저 null 체크 진행해야 에러안남
// vEEduAplctVO != null && // vEEduAplctVO != null &&
@ -665,7 +667,7 @@ public class SspnIdtmtController {
String s_eduAplctOrd = eduAplctGnrService.getNextStringId(); String s_eduAplctOrd = eduAplctGnrService.getNextStringId();
vEEduAplctVO.setEduAplctOrd(s_eduAplctOrd); vEEduAplctVO.setEduAplctOrd(s_eduAplctOrd);
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); // 기소유예 vEEduAplctVO.setLctrDivCd(p_lctr_div_cd); // 기소유예
vEEduAplctVO.setAprvlCd("10"); // 승인코드 VE0003 10 - 요청, 20 - 승인, 30 - 반려 vEEduAplctVO.setAprvlCd("10"); // 승인코드 VE0003 10 - 요청, 20 - 승인, 30 - 반려
// sbmt_pnttm 제출일시 // sbmt_pnttm 제출일시
vEEduAplctVO.setSbmtYn("Y"); // 제출여부 vEEduAplctVO.setSbmtYn("Y"); // 제출여부
@ -704,7 +706,7 @@ public class SspnIdtmtController {
//알림 교육신청 //알림 교육신청
try { try {
iTNotiUtil.insertNotifyNew_60( iTNotiUtil.insertNotifyNew_60(
"60", p_lctr_div_cd, //"60",
loginVO.getUniqId(), loginVO.getUniqId(),
VeConstants.NOTI_STATUS_10, VeConstants.NOTI_STATUS_10,
vEPrcsDetailVO.getPrcsAplctPrdOrd(), vEPrcsDetailVO.getPrcsAplctPrdOrd(),
@ -1063,7 +1065,7 @@ public class SspnIdtmtController {
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회 //기반강화 조회
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
@ -1079,7 +1081,7 @@ public class SspnIdtmtController {
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
//vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
vEPrcsDetailVO.setSiteId("60"); vEPrcsDetailVO.setSiteId(p_lctr_div_cd); //"60"
} }
//List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO); //List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
@ -1173,7 +1175,7 @@ public class SspnIdtmtController {
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setPrcsAplctPrdQnaOrd(prcsAplctPrdQnaOrdGnrService.getNextStringId()); vEPrcsDetailVO.setPrcsAplctPrdQnaOrd(prcsAplctPrdQnaOrdGnrService.getNextStringId());
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
@ -1184,7 +1186,7 @@ public class SspnIdtmtController {
//알림 교육문의 //알림 교육문의
try { try {
iTNotiUtil.insertNotifyNew_60( iTNotiUtil.insertNotifyNew_60(
"60", p_lctr_div_cd, //"60",
loginVO.getUniqId(), loginVO.getUniqId(),
VeConstants.NOTI_STATUS_91, VeConstants.NOTI_STATUS_91,
"", "",
@ -1246,7 +1248,7 @@ public class SspnIdtmtController {
model.addAttribute("FAQList", resultList); model.addAttribute("FAQList", resultList);
//Q&A 조회 //Q&A 조회
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
vEPrcsDetailVO.setLctrDivCd("60"); //기소유예 구분값 vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //기소유예 구분값
List<VEPrcsDetailVO> vEPrcsDetailQnaVOList = fndtnEnhanceTrnService.selectVeEduQna(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailQnaVOList = fndtnEnhanceTrnService.selectVeEduQna(vEPrcsDetailVO);
model.addAttribute("qnaList", vEPrcsDetailQnaVOList); model.addAttribute("qnaList", vEPrcsDetailQnaVOList);
}catch(Exception ex) { }catch(Exception ex) {

View File

@ -0,0 +1,934 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style type="text/css">
.fc-day-sat { color:#0000FF; } /* 토요일 */
.fc-day-sun { color:#FF0000; } /* 일요일 */
</style>
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
$('#schduleManager').hide();
$('.tab_button').click(function(){
var type = $(this).data('info');
// list 타입이면 return;
if(type === 'list'){
$('#schduleManager').hide();
return false;
}
$('#schduleManager').show();
});
$(".aplctBtn button").click(function(){
var regForm = document.regForm;
regForm.prcsAplctPrdOrd.value = $(this).data('info');
});
// 상태값 확인
$(".ddlnCdStts").each(function() {
var $thisCell = $(this);
var $applyButton = $thisCell.closest('tr').find(".aplctBtn button");
// var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input");
// 텍스트가 비어있는지 확인
if ($thisCell.text().trim() === "") {
var $currentRow = $thisCell.closest('tr');
var strtPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim());
var currentDate = new Date();
// new Date에서 년, 월, 일만 생성
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
$applyButton.text("마감");
}
$thisCell.text(ddlnCdText);
}
// 텍스트가 "접수중"인지 확인
//if ($thisCell.text().trim() !== "접수중" && $thisCell.text().trim() !== "취소") {
if ($thisCell.text().trim() !== "접수중") {
$applyButton.prop('disabled', true); // 버튼 비활성화
}
/* 24.01.22 웹접근성 검사를 위하여 disabled 사용제외 */
if($applyButton.prop('disabled')){
$applyButton.removeAttr('onclick');
$applyButton.prop('disabled', false);
$applyButton.css('background-color', '#888');
/*24.01.23 웹접근성 검사를 위하여 title 추가*/
$applyButton.attr('title','비활성화됨');
$applyButton.removeAttr('data-tooltip');
}
});
// 상태값 확인 모바일
$(".ddlnCdSttsM").each(function() {
var $thisCell = $(this);
var $applyButton = $thisCell.closest('ul').find(".aplctBtnM button");
// var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input");
// 텍스트가 비어있는지 확인
if ($thisCell.text().trim() === "") {
var $currentRow = $thisCell.closest('ul');
var strtPnttm = new Date($currentRow.find("li:eq(2)").find("span:eq(1)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("li:eq(2)").find("span:eq(1)").text().split("~")[1].trim());
var currentDate = new Date();
// new Date에서 년, 월, 일만 생성
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
$applyButton.text("마감");
}
$thisCell.text(ddlnCdText);
}
console.log('$thisCell.text() : ', $thisCell.text());
console.log('$thisCell.text().trim() !== "접수중" : ', $thisCell.text().trim() !== "접수중");
// 텍스트가 "접수중"인지 확인
//if ($thisCell.text().trim() !== "접수중" && $thisCell.text().trim() !== "취소") {
if ($thisCell.text().trim() !== "접수중") {
$applyButton.prop('disabled', true); // 버튼 비활성화
}
/* 24.01.22 웹접근성 검사를 위하여 disabled 사용제외 */
if($applyButton.prop('disabled')){
$applyButton.removeAttr('onclick');
$applyButton.prop('disabled', false);
$applyButton.css('background-color', '#888');
/*24.01.23 웹접근성 검사를 위하여 title 추가*/
$applyButton.attr('title','비활성화됨');
$applyButton.removeAttr('data-tooltip');
}
});
// 달력 웹접근성
$(".fc-prev-button").attr("title","이전달로 이동");
$(".fc-next-button").attr("title","다음달로 이동");
$(".fc-next-button").on("click",function(){
var changeDay = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid>caption").text(changeDay+" 달력입니다.");
});
$(".fc-prev-button").on("click",function(){
var changeDay = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid>caption").text(changeDay+" 달력입니다.");
})
});
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('schduleManager');
var calendar = new FullCalendar.Calendar(calendarEl, {
locale: 'ko',
timezone : "local",
weekends : true,
editable : false,
firstDay : 0, //월요일이 먼저 오게 하려면 1
dayMaxEvents: true,
navLinks: false,
customButtons: {
myCustomButton: {
text: '오늘',
click: function(event, elm) {
alert('clicked the custom button!');
}
},viewWeekends : {
text : '주말',
click : function (event, elm) {
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
}
}
},buttonText: {
listMonth: '일정'
},
headerToolbar: {
//left: 'prevYear nextYear today',
left: 'today',
center: 'prev title next',
//right: 'dayGridMonth,listMonth'
right: ''
},
eventSources: [
{
events: function(info, successCallback, failureCallback) {
var events = [];
console.log('info', info);
var s_todate = info.startStr;
ex_s_todate = info.startStr;
var data = fncEduSelect(s_todate);
data.forEach(item => {
console.log(item);
item.url = '${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/eduAplctDetail.do?prcsAplctPrdOrd='+item.prcsAplctPrdOrd; // 여기서 원하는 URL로 대체
});
events.push({
title: 'title',
start: '2023-11-10',
end: '2023-11-29',
url: '${pageContext.request.contextPath}/detail.do?seq='
}); 
// successCallback(events);
successCallback(data);
/*
$.ajax({
url: '<c:url value="/web/ve/instr/tngrVisitEdu/instrInfo/tngrSchduleManagerAjaxLoadData.do"/>',
type: 'POST',
dataType: 'json',
data: {
searchStartDt : "",
//searchStartDt : "",
searchStartDt : s_todate,
todate : info.start,
searchYearMonth : function(){
return "";
}
},
success: function(data) {
successCallback(data);
// 날짜 계산
// setCalDate(data, info.startStr);
}
}); */
}
}
],
eventContent: function(arg, createElement) {
event.preventDefault();
console.log(arg.event._def.url);
// arg.event._def.url = "#none";
},
eventClick: function(info) {
info.jsEvent.preventDefault();
console.log('info.event._def.extendedProps : ', info);
location.href = info.event.url;
// schDetailPop(info.event._def.extendedProps.schSeq, info.event._def.extendedProps.schChasiSeq);
return false;
},
});
calendar.render();
var dayText = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid").prepend("<caption>"+dayText+" 달력입니다.</caption>");
$(".fc-col-header").prepend("<caption>일, 월, 화, 수, 목, 금, 토 요일 정보 제공</caption>");
$(".fc-scrollgrid-sync-table").prepend("<caption>날짜별 강의목록 정보 제공</caption>");
});
// 대상자 이름, 생년월일, 대상자TB ID
/* function fncEduReg(trgtNm, dBirth, sspnIdtmtTrgtOrd){
var form = document.regForm;
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
form.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
var data = new FormData(document.getElementById("regForm"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/eduRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}else{
alert("교육 신청에 실패하였습니다.\n담당자에게 문의해 주세요.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
} */
function fn_eduRegPopup(trgtNm, dBirth, sspnIdtmtTrgtOrd){
var data ={
"prcsAplctPrdOrd": $('#regForm input[name="prcsAplctPrdOrd"]').val()
, "trgtNm" : trgtNm
, "dBirth" : dBirth
, "sspnIdtmtTrgtOrd" :sspnIdtmtTrgtOrd
}
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/eduAplctPop.do"
// "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduAplctPop.do"
, 800
, 800
, data
, "N"
, "eduRegPopup"
);
}
function fn_dayDiff(item){
var startDt = item.eduStrtPnttm;
var endDt = item.eduDdlnPnttm;
// 날짜 문자열을 Date 객체로 변환합니다.
var startDate = new Date(startDt.split('.').join('-'));
var endDate = new Date(endDt.split('.').join('-'));
// 두 날짜 사이의 밀리초 차이를 구합니다.
var differenceInMilliseconds = endDate - startDate;
// 밀리초를 일수로 변환합니다. (1일 = 24시간 = 24 * 60분 = 24 * 60 * 60초 = 24 * 60 * 60 * 1000 밀리초)
var differenceInDays = differenceInMilliseconds / (24 * 60 * 60 * 1000);
// 시작 날짜와 종료 날짜를 모두 포함하여 계산
differenceInDays += 1;
return differenceInDays;
}
function fn_MonthHL(){
var today = new Date();
// 현재 달을 가져옵니다. (0부터 시작하므로 1을 더해줍니다.)
var currentMonth = today.getMonth() + 1;
// 해당하는 달의 <th> 요소에 'edup_this' 클래스를 추가합니다.
$("#monthTemp th:nth-child(" + currentMonth + ")").addClass("edup_this");
}
function fncEduSelect(s_todate){
var returnVal = '';
var form = document.selectForm ;
form.sTodate.value = s_todate;
var data = new FormData(document.getElementById("selectForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectSchduleManagerListAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
// returnVal = returnData.data;
returnVal = returnData;
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
return returnVal;
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fn_confirm(){
var form = document.confirmForm;
var dBirth = $('#dBirth').val().replace(/\./g, '');
var trgtNm = $('#trgtNm').val();
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
var data = new FormData(document.getElementById("confirmForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/userConfirmAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
// 교육 신청 ajax
// 대상자 이름, 생년월일, 대상자TB ID
if(returnData.next == "Y")
{
//sspnIdtmtTrgtOrd = returnData.id;
// fncEduReg(trgtNm, dBirth, returnData.id);
fn_eduRegPopup(trgtNm, dBirth, returnData.id);
}
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
// location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_target_confirm_clean(){
$('#trgtNm').val('');
$('#dBirth').val('');
}
/*
*##############################################################################
* START
*##############################################################################
*/
// 날짜 계산
function setCalDate(data, startStr) {
// 현재월 구하기
startStr = startStr.substr(0, 10);
console.log('startStr : ', startStr);
startStr = startStr.replace(/-/g, "");
console.log('startStr : ', startStr);
startStr = startStr.replace(/./g, "");
var todayYear = startStr.substring(0,4);
var todayMonth = 0;
var todayDay = startStr.substring(6,8);
if (todayDay == "01") {
todayMonth = startStr.substring(4,6);
}
else {
if (startStr.substring(4,6) == "12") {
todayMonth = "01";
}
else {
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
if (todayMonth < 10) {
todayMonth = "0" + todayMonth;
}
}
}
// End
//alert(todayMonth);
var monthCnt = 0;
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
var sHtml = "";
for (var j = 0; j < data.length; j++) {
var schStartDate = data[j].start.substr(0, 10);
schStartDate = replaceAll(schStartDate, "-", "");
schStartDate = replaceAll(schStartDate, ".", "");
schStartDate = replaceAll(schStartDate, "/", "");
var thisYear = schStartDate.substring(0,4);
var thisMonth = schStartDate.substring(4,6);
var thisDay = schStartDate.substring(6,8);
var thisWeek = getSecofWeek(schStartDate);
// 해당월 데이터만 처리
if (todayMonth == thisMonth) {
monthCnt++;
if (thisWeek == 1) {
week1Cnt++;
}
else if (thisWeek == 2) {
week2Cnt++;
}
else if (thisWeek == 3) {
week3Cnt++;
}
else if (thisWeek == 4) {
week4Cnt++;
}
else if (thisWeek == 5) {
week5Cnt++;
}
else if (thisWeek == 6) {
week6Cnt++;
}
}
}
sHtml += "전체 : " + monthCnt + "건";
sHtml += " &nbsp;(1주차 : " + week1Cnt + "건";
sHtml += ", &nbsp;&nbsp;2주차 : " + week2Cnt + "건";
sHtml += ", &nbsp;&nbsp;3주차 : " + week3Cnt + "건";
sHtml += ", &nbsp;&nbsp;4주차 : " + week4Cnt + "건";
sHtml += ", &nbsp;&nbsp;5주차 : " + week5Cnt + "건";
sHtml += ", &nbsp;&nbsp;6주차 : " + week6Cnt + "건)";
sHtml += '&nbsp;<button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
//$("#weekCnt").html(sHtml);
}
// 해당일 주차 계산
function getSecofWeek(date) {
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
}
//기소유예 신청
function fncAplctPopup(
p_prcsAplctPrdOrd
, id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
,"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/popup/eduAplctPopList.do"
, 800
, 700
, paramObj
, "Y"
, "AplctPopup"
);
}
</script>
<!-- content -->
<div class="cont_wrap list_con" id="sub">
<form name="selectForm" id="selectForm">
<input type="hidden" name="lctrDivCd" value="60">
<input type="hidden" name="sTodate" value="">
</form>
<form name="confirmForm" id="confirmForm">
<input type="hidden" name="trgtNm">
<input type="hidden" name="dBirth">
<input type="hidden" name="sex">
<input type="hidden" name="clphone">
<input type="hidden" name="chkYn">
</form>
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
<input type="hidden" name="sspnIdtmtTrgtOrd"> <!-- 대상자 테이블 PK -->
<input type="hidden" name="trgtNm">
<input type="hidden" name="dBirth">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>강의목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<ul class="tab tab_02">
<li class="tab_li on con_li"><button type="button" class="tab_button" data-info="list">리스트형</button></li>
<li class="tab_li cal_li"><button type="button" class="tab_button" data-info="cal">캘린더형</button></li>
</ul>
<div class="tab_content on">
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus2" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus2" name="searchStatus2">
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEEduAplctVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" id="searchStartDt" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEEduAplctVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" id="searchEndDt" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>강의목록 : 교육구분, 과정명, 신청기간, 교육일자, 신청자/정원, 상태, 교육신청 등의 정보제공</caption>
<colgroup>
<%-- <col style="width: 5%"> --%>
<col style="width: 10%">
<col style="width: auto">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<!-- <th>NO</th> -->
<th scope=“col”>교육구분</th>
<th scope=“col”>과정명</th>
<th scope=“col”>신청기간</th>
<th scope=“col”>교육일자</th>
<th scope=“col”>신청자/정원</th>
<th scope=“col”>상태</th>
<th scope=“col”>교육신청</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value="${status.count}"/> --%>
<!-- </td> -->
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}">
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td>
<td class="ddlnCdStts">
<c:choose>
<c:when test="${not empty list.ddlnCd}">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
</td>
<td class="aplctBtn">
<%-- <button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">신청</button> --%>
<%-- <button type="button" class="btnType04" data-info="<c:out value="${list.prcsAplctPrdOrd}"/>" data-tooltip="target_confirm_popup" >신청</button> --%>
<!-- -->
<%-- <button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncAplctPopup('<c:out value="${list.prcsAplctPrdOrd}"/>','','','10','select'
,'','',''
)" title="팝업 열림">신청</button> --%>
<button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" title="팝업 열림">
<c:choose>
<c:when test="${list.ddlnCd eq '20'}">
마감
</c:when>
<c:otherwise>
신청
</c:otherwise>
</c:choose>
</button>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- 모바일 시작 -->
<!-- 모바일 시작 -->
<!-- 모바일 시작 -->
<!-- moblie table -->
<div class="tb_list01_m class_m">
<c:forEach var="list" items="${list}" varStatus="status">
<ul onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">
<li>
<span>교육구분</span>
<span><kc:code codeId="VEA001" code="${list.prcsDiv}"/></span>
</li>
<li>
<span>과정명</span>
<span>
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li>
<span>신청기간</span>
<span><c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/></span>
</li>
<li>
<span>교육일자</span>
<span><c:out value="${list.eduStrtPnttm}"/></span>
</li>
<li>
<span>신청자/정원</span>
<span><c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/></span>
</li>
<li>
<span>상태</span>
<span class="ddlnCdSttsM">
<c:choose>
<c:when test="${not empty list.ddlnCd}">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li class="aplctBtnM">
<span>교육신청</span>
<button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" title="팝업 열림">
<c:choose>
<c:when test="${list.ddlnCd eq '20'}">
마감
</c:when>
<c:otherwise>
신청
</c:otherwise>
</c:choose>
</button>
</li>
</ul>
</c:forEach>
</div>
<!--// moblie table -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<!-- <button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button> -->
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</div>
<div class="tab_content" id="schduleManager">
</div>
</form:form>
</div>
<!-- 신청 클릭 > 기소유예 대상자 확인 팝업 -->
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육대상자 확인</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<colgroup>
<col style="width:38%;">
<col style="width:auto;">
</colgroup>
<tr>
<th>성명</th>
<td>
<input type="text" id="trgtNm">
</td>
</tr>
<tr>
<th>주민번호앞자리</th>
<td>
<div class="calendar_wrap">
<duet-date-picker identifier="date" id="dBirth" class="" id="" min="1940-01-01"></duet-date-picker>
</div>
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
</td>
</tr>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_confirm()">제출</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->

View File

@ -0,0 +1,312 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
listForm.submit();
}
function goWrite(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do").submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
//FAQ 답변 open&close
function faqOpen(item) {
if($(item).is(".slide_open") == true) {
$(item).removeClass("slide_open");
$(item).next(".answer").slideUp(300);
$(item).attr("title","답변 열기");
} else {
$(item).addClass("slide_open");
$(item).next(".answer").slideDown(300);
$(item).attr("title","답변 닫기");
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
}
}
function fn_qnaReg(){
if(!confirm("문의 등록을 하시겠습니까?")){
$('#qnaCn').val('');
$('.btn_popup_close').click();
return false;
}
var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/qnaRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_goListForm(data){
var form = document.goListForm ;
form.searchStatus.value = data ;
form.submit();
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" />
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<!--FAQ 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">FAQ</div>
</div>
</div>
</div>
<c:if test="${not empty FAQList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="FAQList" items="${FAQList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${FAQList.nttSj}</p>
<p class="date">${FAQList.frstRegisterPnttm}</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<div>
<p class="awr_cont">${FAQList.nttCn }</p>
</div>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty FAQList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
<!--Q&A 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">Q&amp;A</div>
</div>
</div>
<div class="btn_right">
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
</div>
</div>
<c:if test="${not empty qnaList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="list" items="${qnaList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${list.qnaCn }</p>
<p class="date">${list.frstRegistPnttm }</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<c:choose>
<c:when test="${not empty list.qnaAnswerCn }">
<div>
<p class="awr_cont">${list.qnaAnswerCn }</p>
<p class="date">${list.lastUpdtPnttm }</p>
</div>
</c:when>
<c:otherwise>
<p class="awr_cont">내용이 없습니다.</p>
</c:otherwise>
</c:choose>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty qnaList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
</form:form>
</div>
<form id="qnaForm" name="qnaForm" method="post">
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap q_pop">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육문의하기</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01 tb_input" style="overflow:visible;">
<table>
<caption>교육문의 - 문의내용 입력</caption>
<thead>
<tr>
<th scope="col">문의내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<label for="qnaCn" class="label">교육문의 작성하기</label>
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;" title="교육문의 작성"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 팝업을 위한 mask -->
<div class="mask"></div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -0,0 +1,96 @@
<%--
Class Name : eduAplctReg.jsp
Description : 교육신청등록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2021.12.02 조용준 내용
author : 조용준
since : 2021.12.02
--%>
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<div class="cont_wrap edu_wrap" id="sub">
<div class="cont_tit">
<h2>교육신청</h2>
<div class="sns_go">
<button type="button" title="새창열림" onclick="window.open('http://www.facebook.com/koreacopyright')"><img
src="/ipedu/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
</div>
</div>
<div class="edu_img">
<img src="/ipedu/visitEdu/usr/publish/images/content/sub_edu05_main.png" alt="">
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>기소유예교육</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table class="edu_table">
<caption>기소유예 교육소개 : 교육대상, 교육절차 등의 정보제공</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>교육대상</p>
</th>
<td>저작권 침해사범 중 검찰청으로부터 교육조건부 기소유예 처분을 받아 교육 의뢰된 자</td>
</tr>
<tr>
<th scope="row">
<p style="line-height: 14;">교육절차</p>
</th>
<td>
<ul class="edu_sus_num">
<li>
<p class="num">1</p>
<p><b>교육의뢰</b>검찰청 <img src="/ipedu/visitEdu/usr/publish/images/content/edu_arrow.png" alt="다음"> <span>위원회</span></p>
</li>
<li class="sus_te">
<p class="num">2</p>
<p><b>교육 실시·운영<span>(8시간)</span></b>한국지식재산보호원</p>
</li>
<li>
<p class="num">3</p>
<p><b>교육 이수자 확정</b>한국지식재산보호원</p>
</li>
<li class="sus_te">
<p class="num">4</p>
<p><b>교육 결과 통보<span>(분기별 또는 요청 시)</span></b>위원회 <img src="/ipedu/visitEdu/usr/publish/images/content/edu_arrow.png" alt="다음"> <span>검찰청</span></p>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType08" onclick="location.href='<c:url value="/web/ve/aplct/cmdTrgt/eduAplctList.do" />'">교육신청</button>
</div>
<div class="btn_right">
</div>
</div>
</div>

View File

@ -0,0 +1,508 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
listForm.submit();
}
function goWrite(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do").submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
//FAQ 답변 open&close
function faqOpen(item) {
if($(item).is(".slide_open") == true) {
$(item).removeClass("slide_open");
$(item).next(".answer").slideUp(300);
$(item).attr("title","답변 열기");
} else {
$(item).addClass("slide_open");
$(item).next(".answer").slideDown(300);
$(item).attr("title","답변 닫기");
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
}
}
function fn_qnaReg(){
if(!confirm("문의 등록을 하시겠습니까?")){
$('#qnaCn').val('');
$('.btn_popup_close').click();
return false;
}
var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/qnaRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_goListForm(data){
var form = document.goListForm ;
form.searchStatus.value = data ;
form.submit();
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" />
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>나의강의실</h2>
</div>
<ul class="edu_process">
<li class="edu_apply" style="cursor: pointer;" onclick="fn_goListForm(10)" onkeypress="if(event.keyCode == 13){fn_goListForm(10)}" tabindex="0"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_10'] ? '0' : countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
<li class="edu_register" style="cursor: pointer;" onclick="fn_goListForm(15)" onkeypress="if(event.keyCode == 13){fn_goListForm(15)}" tabindex="0"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_20'] ? '0' : countMap['COUNT_APRVL_CD_20']} " /></span>건</p></div></li>
<li class="edu_close" style="cursor: pointer;" onclick="fn_goListForm(20)" onkeypress="if(event.keyCode == 13){fn_goListForm(20)}" tabindex="0"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${empty countMap['COUNT_END_CD'] ? '0' : countMap['COUNT_END_CD']}" /></span>건</p></div></li>
</ul>
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best">교육 신청 목록</div>
</div>
<div class="btn_wrap1">
<button type="button" title="교육 신청 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do"/>'">더보기</button>
</div>
</div>
<div class="tb_list02">
<table>
<caption>교육 신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공</caption>
<colgroup>
<col style="width:35%;">
<col style="width:;">
<col style="width:13%;">
<col style="width:13%;">
<%-- <col style="width:13%;"> --%>
</colgroup>
<thead>
<tr>
<th scope="col">교육과정</th>
<th scope="col">교육일자</th>
<th scope="col">신청결과</th>
<th scope="col">설문조사</th>
<!-- <th scope="col">이수증</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}" style="cursor:pointer;" tabindex="0">
<!-- <td> -->
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<kc:code codeId="VEA003" code="${list.aplctStateCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button>
</c:if>
<c:if test="${list.aprvlCd eq '60' and list.ddlnCd eq '20'}">
<%-- <button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button> --%>
</c:if>
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<%-- <c:choose> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }"> --%>
<!-- <button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button> -->
<%-- </c:when> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }"> --%>
<!-- 설문완료 -->
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<!-- - -->
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10 and list.aplctStateCd ne 30}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType02" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType01 sur_bt" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</td>
<!--
<td>
<c:choose>
<c:when test="${list.qestRsltExists }">
<button type="button" title="출력" class="btnType03">출력</button>
</c:when>
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
교육완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
-->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- moblie table -->
<div class="tb_list01_m class_m">
<c:forEach var="list" items="${list}" varStatus="status">
<ul onclick="">
<li>
<span>교육과정</span>
<span onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" >
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li>
<span>교육일자</span>
<span><c:out value="${list.eduStrtPnttm}"/></span>
</li>
<li>
<span>신청결과</span>
<span>
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<kc:code codeId="VEA003" code="${list.aplctStateCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button>
</c:if>
<c:if test="${list.aprvlCd eq '60' and list.ddlnCd eq '20'}">
<%-- <button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button> --%>
</c:if>
</span>
</li>
<li>
<span>설문조사</span>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10 and list.aplctStateCd ne 30}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType04" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType04 sur_bt" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</li>
</ul>
</c:forEach>
</div>
<!--// moblie table -->
<!--Q&A 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">Q&amp;A</div>
</div>
</div>
<div class="btn_right">
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
</div>
</div>
<c:if test="${not empty qnaList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="list" items="${qnaList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${list.qnaCn }</p>
<p class="date">${list.frstRegistPnttm }</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<c:choose>
<c:when test="${not empty list.qnaAnswerCn }">
<div>
<p class="awr_cont">${list.qnaAnswerCn }</p>
<p class="date">${list.lastUpdtPnttm }</p>
</div>
</c:when>
<c:otherwise>
<p class="awr_cont">내용이 없습니다.</p>
</c:otherwise>
</c:choose>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty qnaList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
</form:form>
</div>
<form id="qnaForm" name="qnaForm" method="post">
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap q_pop">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육문의하기</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01 tb_input" style="overflow:visible;">
<table>
<caption>교육문의 - 문의내용 입력</caption>
<thead>
<tr>
<th scope="col">문의내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<label for="qnaCn" class="label">교육문의 작성하기</label>
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;" title="교육문의 작성"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 팝업을 위한 mask -->
<div class="mask"></div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -0,0 +1,861 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/ipedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
</style>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
//대용량 업로드 세팅
/*
* ==================================================================
* INNORIX
* 파일전송 컨트롤 생성
* ==================================================================
*/
control = innorix.create({
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
, transferMode: 'both' // 업로드, 다운로드 혼합사용
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
, height:40
, width: 650
, maxFileCount : 1 // 첨부파일 최대 갯수
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
});
// 업로드 완료 후 이벤트
control.on('uploadComplete', function (p) {
console.log('uploadComplete : ', p);
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
});
});
/*
* 교육 확정일떄 취소를하면 팝업이 열림
* 열리기전 데이터를 form에 넣고 팝업 오픈
*/
function fn_cnclUpdate(eduAplctOrd, prcsAplctPrdOrd){
var cnclForm = document.cnclForm;
cnclForm.eduAplctOrd.value = eduAplctOrd;
cnclForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
}
function fn_veEduAplctCnclUpdate(eduAplctOrd){
var form = document.veEduAplctForm;
form.eduAplctOrd.value = eduAplctOrd;
var data = new FormData(document.getElementById("veEduAplctForm"));
if(confirm("취소 신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/cnclUpdateAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("취소되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do'/>";
listForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctDetail.do'/>";
viewForm.submit();
}
//서류 요청
function insetDocReq(){
//서류명 체크
if($("input[name=cnclCn]").val() == ''){
alert("취소사유를 입력해 주세요");
return false;
}
//첨부파일 체크 및 요청
if(confirm("제출 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control.upload(); // 업로드 시작
}else{
alert("등록된 첨부파일이 없습니다.");
return false;
}
}
}
//서류 요청 양식 업로드 후 콜백
function fn_callBackInnorix(data){
var url = "<c:url value='/web/common/insertInnorixSspnCnClAjax.do' />";
//선택된 강사 ID
var sendData = {
"fileType": "sspnForm"
, "eduAplctOrd": $('#cnclForm #eduAplctOrd').val()
, "prcsAplctPrdOrd": $('#cnclForm #prcsAplctPrdOrd').val()
, "innorixFileListVO": data
, "cnclCn" : $('#cnclCn').val()
, "successMsg" : "등록이 완료되었습니다."
}
console.log('sendData : ', sendData);
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
}
}
// 설문조사 버튼 클릭 이벤트
function selectQestnInfo(id, action){
$('#srvyPopupForm #eduAplctOrd').val(id);
$('#eduAplctOrd').val(id);
if(action == 'insert'){
$('#popupUpdate').hide();
$('#popupInsert').show();
}
else if(action == 'update'){
$('#popupUpdate').show();
$('#popupInsert').hide();
}
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectQustnrCommonAjax.do"
,data: {
"lctrDivCd" : "60" // 기반강화 -> 기소유예(60)도 같이써야함
// ,"eduChasiOrd" : chId
}
,dataType:'json'
,success:function(returnData){
console.log('returnData : ', returnData);
fn_makeQestnTbody(returnData);
// update면 선택한 목록 가져오기
if(action == 'update'){
fn_selectQestnTbody();
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
// 설문조사 문항 가져오기
function fn_makeQestnTbody(returnData){
$('#qustnrTmplatId').val(returnData.qustnrTmplatId);
$('#qestnrId').val(returnData.qestnrId);
var data = returnData.Comtnqustnrqesitm; // 이 변수에 AJAX를 통해 가져온 데이터가 저장되어 있다고 가정
$('#qestmInfoSize').val(data.length);
// tbody에 새로운 행들을 추가
var $tbody = $("#qestnTbody");
$tbody.empty(); // 기존의 tbody 내용을 비웁니다.
$.each(data, function(index, item) {
var $row = $("<tr></tr>");
// hiddem값 셋팅
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrId" value="' + item.qestnrId + '">');
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrQesitmId" value="' + item.qestnrQesitmId + '">');
$row.append('<input type="hidden" id="qustnrRsltId_'+index+'" name="resultList[' + index + '].qustnrRsltId" value="">');
// 첫 번째 열: 설문 문항
$row.append('<th scope="row" class="t_left">' + (index + 1) + ') ' + item.qestnCn + '</th>');
// 평가 옵션 열 추가
var inputTypes = ['verySatisfied', 'satisfied', 'neither', 'dissatisfied', 'veryDissatisfied'];
$.each(inputTypes, function(i, type) {
var inputId = type + '_' + index;
var $cell = $('<td></td>');
var $label = $('<label for="' + inputId + '" class="label">' + type + '</label>');
var $input = $('<input type="radio" class="popupInput" id="' + inputId + '" name="resultList[' + index + '].responseRadio" value="' + type + '">');
$cell.append($label).append($input);
$row.append($cell);
});
$tbody.append($row);
});
}
function srvySendSubmit(type){
var isValid = true;
$("#qestnTbody tr").each(function(index) {
// 해당 행의 라디오 버튼이 선택되었는지 확인
if ($("input[type='radio']:checked", this).length === 0) {
isValid = false;
alert("문항 " + (index + 1) + "을(를) 확인해주세요.");
isValid = false;
return false; // 반복 중지
}
});
if (!isValid) {
return false;
}
var masage = "";
if(type == 'i'){
masage = "설문결과를 등록 하시겠습니까?";
$("#qustnrIemType").val("insert")
}else if(type == 'u'){
masage = "설문결과를 수정 하시겠습니까?";
$("#qustnrIemType").val("update")
}
if(confirm(masage)){
var data = new FormData(document.getElementById("srvyPopupForm"));
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/mergeSrvyInfoAjax.do"
,data: data
,dataType:'json'
,async: false
,processData: false
,contentType: false
,cache: false
,success:function(returnData){
if(returnData.result == 'success'){
if(type == 'i'){
alert("설문결과가 등록 되었습니다.");
}else if(type == 'u'){
alert("설문결과가 수정 되었습니다.");
}
window.location.reload();
}else if(returnData.result == 'fail'){
alert(returnData.msg);
location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fn_selectQestnTbody(){
var data = new FormData(document.getElementById("srvyPopupForm"));
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectSrvyInfoAjax.do"
,data: data
,dataType:'json'
,async: false
,processData: false
,contentType: false
,cache: false
,success:function(returnData){
if(returnData.result == 'success'){
$('#qestnrRespondId').val(returnData.respondId);
$.each(returnData.data, function(index, item) {
console.log('#'+item.verySatisfied+'_'+index);
$('#qustnrRsltId'+'_'+index).val(item.qustnrRsltId);
if(item.verySatisfied == '1') {
$('#verySatisfied'+'_'+index).prop('checked', true);
}
if(item.satisfied == '1') {
$('#satisfied'+'_'+index).prop('checked', true);
}
if(item.neither == '1') {
$('#neither'+'_'+index).prop('checked', true);
}
if(item.dissatisfied == '1') {
$('#dissatisfied'+'_'+index).prop('checked', true);
}
if(item.veryDissatisfied == '1') {
$('#veryDissatisfied'+'_'+index).prop('checked', true);
}
});
console.log('returnData : ', returnData);
}else if(returnData.result == 'fail'){
alert(returnData.msg);
// location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="veEduAplctForm" name="veEduAplctForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="aprvlCd" name="aprvlCd" value="40">
</form>
<form id="cnclForm" name="cnclForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd">
</form>
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="goEduAplctListForm" id="goEduAplctListForm">
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>신청목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus" name="searchStatus">
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEPrcsDetailVO.searchStatus eq 10 ? 'selected' : ''} value="10">교육신청</option>
<%-- <option ${vEPrcsDetailVO.searchStatus eq 30 ? 'selected' : ''} value="30">교육취소</option> --%>
<option ${vEPrcsDetailVO.searchStatus eq 15 ? 'selected' : ''} value="15">진행중</option>
<option ${vEPrcsDetailVO.searchStatus eq 20 ? 'selected' : ''} value="20">완료</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사 확인 등의 정보제공</caption>
<colgroup>
<col style="width:35%;">
<col style="width:10%;">
<col style="width:13%;">
<col style="width:13%;">
<col style="width:10%;">
<%-- <col style="width:13%;"> --%>
</colgroup>
<thead>
<tr>
<th scope="col">교육과정</th>
<th scope="col">교육일자</th>
<th scope="col">신청결과</th>
<th scope="col">설문조사</th>
<th scope="col">비고</th>
<!-- <th scope="col">이수증</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}" style="cursor:pointer;" tabindex="0">
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
<%-- <c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>) --%>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<!--
ve_edu_aplct
aprvl_cd - 교육신청에 대한 상태
10 요청
100 찜하기
120 선정완료
140 선정취소
20 승인
230 대기
30 반려
35 취소요청
40 취소
60 교육확정
70 수정요청
80 수정완료
90 교육미확정
vea_aplct_detail_info
aprvl_state_cd - 신청된 교육에 대한 상태
VEA003 10 미이수
VEA003 20 이수완료
VEA003 30 취소
VEA003 35 취소요청
VEA003 40 취소반려
VEA003 50 반려
ve_prcs_aplct_prd
ddln_cd - 교육과정의 진행 상태
VEA004 10 신청마감
VEA004 20 교육확정
-->
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<!--
VEA003 10 미이수
VEA003 20 이수완료
VEA003 30 취소
VEA003 35 취소요청
-->
<kc:code codeId="VEA003" code="${list.aplctStateCd }"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)
</c:if>
<c:if test="${list.aplctStateCd eq 10 }"> <!--교육 승인된 상태 (미이수)일 때만 취소버튼 노출 -->
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub37_pop02" onclick="fn_cnclUpdate('${list.eduAplctOrd }','${list.prcsAplctPrdOrd }')">취소</button>
</c:if>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
<c:if test="${list.aprvlCd eq 10 }">
<button type="button" title="신청취소" class="btnType02" onclick="fn_veEduAplctCnclUpdate('${list.eduAplctOrd }')">취소</button>
</c:if>
</c:otherwise>
</c:choose>
<!-- <button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button> -->
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<!--
취소상태
list.aplctStateCd ne 30
list.aprvlCd ne 40
-->
<%-- <c:choose> --%>
<%-- <c:when test="${list.aprvlCd eq 20 --%>
<%-- and list.dateChk eq 1 --%>
<%-- and not list.qestRsltExists --%>
<%-- and list.aplctStateCd ne 30 --%>
<%-- and list.aprvlCd ne 40 --%>
<%-- }"> --%>
<%-- <button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','insert')" title="팝업 열림">설문등록</button> --%>
<%-- </c:when> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }"> --%>
<%-- <button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','update')" title="팝업 열림">설문수정</button> --%>
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<!-- - -->
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType02" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType01" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType05" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">교육취소</button>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/cmdTrgt/eduAplctList.do" />'">강의목록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>
<!-- 서류요청 팝업 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
<div class="popup_tit">
<p>취소 사용 제출</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="popup_table_top">
<button type="button" class="btnType06">취소양식 다운로드</button>
</div>
<div class="pop_tb_type01">
<table>
<caption>취소사유 작성표</caption>
<colgroup>
<col style="width: 22%;">
<col style="">
</colgroup>
<tr>
<th scope="col">취소사유</th>
<td><label for="cnclCn" class="label">취소사유 작성</label>
<textarea id="cnclCn" name="cnclCn" title="취소사유 작성하기"></textarea></td>
</tr>
</table>
</div>
<div class="popup_cont upload_area">
<div>
<div class="pop_search_wrap">
<label for="fileNm" class="label">첨부파일 선택</label>
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
</div>
<div id="fileControl"></div><br/>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<!-- <button type="button" class="btnType05">제출</button> -->
<button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop02_close" data-focus-next="sub37_pop02">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 서류요청 팝업-->
<!-- 강의만족도 결과 등록 팝업 -->
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="60">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}">
<input type="hidden" id="qestmInfoSize" value="${fn:length(Comtnqustnrqesitm)}">
<input type="hidden" name="qestnrRespondId" id="qestnrRespondId" value="">
<input type="hidden" name="qustnrIemType" id="qustnrIemType" value="">
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop01" data-focus="sub37_pop01" data-focus-prev="sub37_pop01_close">
<div class="popup_tit">
<p>강의만족도 결과 등록</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop01_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type02">
<table>
<caption>강의만족도 결과표 - 평가문항, 매우만족, 만족, 보통, 불만족, 매우 불만족 입력</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">평가문항</th>
<th scope="col">매우만족</th>
<th scope="col">만족</th>
<th scope="col">보통</th>
<th scope="col">불만족</th>
<th scope="col">매우불만족</th>
</tr>
</thead>
<tbody id="qestnTbody">
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" id="popupInsert" onclick="srvySendSubmit('i');">제출</button>
<button type="button" class="btnType05" id="popupUpdate" onclick="srvySendSubmit('u');">수정</button>
<button type="button" class="btnType02 tooltip-close" data-focus-next="sub37_pop01" data-focus="sub37_pop01_close">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 강의만족도 결과 등록 팝업-->
<spring:eval expression="@property['Globals.prod.islocal']" var="isLocal"/>
<c:choose>
<c:when test="${isLocal eq 'real'}">
<!-- <script src="http://101.79.81.151/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://101.79.81.151/ReportingServer/html5/css/crownix-viewer.min.css"> -->
<script src="https://www.edu-copyright.or.kr/ipedu/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://www.edu-copyright.or.kr/ipedu/ReportingServer/html5/css/crownix-viewer.min.css">
</c:when>
<c:otherwise>
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
</c:otherwise>
</c:choose>
<script>
/*
* 오버레이 방식
*/
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
var isLocal = '${isLocal}';
if(isLocal == 'real'){ //운영
var viewer = new m2soft.crownix.Viewer(
'https://www.edu-copyright.or.kr/ipedu/ReportingServer/service');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
viewer.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [https://www.edu-copyright.or.kr/ipedu/ve/aplct/cmdTrgt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
}else{ //개발
var viewer = new m2soft.crownix.Viewer(
'http://119.193.215.98:8093/ReportingServer/service');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
viewer.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [http://119.193.215.98:9989/ipedu/ve/aplct/cmdTrgt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
}
}
</script>

View File

@ -0,0 +1,934 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style type="text/css">
.fc-day-sat { color:#0000FF; } /* 토요일 */
.fc-day-sun { color:#FF0000; } /* 일요일 */
</style>
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
$('#schduleManager').hide();
$('.tab_button').click(function(){
var type = $(this).data('info');
// list 타입이면 return;
if(type === 'list'){
$('#schduleManager').hide();
return false;
}
$('#schduleManager').show();
});
$(".aplctBtn button").click(function(){
var regForm = document.regForm;
regForm.prcsAplctPrdOrd.value = $(this).data('info');
});
// 상태값 확인
$(".ddlnCdStts").each(function() {
var $thisCell = $(this);
var $applyButton = $thisCell.closest('tr').find(".aplctBtn button");
// var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input");
// 텍스트가 비어있는지 확인
if ($thisCell.text().trim() === "") {
var $currentRow = $thisCell.closest('tr');
var strtPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim());
var currentDate = new Date();
// new Date에서 년, 월, 일만 생성
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
$applyButton.text("마감");
}
$thisCell.text(ddlnCdText);
}
// 텍스트가 "접수중"인지 확인
//if ($thisCell.text().trim() !== "접수중" && $thisCell.text().trim() !== "취소") {
if ($thisCell.text().trim() !== "접수중") {
$applyButton.prop('disabled', true); // 버튼 비활성화
}
/* 24.01.22 웹접근성 검사를 위하여 disabled 사용제외 */
if($applyButton.prop('disabled')){
$applyButton.removeAttr('onclick');
$applyButton.prop('disabled', false);
$applyButton.css('background-color', '#888');
/*24.01.23 웹접근성 검사를 위하여 title 추가*/
$applyButton.attr('title','비활성화됨');
$applyButton.removeAttr('data-tooltip');
}
});
// 상태값 확인 모바일
$(".ddlnCdSttsM").each(function() {
var $thisCell = $(this);
var $applyButton = $thisCell.closest('ul').find(".aplctBtnM button");
// var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input");
// 텍스트가 비어있는지 확인
if ($thisCell.text().trim() === "") {
var $currentRow = $thisCell.closest('ul');
var strtPnttm = new Date($currentRow.find("li:eq(2)").find("span:eq(1)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("li:eq(2)").find("span:eq(1)").text().split("~")[1].trim());
var currentDate = new Date();
// new Date에서 년, 월, 일만 생성
currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
$applyButton.text("마감");
}
$thisCell.text(ddlnCdText);
}
console.log('$thisCell.text() : ', $thisCell.text());
console.log('$thisCell.text().trim() !== "접수중" : ', $thisCell.text().trim() !== "접수중");
// 텍스트가 "접수중"인지 확인
//if ($thisCell.text().trim() !== "접수중" && $thisCell.text().trim() !== "취소") {
if ($thisCell.text().trim() !== "접수중") {
$applyButton.prop('disabled', true); // 버튼 비활성화
}
/* 24.01.22 웹접근성 검사를 위하여 disabled 사용제외 */
if($applyButton.prop('disabled')){
$applyButton.removeAttr('onclick');
$applyButton.prop('disabled', false);
$applyButton.css('background-color', '#888');
/*24.01.23 웹접근성 검사를 위하여 title 추가*/
$applyButton.attr('title','비활성화됨');
$applyButton.removeAttr('data-tooltip');
}
});
// 달력 웹접근성
$(".fc-prev-button").attr("title","이전달로 이동");
$(".fc-next-button").attr("title","다음달로 이동");
$(".fc-next-button").on("click",function(){
var changeDay = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid>caption").text(changeDay+" 달력입니다.");
});
$(".fc-prev-button").on("click",function(){
var changeDay = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid>caption").text(changeDay+" 달력입니다.");
})
});
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('schduleManager');
var calendar = new FullCalendar.Calendar(calendarEl, {
locale: 'ko',
timezone : "local",
weekends : true,
editable : false,
firstDay : 0, //월요일이 먼저 오게 하려면 1
dayMaxEvents: true,
navLinks: false,
customButtons: {
myCustomButton: {
text: '오늘',
click: function(event, elm) {
alert('clicked the custom button!');
}
},viewWeekends : {
text : '주말',
click : function (event, elm) {
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
}
}
},buttonText: {
listMonth: '일정'
},
headerToolbar: {
//left: 'prevYear nextYear today',
left: 'today',
center: 'prev title next',
//right: 'dayGridMonth,listMonth'
right: ''
},
eventSources: [
{
events: function(info, successCallback, failureCallback) {
var events = [];
console.log('info', info);
var s_todate = info.startStr;
ex_s_todate = info.startStr;
var data = fncEduSelect(s_todate);
data.forEach(item => {
console.log(item);
item.url = '${pageContext.request.contextPath}/web/ve/aplct/prevent/eduAplctDetail.do?prcsAplctPrdOrd='+item.prcsAplctPrdOrd; // 여기서 원하는 URL로 대체
});
events.push({
title: 'title',
start: '2023-11-10',
end: '2023-11-29',
url: '${pageContext.request.contextPath}/detail.do?seq='
}); 
// successCallback(events);
successCallback(data);
/*
$.ajax({
url: '<c:url value="/web/ve/instr/tngrVisitEdu/instrInfo/tngrSchduleManagerAjaxLoadData.do"/>',
type: 'POST',
dataType: 'json',
data: {
searchStartDt : "",
//searchStartDt : "",
searchStartDt : s_todate,
todate : info.start,
searchYearMonth : function(){
return "";
}
},
success: function(data) {
successCallback(data);
// 날짜 계산
// setCalDate(data, info.startStr);
}
}); */
}
}
],
eventContent: function(arg, createElement) {
event.preventDefault();
console.log(arg.event._def.url);
// arg.event._def.url = "#none";
},
eventClick: function(info) {
info.jsEvent.preventDefault();
console.log('info.event._def.extendedProps : ', info);
location.href = info.event.url;
// schDetailPop(info.event._def.extendedProps.schSeq, info.event._def.extendedProps.schChasiSeq);
return false;
},
});
calendar.render();
var dayText = $(".fc-header-toolbar .fc-toolbar-chunk .fc-toolbar-title").text();
$(".fc-scrollgrid.fc-scrollgrid-liquid").prepend("<caption>"+dayText+" 달력입니다.</caption>");
$(".fc-col-header").prepend("<caption>일, 월, 화, 수, 목, 금, 토 요일 정보 제공</caption>");
$(".fc-scrollgrid-sync-table").prepend("<caption>날짜별 강의목록 정보 제공</caption>");
});
// 대상자 이름, 생년월일, 대상자TB ID
/* function fncEduReg(trgtNm, dBirth, sspnIdtmtTrgtOrd){
var form = document.regForm;
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
form.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
var data = new FormData(document.getElementById("regForm"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/eduRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}else{
alert("교육 신청에 실패하였습니다.\n담당자에게 문의해 주세요.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
} */
function fn_eduRegPopup(trgtNm, dBirth, sspnIdtmtTrgtOrd){
var data ={
"prcsAplctPrdOrd": $('#regForm input[name="prcsAplctPrdOrd"]').val()
, "trgtNm" : trgtNm
, "dBirth" : dBirth
, "sspnIdtmtTrgtOrd" :sspnIdtmtTrgtOrd
}
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/prevent/eduAplctPop.do"
// "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduAplctPop.do"
, 800
, 800
, data
, "N"
, "eduRegPopup"
);
}
function fn_dayDiff(item){
var startDt = item.eduStrtPnttm;
var endDt = item.eduDdlnPnttm;
// 날짜 문자열을 Date 객체로 변환합니다.
var startDate = new Date(startDt.split('.').join('-'));
var endDate = new Date(endDt.split('.').join('-'));
// 두 날짜 사이의 밀리초 차이를 구합니다.
var differenceInMilliseconds = endDate - startDate;
// 밀리초를 일수로 변환합니다. (1일 = 24시간 = 24 * 60분 = 24 * 60 * 60초 = 24 * 60 * 60 * 1000 밀리초)
var differenceInDays = differenceInMilliseconds / (24 * 60 * 60 * 1000);
// 시작 날짜와 종료 날짜를 모두 포함하여 계산
differenceInDays += 1;
return differenceInDays;
}
function fn_MonthHL(){
var today = new Date();
// 현재 달을 가져옵니다. (0부터 시작하므로 1을 더해줍니다.)
var currentMonth = today.getMonth() + 1;
// 해당하는 달의 <th> 요소에 'edup_this' 클래스를 추가합니다.
$("#monthTemp th:nth-child(" + currentMonth + ")").addClass("edup_this");
}
function fncEduSelect(s_todate){
var returnVal = '';
var form = document.selectForm ;
form.sTodate.value = s_todate;
var data = new FormData(document.getElementById("selectForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectSchduleManagerListAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
// returnVal = returnData.data;
returnVal = returnData;
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
return returnVal;
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/prevent/eduAplctList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/prevent/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fn_confirm(){
var form = document.confirmForm;
var dBirth = $('#dBirth').val().replace(/\./g, '');
var trgtNm = $('#trgtNm').val();
form.trgtNm.value = trgtNm;
form.dBirth.value = dBirth;
var data = new FormData(document.getElementById("confirmForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/userConfirmAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
// 교육 신청 ajax
// 대상자 이름, 생년월일, 대상자TB ID
if(returnData.next == "Y")
{
//sspnIdtmtTrgtOrd = returnData.id;
// fncEduReg(trgtNm, dBirth, returnData.id);
fn_eduRegPopup(trgtNm, dBirth, returnData.id);
}
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
// location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_target_confirm_clean(){
$('#trgtNm').val('');
$('#dBirth').val('');
}
/*
*##############################################################################
* START
*##############################################################################
*/
// 날짜 계산
function setCalDate(data, startStr) {
// 현재월 구하기
startStr = startStr.substr(0, 10);
console.log('startStr : ', startStr);
startStr = startStr.replace(/-/g, "");
console.log('startStr : ', startStr);
startStr = startStr.replace(/./g, "");
var todayYear = startStr.substring(0,4);
var todayMonth = 0;
var todayDay = startStr.substring(6,8);
if (todayDay == "01") {
todayMonth = startStr.substring(4,6);
}
else {
if (startStr.substring(4,6) == "12") {
todayMonth = "01";
}
else {
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
if (todayMonth < 10) {
todayMonth = "0" + todayMonth;
}
}
}
// End
//alert(todayMonth);
var monthCnt = 0;
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
var sHtml = "";
for (var j = 0; j < data.length; j++) {
var schStartDate = data[j].start.substr(0, 10);
schStartDate = replaceAll(schStartDate, "-", "");
schStartDate = replaceAll(schStartDate, ".", "");
schStartDate = replaceAll(schStartDate, "/", "");
var thisYear = schStartDate.substring(0,4);
var thisMonth = schStartDate.substring(4,6);
var thisDay = schStartDate.substring(6,8);
var thisWeek = getSecofWeek(schStartDate);
// 해당월 데이터만 처리
if (todayMonth == thisMonth) {
monthCnt++;
if (thisWeek == 1) {
week1Cnt++;
}
else if (thisWeek == 2) {
week2Cnt++;
}
else if (thisWeek == 3) {
week3Cnt++;
}
else if (thisWeek == 4) {
week4Cnt++;
}
else if (thisWeek == 5) {
week5Cnt++;
}
else if (thisWeek == 6) {
week6Cnt++;
}
}
}
sHtml += "전체 : " + monthCnt + "건";
sHtml += " &nbsp;(1주차 : " + week1Cnt + "건";
sHtml += ", &nbsp;&nbsp;2주차 : " + week2Cnt + "건";
sHtml += ", &nbsp;&nbsp;3주차 : " + week3Cnt + "건";
sHtml += ", &nbsp;&nbsp;4주차 : " + week4Cnt + "건";
sHtml += ", &nbsp;&nbsp;5주차 : " + week5Cnt + "건";
sHtml += ", &nbsp;&nbsp;6주차 : " + week6Cnt + "건)";
sHtml += '&nbsp;<button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
//$("#weekCnt").html(sHtml);
}
// 해당일 주차 계산
function getSecofWeek(date) {
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
}
//기소유예 신청
function fncAplctPopup(
p_prcsAplctPrdOrd
, id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
,"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/prevent/popup/eduAplctPopList.do"
, 800
, 700
, paramObj
, "Y"
, "AplctPopup"
);
}
</script>
<!-- content -->
<div class="cont_wrap list_con" id="sub">
<form name="selectForm" id="selectForm">
<input type="hidden" name="lctrDivCd" value="60">
<input type="hidden" name="sTodate" value="">
</form>
<form name="confirmForm" id="confirmForm">
<input type="hidden" name="trgtNm">
<input type="hidden" name="dBirth">
<input type="hidden" name="sex">
<input type="hidden" name="clphone">
<input type="hidden" name="chkYn">
</form>
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
<input type="hidden" name="sspnIdtmtTrgtOrd"> <!-- 대상자 테이블 PK -->
<input type="hidden" name="trgtNm">
<input type="hidden" name="dBirth">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>강의목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<ul class="tab tab_02">
<li class="tab_li on con_li"><button type="button" class="tab_button" data-info="list">리스트형</button></li>
<li class="tab_li cal_li"><button type="button" class="tab_button" data-info="cal">캘린더형</button></li>
</ul>
<div class="tab_content on">
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus2" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus2" name="searchStatus2">
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEEduAplctVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" id="searchStartDt" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEEduAplctVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" id="searchEndDt" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>강의목록 : 교육구분, 과정명, 신청기간, 교육일자, 신청자/정원, 상태, 교육신청 등의 정보제공</caption>
<colgroup>
<%-- <col style="width: 5%"> --%>
<col style="width: 10%">
<col style="width: auto">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<!-- <th>NO</th> -->
<th scope=“col”>교육구분</th>
<th scope=“col”>과정명</th>
<th scope=“col”>신청기간</th>
<th scope=“col”>교육일자</th>
<th scope=“col”>신청자/정원</th>
<th scope=“col”>상태</th>
<th scope=“col”>교육신청</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value="${status.count}"/> --%>
<!-- </td> -->
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;" tabindex="0" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}">
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td>
<td class="ddlnCdStts">
<c:choose>
<c:when test="${not empty list.ddlnCd}">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
</td>
<td class="aplctBtn">
<%-- <button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">신청</button> --%>
<%-- <button type="button" class="btnType04" data-info="<c:out value="${list.prcsAplctPrdOrd}"/>" data-tooltip="target_confirm_popup" >신청</button> --%>
<!-- -->
<%-- <button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncAplctPopup('<c:out value="${list.prcsAplctPrdOrd}"/>','','','10','select'
,'','',''
)" title="팝업 열림">신청</button> --%>
<button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" title="팝업 열림">
<c:choose>
<c:when test="${list.ddlnCd eq '20'}">
마감
</c:when>
<c:otherwise>
신청
</c:otherwise>
</c:choose>
</button>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- 모바일 시작 -->
<!-- 모바일 시작 -->
<!-- 모바일 시작 -->
<!-- moblie table -->
<div class="tb_list01_m class_m">
<c:forEach var="list" items="${list}" varStatus="status">
<ul onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">
<li>
<span>교육구분</span>
<span><kc:code codeId="VEA001" code="${list.prcsDiv}"/></span>
</li>
<li>
<span>과정명</span>
<span>
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li>
<span>신청기간</span>
<span><c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/></span>
</li>
<li>
<span>교육일자</span>
<span><c:out value="${list.eduStrtPnttm}"/></span>
</li>
<li>
<span>신청자/정원</span>
<span><c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/></span>
</li>
<li>
<span>상태</span>
<span class="ddlnCdSttsM">
<c:choose>
<c:when test="${not empty list.ddlnCd}">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li class="aplctBtnM">
<span>교육신청</span>
<button type="button" class="btnType04" data-info="<c:out value='${list.prcsAplctPrdOrd}'/>" data-tooltip="sub36_pop02"
onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" title="팝업 열림">
<c:choose>
<c:when test="${list.ddlnCd eq '20'}">
마감
</c:when>
<c:otherwise>
신청
</c:otherwise>
</c:choose>
</button>
</li>
</ul>
</c:forEach>
</div>
<!--// moblie table -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<!-- <button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button> -->
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</div>
<div class="tab_content" id="schduleManager">
</div>
</form:form>
</div>
<!-- 신청 클릭 > 기소유예 대상자 확인 팝업 -->
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육대상자 확인</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01" style="overflow:visible;">
<table>
<colgroup>
<col style="width:38%;">
<col style="width:auto;">
</colgroup>
<tr>
<th>성명</th>
<td>
<input type="text" id="trgtNm">
</td>
</tr>
<tr>
<th>주민번호앞자리</th>
<td>
<div class="calendar_wrap">
<duet-date-picker identifier="date" id="dBirth" class="" id="" min="1940-01-01"></duet-date-picker>
</div>
<%-- <script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker2.js"></script> --%>
</td>
</tr>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_confirm()">제출</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->

View File

@ -0,0 +1,312 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
listForm.submit();
}
function goWrite(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do").submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/prevent/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
//FAQ 답변 open&close
function faqOpen(item) {
if($(item).is(".slide_open") == true) {
$(item).removeClass("slide_open");
$(item).next(".answer").slideUp(300);
$(item).attr("title","답변 열기");
} else {
$(item).addClass("slide_open");
$(item).next(".answer").slideDown(300);
$(item).attr("title","답변 닫기");
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
}
}
function fn_qnaReg(){
if(!confirm("문의 등록을 하시겠습니까?")){
$('#qnaCn').val('');
$('.btn_popup_close').click();
return false;
}
var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/qnaRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_goListForm(data){
var form = document.goListForm ;
form.searchStatus.value = data ;
form.submit();
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/prevent/sspnIdtmtEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" />
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<!--FAQ 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">FAQ</div>
</div>
</div>
</div>
<c:if test="${not empty FAQList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="FAQList" items="${FAQList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${FAQList.nttSj}</p>
<p class="date">${FAQList.frstRegisterPnttm}</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<div>
<p class="awr_cont">${FAQList.nttCn }</p>
</div>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty FAQList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
<!--Q&A 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">Q&amp;A</div>
</div>
</div>
<div class="btn_right">
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
</div>
</div>
<c:if test="${not empty qnaList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="list" items="${qnaList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${list.qnaCn }</p>
<p class="date">${list.frstRegistPnttm }</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<c:choose>
<c:when test="${not empty list.qnaAnswerCn }">
<div>
<p class="awr_cont">${list.qnaAnswerCn }</p>
<p class="date">${list.lastUpdtPnttm }</p>
</div>
</c:when>
<c:otherwise>
<p class="awr_cont">내용이 없습니다.</p>
</c:otherwise>
</c:choose>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty qnaList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
</form:form>
</div>
<form id="qnaForm" name="qnaForm" method="post">
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap q_pop">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육문의하기</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01 tb_input" style="overflow:visible;">
<table>
<caption>교육문의 - 문의내용 입력</caption>
<thead>
<tr>
<th scope="col">문의내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<label for="qnaCn" class="label">교육문의 작성하기</label>
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;" title="교육문의 작성"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 팝업을 위한 mask -->
<div class="mask"></div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -0,0 +1,96 @@
<%--
Class Name : eduAplctReg.jsp
Description : 교육신청등록
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2021.12.02 조용준 내용
author : 조용준
since : 2021.12.02
--%>
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<div class="cont_wrap edu_wrap" id="sub">
<div class="cont_tit">
<h2>교육신청</h2>
<div class="sns_go">
<button type="button" title="새창열림" onclick="window.open('http://www.facebook.com/koreacopyright')"><img
src="/ipedu/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
</div>
</div>
<div class="edu_img">
<img src="/ipedu/visitEdu/usr/publish/images/content/sub_edu05_main.png" alt="">
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>기소유예교육</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table class="edu_table">
<caption>기소유예 교육소개 : 교육대상, 교육절차 등의 정보제공</caption>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>교육대상</p>
</th>
<td>저작권 침해사범 중 검찰청으로부터 교육조건부 기소유예 처분을 받아 교육 의뢰된 자</td>
</tr>
<tr>
<th scope="row">
<p style="line-height: 14;">교육절차</p>
</th>
<td>
<ul class="edu_sus_num">
<li>
<p class="num">1</p>
<p><b>교육의뢰</b>검찰청 <img src="/ipedu/visitEdu/usr/publish/images/content/edu_arrow.png" alt="다음"> <span>위원회</span></p>
</li>
<li class="sus_te">
<p class="num">2</p>
<p><b>교육 실시·운영<span>(8시간)</span></b>한국지식재산보호원</p>
</li>
<li>
<p class="num">3</p>
<p><b>교육 이수자 확정</b>한국지식재산보호원</p>
</li>
<li class="sus_te">
<p class="num">4</p>
<p><b>교육 결과 통보<span>(분기별 또는 요청 시)</span></b>위원회 <img src="/ipedu/visitEdu/usr/publish/images/content/edu_arrow.png" alt="다음"> <span>검찰청</span></p>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType08" onclick="location.href='<c:url value="/web/ve/aplct/prevent/eduAplctList.do" />'">교육신청</button>
</div>
<div class="btn_right">
</div>
</div>
</div>

View File

@ -0,0 +1,508 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctList.do'/>";
listForm.submit();
}
function goWrite(){
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctReg.do").submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/prevent/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
//FAQ 답변 open&close
function faqOpen(item) {
if($(item).is(".slide_open") == true) {
$(item).removeClass("slide_open");
$(item).next(".answer").slideUp(300);
$(item).attr("title","답변 열기");
} else {
$(item).addClass("slide_open");
$(item).next(".answer").slideDown(300);
$(item).attr("title","답변 닫기");
$(item).closest("li").siblings("li").children(".question").removeClass("slide_open");
$(item).closest("li").siblings("li").children(".answer").slideUp(300);
$(item).closest("li").siblings("li").children(".question").attr("title","답변 열기");
}
}
function fn_qnaReg(){
if(!confirm("문의 등록을 하시겠습니까?")){
$('#qnaCn').val('');
$('.btn_popup_close').click();
return false;
}
var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/qnaRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData : ', returnData);
if(returnData.result == "success"){
// 대상자 테이블 pk 값
var sspnIdtmtTrgtOrd = returnData.id;
alert(returnData.msg);
}else{
alert(returnData.msg);
}
// fn_target_confirm_clean();
location.reload();
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
$('#target_confirm_popup-close').click();
}
function fn_goListForm(data){
var form = document.goListForm ;
form.searchStatus.value = data ;
form.submit();
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/prevent/sspnIdtmtEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" />
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>나의강의실</h2>
</div>
<ul class="edu_process">
<li class="edu_apply" style="cursor: pointer;" onclick="fn_goListForm(10)" onkeypress="if(event.keyCode == 13){fn_goListForm(10)}" tabindex="0"><i></i><div class="text_area">신청중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_10'] ? '0' : countMap['COUNT_APRVL_CD_10']}" /></span>건</p></div></li>
<li class="edu_register" style="cursor: pointer;" onclick="fn_goListForm(15)" onkeypress="if(event.keyCode == 13){fn_goListForm(15)}" tabindex="0"><i></i><div class="text_area">수강중 강의<p><span><c:out value="${empty countMap['COUNT_APRVL_CD_20'] ? '0' : countMap['COUNT_APRVL_CD_20']} " /></span>건</p></div></li>
<li class="edu_close" style="cursor: pointer;" onclick="fn_goListForm(20)" onkeypress="if(event.keyCode == 13){fn_goListForm(20)}" tabindex="0"><i></i><div class="text_area">종료된 강의<p><span><c:out value="${empty countMap['COUNT_END_CD'] ? '0' : countMap['COUNT_END_CD']}" /></span>건</p></div></li>
</ul>
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best">교육 신청 목록</div>
</div>
<div class="btn_wrap1">
<button type="button" title="교육 신청 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/prevent/sspnIdtmtEduAplctList.do"/>'">더보기</button>
</div>
</div>
<div class="tb_list02">
<table>
<caption>교육 신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공</caption>
<colgroup>
<col style="width:35%;">
<col style="width:;">
<col style="width:13%;">
<col style="width:13%;">
<%-- <col style="width:13%;"> --%>
</colgroup>
<thead>
<tr>
<th scope="col">교육과정</th>
<th scope="col">교육일자</th>
<th scope="col">신청결과</th>
<th scope="col">설문조사</th>
<!-- <th scope="col">이수증</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}" style="cursor:pointer;" tabindex="0">
<!-- <td> -->
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<kc:code codeId="VEA003" code="${list.aplctStateCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button>
</c:if>
<c:if test="${list.aprvlCd eq '60' and list.ddlnCd eq '20'}">
<%-- <button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button> --%>
</c:if>
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<%-- <c:choose> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }"> --%>
<!-- <button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button> -->
<%-- </c:when> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }"> --%>
<!-- 설문완료 -->
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<!-- - -->
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10 and list.aplctStateCd ne 30}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType02" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType01 sur_bt" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</td>
<!--
<td>
<c:choose>
<c:when test="${list.qestRsltExists }">
<button type="button" title="출력" class="btnType03">출력</button>
</c:when>
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
교육완료
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
-->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- moblie table -->
<div class="tb_list01_m class_m">
<c:forEach var="list" items="${list}" varStatus="status">
<ul onclick="">
<li>
<span>교육과정</span>
<span onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" >
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
</span>
</li>
<li>
<span>교육일자</span>
<span><c:out value="${list.eduStrtPnttm}"/></span>
</li>
<li>
<span>신청결과</span>
<span>
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<kc:code codeId="VEA003" code="${list.aplctStateCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</c:otherwise>
</c:choose>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button>
</c:if>
<c:if test="${list.aprvlCd eq '60' and list.ddlnCd eq '20'}">
<%-- <button type="button" class="btnType02" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">취소</button> --%>
</c:if>
</span>
</li>
<li>
<span>설문조사</span>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10 and list.aplctStateCd ne 30}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType04" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType04 sur_bt" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</li>
</ul>
</c:forEach>
</div>
<!--// moblie table -->
<!--Q&A 내용 있을때-->
<div class="q_wrap">
<div class="btn_wrap btn_layout01">
<div class="tb_tit02">
<div class="tb_tit02_left">
<div class="t_best q_title">Q&amp;A</div>
</div>
</div>
<div class="btn_right">
<button type="button" class="btnType04" data-tooltip="target_confirm_popup">교육문의</button>
</div>
</div>
<c:if test="${not empty qnaList}">
<div class="tb_list02">
<div class="faq_wrap">
<ul class="faq">
<c:forEach var="list" items="${qnaList}" varStatus="status">
<li <c:if test="${status.index == 0}"> class='first' </c:if>>
<button type="button" title="답변 열기" class="question">
<p class="qst_text"><span>질문</span>Q</p>
<div>
<p class="qst_cont">${list.qnaCn }</p>
<p class="date">${list.frstRegistPnttm }</p>
</div>
</button>
<div class="answer">
<div class="answer_in">
<p class="qst_text"><span>답변</span>A</p>
<c:choose>
<c:when test="${not empty list.qnaAnswerCn }">
<div>
<p class="awr_cont">${list.qnaAnswerCn }</p>
<p class="date">${list.lastUpdtPnttm }</p>
</div>
</c:when>
<c:otherwise>
<p class="awr_cont">내용이 없습니다.</p>
</c:otherwise>
</c:choose>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
</c:if>
<c:if test="${empty qnaList}">
<div class="q_text">
- 내용이 없습니다.
</div>
</c:if>
</div>
</form:form>
</div>
<form id="qnaForm" name="qnaForm" method="post">
<!-- 교육대상자 확인 -->
<div class="tooltip-wrap q_pop">
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="target_confirm_popup" data-focus="target_confirm_popup" data-focus-prev="target_confirm_popup_close">
<div class="popup_tit">
<p>교육문의하기</p>
<button class="btn_popup_close tooltip-close" data-focus="target_confirm_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type01 tb_input" style="overflow:visible;">
<table>
<caption>교육문의 - 문의내용 입력</caption>
<thead>
<tr>
<th scope="col">문의내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<label for="qnaCn" class="label">교육문의 작성하기</label>
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;" title="교육문의 작성"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fn_qnaReg()">문의</button>
<button type="button" class="btnType02 tooltip-close" id="target_confirm_popup-close" data-focus="target_confirm_popup-close" data-focus-next="target_confirm_popup">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 팝업을 위한 mask -->
<div class="mask"></div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>

View File

@ -0,0 +1,861 @@
<%@ page 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="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국지식재산보호원 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<style>
input:disabled {
background-color: #f9f9f9 !important;
}
input:read-only {
background-color: #f9f9f9 !important;
}
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/ipedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
</style>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
//대용량 업로드 세팅
/*
* ==================================================================
* INNORIX
* 파일전송 컨트롤 생성
* ==================================================================
*/
control = innorix.create({
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
, transferMode: 'both' // 업로드, 다운로드 혼합사용
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
, height:40
, width: 650
, maxFileCount : 1 // 첨부파일 최대 갯수
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
});
// 업로드 완료 후 이벤트
control.on('uploadComplete', function (p) {
console.log('uploadComplete : ', p);
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
});
});
/*
* 교육 확정일떄 취소를하면 팝업이 열림
* 열리기전 데이터를 form에 넣고 팝업 오픈
*/
function fn_cnclUpdate(eduAplctOrd, prcsAplctPrdOrd){
var cnclForm = document.cnclForm;
cnclForm.eduAplctOrd.value = eduAplctOrd;
cnclForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
}
function fn_veEduAplctCnclUpdate(eduAplctOrd){
var form = document.veEduAplctForm;
form.eduAplctOrd.value = eduAplctOrd;
var data = new FormData(document.getElementById("veEduAplctForm"));
if(confirm("취소 신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/prevent/cnclUpdateAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("취소되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/prevent/sspnIdtmtEduAplctList.do'/>";
listForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/prevent/eduAplctDetail.do'/>";
viewForm.submit();
}
//서류 요청
function insetDocReq(){
//서류명 체크
if($("input[name=cnclCn]").val() == ''){
alert("취소사유를 입력해 주세요");
return false;
}
//첨부파일 체크 및 요청
if(confirm("제출 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control.upload(); // 업로드 시작
}else{
alert("등록된 첨부파일이 없습니다.");
return false;
}
}
}
//서류 요청 양식 업로드 후 콜백
function fn_callBackInnorix(data){
var url = "<c:url value='/web/common/insertInnorixSspnCnClAjax.do' />";
//선택된 강사 ID
var sendData = {
"fileType": "sspnForm"
, "eduAplctOrd": $('#cnclForm #eduAplctOrd').val()
, "prcsAplctPrdOrd": $('#cnclForm #prcsAplctPrdOrd').val()
, "innorixFileListVO": data
, "cnclCn" : $('#cnclCn').val()
, "successMsg" : "등록이 완료되었습니다."
}
console.log('sendData : ', sendData);
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
}
}
// 설문조사 버튼 클릭 이벤트
function selectQestnInfo(id, action){
$('#srvyPopupForm #eduAplctOrd').val(id);
$('#eduAplctOrd').val(id);
if(action == 'insert'){
$('#popupUpdate').hide();
$('#popupInsert').show();
}
else if(action == 'update'){
$('#popupUpdate').show();
$('#popupInsert').hide();
}
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectQustnrCommonAjax.do"
,data: {
"lctrDivCd" : "60" // 기반강화 -> 기소유예(60)도 같이써야함
// ,"eduChasiOrd" : chId
}
,dataType:'json'
,success:function(returnData){
console.log('returnData : ', returnData);
fn_makeQestnTbody(returnData);
// update면 선택한 목록 가져오기
if(action == 'update'){
fn_selectQestnTbody();
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
// 설문조사 문항 가져오기
function fn_makeQestnTbody(returnData){
$('#qustnrTmplatId').val(returnData.qustnrTmplatId);
$('#qestnrId').val(returnData.qestnrId);
var data = returnData.Comtnqustnrqesitm; // 이 변수에 AJAX를 통해 가져온 데이터가 저장되어 있다고 가정
$('#qestmInfoSize').val(data.length);
// tbody에 새로운 행들을 추가
var $tbody = $("#qestnTbody");
$tbody.empty(); // 기존의 tbody 내용을 비웁니다.
$.each(data, function(index, item) {
var $row = $("<tr></tr>");
// hiddem값 셋팅
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrId" value="' + item.qestnrId + '">');
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrQesitmId" value="' + item.qestnrQesitmId + '">');
$row.append('<input type="hidden" id="qustnrRsltId_'+index+'" name="resultList[' + index + '].qustnrRsltId" value="">');
// 첫 번째 열: 설문 문항
$row.append('<th scope="row" class="t_left">' + (index + 1) + ') ' + item.qestnCn + '</th>');
// 평가 옵션 열 추가
var inputTypes = ['verySatisfied', 'satisfied', 'neither', 'dissatisfied', 'veryDissatisfied'];
$.each(inputTypes, function(i, type) {
var inputId = type + '_' + index;
var $cell = $('<td></td>');
var $label = $('<label for="' + inputId + '" class="label">' + type + '</label>');
var $input = $('<input type="radio" class="popupInput" id="' + inputId + '" name="resultList[' + index + '].responseRadio" value="' + type + '">');
$cell.append($label).append($input);
$row.append($cell);
});
$tbody.append($row);
});
}
function srvySendSubmit(type){
var isValid = true;
$("#qestnTbody tr").each(function(index) {
// 해당 행의 라디오 버튼이 선택되었는지 확인
if ($("input[type='radio']:checked", this).length === 0) {
isValid = false;
alert("문항 " + (index + 1) + "을(를) 확인해주세요.");
isValid = false;
return false; // 반복 중지
}
});
if (!isValid) {
return false;
}
var masage = "";
if(type == 'i'){
masage = "설문결과를 등록 하시겠습니까?";
$("#qustnrIemType").val("insert")
}else if(type == 'u'){
masage = "설문결과를 수정 하시겠습니까?";
$("#qustnrIemType").val("update")
}
if(confirm(masage)){
var data = new FormData(document.getElementById("srvyPopupForm"));
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/mergeSrvyInfoAjax.do"
,data: data
,dataType:'json'
,async: false
,processData: false
,contentType: false
,cache: false
,success:function(returnData){
if(returnData.result == 'success'){
if(type == 'i'){
alert("설문결과가 등록 되었습니다.");
}else if(type == 'u'){
alert("설문결과가 수정 되었습니다.");
}
window.location.reload();
}else if(returnData.result == 'fail'){
alert(returnData.msg);
location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fn_selectQestnTbody(){
var data = new FormData(document.getElementById("srvyPopupForm"));
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectSrvyInfoAjax.do"
,data: data
,dataType:'json'
,async: false
,processData: false
,contentType: false
,cache: false
,success:function(returnData){
if(returnData.result == 'success'){
$('#qestnrRespondId').val(returnData.respondId);
$.each(returnData.data, function(index, item) {
console.log('#'+item.verySatisfied+'_'+index);
$('#qustnrRsltId'+'_'+index).val(item.qustnrRsltId);
if(item.verySatisfied == '1') {
$('#verySatisfied'+'_'+index).prop('checked', true);
}
if(item.satisfied == '1') {
$('#satisfied'+'_'+index).prop('checked', true);
}
if(item.neither == '1') {
$('#neither'+'_'+index).prop('checked', true);
}
if(item.dissatisfied == '1') {
$('#dissatisfied'+'_'+index).prop('checked', true);
}
if(item.veryDissatisfied == '1') {
$('#veryDissatisfied'+'_'+index).prop('checked', true);
}
});
console.log('returnData : ', returnData);
}else if(returnData.result == 'fail'){
alert(returnData.msg);
// location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
//설문 팝업
function fncQustnrList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrFndtnPopList.do"
, 800
, 700
, paramObj
, "Y"
, "QustnrList"
);
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="veEduAplctForm" name="veEduAplctForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="aprvlCd" name="aprvlCd" value="40">
</form>
<form id="cnclForm" name="cnclForm">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd">
</form>
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="goEduAplctListForm" id="goEduAplctListForm">
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>신청목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus" name="searchStatus">
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEPrcsDetailVO.searchStatus eq 10 ? 'selected' : ''} value="10">교육신청</option>
<%-- <option ${vEPrcsDetailVO.searchStatus eq 30 ? 'selected' : ''} value="30">교육취소</option> --%>
<option ${vEPrcsDetailVO.searchStatus eq 15 ? 'selected' : ''} value="15">진행중</option>
<option ${vEPrcsDetailVO.searchStatus eq 20 ? 'selected' : ''} value="20">완료</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<caption>신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사 확인 등의 정보제공</caption>
<colgroup>
<col style="width:35%;">
<col style="width:10%;">
<col style="width:13%;">
<col style="width:13%;">
<col style="width:10%;">
<%-- <col style="width:13%;"> --%>
</colgroup>
<thead>
<tr>
<th scope="col">교육과정</th>
<th scope="col">교육일자</th>
<th scope="col">신청결과</th>
<th scope="col">설문조사</th>
<th scope="col">비고</th>
<!-- <th scope="col">이수증</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" onkeypress="if(event.keyCode == 13){fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');}" style="cursor:pointer;" tabindex="0">
<c:choose>
<c:when test="${not empty list.title}">
<c:out value="${list.title}"/>
</c:when>
<c:otherwise>
<c:out value="${list.prcsNm}"/>
</c:otherwise>
</c:choose>
<%-- <c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>) --%>
</td>
<td>
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<td>
<!--
ve_edu_aplct
aprvl_cd - 교육신청에 대한 상태
10 요청
100 찜하기
120 선정완료
140 선정취소
20 승인
230 대기
30 반려
35 취소요청
40 취소
60 교육확정
70 수정요청
80 수정완료
90 교육미확정
vea_aplct_detail_info
aprvl_state_cd - 신청된 교육에 대한 상태
VEA003 10 미이수
VEA003 20 이수완료
VEA003 30 취소
VEA003 35 취소요청
VEA003 40 취소반려
VEA003 50 반려
ve_prcs_aplct_prd
ddln_cd - 교육과정의 진행 상태
VEA004 10 신청마감
VEA004 20 교육확정
-->
<c:choose>
<c:when test="${not empty list.aplctStateCd }">
<!--
VEA003 10 미이수
VEA003 20 이수완료
VEA003 30 취소
VEA003 35 취소요청
-->
<kc:code codeId="VEA003" code="${list.aplctStateCd }"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)
</c:if>
<c:if test="${list.aplctStateCd eq 10 }"> <!--교육 승인된 상태 (미이수)일 때만 취소버튼 노출 -->
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub37_pop02" onclick="fn_cnclUpdate('${list.eduAplctOrd }','${list.prcsAplctPrdOrd }')">취소</button>
</c:if>
</c:when>
<c:otherwise>
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
<c:if test="${list.aprvlCd eq 10 }">
<button type="button" title="신청취소" class="btnType02" onclick="fn_veEduAplctCnclUpdate('${list.eduAplctOrd }')">취소</button>
</c:if>
</c:otherwise>
</c:choose>
<!-- <button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button> -->
</td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<!--
취소상태
list.aplctStateCd ne 30
list.aprvlCd ne 40
-->
<%-- <c:choose> --%>
<%-- <c:when test="${list.aprvlCd eq 20 --%>
<%-- and list.dateChk eq 1 --%>
<%-- and not list.qestRsltExists --%>
<%-- and list.aplctStateCd ne 30 --%>
<%-- and list.aprvlCd ne 40 --%>
<%-- }"> --%>
<%-- <button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','insert')" title="팝업 열림">설문등록</button> --%>
<%-- </c:when> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }"> --%>
<%-- <button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','update')" title="팝업 열림">설문수정</button> --%>
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<!-- - -->
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.qestRsltExists and list.aplctStateCd ne 10}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType02" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
<button type="button" class="btnType01" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${(list.aprvlCd eq '10' or list.aprvlCd eq '20') and list.ddlnCd ne '20'}">
<button type="button" class="btnType05" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">교육취소</button>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/prevent/eduAplctList.do" />'">강의목록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>
<!-- 서류요청 팝업 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
<div class="popup_tit">
<p>취소 사용 제출</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="popup_table_top">
<button type="button" class="btnType06">취소양식 다운로드</button>
</div>
<div class="pop_tb_type01">
<table>
<caption>취소사유 작성표</caption>
<colgroup>
<col style="width: 22%;">
<col style="">
</colgroup>
<tr>
<th scope="col">취소사유</th>
<td><label for="cnclCn" class="label">취소사유 작성</label>
<textarea id="cnclCn" name="cnclCn" title="취소사유 작성하기"></textarea></td>
</tr>
</table>
</div>
<div class="popup_cont upload_area">
<div>
<div class="pop_search_wrap">
<label for="fileNm" class="label">첨부파일 선택</label>
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
</div>
<div id="fileControl"></div><br/>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<!-- <button type="button" class="btnType05">제출</button> -->
<button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop02_close" data-focus-next="sub37_pop02">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 서류요청 팝업-->
<!-- 강의만족도 결과 등록 팝업 -->
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="60">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}">
<input type="hidden" id="qestmInfoSize" value="${fn:length(Comtnqustnrqesitm)}">
<input type="hidden" name="qestnrRespondId" id="qestnrRespondId" value="">
<input type="hidden" name="qustnrIemType" id="qustnrIemType" value="">
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop01" data-focus="sub37_pop01" data-focus-prev="sub37_pop01_close">
<div class="popup_tit">
<p>강의만족도 결과 등록</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop01_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type02">
<table>
<caption>강의만족도 결과표 - 평가문항, 매우만족, 만족, 보통, 불만족, 매우 불만족 입력</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">평가문항</th>
<th scope="col">매우만족</th>
<th scope="col">만족</th>
<th scope="col">보통</th>
<th scope="col">불만족</th>
<th scope="col">매우불만족</th>
</tr>
</thead>
<tbody id="qestnTbody">
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" id="popupInsert" onclick="srvySendSubmit('i');">제출</button>
<button type="button" class="btnType05" id="popupUpdate" onclick="srvySendSubmit('u');">수정</button>
<button type="button" class="btnType02 tooltip-close" data-focus-next="sub37_pop01" data-focus="sub37_pop01_close">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 강의만족도 결과 등록 팝업-->
<spring:eval expression="@property['Globals.prod.islocal']" var="isLocal"/>
<c:choose>
<c:when test="${isLocal eq 'real'}">
<!-- <script src="http://101.79.81.151/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://101.79.81.151/ReportingServer/html5/css/crownix-viewer.min.css"> -->
<script src="https://www.edu-copyright.or.kr/ipedu/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://www.edu-copyright.or.kr/ipedu/ReportingServer/html5/css/crownix-viewer.min.css">
</c:when>
<c:otherwise>
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
</c:otherwise>
</c:choose>
<script>
/*
* 오버레이 방식
*/
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
var isLocal = '${isLocal}';
if(isLocal == 'real'){ //운영
var viewer = new m2soft.crownix.Viewer(
'https://www.edu-copyright.or.kr/ipedu/ReportingServer/service');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
viewer.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [https://www.edu-copyright.or.kr/ipedu/ve/aplct/prevent/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
}else{ //개발
var viewer = new m2soft.crownix.Viewer(
'http://119.193.215.98:8093/ReportingServer/service');
viewer.hideToolbarItem([ "save" ]);
//viewer.showToolbarItem(["print"]);
viewer.showToolbarItem([ "print_pdf" ]);
viewer.openFile(
'cmplt_crtfc_20231030.mrd',
'/rf [http://119.193.215.98:9989/ipedu/ve/aplct/prevent/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
+ p_prcsAplctPrdOrd
+ '&eduAplctOrd='
+ p_eduAplctOrd + ']');
}
}
</script>

View File

@ -27,7 +27,7 @@
function fncGoDetail(prcsAplctPrdOrd){ function fncGoDetail(prcsAplctPrdOrd){
var viewForm = document.viewForm ; var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ; viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>"; viewForm.action = "<c:url value='/web/ve/aplct/cmdTrgt/eduAplctDetail.do'/>";
viewForm.submit(); viewForm.submit();
} }
@ -68,7 +68,7 @@
var data = new FormData(document.getElementById("qnaForm")); var data = new FormData(document.getElementById("qnaForm"));
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/qnaRegAjax.do"; var url = "${pageContext.request.contextPath}/web/ve/aplct/cmdTrgt/qnaRegAjax.do";
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: url, url: url,
@ -146,7 +146,7 @@
<!-- content --> <!-- content -->
<div class="cont_wrap" id="sub"> <div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do" />" method="post"> <form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" /> <input type="hidden" id="searchStatus" name="searchStatus" />
</form> </form>
<form name="viewForm" id="viewForm"> <form name="viewForm" id="viewForm">
@ -172,7 +172,7 @@
<div class="t_best">교육 신청 목록</div> <div class="t_best">교육 신청 목록</div>
</div> </div>
<div class="btn_wrap1"> <div class="btn_wrap1">
<button type="button" title="교육 신청 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do"/>'">더보기</button> <button type="button" title="교육 신청 목록 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/cmdTrgt/sspnIdtmtEduAplctList.do"/>'">더보기</button>
</div> </div>
</div> </div>