2023-07-28 16:12 조건부기소유예, 기반강화연수 과정 관리 페이지

This commit is contained in:
myname 2023-07-28 16:13:22 +09:00
parent 8670e65a9a
commit 1c20b3dde9
10 changed files with 1445 additions and 23 deletions

View File

@ -17,6 +17,10 @@ public class VeConstants {
public static final String LCTR_DIV_CD_30 = "30";
public static final String LCTR_DIV_CD_40 = "40";
public static final String LCTR_DIV_CD_50 = "50";
public static final String LCTR_DIV_CD_60 = "60";
public static final String STATUS_CD_SBMT = "10"; // 요청

View File

@ -3,6 +3,8 @@ package kcc.ve.oprtn.cndtnSspnIdtmt.prcsInfoMng.web;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -10,11 +12,16 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
@ -101,10 +108,6 @@ public class CndtnPrcsInfoMngController {
@Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil;
*/
/**
* 조건부기소유예 과정 관리 목록 화면
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do")
public String cndtnEduPrcsMngList(
@ -124,13 +127,13 @@ public class CndtnPrcsInfoMngController {
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
paginationInfo.setRecordCountPerPage(10000);
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//교육콘텐츠 조회
vEPrcsDetailVO.setLctrDivCd("40");
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
@ -145,7 +148,7 @@ public class CndtnPrcsInfoMngController {
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
vEPrcsDetailVO.setPrcsDiv("10");
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
@ -163,9 +166,212 @@ public class CndtnPrcsInfoMngController {
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList";
///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do
//cndtnSspnIdtmt/cndtnEduPrcsMngList
}
/**
* 조건부기소유예과정 등록 화면
*/
//@RequestMapping("eduPrcsMngReg.do")
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngReg.do")
public String cndtnEduPrcsMngReg(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngReg";
}
/**
* 조건부기소유예과정 등록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngRegAjax.do")
public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
String prcsOrd = prcsGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsOrd(prcsOrd);
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsService.insert(vEPrcsDetailVO);
//세부과정 생성하기
String[] s_detailPrcsNm = request.getParameterValues("detailPrcsNm");
for (int i=0;i<s_detailPrcsNm.length;i++) {
String prcsOnlnOrd = prcsOnlnGnrService.getNextStringId(); // 고유ID
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
vEPrcsCntntVO.setPrcsOrd(prcsOrd);
vEPrcsCntntVO.setPrcsOnlnCntntOrd(prcsOnlnOrd);
// vEPrcsCntntVO.setPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setDetailPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setChasi(String.valueOf(i+1));
vEPrcsCntntVO.setUseYn("Y");
vEPrcsCntntVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsOnlnCntntService.insert(vEPrcsCntntVO);
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 조건부기소유예과정 상세화면
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDetail.do")
public String cndtnEduPrcsMngDetail(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//세부과정 목록 조회
VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
List<VEPrcsCntntVO> vEPrcsCntntList = vEPrcsOnlnCntntService.selectList(vePrcsCntntVO);
model.addAttribute("vEPrcsCntntList", vEPrcsCntntList);
return "/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDetail";
}
/**
* 조건부기소유예과정 수정화면
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfy.do")
public String cndtnEduPrcsMngMdfy(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//세부과정 목록 조회
VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
List<VEPrcsCntntVO> vEPrcsCntntList = vEPrcsOnlnCntntService.selectList(vePrcsCntntVO);
model.addAttribute("vEPrcsCntntList", vEPrcsCntntList);
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfy";
}
/**
* 조건부기소유예과정 화면
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfyAjax.do")
public ModelAndView cndtnEduPrcsMngMdfyAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsService.update(vEPrcsDetailVO);
//세부과정 지우고 다시 생성
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
int iv = vEPrcsOnlnCntntService.deleteAll(vEPrcsCntntVO);
String[] s_detailPrcsNm = request.getParameterValues("detailPrcsNm");
for (int i=0;i<s_detailPrcsNm.length;i++) {
String prcsOnlnOrd = prcsOnlnGnrService.getNextStringId(); // 고유ID
vEPrcsCntntVO.setPrcsOnlnCntntOrd(prcsOnlnOrd);
//vEPrcsCntntVO.setPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setDetailPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setChasi(String.valueOf(i+1));
vEPrcsCntntVO.setUseYn("Y");
vEPrcsCntntVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsOnlnCntntService.insert(vEPrcsCntntVO);
}
modelAndView.addObject("result", "success");
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -4,6 +4,7 @@ import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,15 +13,23 @@ import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
@ -69,6 +78,33 @@ public class FndthPrcsInfoMngController {
@Resource(name="prcsOnlnGnrService")
private EgovIdGnrService prcsOnlnGnrService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//교육과정신청
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//교육과정신청
@Resource(name = "vEPrcsCmpltDetailService")
private VEPrcsCmpltDetailService vEPrcsCmpltDetailService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/*
// 교육신청 서비스단
@ -129,13 +165,13 @@ public class FndthPrcsInfoMngController {
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
paginationInfo.setRecordCountPerPage(10000);
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//교육콘텐츠 조회
vEPrcsDetailVO.setLctrDivCd("40");
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
@ -150,7 +186,7 @@ public class FndthPrcsInfoMngController {
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
vEPrcsDetailVO.setPrcsDiv("10");
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
@ -224,7 +260,7 @@ public class FndthPrcsInfoMngController {
String prcsOrd = prcsGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsOrd(prcsOrd);
vEPrcsDetailVO.setLctrDivCd("40");
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsService.insert(vEPrcsDetailVO);
@ -246,6 +282,128 @@ public class FndthPrcsInfoMngController {
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 기반강화연수과정 상세화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail.do")
public String fndthEduPrcsMngDetail(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//세부과정 목록 조회
VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
List<VEPrcsCntntVO> vEPrcsCntntList = vEPrcsOnlnCntntService.selectList(vePrcsCntntVO);
model.addAttribute("vEPrcsCntntList", vEPrcsCntntList);
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail";
}
/**
* 기반강화연수과정 수정화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfy.do")
public String fndthEduPrcsMngMdfy(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//세부과정 목록 조회
VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
List<VEPrcsCntntVO> vEPrcsCntntList = vEPrcsOnlnCntntService.selectList(vePrcsCntntVO);
model.addAttribute("vEPrcsCntntList", vEPrcsCntntList);
return "oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfy";
}
/**
* 기반강화연수과정 화면
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfyAjax.do")
public ModelAndView fndthEduPrcsMngMdfyAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsService.update(vEPrcsDetailVO);
//세부과정 지우고 다시 생성
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
int iv = vEPrcsOnlnCntntService.deleteAll(vEPrcsCntntVO);
String[] s_detailPrcsNm = request.getParameterValues("detailPrcsNm");
for (int i=0;i<s_detailPrcsNm.length;i++) {
String prcsOnlnOrd = prcsOnlnGnrService.getNextStringId(); // 고유ID
vEPrcsCntntVO.setPrcsOnlnCntntOrd(prcsOnlnOrd);
//vEPrcsCntntVO.setPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setDetailPrcsNm(s_detailPrcsNm[i]);
vEPrcsCntntVO.setChasi(String.valueOf(i+1));
vEPrcsCntntVO.setUseYn("Y");
vEPrcsCntntVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsOnlnCntntService.insert(vEPrcsCntntVO);
}
modelAndView.addObject("result", "success");
return modelAndView;

View File

@ -0,0 +1,158 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngDetail.jsp
* @Description : 조건부기소유예 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfy.do'/>";
detailForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:code codeId="VE0015" code="${info.prcsDiv}"/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
<%-- 1<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span" css="disabled"/>2
<br/>
3<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span"/>4
<br/>
5<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" css="disabled"/>6
<br/>
7<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}"/>8 --%>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value='${info.prcsNm}' />
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<c:out value='${list.detailPrcsNm}' />
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<c:out value='${info.prcsSortNo}' />
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -44,7 +44,7 @@
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngList.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
@ -52,14 +52,14 @@
function fncGoDetail(prcsOrd){
var listForm = document.listForm ;
listForm.prcsOrd.value = prcsOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngDetail.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDetail.do'/>";
listForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngReg.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngReg.do'/>";
listForm.submit();
}
@ -72,7 +72,7 @@
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngDeleteAjax.do'/>";
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",

View File

@ -0,0 +1,242 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngMdfy.jsp
* @Description : 조건부기소유예 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfyAjax.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 fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}" defaultValue='10'/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<input type="text" placeholder="과정명을 입력해주세요." name="prcsNm" id="prcsNm" value="<c:out value='${info.prcsNm}'/>" style="width: 56%;">
<button type="button" class="btn_type06" onclick="addPro(); return false;">세부과정 추가</button>
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<input type="text" name="detailPrcsNm" id="detailPrcsNm" value="${list.detailPrcsNm}">
<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<input type="text" name="prcsSortNo" id="prcsSortNo" value="<c:out value='${info.prcsSortNo}'/>" style="width: 50px;" maxLength="3">
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,240 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngReg.jsp
* @Description : 조건부기소유예 과정 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngRegAjax.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 fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<input type="text" placeholder="과정명을 입력해주세요." name="prcsNm" id="prcsNm" value="<c:out value='${info.prcsNm}'/>" style="width: 56%;">
<button type="button" class="btn_type06" onclick="addPro(); return false;">세부과정 추가</button>
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<div class="tbody_one">
<span><span class="span_num3">1</span>.</span>
<div>
<input type="text" name="detailPrcsNm" id="detailPrcsNm" value="${info.detailPrcsNm}">
<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td class="addPro_wrap">
<input type="text" name="prcsSortNo" id="prcsSortNo" value="${info.prcsSortNo}" style="width:50px;" maxLength="3">
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,158 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngDetail.jsp
* @Description : 기반강화연수 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
listForm.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfy.do'/>";
detailForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:code codeId="VE0015" code="${info.prcsDiv}"/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
<%-- 1<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span" css="disabled"/>2
<br/>
3<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span"/>4
<br/>
5<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" css="disabled"/>6
<br/>
7<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}"/>8 --%>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value='${info.prcsNm}' />
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<c:out value='${list.detailPrcsNm}' />
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<c:out value='${info.prcsSortNo}' />
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -44,7 +44,7 @@
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngList.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
listForm.submit();
}
@ -52,7 +52,7 @@
function fncGoDetail(prcsOrd){
var listForm = document.listForm ;
listForm.prcsOrd.value = prcsOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngDetail.do'/>";
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail.do'/>";
listForm.submit();
}
@ -72,7 +72,7 @@
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsMngDeleteAjax.do'/>";
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
@ -189,6 +189,20 @@
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list_top -->
@ -263,9 +277,9 @@
<!-- //list -->
<!-- page -->
<%-- <div class="page">
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div> --%>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>

View File

@ -0,0 +1,242 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngMdfy.jsp
* @Description : 기반강화연수 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngMdfyAjax.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 fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}" defaultValue='10'/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<input type="text" placeholder="과정명을 입력해주세요." name="prcsNm" id="prcsNm" value="<c:out value='${info.prcsNm}'/>" style="width: 56%;">
<button type="button" class="btn_type06" onclick="addPro(); return false;">세부과정 추가</button>
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<input type="text" name="detailPrcsNm" id="detailPrcsNm" value="${list.detailPrcsNm}">
<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<input type="text" name="prcsSortNo" id="prcsSortNo" value="<c:out value='${info.prcsSortNo}'/>" style="width: 50px;" maxLength="3">
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>