Merge branch 'advc' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/offedu into advc
This commit is contained in:
commit
de9df705e0
@ -1,79 +1,81 @@
|
||||
package kcc.com.cmm.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
|
||||
* @author 공통서비스 개발팀 이삼섭
|
||||
* @since 2009.04.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.11 이삼섭 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public interface EgovCmmUseService {
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return List(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.(by String codeId)
|
||||
*
|
||||
* @param String codeId
|
||||
* @return List(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception;
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return Map(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception;
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
|
||||
|
||||
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
|
||||
|
||||
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
|
||||
}
|
||||
package kcc.com.cmm.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
|
||||
* @author 공통서비스 개발팀 이삼섭
|
||||
* @since 2009.04.01
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.03.11 이삼섭 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public interface EgovCmmUseService {
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return List(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.(by String codeId)
|
||||
*
|
||||
* @param String codeId
|
||||
* @return List(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception;
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return Map(코드)
|
||||
* @throws Exception
|
||||
*/
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List<?> voList) throws Exception;
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
|
||||
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) ;
|
||||
|
||||
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo);
|
||||
|
||||
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo);
|
||||
|
||||
public List<CmmnDetailCode> selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam);
|
||||
}
|
||||
|
||||
@ -1,78 +1,91 @@
|
||||
package kcc.com.cmm.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
|
||||
/**
|
||||
* @Class Name : CmmUseDAO.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 데이터 접근 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Repository("cmmUseDAO")
|
||||
public class CmmUseDAO extends EgovComAbstractDAO {
|
||||
|
||||
/**
|
||||
* 주어진 조건에 따른 공통코드를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectCmmCodeDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할 조직정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectOgrnztIdDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할그룹정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectGroupIdDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 주어진 조건에 따른 공통코드를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
|
||||
return (CmmnDetailCode) select("CmmUseDAO.selectCmmCodeDetailValue", vo);
|
||||
}
|
||||
|
||||
public CmmnDetailCode selectCmmCodeDetailValueOnlyName(ComDefaultCodeVO vo) {
|
||||
return (CmmnDetailCode) select("CmmUseDAO.selectCmmCodeDetailValueOnlyName", vo);
|
||||
}
|
||||
}
|
||||
package kcc.com.cmm.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
|
||||
/**
|
||||
* @Class Name : CmmUseDAO.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 데이터 접근 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Repository("cmmUseDAO")
|
||||
public class CmmUseDAO extends EgovComAbstractDAO {
|
||||
|
||||
/**
|
||||
* 주어진 조건에 따른 공통코드를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectCmmCodeDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할 조직정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectOgrnztIdDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드로 사용할그룹정보를 를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectGroupIdDetail", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 주어진 조건에 따른 공통코드를 불러온다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
|
||||
return (CmmnDetailCode) select("CmmUseDAO.selectCmmCodeDetailValue", vo);
|
||||
}
|
||||
|
||||
public CmmnDetailCode selectCmmCodeDetailValueOnlyName(ComDefaultCodeVO vo) {
|
||||
return (CmmnDetailCode) select("CmmUseDAO.selectCmmCodeDetailValueOnlyName", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : selectCmmCodeDetailOrderByCode
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.20
|
||||
* @description : code로 order by
|
||||
* @param codeParam
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<CmmnDetailCode> selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam) {
|
||||
return (List<CmmnDetailCode>) list("CmmUseDAO.selectCmmCodeDetailOrderByCode", codeParam);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,139 +1,145 @@
|
||||
package kcc.com.cmm.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
import kcc.com.cmm.service.EgovCmmUseService;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovCmmUseServiceImpl.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Service("EgovCmmUseService")
|
||||
public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService {
|
||||
|
||||
@Resource(name = "cmmUseDAO")
|
||||
private CmmUseDAO cmmUseDAO;
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectCmmCodeDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.(by String codeId)
|
||||
*
|
||||
* @param String codeId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception {
|
||||
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
|
||||
comDefaultCodeVO.setCodeId(codeId);
|
||||
return cmmUseDAO.selectCmmCodeDetail(comDefaultCodeVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception {
|
||||
ComDefaultCodeVO vo;
|
||||
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
|
||||
|
||||
Iterator<?> iter = voList.iterator();
|
||||
while (iter.hasNext()) {
|
||||
vo = (ComDefaultCodeVO) iter.next();
|
||||
map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectOgrnztIdDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectGroupIdDetail(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
|
||||
return cmmUseDAO.selectCmmCodeDetailValue(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo) {
|
||||
String resultCodeNm = "";
|
||||
if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
|
||||
CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValue(vo);
|
||||
if(code != null){
|
||||
resultCodeNm = code.getCodeNm();
|
||||
}
|
||||
}
|
||||
return resultCodeNm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo) {
|
||||
String resultCodeNm = "";
|
||||
if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
|
||||
CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValueOnlyName(vo);
|
||||
if(code != null){
|
||||
resultCodeNm = code.getCodeNm();
|
||||
}
|
||||
}
|
||||
return resultCodeNm;
|
||||
}
|
||||
}
|
||||
package kcc.com.cmm.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
import kcc.com.cmm.service.EgovCmmUseService;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovCmmUseServiceImpl.java
|
||||
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2009. 3. 11. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 11.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
@Service("EgovCmmUseService")
|
||||
public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService {
|
||||
|
||||
@Resource(name = "cmmUseDAO")
|
||||
private CmmUseDAO cmmUseDAO;
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.
|
||||
*
|
||||
* @param vo
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectCmmCodeDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통코드를 조회한다.(by String codeId)
|
||||
*
|
||||
* @param String codeId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetail(String codeId) throws Exception {
|
||||
ComDefaultCodeVO comDefaultCodeVO = new ComDefaultCodeVO();
|
||||
comDefaultCodeVO.setCodeId(codeId);
|
||||
return cmmUseDAO.selectCmmCodeDetail(comDefaultCodeVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
|
||||
*
|
||||
* @param voList
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("rawtypes")
|
||||
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception {
|
||||
ComDefaultCodeVO vo;
|
||||
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
|
||||
|
||||
Iterator<?> iter = voList.iterator();
|
||||
while (iter.hasNext()) {
|
||||
vo = (ComDefaultCodeVO) iter.next();
|
||||
map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 조직정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 조직정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectOgrnztIdDetail(vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 그룹정보를 코드형태로 리턴한다.
|
||||
*
|
||||
* @param 조회조건정보 vo
|
||||
* @return 그룹정보 List
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
|
||||
return cmmUseDAO.selectGroupIdDetail(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CmmnDetailCode selectCmmCodeDetailValue(ComDefaultCodeVO vo) {
|
||||
return cmmUseDAO.selectCmmCodeDetailValue(vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectCmmCodeDetailCodeValue(ComDefaultCodeVO vo) {
|
||||
String resultCodeNm = "";
|
||||
if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
|
||||
CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValue(vo);
|
||||
if(code != null){
|
||||
resultCodeNm = code.getCodeNm();
|
||||
}
|
||||
}
|
||||
return resultCodeNm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String selectCmmCodeDetailCodeValueOnlyName(ComDefaultCodeVO vo) {
|
||||
String resultCodeNm = "";
|
||||
if(StringUtils.isNotBlank(vo.getCodeId()) && StringUtils.isNotBlank(vo.getCode())){
|
||||
CmmnDetailCode code = cmmUseDAO.selectCmmCodeDetailValueOnlyName(vo);
|
||||
if(code != null){
|
||||
resultCodeNm = code.getCodeNm();
|
||||
}
|
||||
}
|
||||
return resultCodeNm;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CmmnDetailCode> selectCmmCodeDetailOrderByCode(ComDefaultCodeVO codeParam) {
|
||||
// TODO Auto-generated method stub
|
||||
return cmmUseDAO.selectCmmCodeDetailOrderByCode(codeParam);
|
||||
}
|
||||
}
|
||||
|
||||
@ -420,6 +420,7 @@ public class EgovFileMngController {
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
* ve_edu_aplct 첨부파일 목록 - 타입별로 첨부파일 삭제 및 데이터 null 처리를 위한
|
||||
*
|
||||
* @param fileVO
|
||||
@ -475,4 +476,31 @@ public class EgovFileMngController {
|
||||
}
|
||||
return modelAndView;
|
||||
}
|
||||
/*
|
||||
* 게시판 첨부파일에 대한 목록을 조회한다.
|
||||
*
|
||||
* @param fileVO
|
||||
* @param commandMap
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/cmm/fms/selectBBSFileInfsCustom.do")
|
||||
public String selectBBSFileInfsCustom(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
|
||||
String atchFileId = (String) commandMap.get("param_atchFileId");
|
||||
String pdfView = (String) commandMap.get("pdf_view"); //'Y' 이면 pdf 직접 보여주기
|
||||
|
||||
fileVO.setAtchFileId(atchFileId);
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("updateFlag", "N");
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
model.addAttribute("atchFileId", atchFileId);
|
||||
if("Y".equals(pdfView)){
|
||||
model.addAttribute("pdfView", pdfView);
|
||||
}
|
||||
|
||||
return "cmm/fms/EgovBBSFileListCustom";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -299,6 +299,62 @@ public class CheckFileUtil {
|
||||
, i_data_start_row
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param p_multiRequest - MultipartHttpServletRequest
|
||||
* @param p_modelAndView - ModelAndView
|
||||
* @param p_file_nm_prefix - 파일 저장명 prefix
|
||||
* @param p_exts - 가능한 확장자
|
||||
* @param p_i_file_size - 가능한 파일 용량 MB 단위
|
||||
* @param p_i_file_count - 가능한 파일 수량
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String fileValCheckNdbInsertCustom(
|
||||
// MultipartHttpServletRequest p_multiRequest
|
||||
Map<String, MultipartFile> files
|
||||
, ModelAndView p_modelAndView
|
||||
, String p_file_nm_prefix //파일 저장명 prefix
|
||||
, String p_exts //가능한 확장자를 받는다. |
|
||||
, int p_i_file_size //가능한 파일 용량 MB 단위
|
||||
, int p_i_file_count //가능한 파일 수량
|
||||
|
||||
) throws Exception{
|
||||
|
||||
return this.p_fileValCheckNdbInsertCustom(files, p_modelAndView, p_file_nm_prefix, p_exts, p_i_file_size, p_i_file_count);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param p_multiRequest - MultipartHttpServletRequest
|
||||
* @param p_modelAndView - ModelAndView
|
||||
* @param p_file_nm_prefix - 파일 저장명 prefix
|
||||
* @param p_exts - 가능한 확장자
|
||||
* @param p_i_file_size - 가능한 파일 용량 MB 단위
|
||||
* @param p_i_file_count - 가능한 파일 수량
|
||||
* @param p_atchFileId - 기존 파일 그룹명
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public String fileValCheckNdbUpdateCustom(
|
||||
// MultipartHttpServletRequest p_multiRequest
|
||||
Map<String, MultipartFile> files
|
||||
, ModelAndView p_modelAndView
|
||||
, String p_file_nm_prefix //파일 저장명 prefix
|
||||
, String p_exts //가능한 확장자를 받는다. |
|
||||
, int p_i_file_size //가능한 파일 용량 MB 단위
|
||||
, int p_i_file_count //가능한 파일 수량
|
||||
, String p_atchFileId
|
||||
//, BoardMasterVO p_bmVO //게시판 형인 경우 사용
|
||||
) throws Exception{
|
||||
|
||||
return this.p_fileValCheckNdbUpdateCustom(files, p_modelAndView, p_file_nm_prefix, p_exts, p_i_file_size, p_i_file_count, p_atchFileId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
@ -939,5 +995,126 @@ public class CheckFileUtil {
|
||||
|
||||
return p_atchFileId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param p_multiRequest - MultipartHttpServletRequest
|
||||
* @param p_modelAndView - ModelAndView
|
||||
* @param p_file_nm_prefix - 파일 저장명 prefix
|
||||
* @param p_exts - 가능한 확장자
|
||||
* @param p_i_file_size - 가능한 파일 용량 MB 단위
|
||||
* @param p_i_file_count - 가능한 파일 수량
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private String p_fileValCheckNdbInsertCustom(
|
||||
// MultipartHttpServletRequest p_multiRequest
|
||||
Map<String, MultipartFile> files
|
||||
, ModelAndView p_modelAndView
|
||||
, String p_file_nm_prefix //파일 저장명 prefix
|
||||
, String p_exts //가능한 확장자를 받는다. |
|
||||
, int p_i_file_size //가능한 파일 용량 MB 단위
|
||||
, int p_i_file_count //가능한 파일 수량
|
||||
|
||||
) throws Exception{
|
||||
|
||||
LOGGER.debug("CheckFileUtil.fileValCheckNdbInsertCustom()");
|
||||
|
||||
boolean in_bool = true;
|
||||
|
||||
|
||||
List<FileVO> result = null;
|
||||
String atchFileId = "";
|
||||
String isThumbFile = "";
|
||||
//String isThumbFile = "thumbFile"; //"thumbFile" - 썸네일을 생성한다.
|
||||
|
||||
// final Map<String, MultipartFile> files = p_multiRequest.getFileMap();
|
||||
if (!files.isEmpty()) {
|
||||
result = egovFileMngUtil.parseFileInf(files, p_file_nm_prefix, 0, "", "", isThumbFile);
|
||||
|
||||
|
||||
//관리자에서 게시판 설정시 업로드 파일 사이즈와 수량 체크용
|
||||
//사용자 설정용 업로드 파일 사이즈 & 파일 수량 & 확장자 체크용
|
||||
if(!isPosblAtchFileMvWithUserSetting(result, p_modelAndView, p_exts, p_i_file_size, p_i_file_count, 0)) {
|
||||
p_modelAndView.addObject("result", "fail");
|
||||
in_bool = false;
|
||||
}else {
|
||||
atchFileId = fileMngService.insertFileInfs(result); //첨부 파일
|
||||
}
|
||||
|
||||
}else {
|
||||
System.out.println("isempty");
|
||||
}
|
||||
|
||||
if (!in_bool) atchFileId = "ERROR";
|
||||
|
||||
return atchFileId;
|
||||
}
|
||||
|
||||
//사용자 업로드 파일 처리 - 파일수량 상관없음 - 전자정부 게시판 인 경우에 대한 변형만 있음(파일수량은 1~ 처리 가능)
|
||||
/**
|
||||
* @param p_multiRequest - MultipartHttpServletRequest
|
||||
* @param p_modelAndView - ModelAndView
|
||||
* @param p_file_nm_prefix - 파일 저장명 prefix
|
||||
* @param p_exts - 가능한 확장자
|
||||
* @param p_i_file_size - 가능한 파일 용량 MB 단위
|
||||
* @param p_i_file_count - 가능한 파일 수량
|
||||
* @param p_atchFileId - 기존 파일 그룹명
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private String p_fileValCheckNdbUpdateCustom(
|
||||
// MultipartHttpServletRequest p_multiRequest
|
||||
Map<String, MultipartFile> files
|
||||
, ModelAndView p_modelAndView
|
||||
, String p_file_nm_prefix //파일 저장명 prefix
|
||||
, String p_exts //가능한 확장자를 받는다. |
|
||||
, int p_i_file_size //가능한 파일 용량 MB 단위
|
||||
, int p_i_file_count //가능한 파일 수량
|
||||
, String p_atchFileId
|
||||
//, BoardMasterVO p_bmVO //게시판 형인 경우 사용
|
||||
) throws Exception{
|
||||
|
||||
LOGGER.debug("CheckFileUtil.fileValCheckNdbUpdateCustom()");
|
||||
|
||||
boolean in_bool = true;
|
||||
|
||||
List<FileVO> result = null;
|
||||
//String atchFileId = "";
|
||||
String isThumbFile = "";
|
||||
//String isThumbFile = "thumbFile"; //"thumbFile" - 썸네일을 생성한다.
|
||||
|
||||
// final Map<String, MultipartFile> files = p_multiRequest.getFileMap();
|
||||
if (!files.isEmpty()) {
|
||||
FileVO fvo = new FileVO();
|
||||
fvo.setAtchFileId(p_atchFileId);
|
||||
int cnt = fileMngService.getMaxFileSN(fvo);
|
||||
|
||||
|
||||
//관리자에서 게시판 설정시 업로드 파일 사이즈와 수량 체크용
|
||||
//사용자 설정용 업로드 파일 사이즈 & 파일 수량 & 확장자 체크용
|
||||
if(!isPosblAtchFileMvWithUserSetting(result, p_modelAndView, p_exts, p_i_file_size, p_i_file_count, 0)) {
|
||||
p_modelAndView.addObject("result", "fail");
|
||||
|
||||
in_bool = false;
|
||||
|
||||
}else {
|
||||
//atchFileId = fileMngService.insertFileInfs(result); //첨부 파일
|
||||
//result = egovFileMngUtil.parseFileInf(files, "CHGDATE_", cnt, p_atchFileId, "", isThumbFile);
|
||||
result = egovFileMngUtil.parseFileInf(files, p_file_nm_prefix, cnt, p_atchFileId, "", isThumbFile);
|
||||
fileMngService.updateFileInfs(result);
|
||||
|
||||
}
|
||||
|
||||
}else {
|
||||
System.out.println("isempty");
|
||||
}
|
||||
|
||||
if (!in_bool) p_atchFileId = "ERROR";
|
||||
|
||||
return p_atchFileId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -182,6 +182,20 @@ public class ExprnClsrmAplctController {
|
||||
detailVO = vEPrcsAplctPrdService.selectDetailNewOne(detailVO);
|
||||
model.addAttribute("detailVO", detailVO);
|
||||
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
|
||||
VEPrcsDetailVO info = vEPrcsAplctPrdService.selectPagingList(vEPrcsDetailVO).get(0);
|
||||
model.addAttribute("info", info);
|
||||
|
||||
//파일 정보 가져오기
|
||||
FileVO fileVO_cn = new FileVO();
|
||||
fileVO_cn.setAtchFileId(info.getCnAtchFileId());
|
||||
List<FileVO> result_cn = fileService.selectFileInfs(fileVO_cn);
|
||||
model.addAttribute("fileList", result_cn);
|
||||
model.addAttribute("fileListCnt", result_cn.size());
|
||||
|
||||
|
||||
|
||||
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide";
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,10 @@ public class VeSendMail {
|
||||
{
|
||||
String id = "no-reply@copyright.or.kr";
|
||||
String pw = "Copycopy12!";
|
||||
if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
|
||||
/*231120 - 성인 교육용 메일 정보 불일치 > 전부 청소년 메일로 우선 사용*/
|
||||
id = "school@copyright.or.kr";
|
||||
pw = "dustndnjs2669!";
|
||||
/*if("C".equals(sndFlag) || "Z".equals(sndFlag)) {
|
||||
id = "school@copyright.or.kr";
|
||||
//pw = "연수원2669!";
|
||||
pw = "dustndnjs2669!";
|
||||
@ -93,7 +96,7 @@ public class VeSendMail {
|
||||
id = vEEduAplctVO.getClphone1();
|
||||
pw = vEEduAplctVO.getClphone2();
|
||||
|
||||
}
|
||||
}*/
|
||||
|
||||
System.out.println(id);
|
||||
System.out.println(pw);
|
||||
|
||||
@ -142,6 +142,9 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
private String chrctCn;
|
||||
private String prcsAplctPrdEtcOrd;
|
||||
|
||||
private String dprtmNm;
|
||||
private String cnAtchFileId;
|
||||
|
||||
|
||||
private String prcsAplctPrdQnaOrd;
|
||||
private String qnaRegist;
|
||||
@ -149,6 +152,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
private String qnaAnswerCn;
|
||||
private String qnaAnswerer;
|
||||
|
||||
private String mberNm;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -693,6 +698,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setPrcsAplctPrdEtcOrd(String prcsAplctPrdEtcOrd) {
|
||||
this.prcsAplctPrdEtcOrd = prcsAplctPrdEtcOrd;
|
||||
}
|
||||
|
||||
public String getPrcsAplctPrdQnaOrd() {
|
||||
return prcsAplctPrdQnaOrd;
|
||||
}
|
||||
@ -723,6 +729,26 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setQnaAnswerer(String qnaAnswerer) {
|
||||
this.qnaAnswerer = qnaAnswerer;
|
||||
}
|
||||
|
||||
public String getDprtmNm() {
|
||||
return dprtmNm;
|
||||
}
|
||||
public void setDprtmNm(String dprtmNm) {
|
||||
this.dprtmNm = dprtmNm;
|
||||
}
|
||||
public String getCnAtchFileId() {
|
||||
return cnAtchFileId;
|
||||
}
|
||||
public void setCnAtchFileId(String cnAtchFileId) {
|
||||
this.cnAtchFileId = cnAtchFileId;
|
||||
}
|
||||
|
||||
public String getMberNm() {
|
||||
return mberNm;
|
||||
}
|
||||
public void setMberNm(String mberNm) {
|
||||
this.mberNm = mberNm;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -32,5 +32,11 @@ public interface VEPrcsService {
|
||||
void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
void updateImageAtchFileId(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
List<VEPrcsDetailVO> selectQnaPagingList(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
VEPrcsDetailVO selectQnaDetail(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
void qnaUpdate(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
@ -44,8 +44,9 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
|
||||
//U
|
||||
public int update(VEPrcsDetailVO paramVO) throws Exception{
|
||||
vEPrcsAplctPrdDAO.update(paramVO);
|
||||
return vEPrcsDAO.update(paramVO);
|
||||
// vEPrcsAplctPrdDAO.update(paramVO);
|
||||
// return vEPrcsDAO.update(paramVO);
|
||||
return vEPrcsAplctPrdDAO.update(paramVO);
|
||||
}
|
||||
|
||||
//D
|
||||
@ -120,8 +121,8 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
@Override
|
||||
public void updateEtc(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
System.out.println(vEPrcsDetailVO.getPrpsCn());
|
||||
System.out.println(vEPrcsDetailVO.getChrctCn());
|
||||
System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
// System.out.println(vEPrcsDetailVO.getChrctCn());
|
||||
// System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
|
||||
vEPrcsAplctPrdDAO.updateEtc(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@ -84,5 +84,17 @@ public class VEPrcsDAO extends EgovAbstractDAO {
|
||||
public void updateImageAtchFileId(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
update("VEPrcsDAO.updateImageAtchFileId", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectQnaPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (List<VEPrcsDetailVO>) list("VEPrcsDAO.selectQnaPagingList", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public VEPrcsDetailVO selectQnaDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (VEPrcsDetailVO) select("VEPrcsDAO.selectQnaDetail", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public void qnaUpdate(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
update("VEPrcsDAO.qnaUpdate", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -69,5 +69,20 @@ public class VEPrcsServiceImpl implements VEPrcsService {
|
||||
public void updateImageAtchFileId(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEPrcsDAO.updateImageAtchFileId(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEPrcsDetailVO> selectQnaPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsDAO.selectQnaPagingList(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VEPrcsDetailVO selectQnaDetail(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return vEPrcsDAO.selectQnaDetail(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void qnaUpdate(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEPrcsDAO.qnaUpdate(vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
|
||||
@ -42,6 +44,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
private String atchFileId;// 첨부파일 ID
|
||||
|
||||
|
||||
private List<String> searchSelStatusList;
|
||||
|
||||
|
||||
|
||||
@ -197,8 +200,16 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
|
||||
public void setAtchFileId(String atchFileId) {
|
||||
this.atchFileId = atchFileId;
|
||||
}
|
||||
public List<String> getSearchSelStatusList() {
|
||||
return searchSelStatusList;
|
||||
}
|
||||
public void setSearchSelStatusList(List<String> searchSelStatusList) {
|
||||
this.searchSelStatusList = searchSelStatusList;
|
||||
}
|
||||
|
||||
|
||||
public void setSearchSelStatusToList(String searchSelStatus) {
|
||||
this.searchSelStatusList = Arrays.asList(searchSelStatus.split(","));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -22,7 +22,10 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
import kcc.com.cmm.service.EgovCmmUseService;
|
||||
import kcc.com.cmm.service.EgovFileMngService;
|
||||
import kcc.com.cmm.service.FileVO;
|
||||
import kcc.com.cmm.util.DateUtil;
|
||||
@ -105,6 +108,8 @@ public class CndtnTrgtMngController {
|
||||
@Resource(name = "EgovFileMngService")
|
||||
private EgovFileMngService fileService;
|
||||
|
||||
@Resource(name = "EgovCmmUseService")
|
||||
private EgovCmmUseService egovCmmUseService;
|
||||
|
||||
/*
|
||||
|
||||
@ -164,8 +169,6 @@ public class CndtnTrgtMngController {
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
|
||||
|
||||
String userWork = this.getUserWork(request);
|
||||
cndtnTrgtInfoMngVO.setSearchCondition(userWork);
|
||||
|
||||
@ -209,6 +212,9 @@ public class CndtnTrgtMngController {
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", cndtnTrgtInfoMngVOList);
|
||||
|
||||
|
||||
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtList";
|
||||
}
|
||||
|
||||
@ -252,7 +258,7 @@ public class CndtnTrgtMngController {
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
|
||||
|
||||
@ -263,19 +269,23 @@ public class CndtnTrgtMngController {
|
||||
cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
|
||||
|
||||
//검색 조회
|
||||
String selectCondition = "";
|
||||
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){
|
||||
|
||||
|
||||
String selectCondition = "";
|
||||
String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus();
|
||||
|
||||
selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
|
||||
// selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
|
||||
selectCondition = "AND a."+searchStatus+" LIKE '%" +cndtnTrgtInfoMngVO.getSearchKeyword() + "%'";
|
||||
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
|
||||
|
||||
}
|
||||
|
||||
// List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
|
||||
|
||||
System.out.println("cndtnTrgtInfoMngVO.getSearchSelStatus() : "+ cndtnTrgtInfoMngVO.getSearchSelStatus());
|
||||
|
||||
if(StringUtils.isNotEmpty(cndtnTrgtInfoMngVO.getSearchSelStatus()))
|
||||
{
|
||||
cndtnTrgtInfoMngVO.setSearchSelStatusToList(cndtnTrgtInfoMngVO.getSearchSelStatus());
|
||||
}
|
||||
|
||||
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = null;
|
||||
|
||||
try {
|
||||
|
||||
cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
|
||||
@ -292,6 +302,11 @@ public class CndtnTrgtMngController {
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", cndtnTrgtInfoMngVOList);
|
||||
|
||||
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
|
||||
codeParam.setCodeId("VEA008");
|
||||
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
|
||||
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtMngList";
|
||||
}
|
||||
@ -386,6 +401,13 @@ public class CndtnTrgtMngController {
|
||||
String userWork = this.getUserWork(request);
|
||||
model.addAttribute("userWork", userWork);
|
||||
|
||||
|
||||
|
||||
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
|
||||
codeParam.setCodeId("VEA008");
|
||||
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
|
||||
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtReg";
|
||||
}
|
||||
|
||||
@ -617,6 +639,9 @@ public class CndtnTrgtMngController {
|
||||
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
|
||||
model.addAttribute("info", cndtnTrgtInfoVO);
|
||||
|
||||
String userWork = this.getUserWork(request);
|
||||
model.addAttribute("userWork", userWork);
|
||||
|
||||
|
||||
//파일 정보 가져오기
|
||||
FileVO fileVO = new FileVO();
|
||||
@ -627,38 +652,6 @@ public class CndtnTrgtMngController {
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtDetail";
|
||||
}
|
||||
/**
|
||||
* 대상자목록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngDetail.do")
|
||||
public String trgtMngDetail(
|
||||
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//과정 조회
|
||||
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
|
||||
model.addAttribute("info", cndtnTrgtInfoVO);
|
||||
|
||||
|
||||
//파일 정보 가져오기
|
||||
FileVO fileVO = new FileVO();
|
||||
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtMngDetail";
|
||||
}
|
||||
/**
|
||||
* 조건부기소유예과정 수료자 상세화면
|
||||
*/
|
||||
@ -722,6 +715,16 @@ public class CndtnTrgtMngController {
|
||||
model.addAttribute("info", cndtnTrgtInfoVO);
|
||||
|
||||
|
||||
// 관할청 공통코드
|
||||
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
|
||||
codeParam.setCodeId("VEA008");
|
||||
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
|
||||
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
|
||||
|
||||
String userWork = this.getUserWork(request);
|
||||
model.addAttribute("userWork", userWork);
|
||||
|
||||
|
||||
//파일 정보 가져오기
|
||||
FileVO fileVO = new FileVO();
|
||||
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
|
||||
@ -760,6 +763,13 @@ public class CndtnTrgtMngController {
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
|
||||
|
||||
// 관할청 공통코드
|
||||
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
|
||||
codeParam.setCodeId("VEA008");
|
||||
List<CmmnDetailCode> CmmnDetailCodeList = egovCmmUseService.selectCmmCodeDetailOrderByCode(codeParam);
|
||||
model.addAttribute("CmmnDetailCodeList", CmmnDetailCodeList);
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,9 @@ package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnAplctMng.web;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -13,6 +15,7 @@ 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.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@ -97,6 +100,11 @@ public class OprtnAplctAnncmMngController {
|
||||
@Resource(name = "vEPrcsMIXService")
|
||||
private VEPrcsMIXService vEPrcsMIXService;
|
||||
|
||||
//교육과정순번
|
||||
@Resource(name="prcsAplctPrdGnrService")
|
||||
private EgovIdGnrService prcsAplctPrdGnrService;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -230,6 +238,13 @@ public class OprtnAplctAnncmMngController {
|
||||
List<FileVO> result = fileService.selectFileInfs(fileVO);
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
|
||||
//파일 정보 가져오기
|
||||
FileVO fileVO_cn = new FileVO();
|
||||
fileVO_cn.setAtchFileId(info.getCnAtchFileId());
|
||||
List<FileVO> result_cn = fileService.selectFileInfs(fileVO_cn);
|
||||
model.addAttribute("fileList", result_cn);
|
||||
model.addAttribute("fileListCnt", result_cn.size());
|
||||
|
||||
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngDetail";
|
||||
@ -308,6 +323,11 @@ public class OprtnAplctAnncmMngController {
|
||||
model.addAttribute("fileList", result);
|
||||
model.addAttribute("fileListCnt", result.size());
|
||||
|
||||
FileVO fileVO_cn = new FileVO();
|
||||
fileVO_cn.setAtchFileId(info.getCnAtchFileId());
|
||||
List<FileVO> result_cn = fileService.selectFileInfs(fileVO_cn);
|
||||
model.addAttribute("fileList_cn", result_cn);
|
||||
model.addAttribute("fileListCnt_cn", result_cn.size());
|
||||
|
||||
return "oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngUpdate";
|
||||
}
|
||||
@ -347,6 +367,9 @@ public class OprtnAplctAnncmMngController {
|
||||
//step2.첨부파일 체크 후 저장 하기
|
||||
String s_scholSealAtchFileId = "";
|
||||
s_scholSealAtchFileId = vEPrcsDetailVO.getAtchFileId();
|
||||
|
||||
String cnAtchFileId = "";
|
||||
cnAtchFileId = vEPrcsDetailVO.getCnAtchFileId();
|
||||
|
||||
//DB에서 실제 첨부파일 존재 여부 확인
|
||||
FileVO fileVO = new FileVO();
|
||||
@ -356,6 +379,13 @@ public class OprtnAplctAnncmMngController {
|
||||
s_scholSealAtchFileId = "";
|
||||
}
|
||||
|
||||
FileVO cnFileVO = new FileVO();
|
||||
cnFileVO.setAtchFileId(cnAtchFileId);
|
||||
List<FileVO> cnResult = fileService.selectFileInfs(cnFileVO);
|
||||
if (cnResult.size()<=0) {
|
||||
cnAtchFileId = "";
|
||||
}
|
||||
|
||||
|
||||
//step3.파일 처리====================================
|
||||
//파일 정상 처리 여부와 첨부 파일 정보
|
||||
@ -364,13 +394,36 @@ public class OprtnAplctAnncmMngController {
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
|
||||
int i_file_limit_cn = 50; // file count
|
||||
int i_limit_size_cn = 100; // file MB
|
||||
String s_file_exts_cn = "pdf|txt"; // file exts
|
||||
|
||||
|
||||
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||
|
||||
Map<String, MultipartFile> files_ori = new HashMap<String, MultipartFile>();
|
||||
Map<String, MultipartFile> files_cn = new HashMap<String, MultipartFile>();
|
||||
|
||||
|
||||
files.forEach((k,v) -> {
|
||||
if( k.contains("file_cn") || k.contains("file_temp_cn")) {
|
||||
files_cn.put(k, v);
|
||||
}else {
|
||||
files_ori.put(k, v);
|
||||
}
|
||||
});
|
||||
|
||||
//break point
|
||||
// if(true) {
|
||||
// return modelAndView;
|
||||
// }
|
||||
|
||||
//기존 파일 존재 여부에 따라서 insert or update 처리
|
||||
if ("".equals(s_scholSealAtchFileId)) {
|
||||
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom(
|
||||
files_ori, modelAndView
|
||||
, "ATCH_"
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
@ -379,8 +432,8 @@ public class OprtnAplctAnncmMngController {
|
||||
vEPrcsDetailVO.setAtchFileId(s_scholSealAtchFileId);
|
||||
}else {
|
||||
//atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
|
||||
multiRequest, modelAndView
|
||||
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdateCustom(
|
||||
files_ori, modelAndView
|
||||
, "ATCH_"
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
@ -391,6 +444,29 @@ public class OprtnAplctAnncmMngController {
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
|
||||
if ("".equals(cnAtchFileId)) {
|
||||
cnAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom(
|
||||
files_cn, modelAndView
|
||||
, "ATCH_"
|
||||
, s_file_exts_cn
|
||||
, i_limit_size_cn
|
||||
, i_file_limit_cn
|
||||
); //EXT, MB size and ea
|
||||
vEPrcsDetailVO.setCnAtchFileId(cnAtchFileId);
|
||||
}else {
|
||||
cnAtchFileId = checkFileUtil.fileValCheckNdbUpdateCustom(
|
||||
files_cn, modelAndView
|
||||
, "ATCH_"
|
||||
, s_file_exts_cn
|
||||
, i_limit_size_cn
|
||||
, i_file_limit_cn
|
||||
, cnAtchFileId
|
||||
); //EXT, MB size and ea
|
||||
}
|
||||
|
||||
if ("ERROR".equals(cnAtchFileId)) return modelAndView;
|
||||
|
||||
//step3.파일 처리====================================
|
||||
|
||||
|
||||
@ -459,23 +535,54 @@ public class OprtnAplctAnncmMngController {
|
||||
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
|
||||
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
|
||||
String s_file_exts = checkFileUtil.getS_exts(); // file exts
|
||||
|
||||
int i_file_limit_cn = 50; // file count
|
||||
int i_limit_size_cn = 100; // file MB
|
||||
String s_file_exts_cn = "pdf|txt"; // file exts
|
||||
|
||||
final Map<String, MultipartFile> files = multiRequest.getFileMap();
|
||||
|
||||
Map<String, MultipartFile> files_ori = new HashMap<String, MultipartFile>();
|
||||
Map<String, MultipartFile> files_cn = new HashMap<String, MultipartFile>();
|
||||
|
||||
files.forEach((k,v) -> {
|
||||
if( k.contains("file_cn") || k.contains("file_temp_cn")) {
|
||||
files_cn.put(k, v);
|
||||
}else {
|
||||
files_ori.put(k, v);
|
||||
}
|
||||
});
|
||||
|
||||
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
|
||||
multiRequest, modelAndView
|
||||
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom(
|
||||
files_ori, modelAndView
|
||||
, "ATCH_" //file_name_prefix
|
||||
, s_file_exts
|
||||
, i_limit_size
|
||||
, i_file_limit
|
||||
, s_file_exts_cn
|
||||
, i_limit_size_cn
|
||||
, i_file_limit_cn
|
||||
); //EXT, MB size and ea
|
||||
|
||||
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
|
||||
|
||||
String s_cnAtchFileId = checkFileUtil.fileValCheckNdbInsertCustom(
|
||||
files_cn, modelAndView
|
||||
, "ATCH_" //file_name_prefix
|
||||
, s_file_exts_cn
|
||||
, i_limit_size_cn
|
||||
, i_file_limit_cn
|
||||
); //EXT, MB size and ea
|
||||
|
||||
if ("ERROR".equals(s_cnAtchFileId)) return modelAndView;
|
||||
|
||||
//step2.파일 처리====================================
|
||||
|
||||
|
||||
//번호 생성 및 디비 생성해주기
|
||||
String prcsAplctPrdOrd = prcsGnrService.getNextStringId(); // 고유ID
|
||||
// String prcsAplctPrdOrd = prcsGnrService.getNextStringId(); // 고유ID
|
||||
// String prcsAplctPrdOrd = prcsAplctGnrService.getNextStringId(); // 고유ID
|
||||
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
|
||||
vEPrcsDetailVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
|
||||
vEPrcsDetailVO.setCnAtchFileId(s_cnAtchFileId); //안내 첨부파일
|
||||
|
||||
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
|
||||
|
||||
System.out.println("vEPrcsDetailVO.getStrtPnttm()");
|
||||
|
||||
@ -234,12 +234,12 @@ public class FndthPrcsInfoMngController {
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
|
||||
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
|
||||
}
|
||||
// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
|
||||
// String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
|
||||
// vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
|
||||
// }
|
||||
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
@ -247,6 +247,9 @@ public class FndthPrcsInfoMngController {
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 사용자 이름 디코딩
|
||||
vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
@ -348,10 +351,53 @@ public class FndthPrcsInfoMngController {
|
||||
VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
|
||||
vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
|
||||
List<VEPrcsCntntVO> vEPrcsCntntList = vEPrcsOnlnCntntService.selectList(vePrcsCntntVO);
|
||||
|
||||
|
||||
model.addAttribute("vEPrcsCntntList", vEPrcsCntntList);
|
||||
|
||||
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : fndthEduPrcsMngDetail
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.20
|
||||
* @description :
|
||||
* @param vEPrcsDetailVO
|
||||
* @param model
|
||||
* @param redirectAttributes
|
||||
* @param session
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngDetail.do")
|
||||
public String fndthEduQnaMngDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
System.out.println("vEPrcsDetailVO.getPrcsAplctPrdQnaOrd() : "+ vEPrcsDetailVO.getPrcsAplctPrdQnaOrd());
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//과정 조회
|
||||
VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO);
|
||||
vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm()));
|
||||
|
||||
model.addAttribute("info", vEPrcsQnaDetail);
|
||||
//세부과정 목록 조회
|
||||
|
||||
return "/oprtn/fndthEnhanceTrn/fndthEduQnaMngDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 수정화면
|
||||
@ -484,6 +530,53 @@ public class FndthPrcsInfoMngController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : fndthEduQnaMngUpdateAjax
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.20
|
||||
* @description :
|
||||
* @param vEPrcsDetailVO
|
||||
* @param model
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngUpdateAjax.do")
|
||||
public ModelAndView fndthEduQnaMngUpdateAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, 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.qnaUpdate(vEPrcsDetailVO);
|
||||
|
||||
|
||||
//세부과정 지우고 다시 생성
|
||||
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
|
||||
vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPhotoPopupAjax.do")
|
||||
public ModelAndView fndthEduPhotoPopupAjax(
|
||||
|
||||
@ -386,21 +386,24 @@ public class SndMngController {
|
||||
vEEduAplctVO.setEmail("tolag3@gmail.com");
|
||||
}
|
||||
|
||||
String message = "정상적으로 발송되었습니다.";
|
||||
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag(), vEEduAplctVO.getEmail(), vEEduAplctVO, loginVO);
|
||||
|
||||
|
||||
if("success".equals(result)) {
|
||||
//메일 발송 로그
|
||||
String snd_ord = sndGnrService.getNextStringId();
|
||||
vEEduAplctVO.setSndHstryOrd(snd_ord);
|
||||
|
||||
vEEduAplctVO.setSndId(loginVO.getUniqId());
|
||||
|
||||
vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail());
|
||||
vEEduAplctSndHstryService.insert(vEEduAplctVO);
|
||||
}
|
||||
}else {
|
||||
message = "발송 실패하였습니다.";
|
||||
}
|
||||
|
||||
//메일 발송 부 끝
|
||||
modelAndView.addObject("result", result);
|
||||
modelAndView.addObject("message", message);
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
@ -1,96 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
|
||||
|
||||
<sqlMap namespace="CmmUse">
|
||||
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="ComDefaultCodeVO" type="kcc.com.cmm.ComDefaultCodeVO"/>
|
||||
|
||||
<resultMap id="CmmCodeDetail" class="kcc.com.cmm.service.CmmnDetailCode">
|
||||
<result property="codeId" column="CODE_ID" columnIndex="1"/>
|
||||
<result property="code" column="CODE" columnIndex="2"/>
|
||||
<result property="codeNm" column="CODE_NM" columnIndex="3"/>
|
||||
<result property="codeDc" column="CODE_DC" columnIndex="4"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
AND CODE_ID = #codeId#
|
||||
ORDER BY SORT
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectOgrnztIdDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
#tableNm# CODE_ID,
|
||||
ORGNZT_ID CODE,
|
||||
ORGNZT_NM CODE_NM,
|
||||
ORGNZT_DC CODE_DC
|
||||
FROM
|
||||
LETTNORGNZTINFO
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<isEqual prepend="AND" property="haveDetailCondition" compareValue="Y">
|
||||
ORGNZT_ID LIKE #detailConditionValue#
|
||||
</isEqual>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectGroupIdDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
#tableNm# CODE_ID,
|
||||
GROUP_ID CODE,
|
||||
GROUP_NM CODE_NM,
|
||||
GROUP_DC CODE_DC
|
||||
FROM
|
||||
LETTNAUTHORGROUPINFO
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<isEqual prepend="AND" property="haveDetailCondition" compareValue="Y">
|
||||
GROUP_ID LIKE #detailConditionValue#
|
||||
</isEqual>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetailValue" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
AND CODE_ID = #codeId#
|
||||
]]>
|
||||
<isEmpty property="codeDc">
|
||||
AND CODE = #code#
|
||||
</isEmpty>
|
||||
<isNotEmpty property="codeDc">
|
||||
AND CODE_DC = #codeDc#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetailValueOnlyName" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
1=1
|
||||
AND CODE_ID = #codeId#
|
||||
]]>
|
||||
<isEmpty property="codeDc">
|
||||
AND CODE = #code#
|
||||
</isEmpty>
|
||||
<isNotEmpty property="codeDc">
|
||||
AND CODE_DC = #codeDc#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
|
||||
|
||||
<sqlMap namespace="CmmUse">
|
||||
|
||||
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
|
||||
<typeAlias alias="ComDefaultCodeVO" type="kcc.com.cmm.ComDefaultCodeVO"/>
|
||||
|
||||
<resultMap id="CmmCodeDetail" class="kcc.com.cmm.service.CmmnDetailCode">
|
||||
<result property="codeId" column="CODE_ID" columnIndex="1"/>
|
||||
<result property="code" column="CODE" columnIndex="2"/>
|
||||
<result property="codeNm" column="CODE_NM" columnIndex="3"/>
|
||||
<result property="codeDc" column="CODE_DC" columnIndex="4"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
AND CODE_ID = #codeId#
|
||||
ORDER BY SORT
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectOgrnztIdDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
#tableNm# CODE_ID,
|
||||
ORGNZT_ID CODE,
|
||||
ORGNZT_NM CODE_NM,
|
||||
ORGNZT_DC CODE_DC
|
||||
FROM
|
||||
LETTNORGNZTINFO
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<isEqual prepend="AND" property="haveDetailCondition" compareValue="Y">
|
||||
ORGNZT_ID LIKE #detailConditionValue#
|
||||
</isEqual>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectGroupIdDetail" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
#tableNm# CODE_ID,
|
||||
GROUP_ID CODE,
|
||||
GROUP_NM CODE_NM,
|
||||
GROUP_DC CODE_DC
|
||||
FROM
|
||||
LETTNAUTHORGROUPINFO
|
||||
WHERE 1=1
|
||||
]]>
|
||||
<isEqual prepend="AND" property="haveDetailCondition" compareValue="Y">
|
||||
GROUP_ID LIKE #detailConditionValue#
|
||||
</isEqual>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetailValue" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
AND CODE_ID = #codeId#
|
||||
]]>
|
||||
<isEmpty property="codeDc">
|
||||
AND CODE = #code#
|
||||
</isEmpty>
|
||||
<isNotEmpty property="codeDc">
|
||||
AND CODE_DC = #codeDc#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetailValueOnlyName" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
1=1
|
||||
AND CODE_ID = #codeId#
|
||||
]]>
|
||||
<isEmpty property="codeDc">
|
||||
AND CODE = #code#
|
||||
</isEmpty>
|
||||
<isNotEmpty property="codeDc">
|
||||
AND CODE_DC = #codeDc#
|
||||
</isNotEmpty>
|
||||
</select>
|
||||
|
||||
<select id="CmmUseDAO.selectCmmCodeDetailOrderByCode" parameterClass="ComDefaultCodeVO" resultMap="CmmCodeDetail">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CODE_ID, CODE, CODE_NM, CODE_DC
|
||||
FROM
|
||||
LETTCCMMNDETAILCODE
|
||||
WHERE
|
||||
USE_AT = 'Y'
|
||||
AND CODE_ID = 'VEA008'
|
||||
ORDER BY code
|
||||
]]>
|
||||
</select>
|
||||
</sqlMap>
|
||||
@ -201,6 +201,12 @@
|
||||
<isNotEmpty property="searchSmbtEndDt">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchSelStatus">
|
||||
AND a.cmptnt_athrt IN
|
||||
<iterate property="searchSelStatusList" open="(" close=")" conjunction=",">
|
||||
#searchSelStatusList[]#
|
||||
</iterate>
|
||||
</isNotEmpty>
|
||||
ORDER BY a.frst_regist_pnttm desc
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
|
||||
|
||||
@ -1361,6 +1361,7 @@
|
||||
VEA_PRCS_APLCT_PRD_QNA
|
||||
WHERE
|
||||
QNA_REGIST = #qnaRegist#
|
||||
AND LCTR_DIV_CD = #lctrDivCd#
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
@ -38,6 +38,8 @@
|
||||
,edu_strt_pnttm
|
||||
,edu_ddln_pnttm
|
||||
,edu_place
|
||||
,dprtm_nm
|
||||
,cn_atch_file_id
|
||||
</sql>
|
||||
|
||||
<!-- 조회용 공통 컬럼 명 -->
|
||||
@ -73,7 +75,8 @@
|
||||
|
||||
,a.edu_strt_pnttm AS eduStrtPnttm
|
||||
,a.edu_ddln_pnttm AS eduDdlnPnttm
|
||||
|
||||
,a.dprtm_nm AS dprtmNm
|
||||
,a.cn_atch_file_id AS cnAtchFileId
|
||||
|
||||
</sql>
|
||||
|
||||
@ -109,7 +112,9 @@
|
||||
,#ddlnCd#
|
||||
,#eduStrtPnttm#
|
||||
,#eduDdlnPnttm#
|
||||
,#eduPlace#
|
||||
,#eduPlace#
|
||||
,#dprtmNm#
|
||||
,#cnAtchFileId#
|
||||
)
|
||||
</insert>
|
||||
|
||||
@ -143,17 +148,17 @@
|
||||
|
||||
</select>
|
||||
<!-- -->
|
||||
<select id="VEPrcsAplctPrdDAO.updateEtc" parameterClass="VEPrcsDetailVO">
|
||||
<update id="VEPrcsAplctPrdDAO.updateEtc" parameterClass="VEPrcsDetailVO">
|
||||
/* VEPrcsAplctPrdDAO.updateEtc */
|
||||
|
||||
UPDATE
|
||||
VE_PRCS_APLCT_PRD_ETC
|
||||
SET
|
||||
PRPS_CN = #prpsCn# ,
|
||||
PRPS_CN = #prpsCn#
|
||||
, CHRCT_CN = #chrctCn#
|
||||
WHERE PRCS_APLCT_PRD_ORD = #prcsAplctPrdOrd#
|
||||
|
||||
</select>
|
||||
</update>
|
||||
|
||||
<!-- 강사 정보 R -->
|
||||
<select id="VEPrcsAplctPrdDAO.selectDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
@ -224,6 +229,12 @@
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="eduPlace">
|
||||
, edu_place = #eduPlace#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="dprtmNm">
|
||||
, dprtm_nm = #dprtmNm#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="cnAtchFileId">
|
||||
, cn_atch_file_id = #cnAtchFileId#
|
||||
</isNotEmpty>
|
||||
|
||||
WHERE
|
||||
|
||||
@ -360,4 +360,69 @@
|
||||
AND user_id = #userId#
|
||||
</delete>
|
||||
|
||||
<!-- 교육문의 상세 L page -->
|
||||
<select id="VEPrcsDAO.selectQnaPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsDAO.selectQnaPagingList */
|
||||
|
||||
SELECT
|
||||
qn.PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
|
||||
, qn.LCTR_DIV_CD as lctrDivCd
|
||||
, qn.QNA_REGIST as qnaRegist
|
||||
, mb.MBER_NM AS mberNm
|
||||
, qn.QNA_CN as qnaCn
|
||||
, qn.QNA_ANSWER_CN as qnaAnswerCn
|
||||
, qn.QNA_ANSWERER as qnaAnswerer
|
||||
,TO_CHAR(qn.FRST_REGIST_PNTTM,'YYYY-MM-DD') AS frstRegistPnttm
|
||||
, qn.FRST_REGISTER_ID as frstRegisterId
|
||||
,TO_CHAR(qn.LAST_UPDT_PNTTM,'YYYY-MM-DD') AS lastUpdtPnttm
|
||||
, qn.LAST_UPDUSR_ID as lastUpdusrId
|
||||
FROM
|
||||
VEA_PRCS_APLCT_PRD_QNA qn
|
||||
LEFT JOIN LETTNGNRLMBER mb
|
||||
ON qn.QNA_REGIST = mb.MBER_ID
|
||||
WHERE
|
||||
1=1
|
||||
AND LCTR_DIV_CD = #lctrDivCd#
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 교육문의 상세 -->
|
||||
<select id="VEPrcsDAO.selectQnaDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsDAO.selectQnaDetail */
|
||||
|
||||
SELECT
|
||||
qn.PRCS_APLCT_PRD_QNA_ORD as prcsAplctPrdQnaOrd
|
||||
, qn.LCTR_DIV_CD as lctrDivCd
|
||||
, qn.QNA_REGIST as qnaRegist
|
||||
, mb.MBER_NM AS mberNm
|
||||
, qn.QNA_CN as qnaCn
|
||||
, qn.QNA_ANSWER_CN as qnaAnswerCn
|
||||
, qn.QNA_ANSWERER as qnaAnswerer
|
||||
,TO_CHAR(qn.FRST_REGIST_PNTTM,'YYYY-MM-DD') AS frstRegistPnttm
|
||||
, qn.FRST_REGISTER_ID as frstRegisterId
|
||||
,TO_CHAR(qn.LAST_UPDT_PNTTM,'YYYY-MM-DD') AS lastUpdtPnttm
|
||||
, qn.LAST_UPDUSR_ID as lastUpdusrId
|
||||
FROM
|
||||
VEA_PRCS_APLCT_PRD_QNA qn
|
||||
LEFT JOIN LETTNGNRLMBER mb
|
||||
ON qn.QNA_REGIST = mb.MBER_ID
|
||||
WHERE
|
||||
1=1
|
||||
AND qn.PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 교육문의 답변 update -->
|
||||
<update id="VEPrcsDAO.qnaUpdate" parameterClass="VEPrcsDetailVO" >
|
||||
/* VEPrcsDAO.qnaUpdate */
|
||||
|
||||
UPDATE VEA_PRCS_APLCT_PRD_QNA SET
|
||||
QNA_ANSWER_CN = #qnaAnswerCn#
|
||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||
, LAST_UPDT_PNTTM = SYSDATE
|
||||
WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#
|
||||
|
||||
</update>
|
||||
|
||||
</sqlMap>
|
||||
|
||||
139
src/main/webapp/WEB-INF/jsp/cmm/fms/EgovBBSFileListCustom.jsp
Normal file
139
src/main/webapp/WEB-INF/jsp/cmm/fms/EgovBBSFileListCustom.jsp
Normal file
@ -0,0 +1,139 @@
|
||||
<%@ 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"%>
|
||||
<%
|
||||
|
||||
/**
|
||||
* @Class Name : EgovFileList.jsp
|
||||
* @Description : 파일 목록화면
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ---------- ------ ---------------------------
|
||||
* @ 2009.03.26 이삼섭 최초 생성
|
||||
* @ 2011.07.20 옥찬우 <Input> Tag id속성 추가( Line : 68 )
|
||||
*
|
||||
* @author 공통서비스 개발팀 이삼섭
|
||||
* @since 2009.03.26
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<!-- link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css"-->
|
||||
<script type="text/javascript">
|
||||
|
||||
function fn_egov_downFile(atchFileId, fileSn){
|
||||
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
|
||||
}
|
||||
|
||||
function fn_egov_deleteFile(atchFileId, fileSn, delTrName) {
|
||||
if(!confirm("<spring:message code="common.delete.msg" />")) return;
|
||||
|
||||
var forms;
|
||||
var form;
|
||||
forms = document.getElementsByTagName("form");
|
||||
|
||||
for (var i = 0; i < forms.length; i++) {
|
||||
if (typeof(forms[i].atchFileId) != "undefined" &&
|
||||
typeof(forms[i].fileSn) != "undefined" &&
|
||||
typeof(forms[i].fileListCnt) != "undefined") {
|
||||
form = forms[i];
|
||||
}
|
||||
}
|
||||
|
||||
var newForm = document.createElement( 'form' );
|
||||
var newfileSn = document.createElement( 'input' );
|
||||
var newAtchFileId = document.createElement( 'input' );
|
||||
|
||||
newfileSn.setAttribute("name","fileSn");
|
||||
newAtchFileId.setAttribute("name","atchFileId");
|
||||
|
||||
document.body.appendChild(newForm);
|
||||
newfileSn.setAttribute("type","hidden");
|
||||
newAtchFileId.setAttribute("type","hidden");
|
||||
|
||||
newfileSn.setAttribute("value",fileSn);
|
||||
newAtchFileId.setAttribute("value",atchFileId);
|
||||
|
||||
newForm.appendChild( newfileSn );
|
||||
newForm.appendChild( newAtchFileId );
|
||||
|
||||
//form = document.forms[0];
|
||||
//form.atchFileId.value = atchFileId;
|
||||
//form.fileSn.value = fileSn;
|
||||
newForm.method = "post";
|
||||
newForm.action = "<c:url value='/cmm/fms/deleteFileInfs.do'/>";
|
||||
newForm.target = "iframe_egov_file_delete"
|
||||
newForm.submit();
|
||||
//console.log('del submit!!');
|
||||
var objDelTr = document.getElementById(delTrName);
|
||||
objDelTr.parentNode.removeChild(objDelTr);
|
||||
fn_egov_multi_selector_update_delete();
|
||||
//console.log('egov_file_view_table delete!!');
|
||||
|
||||
// 글 수정 시에 파일삭제 시 기존 첨부파일 -1
|
||||
if(document.board !=null){
|
||||
if(document.board.atchFileCnt) {
|
||||
document.board.atchFileCnt.value = document.board.atchFileCnt.value - 1;
|
||||
}
|
||||
}else if(document.writeForm !=null){
|
||||
//if(document.writeForm.atchFileCnt) {
|
||||
// document.writeForm.atchFileCnt.value = document.writeForm.atchFileCnt.value - 1;
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
<c:if test="${isImgView}">
|
||||
// img_view 삭제
|
||||
var objDelTr = document.getElementById("tr_" + fileSn);
|
||||
objDelTr.parentNode.removeChild(objDelTr);
|
||||
</c:if>
|
||||
}
|
||||
|
||||
function fn_egov_check_file(flag) {
|
||||
if (flag=="Y") {
|
||||
document.getElementById('file_upload_posbl').style.display = "block";
|
||||
document.getElementById('file_upload_imposbl').style.display = "none";
|
||||
} else {
|
||||
document.getElementById('file_upload_posbl').style.display = "none";
|
||||
document.getElementById('file_upload_imposbl').style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
function fn_egov_pdfView(atchFileId, fileSn, atchFileType){
|
||||
//window.open("<c:url value='/cmm/fms/pdfView.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"&atchFileType="+atchFileType'/>");
|
||||
window.open("<c:url value='/cmm/fms/attachFilePreview.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"&atchFileType="+atchFileType+"'/>");
|
||||
}
|
||||
|
||||
</script>
|
||||
<input type="hidden" name="atchFileId" value="${atchFileId}">
|
||||
<input type="hidden" name="fileSn" >
|
||||
<input type="hidden" name="fileListCnt" id="fileListCnt" value="${fileListCnt}">
|
||||
<c:set var="fileCount" value="${fn:length(fileList) }" />
|
||||
<ul>
|
||||
<c:forEach var="fileVO" items="${fileList}" varStatus="status">
|
||||
<tr id="egov_file_view_table_tr_${status.count}" style="border-bottom: 0px;">
|
||||
<li>
|
||||
<a href="javascript:fn_egov_downFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>')" class="fileName" title="다운로드">
|
||||
<c:out value="${fileVO.orignlFileNm}"/> <%-- [<c:out value="${fileVO.fileMg}"/> byte] --%>
|
||||
</a>
|
||||
<c:if test="${not empty fileVO.fileExtsn}"><!-- pdf미리보기 -->
|
||||
<c:if test="${fileVO.fileExtsn eq 'jpg'
|
||||
or fileVO.fileExtsn eq 'pdf'
|
||||
}">
|
||||
<%-- <a href="#" onclick="fn_egov_pdfView('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>' , '<c:out value="${fileVO.fileExtsn}"/>' )"> --%>
|
||||
<!-- pdf 보기 -->
|
||||
<!-- </a> -->
|
||||
<button type="button" class="btnType06" onclick="fn_egov_pdfView('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>' , '<c:out value="${fileVO.fileExtsn}"/>' )" title="파일 다운로드">pdf 보기</button>
|
||||
</c:if>
|
||||
</c:if>
|
||||
</li>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${fn:length(fileList) == 0}">
|
||||
</c:if>
|
||||
</ul>
|
||||
@ -154,7 +154,7 @@
|
||||
}
|
||||
}
|
||||
//sms 발송
|
||||
function fncSndSms(){
|
||||
/* function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
@ -170,6 +170,24 @@
|
||||
p_smsMsg
|
||||
,""
|
||||
);
|
||||
} */
|
||||
|
||||
function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
if (p_smsMsg==""){
|
||||
alert("SMS 발송 내용은 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/offeduSMSSndAjax.do",
|
||||
"10", //코드 10:sms 20:mail
|
||||
p_smsMsg,
|
||||
""
|
||||
);
|
||||
}
|
||||
|
||||
//이메일 발송
|
||||
@ -193,22 +211,22 @@
|
||||
//발송
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag){
|
||||
|
||||
//sndFlag 메일발송 페이지 구분값(페이지마다 발송 계정이 다르기 때문에)_이준호_220221
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
data:{
|
||||
"sndCd": p_cd,
|
||||
"sndCd": p_cd,
|
||||
"sndCn": p_cn,
|
||||
"eduAplctOrd": $("#eduAplctOrd").val(),
|
||||
"clphone": '<c:out value="${info.clphone}" />',
|
||||
"email": '<c:out value="${info.email}" />',
|
||||
"sndFlag": p_flag
|
||||
"sndFlag": p_flag,
|
||||
"trgtId" : '<c:out value="${info.userId}" />'
|
||||
},
|
||||
/*
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
@ -217,10 +235,9 @@
|
||||
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("정상적으로 발송되었습니다.");
|
||||
location.reload(true);
|
||||
alert(returnData.message);
|
||||
}else{
|
||||
alert("발송 중 오류가 발생하였습니다.");
|
||||
alert(returnData.message);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
@ -589,10 +606,11 @@
|
||||
</th>
|
||||
<td class="tb_alram">
|
||||
<div>
|
||||
<textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea>
|
||||
<!-- <textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea> -->
|
||||
<textarea id="smsMsg"></textarea>
|
||||
<button type="button" class="btn_type08" onclick="fncSndSms();return false;">SMS 발송</button>
|
||||
</div>
|
||||
<p><span id="byteSms">0</span>/90 byte</p>
|
||||
<!-- <p><span id="byteSms">0</span>/90 byte</p> -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -112,7 +112,7 @@
|
||||
}
|
||||
|
||||
//sms 발송
|
||||
function fncSndSms(){
|
||||
/* function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
@ -124,7 +124,25 @@
|
||||
|
||||
fncContent("${pageContext.request.contextPath}/kccadr/oprtn/pblc/smsSndAjax.do","10",p_smsMsg,"");
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
if (p_smsMsg==""){
|
||||
alert("SMS 발송 내용은 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/offeduSMSSndAjax.do",
|
||||
"10", //코드 10:sms 20:mail
|
||||
p_smsMsg,
|
||||
""
|
||||
);
|
||||
}
|
||||
//이메일 발송
|
||||
function fncSndEmail(){
|
||||
|
||||
@ -142,38 +160,40 @@
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag){
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
data:{
|
||||
"sndCd": p_cd,
|
||||
"sndCn": p_cn,
|
||||
"eduAplctOrd": $("#eduAplctOrd").val(),
|
||||
"clphone": '<c:out value="${info.clphone}" />',
|
||||
"email": '<c:out value="${info.email}" />',
|
||||
"sndFlag": p_flag
|
||||
},
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
*/
|
||||
|
||||
"sndFlag": p_flag,
|
||||
"trgtId" : '<c:out value="${info.userId}" />'
|
||||
},
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
*/
|
||||
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("정상적으로 발송되었습니다.");
|
||||
|
||||
alert(returnData.message);
|
||||
}else{
|
||||
alert("발송 중 오류가 발생하였습니다.");
|
||||
alert(returnData.message);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
function reloadLinkPage(){
|
||||
@ -502,10 +522,11 @@
|
||||
</th>
|
||||
<td class="tb_alram">
|
||||
<div>
|
||||
<textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea>
|
||||
<!-- <textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea> -->
|
||||
<textarea id="smsMsg"></textarea>
|
||||
<button type="button" class="btn_type08" onclick="fncSndSms();return false;">SMS 발송</button>
|
||||
</div>
|
||||
<p><span id="byteSms">0</span>/90 byte</p>
|
||||
<!-- <p><span id="byteSms">0</span>/90 byte</p> -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -42,6 +42,11 @@
|
||||
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfy.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
function fncMngMdfy(){
|
||||
var detailForm = document.detailForm ;
|
||||
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMngMdfy.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@ -193,7 +198,17 @@
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
|
||||
|
||||
<c:choose>
|
||||
<c:when test="${empty userWork }">
|
||||
<button type="button" class="btn_type02" onclick="fncMngMdfy(); return false;">수정</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<button type="button" class="btn_type02" onclick="fncMdfy(); return false;">수정</button>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -28,7 +28,11 @@
|
||||
*/
|
||||
%>
|
||||
<html lang="ko">
|
||||
|
||||
<head>
|
||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet"/>
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js" /></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style>
|
||||
input:read-only{
|
||||
@ -38,6 +42,19 @@
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$("#searchSelStatusTemp").select2({
|
||||
placeholder: "관할청 선택"
|
||||
});
|
||||
|
||||
|
||||
var select2Val = '${cndtnTrgtInfoMngVO.searchSelStatus}';
|
||||
var valuesArray = select2Val.split(',');
|
||||
|
||||
// Select2 위젯에 값 설정
|
||||
$('#searchSelStatusTemp').val(valuesArray).trigger('change');
|
||||
|
||||
|
||||
|
||||
searchInit();
|
||||
|
||||
@ -64,10 +81,9 @@
|
||||
$('#calendar').hide();
|
||||
$('#searchKeyword').show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
function searchInit(){
|
||||
@ -86,11 +102,27 @@
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function dataMakeSelectVal(){
|
||||
|
||||
var selectedValues = $('#searchSelStatusTemp')
|
||||
.find(':selected')
|
||||
.map(function() {
|
||||
return $(this).val();
|
||||
}).get().join(',');
|
||||
|
||||
$('#searchSelStatus').val(selectedValues);
|
||||
console.log(selectedValues );
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
// select2 데이터 정제
|
||||
this.dataMakeSelectVal();
|
||||
|
||||
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -196,6 +228,7 @@
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
|
||||
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
|
||||
<input type="hidden" id="searchSelStatus" name="searchSelStatus" value="" />
|
||||
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
@ -217,9 +250,14 @@
|
||||
<div class="tb_tit01">
|
||||
<p>대상자 목록</p>
|
||||
</div>
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
|
||||
|
||||
|
||||
<div class="list_top">
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>구분1</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<select name="searchStatus" id="searchStatus" class="sel_type1">
|
||||
<option value="trgt_nm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'trgt_nm' }">selected="selected"</c:if>>이름</option>
|
||||
@ -237,11 +275,25 @@
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeyword}'/>">
|
||||
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top_2">
|
||||
<div class="util_left">
|
||||
<p>구분2</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<p>관할청 </p>
|
||||
|
||||
<select name="searchSelStatusTemp" id="searchSelStatusTemp" class="sel_type1" multiple="multiple" style="width: 75%">
|
||||
<c:forEach var="list" items="${CmmnDetailCodeList}" varStatus="status">
|
||||
<option value="${list.code }" <c:if test="${info.cmptntAthrt==list.code }">selected="selected"</c:if> >${list.codeNm }</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list_util">
|
||||
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
|
||||
@ -334,7 +386,7 @@
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
<tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -232,7 +232,7 @@
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -332,10 +332,12 @@
|
||||
<tr>
|
||||
<th scope="row">관할청</th>
|
||||
<td>
|
||||
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
|
||||
selectedText="${info.cmptntAthrt }" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
<select name="cmptntAthrt" id="cmptntAthrt" class="sel_type1">
|
||||
<option value="">선택</option>
|
||||
<c:forEach var="list" items="${CmmnDetailCodeList}" varStatus="status">
|
||||
<option value="${list.code }" <c:if test="${info.cmptntAthrt==list.code }">selected="selected"</c:if> >${list.codeNm }</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -1,458 +0,0 @@
|
||||
<!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">
|
||||
//세부과정 추가 버튼 클릭 시 세부과정 추가
|
||||
$(document).ready(function() {
|
||||
$(".btn_type01").on('click', function(){
|
||||
$("#file_temp").click();
|
||||
});
|
||||
});
|
||||
|
||||
function fncSave(){
|
||||
|
||||
if(fn_valChk())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
//첨부파일 등록 처리-step2
|
||||
_fileForm2.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
|
||||
});
|
||||
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
enctype: 'multipart/form-data',
|
||||
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"){
|
||||
alert("저장되었습니다.");
|
||||
fncGoList();
|
||||
}else if(returnData.result == "fail"){
|
||||
alert(returnData.message);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function fn_valChk(){
|
||||
// 의뢰일 검사
|
||||
if($("#reqPnttm").val().trim() == ""){
|
||||
alert("의뢰일을 입력해주세요.");
|
||||
$("#reqPnttm").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 사건번호 검사
|
||||
if($("input[name='vntYear']").val().trim() == ""){
|
||||
alert("사건번호를 입력해주세요.");
|
||||
$("input[name='vntYear']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 사건번호 검사
|
||||
if($("input[name='vntNmbr']").val().trim() == ""){
|
||||
alert("사건번호를 입력해주세요.");
|
||||
$("input[name='vntNmbr']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 관할청 검사
|
||||
if($("input[name='cmptntAthrt']").val()){
|
||||
alert("관할청을 입력해주세요.");
|
||||
$("input[name='cmptntAthrt']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
|
||||
alert("성별을 선택해주세요.");
|
||||
$("#sex").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 성명 검사
|
||||
if($("input[name='trgtNm']").val().trim() == ""){
|
||||
alert("성명을 입력해주세요.");
|
||||
$("input[name='trgtNm']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 생년월일 검사
|
||||
if($("#dBirth").val().trim() == ""){
|
||||
alert("생년월일을 입력해주세요.");
|
||||
$("#dBirth").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 의뢰번호 검사
|
||||
if($("input[name='reqNmbr']").val().trim() == ""){
|
||||
alert("의뢰번호를 입력해주세요.");
|
||||
$("input[name='reqNmbr']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 의뢰상태 검사
|
||||
/* if($("#reqStateCd").val().trim() == ""){
|
||||
alert("의뢰상태를 입력해주세요.");
|
||||
$("input[name='reqStateCd']").focus();
|
||||
return true;
|
||||
} */
|
||||
|
||||
// 교육상태 검사
|
||||
/* if($("input[name='eduStateCd']").val().trim() == ""){
|
||||
alert("교육상태를 입력해주세요.");
|
||||
$("input[name='eduStateCd']").focus();
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
// 검사명 검사
|
||||
if($("input[name='prsctrNm']").val().trim() == ""){
|
||||
alert("검사명을 입력해주세요.");
|
||||
$("input[name='prsctrNm']").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
// 주소 검사
|
||||
if($("#post").val().trim() == "" || $("#addr").val().trim() == ""){
|
||||
alert("주소를 입력해주세요.");
|
||||
$("#post").focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false; // 모든 검사를 통과하면 false 반환
|
||||
|
||||
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
/* 파일등록 */
|
||||
var _fileIdx = 0;
|
||||
var _fileForm2 = new Array();
|
||||
function handleFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
console.log('files', files);
|
||||
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
|
||||
for (var i = 0; i < files.length; i++){
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _fileIdx;
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_fileForm2.push(tmpObj);
|
||||
sendFileToServer(fd, obj, files[i], _fileIdx);
|
||||
_fileIdx++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.totalfileCount').text($('.item_file_size').length) ;
|
||||
$('.item_file_size').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
</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>
|
||||
<div id="calendar">
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" placeholder="의뢰일" title="의뢰일 선택" id="reqPnttm" name="reqPnttm" value="">
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">사건번호</th>
|
||||
<td>
|
||||
<input type="text" name="vntYear" style="width: 150px;margin-right: 10px;"/>형제
|
||||
<input type="text" name="vntNmbr" style="width: 150px;margin-left: 10px;" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">관할청</th>
|
||||
<td>
|
||||
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
|
||||
selectedText="" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">성별</th>
|
||||
<td>
|
||||
<ve:select codeId="COM014" name="sex" id="sex" css="class='sel_type1'"
|
||||
selectedText="" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
</td>
|
||||
<th scope="row">연락처</th>
|
||||
<td>
|
||||
<input type="text" name="clphone" id="clphone" placeholder="00000000000" maxlength="11"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">성명</th>
|
||||
<td>
|
||||
<input type="text" name="trgtNm" />
|
||||
</td>
|
||||
<th scope="row">생년월일</th>
|
||||
<td>
|
||||
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<th scope="row">연락처(핸드폰)</th>
|
||||
<td>
|
||||
<input type="text" name="clphone" />
|
||||
|
||||
</td>
|
||||
</tr> -->
|
||||
<tr>
|
||||
<th scope="row">의뢰번호</th>
|
||||
<td>
|
||||
<input type="text" name="reqNmbr" />
|
||||
</td>
|
||||
<th scope="row">의뢰상태</th>
|
||||
<td>
|
||||
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
|
||||
selectedText="" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육상태</th>
|
||||
<td>
|
||||
교육대기
|
||||
<input type="hidden" name="eduStateCd" id="eduStateCd" value="10"/>
|
||||
<%-- <ve:select codeId="VEA002" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
|
||||
selectedText="" defaultValue=""
|
||||
defaultText='선택'
|
||||
/> --%>
|
||||
</td>
|
||||
<th scope="row">검사명</th>
|
||||
<td>
|
||||
<input type="text" name="prsctrNm" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="input_adress">
|
||||
<th scope="row">
|
||||
<p>주소</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
<label for="post" class="label">우편번호 입력</label>
|
||||
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
|
||||
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
|
||||
<div class="detail_address">
|
||||
<label for="addr" class="label">주소 입력</label>
|
||||
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
|
||||
<label for="addrDetail" class="label">나머지 주소 입력</label>
|
||||
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>첨부파일</p>
|
||||
</th>
|
||||
<td class="upload_area" colspan="3">
|
||||
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
|
||||
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
|
||||
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
|
||||
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
|
||||
<div class="file_wrap file_upload_box no_img_box">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<!-- <th>
|
||||
<input type="checkbox" id="all_check"><label for="all_check"></label>
|
||||
</th> -->
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap fileAfter file_list_div">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<!-- <th>
|
||||
<input type="checkbox" id="all_check"><label for="all_check"></label>
|
||||
</th> -->
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="tbody_fiielist" class="tb_file_after">
|
||||
<c:forEach var="fileList" items="${fileList}" varStatus="status">
|
||||
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
|
||||
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
|
||||
<td class="td_filename">
|
||||
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
|
||||
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
|
||||
</td>
|
||||
<td class="td_filesort">
|
||||
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize">
|
||||
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</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>
|
||||
@ -279,10 +279,20 @@
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${empty userWork }">
|
||||
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
|
||||
<%-- <ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
|
||||
selectedText="" selectedValue="" defaultValue=""
|
||||
defaultText='선택'
|
||||
/>
|
||||
--%>
|
||||
|
||||
<select name="cmptntAthrt" id="cmptntAthrt" class="sel_type1">
|
||||
<option value="">선택</option>
|
||||
<c:forEach var="list" items="${CmmnDetailCodeList}" varStatus="status">
|
||||
<option value="${list.code }">${list.codeNm }</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
|
||||
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<ve:code codeId="VEA008" code="${userWork }"/>
|
||||
|
||||
@ -338,7 +338,26 @@
|
||||
<c:param name="pdf_view" value="Y" />
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>작성자</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${info.dprtmNm}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>안내첨부파일</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${info.cnAtchFileId}" />
|
||||
<c:param name="pdf_view" value="Y" />
|
||||
</c:import>
|
||||
</td>
|
||||
</tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p>안내내용</p>
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="ckeditor" uri="http://ckeditor.com"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : oprtnAplctAnncmMngReg.jsp
|
||||
@ -32,9 +33,12 @@
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
//파일첨부관련 설정들===============================================
|
||||
$(".btn_type01").on('click', function(){
|
||||
$("#filebutton").on('click', function(){
|
||||
$("#file_temp").click();
|
||||
});
|
||||
$("#filebutton_cn").on('click', function(){
|
||||
$("#file_temp_cn").click();
|
||||
});
|
||||
|
||||
//파일첨부관련 설정들===============================================
|
||||
});
|
||||
@ -141,6 +145,9 @@
|
||||
}
|
||||
|
||||
function fncSave(){
|
||||
|
||||
//ckediter
|
||||
CKEDITOR.instances.anncmCn.updateElement();
|
||||
|
||||
if($("#title").val() == ""){
|
||||
alert("제목을 입력해주세요.");
|
||||
@ -191,6 +198,10 @@
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
|
||||
});
|
||||
|
||||
_fileForm2_cn.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file_cn"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngRegAjax.do";
|
||||
@ -261,6 +272,7 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="<c:url value='/js/web_common_custom.js'/>"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
@ -594,6 +606,105 @@
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>담당부서</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="dprtmNm" id="dprtmNm" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>내용</p>
|
||||
</th>
|
||||
<td>
|
||||
<textarea id="anncmCn" name="anncmCn" cols="500" rows="20">
|
||||
</textarea>
|
||||
<ckeditor:replace replace="anncmCn" basePath="${pageContext.request.contextPath}/html/egovframework/com/cmm/utl/ckeditor/" />
|
||||
<form:errors path="anncmCn" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<!-- 안내첨부파일 start -->
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>안내첨부파일</p>
|
||||
</th>
|
||||
<td class="upload_area_cn">
|
||||
<input type="file" id="file_temp_cn" name="file_temp_cn" class="uploadFile" style="display:none"/>
|
||||
<button type="button" id="filebutton_cn" class="btn_type01">파일 첨부하기</button>
|
||||
<div class="file_wrap file_upload_box_cn no_img_box_cn">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap fileAfter_cn file_list_div_cn">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="tbody_fiielist_cn" class="tb_file_after">
|
||||
<c:forEach var="fileList_cn" items="${fileList_cn}" varStatus="status">
|
||||
<tr class="item_<c:out value='${fileList_cn.atchFileId}' />_<c:out value='${fileList_cn.fileSn}' />_cn uploaded_obj_cn">
|
||||
<input type="hidden" name="fileSize_cn" class="item_file_size_cn" value="${fileList_cn.fileSize}">
|
||||
<td class="td_filename_cn">
|
||||
<span class="file_name_text_cn"><c:out value='${fileList_cn.orignlFileNm}' /></span>
|
||||
</td>
|
||||
<td class="td_filesort_cn">
|
||||
<span class="file_filesort_text_cn" value="<c:out value="${fileList_cn.fileExtsn}"/>"><c:out value="${fileList_cn.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize_cn">
|
||||
<span class="file_size_text_cn" value="<c:out value="${fileList_cn.fileMg}"/>"><c:out value="${fileList_cn.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchPhotoFile_cn('<c:out value='${fileList_cn.atchFileId}' />', '<c:out value='${fileList_cn.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 안내첨부파일 end -->
|
||||
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="ckeditor" uri="http://ckeditor.com"%>
|
||||
<%
|
||||
/**
|
||||
* @Class Name : oprtnAplctAnncmMngUpdate.jsp
|
||||
@ -32,11 +33,15 @@
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
//파일첨부관련 설정들===============================================
|
||||
$(".btn_type01").on('click', function(){
|
||||
$("#filebutton").on('click', function(){
|
||||
$("#file_temp").click();
|
||||
});
|
||||
$("#filebutton_cn").on('click', function(){
|
||||
$("#file_temp_cn").click();
|
||||
});
|
||||
|
||||
//파일첨부관련 설정들===============================================
|
||||
|
||||
});
|
||||
|
||||
|
||||
@ -113,6 +118,8 @@
|
||||
}
|
||||
|
||||
function fncSave(){
|
||||
//ckediter
|
||||
CKEDITOR.instances.anncmCn.updateElement();
|
||||
|
||||
if($("#title").val() == ""){
|
||||
alert("제목을 입력해주세요.");
|
||||
@ -163,6 +170,10 @@
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
|
||||
});
|
||||
|
||||
_fileForm2_cn.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file_cn"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
if(confirm("저장하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/oprtnAplctAnncmMngMdfyAjax.do";
|
||||
@ -183,6 +194,8 @@
|
||||
if(returnData.result == "success"){
|
||||
alert("저장되었습니다.");
|
||||
fncGoList();
|
||||
}else{
|
||||
alert(returnData.message);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
@ -233,6 +246,7 @@
|
||||
}
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="<c:url value='/js/web_common_custom.js'/>"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
@ -250,6 +264,7 @@
|
||||
<input type="hidden" name="lctrDivCd" value="30"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${info.prcsAplctPrdOrd}' />" />
|
||||
<input type="hidden" name="atchFileId" value="<c:out value='${info.atchFileId}' />" />
|
||||
<input type="hidden" name="cnAtchFileId" value="<c:out value='${info.cnAtchFileId}' />" />
|
||||
<input type="hidden" name="strtPnttm"/>
|
||||
<input type="hidden" name="endPnttm"/>
|
||||
|
||||
@ -588,6 +603,114 @@
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>담당부서</p>
|
||||
</th>
|
||||
<td>
|
||||
<input type="text" name="dprtmNm" id="dprtmNm" value="<c:out value='${info.dprtmNm}'/>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>내용</p>
|
||||
</th>
|
||||
<td>
|
||||
<textarea id="anncmCn" name="anncmCn" cols="500" rows="20">
|
||||
<c:out value="${info.anncmCn}" escapeXml="false" />
|
||||
</textarea>
|
||||
<ckeditor:replace replace="anncmCn" basePath="${pageContext.request.contextPath}/html/egovframework/com/cmm/utl/ckeditor/" />
|
||||
<form:errors path="anncmCn" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 안내첨부파일 start -->
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||
<p>안내첨부파일</p>
|
||||
</th>
|
||||
<td class="upload_area_cn">
|
||||
<input type="file" id="file_temp_cn" name="file_temp_cn" class="uploadFile" style="display:none"/>
|
||||
<button type="button" id="filebutton_cn" class="btn_type01">파일 첨부하기</button>
|
||||
<div class="file_wrap file_upload_box_cn no_img_box_cn">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 20%;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="file_wrap fileAfter_cn file_list_div_cn">
|
||||
<table class="tbType02">
|
||||
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
|
||||
<colgroup>
|
||||
<col style="width: 60%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th scope="col">파일 명</th>
|
||||
<th scope="col">종류</th>
|
||||
<th scope="col">크기</th>
|
||||
<th scope="col">삭제</th>
|
||||
</thead>
|
||||
<tbody id="tbody_fiielist_cn" class="tb_file_after">
|
||||
<c:forEach var="fileList_cn" items="${fileList_cn}" varStatus="status">
|
||||
<tr class="item_<c:out value='${fileList_cn.atchFileId}' />_<c:out value='${fileList_cn.fileSn}' />_cn uploaded_obj_cn">
|
||||
<input type="hidden" name="fileSize_cn" class="item_file_size_cn" value="${fileList_cn.fileSize}">
|
||||
<td class="td_filename_cn">
|
||||
<span class="file_name_text_cn"><c:out value='${fileList_cn.orignlFileNm}' /></span>
|
||||
</td>
|
||||
<td class="td_filesort_cn">
|
||||
<span class="file_filesort_text_cn" value="<c:out value="${fileList_cn.fileExtsn}"/>"><c:out value="${fileList_cn.fileExtsn}"/></span>
|
||||
</td>
|
||||
<td class="td_filesize_cn">
|
||||
<span class="file_size_text_cn" value="<c:out value="${fileList_cn.fileMg}"/>"><c:out value="${fileList_cn.fileMg}"/></span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_del" onclick="delAtchPhotoFile_cn('<c:out value='${fileList_cn.atchFileId}' />', '<c:out value='${fileList_cn.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 안내첨부파일 end -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
|
||||
@ -0,0 +1,197 @@
|
||||
<!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/fndthEduQnaMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function updateQnaAnswerCn(){
|
||||
$("#prvtMemoCn").val($("#hiddenMemo").val());
|
||||
|
||||
var data1 = new FormData(document.getElementById("detailForm"));
|
||||
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngUpdateAjax.do",
|
||||
data:data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("저장 되었습니다.");
|
||||
// location.reload();
|
||||
fncGoList();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<form id="listForm" name="listForm" method="post">
|
||||
</form>
|
||||
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdQnaOrd" id="prcsAplctPrdQnaOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdQnaOrd}' />"/>
|
||||
<!-- 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>
|
||||
</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">질문자ID</th>
|
||||
<td>
|
||||
<c:out value='${info.qnaRegist}' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">질문자 이름</th>
|
||||
<td>
|
||||
<c:out value='${info.mberNm}' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">질문내용</th>
|
||||
<td>
|
||||
<c:out value='${info.qnaCn}' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">답변상태</th>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${empty info.qnaAnswerCn }">
|
||||
미완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
완료
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">답변일시</th>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${empty list.lastUpdtPnttm }">
|
||||
-
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value='${list.lastUpdtPnttm }'/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list_상세 -->
|
||||
<!-- 비공개 메보 정보 -->
|
||||
<div class="tb_tit01">
|
||||
<p>답변</p>
|
||||
</div>
|
||||
<div class="tb_type02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>내용</p>
|
||||
</th>
|
||||
<td class="tb_alram">
|
||||
<div>
|
||||
<textarea name="qnaAnswerCn" id="qnaAnswerCn"><c:out value="${info.qnaAnswerCn}" /></textarea>
|
||||
<button type="button" class="btn_type08" onclick="updateQnaAnswerCn(); return false;">답변 등록</button>
|
||||
</div>
|
||||
</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_type03" onclick="fncGoList(); return false;">목록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
</html>
|
||||
@ -13,13 +13,13 @@
|
||||
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
|
||||
<%
|
||||
/**
|
||||
* @Class Name : fndthEduPrcsMngList.jsp
|
||||
* @Class Name : fndthEduQnaMngList.jsp
|
||||
* @Description : 기반강화연수 과정관리 목록
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2021.12.14 조용준 최초 생성
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2023.11.17 이호영 최초 생성
|
||||
* @author 조용준
|
||||
* @since 2021.12.14
|
||||
* @version 1.0
|
||||
@ -45,25 +45,20 @@
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.prcsOrd.value = prcsOrd ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
function fncGoDetail(prcsAplctPrdQnaOrd){
|
||||
var form = document.detailForm ;
|
||||
form.prcsAplctPrdQnaOrd.value = prcsAplctPrdQnaOrd ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngDetail.do'/>";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncCreate() {
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngReg.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
/*
|
||||
function fncDelete(prcsOrd){
|
||||
document.listForm.prcsOrd.value = prcsOrd ;
|
||||
|
||||
@ -98,50 +93,17 @@
|
||||
}
|
||||
event.stopImmediatePropagation();
|
||||
|
||||
}
|
||||
} */
|
||||
|
||||
function fncSaveSort(prcsOrd, count){
|
||||
|
||||
var sortNo = $('#prcsSortNo'+count).val();
|
||||
|
||||
if(sortNo == ''){
|
||||
|
||||
alert("표시순서를 입력해 주세요.");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
$('#prcsOrd').val(prcsOrd);
|
||||
$('#prcsSortNo').val(sortNo);
|
||||
var data = new FormData(document.getElementById("listForm"));
|
||||
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
|
||||
$.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("저장되었습니다.");
|
||||
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
|
||||
fncGoList();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
<title>교육과정관리</title>
|
||||
<title>교육문의</title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="detailForm" name="detailForm" method="post">
|
||||
<input type="hidden" id="prcsAplctPrdQnaOrd" name="prcsAplctPrdQnaOrd" value="" />
|
||||
|
||||
</form>
|
||||
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||
@ -154,20 +116,20 @@
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>과정관리목록</h2>
|
||||
<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">
|
||||
<div class="tb_tit01">
|
||||
<p>교육 과정 관리</p>
|
||||
<p>교육 문의 관리</p>
|
||||
</div>
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
@ -212,45 +174,57 @@
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 10%">
|
||||
<col style="width: 20%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: auto">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육부문</th>
|
||||
<th>과정명</th>
|
||||
<th>설명</th>
|
||||
<th>등록일시</th>
|
||||
<th>사용여부 </th>
|
||||
<th>질문자ID</th>
|
||||
<th>질문자이름</th>
|
||||
<th>질문내용</th>
|
||||
<th>답변상태</th>
|
||||
<th>질문일시</th>
|
||||
<th>답변일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr class="listCount">
|
||||
<td>
|
||||
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
|
||||
<c:out value='${list.qnaRegist }'/>
|
||||
</td>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value='${list.prcsNm}'/>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value='${list.mberNm}'/>
|
||||
</td>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value='${list.prcsCn}'/>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value='${list.qnaCn}'/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value='${list.frstRegistPnttm}'/>
|
||||
<c:choose>
|
||||
<c:when test="${empty list.qnaAnswerCn }">
|
||||
미완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
완료
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value='${list.frstRegistPnttm }'/>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${list.useYn eq 'Y'}">
|
||||
사용
|
||||
</c:if>
|
||||
<c:if test="${list.useYn ne 'Y'}">
|
||||
미사용
|
||||
</c:if>
|
||||
<c:choose>
|
||||
<c:when test="${empty list.lastUpdtPnttm }">
|
||||
-
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:out value='${list.lastUpdtPnttm }'/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
@ -271,7 +245,6 @@
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //page -->
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
}
|
||||
|
||||
//sms 발송
|
||||
function fncSndSms(){
|
||||
/* function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
@ -129,6 +129,24 @@
|
||||
|
||||
|
||||
fncContent("${pageContext.request.contextPath}/kccadr/oprtn/pblc/smsSndAjax.do","10",p_smsMsg,"");
|
||||
} */
|
||||
|
||||
function fncSndSms(){
|
||||
|
||||
var p_smsMsg = $("#smsMsg").val();
|
||||
|
||||
if (p_smsMsg==""){
|
||||
alert("SMS 발송 내용은 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/offeduSMSSndAjax.do",
|
||||
"10", //코드 10:sms 20:mail
|
||||
p_smsMsg,
|
||||
""
|
||||
);
|
||||
}
|
||||
|
||||
//이메일 발송
|
||||
@ -141,11 +159,16 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
fncContent("${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndAjax.do","20",p_smsEmail,"C");
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndAjax.do",
|
||||
"20",
|
||||
p_smsEmail,
|
||||
"C"
|
||||
);
|
||||
}
|
||||
|
||||
//발송
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag){
|
||||
/* function fncContent(p_url, p_cd, p_cn, p_flag){
|
||||
|
||||
var form = document.cellForm;
|
||||
form.sndCd.value = p_cd;
|
||||
@ -178,6 +201,45 @@
|
||||
console.log("++++++++++++++++++++++++++++++++++++++++++ code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
} */
|
||||
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag){
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
data:{
|
||||
"sndCd": p_cd,
|
||||
"sndCn": p_cn,
|
||||
"eduAplctOrd": $("#eduAplctOrd").val(),
|
||||
"clphone": '<c:out value="${info.clphone}" />',
|
||||
"email": '<c:out value="${info.email}" />',
|
||||
"sndFlag": p_flag,
|
||||
"trgtId" : '<c:out value="${info.userId}" />'
|
||||
},
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
*/
|
||||
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert(returnData.message);
|
||||
}else{
|
||||
alert(returnData.message);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
function reloadLinkPage(){
|
||||
@ -590,10 +652,11 @@
|
||||
</th>
|
||||
<td class="tb_alram">
|
||||
<div>
|
||||
<textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea>
|
||||
<!-- <textarea id="smsMsg" placeholder="* 메시지는 단문(90byte)으로만 작성 가능합니다." onkeyup="countBytes(this ,90 ,$('#byteSms')[0])"></textarea> -->
|
||||
<textarea id="smsMsg"></textarea>
|
||||
<button type="button" class="btn_type08" onclick="fncSndSms();return false;">SMS 발송</button>
|
||||
</div>
|
||||
<p><span id="byteSms">0</span>/90 byte</p>
|
||||
<!-- <p><span id="byteSms">0</span>/90 byte</p> -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -5,6 +5,9 @@
|
||||
<%@ 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"%>
|
||||
<%pageContext.setAttribute("crlf", "\r\n"); %>
|
||||
<%pageContext.setAttribute("crlt", "<"); %>
|
||||
<%pageContext.setAttribute("crgt", ">"); %>
|
||||
|
||||
<title>운영신청 목록 > 저작권 체험교실 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
@ -81,316 +84,60 @@
|
||||
<div class="cont_tit">
|
||||
<h2>운영신청 안내</h2>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>사업개요</p>
|
||||
<p>제목</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list">
|
||||
<dl>
|
||||
<dt>· 사업내용</dt>
|
||||
<dd>학교 현장의 교사가 초·중 ·고등학생을 대상으로 체험활동 중심의 저작권 교육을 실시하도록 지원함으로써 청소년의 저작권 인식 제고 도모</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영 지원 학급</dt>
|
||||
<dd>
|
||||
전국 초·중·고등학교 350개교
|
||||
<ul>
|
||||
<li>- 학교 교사가 직접 1학교당 1개 학급 이상 또는 동아리 등을 대상으로 저작권 체험교실을 운영할 수 있도록 지원</li>
|
||||
</ul>
|
||||
<div class="info">* 여러 명의 교사가 함께 체험교실 운영 불가</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영 시간</dt>
|
||||
<dd>
|
||||
총 6차시(교시, 차시 당 40~50분)
|
||||
<ul>
|
||||
<li>- 대상 학급 또는 동아리를 기준으로 6차시 이상 교육 실시함</li>
|
||||
<li>- 담당교사의 재량으로 자율 편성(예 : 6차시씩 1일, 2차시씩 3일 등)하되, 1일 최대 2차시까지만 운영 가능</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 교육 주체</dt>
|
||||
<dd>
|
||||
체험 교실 운영 대상으로 선정된 학교의 담당 교사 1인
|
||||
<ul>
|
||||
<li>- 운영교사에게는 저작권 교육내용 연구 및 교수학습법 적용에 대한 외부 강의료 지급</li>
|
||||
</ul>
|
||||
<div class="info">* 1차시 당 15만원(최대 6차시) 지급. 단, 결과보고서 제출자에 한함</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 교육 내용</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 체험 활동 중심 저작권 교육 프로그램 활용을 통한 저작권 개념, 올바른 저작물 이용방법, 저작권 문제 해결 방법 등 교육</li>
|
||||
<!-- <li>- 청소년 저작권 인식 및 의식 제고에 맞는 교육 가이드 제공(첨부 4)</li> -->
|
||||
</ul>
|
||||
<div class="info">* 원활한 교육 운영을 위해 교육 교재[첨부4]를 지원하오나, 교사 재량에 따라 저작권 교육 연구내용 및 창의적 체험 활동 등 자유롭게 구성 가능</div>
|
||||
<c:out value="${info.title}"/>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>교육 신청</p>
|
||||
<p>부서</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list summary_list02">
|
||||
<div class="summary_list">
|
||||
<dl>
|
||||
<dt>· 신청방법</dt>
|
||||
<dd>신청서(첨부 1)를 작성하여 학교장 직인 날인 후 위원회 홈페이지(www.copyright.or.kr/offedu)에서 개별 접수</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 신청기간 : 2023. 2. 27.(월) ~ 3. 6.(월), 9:00 ~ 18:00</li>
|
||||
<div class="info">* 세부 신청 절차는 [첨부] 참조</div>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영교사 인원</dt>
|
||||
<dd>전국 초·중·고 교사 350명 선정</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>
|
||||
- 체험교실 운영 교사 선정 기준
|
||||
<ul>
|
||||
<li>· 지역균형 및 초·중등 학급 수 비율 고려</li>
|
||||
<li>· 운영 교사 전체의 50% 수준으로 신규 운영교사 선정 고려</li>
|
||||
<li>· 위원회 주관의 저작권 오프라인 교원연수 이수자 우선 고려</li>
|
||||
<li><div class="info">* 2022.1.1. 이후 특수 분야 교원 연수(교원을 위한 저작권법 입문과정, 학교 교육을 위한 저작권법 실전과정) 이수자</div></li>
|
||||
<li>· 위원회 공동 주관, KERIS 협업과정 오프라인 교원연수 이수자 우선 고려</li>
|
||||
<li><div class="info">* 2021.8. 교육기관 저작권 전문가 양성 연수「기초과정」이수자, 2022.8. 교육기관 저작권 전문가 양성 연수「중급과정」이수자</div></li>
|
||||
<li>· 교육 대상인원이 15명 미만인 경우 선정에서 제외하며, 도서벽지 또는 인구감소 지역의 경우에는 교육 대상인원과 관계없이 우선 선정 고려</li>
|
||||
<li>· 전년도 포기 교사 및 불성실 운영 교사(기존 보고 내용 답습 등)는 당해연도 참여 제한</li>
|
||||
<li>· 해당 학급 및 지역 경쟁률이 높을 경우 3년 연속 또는 5회 이상 운영 교사는 차순위로 배정될 수 있음</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<c:out value="${info.dprtmNm}"/>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>교육 운영</p>
|
||||
<p>등록일</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list summary_list02">
|
||||
<div class="summary_list">
|
||||
<dl>
|
||||
<dt>· 사전 연수</dt>
|
||||
<dd>
|
||||
저작권 체험교실 선정 교사를 대상으로 저작권 기본 이론 및 프로그램 운영 전반에 대한 사전 안내 등 연수 실시
|
||||
<ul>
|
||||
<li>- 연수시간: 각 일자별 09:00~18:00(예정)</li>
|
||||
</ul>
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:10%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>3.25.(토)</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>4.1.(토)</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>4.8.(토)</span></th>
|
||||
<th scope="col">참고</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>참여대상</span></th>
|
||||
<td>(신규) <br/>초등 교사</td>
|
||||
<td>(신규) <br/>중·고등 교사</td>
|
||||
<td>(신규) <br/>초·중·고등 교사</td>
|
||||
<td>참여 대상에 맞춰 교육 프로그램 설계<br/>단, 사전 협의시 일정 변경 가능 </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- (방법) 비대면 온라인 교육</li>
|
||||
<li>【 체험교실 운영 교사 필수 교육 안내 】</li>
|
||||
</ul>
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:20%;">
|
||||
<col style="width:50%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;">필수교육</th>
|
||||
<th scope="col">비고</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>신규 교사</span></th>
|
||||
<td style="text-align:left;">- 사전 연수(연수일)
|
||||
<br/>- 온라인 교육(23년 3월~결과보고 제출일)
|
||||
<br/> ‣‘저작권 e-배움터’의 교원 대상 교육(15학점 또는 30학점)
|
||||
</td>
|
||||
<td>필수 교육 2개 모두 이수</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>기존 교사</span></th>
|
||||
<td style="text-align:left;">- 사전 연수(연수일)
|
||||
<br/>- 온라인 교육(23년 3월~결과보고 제출일)
|
||||
<br/> ‣‘저작권 e-배움터’의 교원 대상 교육(15학점 또는 30학점)
|
||||
</td>
|
||||
<td>필수 교육 2개 중 하나 이수</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info">* 필수교육 미이수시 선정 취소</div>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 저작권 체험교실 대상 지원</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 저작권 체험교실 운영교사 대상 사전 연수 실시 (3회)</li>
|
||||
<li>- 청소년 저작권 교육용 교재(초·중등 각 1종 및 교사용 지도서)</li>
|
||||
<li>- 기타 청소년 저작권 교육·홍보 자료 수시 제공</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 결과 제출</dt>
|
||||
<dd>저작권 체험교실 운영 교사는 반드시 결과보고서를 제출해야 하며, 본 자료는 강의료 지급 근거이자 우수 운영 교사 선정을 위한 평가 대상으로 활용됨
|
||||
<ul>
|
||||
<li>- 2023. 10. 13.(금)까지 교육 결과보고서를 위원회로 제출</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 우수 운영 교사 선정</dt>
|
||||
<dd>저작권 체험교실 운영 교사가 제출한 결과보고서를 토대로 우수 운영 교사를 선정하여 포상 실시
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:10%;">
|
||||
<col style="width:30%;">
|
||||
<col style="width:45%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>대상자 및 인원</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>상세내역</span></th>
|
||||
<th scope="col">총계(천원)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>최우수</span></th>
|
||||
<td>초‧중‧고 교사 중 1명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 50만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>1,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>우수상</span></th>
|
||||
<td>초‧중‧고 교사 3명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 30만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>2,400</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>장려상</span></th>
|
||||
<td>초‧중‧고 교사 5명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 20만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>3,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" rowspan="2"><span>특별상</span></th>
|
||||
<td>으뜸상 1명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 부상 50만원</td>
|
||||
<td>500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>버금상 2명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 부상 30만원</td>
|
||||
<td>600</td>
|
||||
</tr>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>합계</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>총12명</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>-</span></th>
|
||||
<th scope="col">8,000</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info">* 상기 포상 내역은 위원회 사정에 따라 변경될 수 있음
|
||||
<br/>* 체험교실 운영 과정에서 본인만의 교육자료(교안, 교보재 등)를 만든 교사 중 우수 교육자료 제작‧활용 교사에게 특별상 수여</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 의견청취</dt>
|
||||
<dd>* 체험교실 운영 학급 현장 방문 또는 의견 청취 회의 개최</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 추진일정</dt>
|
||||
<dd>
|
||||
|
||||
<table>
|
||||
<caption>추진일정관련 구분, 상세일정을 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col">상세일정</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>체험교실 신청서 접수</span></th>
|
||||
<td>2월 27일(월)~3월 6일(월), 7일간</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>운영교사 선정 및 학교 통보</span></th>
|
||||
<td>3월 17일(금), 예정</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>운영교사 사전 연수<br><span style="font-size: 14px; text-align: left; display: inline-block;">* 신규운영 교사는 2개 그룹(초/중등)으로 나누어 진행</span></span></th>
|
||||
<td>3월 25일(토): 신규 초등 교사 <br>4월 1일(토): 신규 중․고등 교사<br>4월 8일(토): 기존 교사 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>결과보고서 제출 마감</span></th>
|
||||
<td>10월 13일(금)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>우수학급 선정 및 포상</span></th>
|
||||
<td>11월~12월</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info" style="margin-bottom: 10px;">* 상기 일정은 위원회 내부 사정에 따라 변경될 수 있음</div>
|
||||
<c:out value="${info.frstRegistPnttm}"/>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>첨부파일</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="summary_list">
|
||||
<dl>
|
||||
<dd>
|
||||
<c:import url="/cmm/fms/selectBBSFileInfsCustom.do" charEncoding="utf-8">
|
||||
<c:param name="param_atchFileId" value="${info.cnAtchFileId}" />
|
||||
<c:param name="pdf_view" value="Y" />
|
||||
</c:import>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<c:out value="${fn:replace(fn:replace(fn:replace(info.anncmCn, crlt , '<'), crgt , '>'), crlf , '<br/>')}" escapeXml="false"/>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_center" style="width: 100%;">
|
||||
@ -403,5 +150,3 @@
|
||||
</div>
|
||||
<!--// content -->
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,407 @@
|
||||
<%@ 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"%>
|
||||
|
||||
<title>운영신청 목록 > 저작권 체험교실 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script type="text/javaScript" language="javascript">
|
||||
function fncGoList(){
|
||||
location.href= "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctList.do'/>";
|
||||
}
|
||||
|
||||
function fncScholList(){
|
||||
location.href= "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctList.do'/>";
|
||||
}
|
||||
|
||||
function openPop(){
|
||||
/* if(!checkAplctPsbl()) return; */
|
||||
if(${detailVO == null}){
|
||||
alert("신청기간이 아닙니다.");
|
||||
return false;
|
||||
}
|
||||
commonPopLayeropen(
|
||||
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/cautionGuide.do"
|
||||
, 730
|
||||
, 677
|
||||
, {}
|
||||
, "Y"
|
||||
, "cautionGuide"
|
||||
);
|
||||
}
|
||||
function fn_egov_downFile(atchFileId, fileSn){
|
||||
if(atchFileId ==''){
|
||||
alert("신청기간이 아닙니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
|
||||
|
||||
}
|
||||
|
||||
function checkAplctPsbl() {
|
||||
|
||||
var flag = true;
|
||||
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/eduAplctChkAjax.do",
|
||||
data: {
|
||||
"lctrDivCd":"30",
|
||||
},
|
||||
dataType:'json',
|
||||
async: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "fail"){
|
||||
alert("운영신청기간이 아닙니다.");
|
||||
flag = false;
|
||||
return;
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
|
||||
if(!flag){
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
<div class="cont_tit">
|
||||
<h2>운영신청 안내</h2>
|
||||
</div>
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>사업개요</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list">
|
||||
<dl>
|
||||
<dt>· 사업내용</dt>
|
||||
<dd>학교 현장의 교사가 초·중 ·고등학생을 대상으로 체험활동 중심의 저작권 교육을 실시하도록 지원함으로써 청소년의 저작권 인식 제고 도모</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영 지원 학급</dt>
|
||||
<dd>
|
||||
전국 초·중·고등학교 350개교
|
||||
<ul>
|
||||
<li>- 학교 교사가 직접 1학교당 1개 학급 이상 또는 동아리 등을 대상으로 저작권 체험교실을 운영할 수 있도록 지원</li>
|
||||
</ul>
|
||||
<div class="info">* 여러 명의 교사가 함께 체험교실 운영 불가</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영 시간</dt>
|
||||
<dd>
|
||||
총 6차시(교시, 차시 당 40~50분)
|
||||
<ul>
|
||||
<li>- 대상 학급 또는 동아리를 기준으로 6차시 이상 교육 실시함</li>
|
||||
<li>- 담당교사의 재량으로 자율 편성(예 : 6차시씩 1일, 2차시씩 3일 등)하되, 1일 최대 2차시까지만 운영 가능</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 교육 주체</dt>
|
||||
<dd>
|
||||
체험 교실 운영 대상으로 선정된 학교의 담당 교사 1인
|
||||
<ul>
|
||||
<li>- 운영교사에게는 저작권 교육내용 연구 및 교수학습법 적용에 대한 외부 강의료 지급</li>
|
||||
</ul>
|
||||
<div class="info">* 1차시 당 15만원(최대 6차시) 지급. 단, 결과보고서 제출자에 한함</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 교육 내용</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 체험 활동 중심 저작권 교육 프로그램 활용을 통한 저작권 개념, 올바른 저작물 이용방법, 저작권 문제 해결 방법 등 교육</li>
|
||||
<!-- <li>- 청소년 저작권 인식 및 의식 제고에 맞는 교육 가이드 제공(첨부 4)</li> -->
|
||||
</ul>
|
||||
<div class="info">* 원활한 교육 운영을 위해 교육 교재[첨부4]를 지원하오나, 교사 재량에 따라 저작권 교육 연구내용 및 창의적 체험 활동 등 자유롭게 구성 가능</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>교육 신청</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list summary_list02">
|
||||
<dl>
|
||||
<dt>· 신청방법</dt>
|
||||
<dd>신청서(첨부 1)를 작성하여 학교장 직인 날인 후 위원회 홈페이지(www.copyright.or.kr/offedu)에서 개별 접수</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 신청기간 : 2023. 2. 27.(월) ~ 3. 6.(월), 9:00 ~ 18:00</li>
|
||||
<div class="info">* 세부 신청 절차는 [첨부] 참조</div>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 운영교사 인원</dt>
|
||||
<dd>전국 초·중·고 교사 350명 선정</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>
|
||||
- 체험교실 운영 교사 선정 기준
|
||||
<ul>
|
||||
<li>· 지역균형 및 초·중등 학급 수 비율 고려</li>
|
||||
<li>· 운영 교사 전체의 50% 수준으로 신규 운영교사 선정 고려</li>
|
||||
<li>· 위원회 주관의 저작권 오프라인 교원연수 이수자 우선 고려</li>
|
||||
<li><div class="info">* 2022.1.1. 이후 특수 분야 교원 연수(교원을 위한 저작권법 입문과정, 학교 교육을 위한 저작권법 실전과정) 이수자</div></li>
|
||||
<li>· 위원회 공동 주관, KERIS 협업과정 오프라인 교원연수 이수자 우선 고려</li>
|
||||
<li><div class="info">* 2021.8. 교육기관 저작권 전문가 양성 연수「기초과정」이수자, 2022.8. 교육기관 저작권 전문가 양성 연수「중급과정」이수자</div></li>
|
||||
<li>· 교육 대상인원이 15명 미만인 경우 선정에서 제외하며, 도서벽지 또는 인구감소 지역의 경우에는 교육 대상인원과 관계없이 우선 선정 고려</li>
|
||||
<li>· 전년도 포기 교사 및 불성실 운영 교사(기존 보고 내용 답습 등)는 당해연도 참여 제한</li>
|
||||
<li>· 해당 학급 및 지역 경쟁률이 높을 경우 3년 연속 또는 5회 이상 운영 교사는 차순위로 배정될 수 있음</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="tb_tit01">
|
||||
<div class="tb_tit01_left">
|
||||
<p>교육 운영</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="summary_list summary_list02">
|
||||
<dl>
|
||||
<dt>· 사전 연수</dt>
|
||||
<dd>
|
||||
저작권 체험교실 선정 교사를 대상으로 저작권 기본 이론 및 프로그램 운영 전반에 대한 사전 안내 등 연수 실시
|
||||
<ul>
|
||||
<li>- 연수시간: 각 일자별 09:00~18:00(예정)</li>
|
||||
</ul>
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:10%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:20%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>3.25.(토)</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>4.1.(토)</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>4.8.(토)</span></th>
|
||||
<th scope="col">참고</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>참여대상</span></th>
|
||||
<td>(신규) <br/>초등 교사</td>
|
||||
<td>(신규) <br/>중·고등 교사</td>
|
||||
<td>(신규) <br/>초·중·고등 교사</td>
|
||||
<td>참여 대상에 맞춰 교육 프로그램 설계<br/>단, 사전 협의시 일정 변경 가능 </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</dd>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- (방법) 비대면 온라인 교육</li>
|
||||
<li>【 체험교실 운영 교사 필수 교육 안내 】</li>
|
||||
</ul>
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:20%;">
|
||||
<col style="width:50%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;">필수교육</th>
|
||||
<th scope="col">비고</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>신규 교사</span></th>
|
||||
<td style="text-align:left;">- 사전 연수(연수일)
|
||||
<br/>- 온라인 교육(23년 3월~결과보고 제출일)
|
||||
<br/> ‣‘저작권 e-배움터’의 교원 대상 교육(15학점 또는 30학점)
|
||||
</td>
|
||||
<td>필수 교육 2개 모두 이수</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>기존 교사</span></th>
|
||||
<td style="text-align:left;">- 사전 연수(연수일)
|
||||
<br/>- 온라인 교육(23년 3월~결과보고 제출일)
|
||||
<br/> ‣‘저작권 e-배움터’의 교원 대상 교육(15학점 또는 30학점)
|
||||
</td>
|
||||
<td>필수 교육 2개 중 하나 이수</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info">* 필수교육 미이수시 선정 취소</div>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 저작권 체험교실 대상 지원</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li>- 저작권 체험교실 운영교사 대상 사전 연수 실시 (3회)</li>
|
||||
<li>- 청소년 저작권 교육용 교재(초·중등 각 1종 및 교사용 지도서)</li>
|
||||
<li>- 기타 청소년 저작권 교육·홍보 자료 수시 제공</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 결과 제출</dt>
|
||||
<dd>저작권 체험교실 운영 교사는 반드시 결과보고서를 제출해야 하며, 본 자료는 강의료 지급 근거이자 우수 운영 교사 선정을 위한 평가 대상으로 활용됨
|
||||
<ul>
|
||||
<li>- 2023. 10. 13.(금)까지 교육 결과보고서를 위원회로 제출</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 우수 운영 교사 선정</dt>
|
||||
<dd>저작권 체험교실 운영 교사가 제출한 결과보고서를 토대로 우수 운영 교사를 선정하여 포상 실시
|
||||
<table style="text-align: center; margin: 10px 0;">
|
||||
<caption>저작권 체험교실 운영 교사 대상 사전 연수관련 구분, 필수교육, 교육 미이수시를 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:10%;">
|
||||
<col style="width:30%;">
|
||||
<col style="width:45%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>대상자 및 인원</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>상세내역</span></th>
|
||||
<th scope="col">총계(천원)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>최우수</span></th>
|
||||
<td>초‧중‧고 교사 중 1명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 50만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>1,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>우수상</span></th>
|
||||
<td>초‧중‧고 교사 3명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 30만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>2,400</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>장려상</span></th>
|
||||
<td>초‧중‧고 교사 5명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 상금 20만원
|
||||
<br/>- (참여학생) 50만원 상당의 기념품</td>
|
||||
<td>3,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" rowspan="2"><span>특별상</span></th>
|
||||
<td>으뜸상 1명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 부상 50만원</td>
|
||||
<td>500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>버금상 2명</td>
|
||||
<td style="text-align:left;">- (교사) 상장 및 부상 30만원</td>
|
||||
<td>600</td>
|
||||
</tr>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>합계</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>총12명</span></th>
|
||||
<th scope="col" style="border-radius: 0;"><span>-</span></th>
|
||||
<th scope="col">8,000</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info">* 상기 포상 내역은 위원회 사정에 따라 변경될 수 있음
|
||||
<br/>* 체험교실 운영 과정에서 본인만의 교육자료(교안, 교보재 등)를 만든 교사 중 우수 교육자료 제작‧활용 교사에게 특별상 수여</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 의견청취</dt>
|
||||
<dd>* 체험교실 운영 학급 현장 방문 또는 의견 청취 회의 개최</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>· 추진일정</dt>
|
||||
<dd>
|
||||
|
||||
<table>
|
||||
<caption>추진일정관련 구분, 상세일정을 제공하는 표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><span>구분</span></th>
|
||||
<th scope="col">상세일정</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row"><span>체험교실 신청서 접수</span></th>
|
||||
<td>2월 27일(월)~3월 6일(월), 7일간</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>운영교사 선정 및 학교 통보</span></th>
|
||||
<td>3월 17일(금), 예정</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>운영교사 사전 연수<br><span style="font-size: 14px; text-align: left; display: inline-block;">* 신규운영 교사는 2개 그룹(초/중등)으로 나누어 진행</span></span></th>
|
||||
<td>3월 25일(토): 신규 초등 교사 <br>4월 1일(토): 신규 중․고등 교사<br>4월 8일(토): 기존 교사 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>결과보고서 제출 마감</span></th>
|
||||
<td>10월 13일(금)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><span>우수학급 선정 및 포상</span></th>
|
||||
<td>11월~12월</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="info" style="margin-bottom: 10px;">* 상기 일정은 위원회 내부 사정에 따라 변경될 수 있음</div>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_center" style="width: 100%;">
|
||||
<button type="button" class="btnType04" onclick="openPop();" title="팝업 열림">신청서 작성</button>
|
||||
<button type="button" class="btnType06" onclick="javascript:fn_egov_downFile('<c:out value="${detailVO.atchFileId}"/>','0')" title="파일 다운로드">안내문 다운로드</button>
|
||||
<button type="button" class="btnType06" onclick="javascript:fn_egov_downFile('<c:out value="${detailVO.atchFileId}"/>','1')" title="파일 다운로드">운영신청서 다운로드</button>
|
||||
<button type="button" class="btnType06" onclick="fncGoList();" >신청내용 조회</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// content -->
|
||||
|
||||
|
||||
|
||||
@ -74,10 +74,27 @@ $(document).ready(function(){
|
||||
//-- /반복끝
|
||||
});
|
||||
|
||||
|
||||
// 이달의 과정 상태값 확인
|
||||
$(".best_con").each(function() {
|
||||
var currentDate = new Date(); // 현재 날짜 가져오기
|
||||
var strtPnttmValue = $(this).find("#strtPnttm").val(); // 시작 시간 값 가져오기
|
||||
var endPnttmValue = $(this).find("#endPnttm").val(); // 종료 시간 값 가져오기
|
||||
|
||||
var strtDate = new Date(strtPnttmValue); // 시작 시간을 Date 객체로 변환
|
||||
var endDate = new Date(endPnttmValue); // 종료 시간을 Date 객체로 변환
|
||||
|
||||
|
||||
// 현재 날짜가 시작 시간과 종료 시간 사이에 있는지 확인
|
||||
if (currentDate >= strtDate && currentDate <= endDate) {
|
||||
console.log("현재 날짜가 포함됩니다: " + $(this).text().trim());
|
||||
} else {
|
||||
console.log("현재 날짜가 포함되지 않습니다: " + $(this).text().trim());
|
||||
$(this).find("button").attr('onclick', 'location.href="${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduInfo.do"')
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
// 상태값 확인
|
||||
// 리스트 상태값 확인
|
||||
$(".ddlnCdStts").each(function() {
|
||||
var $thisCell = $(this);
|
||||
var $applyButton = $thisCell.closest('tr').find(".aplctBtn button");
|
||||
@ -290,8 +307,9 @@ $(document).ready(function(){
|
||||
<div class="best_list">
|
||||
|
||||
<c:forEach var="list" items="${courseOfTheMonthList}" begin="0" end="3">
|
||||
|
||||
<div class="best_con">
|
||||
<input type="hidden" id="strtPnttm" value="${list.strtPnttm }">
|
||||
<input type="hidden" id="endPnttm" value="${list.endPnttm }">
|
||||
<ul>
|
||||
<li class="con_title"><c:out value="${list.prcsNm}"/></li>
|
||||
<li class="con_date"><c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/></li>
|
||||
@ -299,36 +317,6 @@ $(document).ready(function(){
|
||||
</ul>
|
||||
</div>
|
||||
</c:forEach>
|
||||
<!--
|
||||
<div class="best_con">
|
||||
<ul>
|
||||
<li class="con_title">핵심인재 역량강화 핵심인재 역량강화</li>
|
||||
<li class="con_date">2023-09-24 ~ 2023-09-30</li>
|
||||
<li class="con_btn"><button type="button" title="수강신청">수강신청</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="best_con">
|
||||
<ul>
|
||||
<li class="con_title">핵심인재 역량강화</li>
|
||||
<li class="con_date">2023-09-24 ~ 2023-09-30</li>
|
||||
<li class="con_btn"><button type="button" title="수강신청">수강신청</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="best_con">
|
||||
<ul>
|
||||
<li class="con_title">핵심인재 역량강화</li>
|
||||
<li class="con_date">2023-09-24 ~ 2023-09-30</li>
|
||||
<li class="con_btn"><button type="button" title="수강신청">수강신청</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="best_con">
|
||||
<ul>
|
||||
<li class="con_title">핵심인재 역량강화</li>
|
||||
<li class="con_date">2023-09-24 ~ 2023-09-30</li>
|
||||
<li class="con_btn"><button type="button" title="수강신청">수강신청</button></li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<!-- tab -->
|
||||
@ -458,7 +446,7 @@ $(document).ready(function(){
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button>
|
||||
<!-- <button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -58,7 +58,11 @@
|
||||
|
||||
|
||||
function fn_qnaReg(){
|
||||
|
||||
if(!confirm("문의 등록을 하시겠습니까?")){
|
||||
$('#qnaCn').val('');
|
||||
$('.btn_popup_close').click();
|
||||
return false;
|
||||
}
|
||||
|
||||
var data = new FormData(document.getElementById("qnaForm"));
|
||||
|
||||
@ -104,7 +108,7 @@
|
||||
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>대시보드</h2>
|
||||
<h2>나의강의실</h2>
|
||||
</div>
|
||||
<ul class="edu_process">
|
||||
<li class="edu_apply" style="cursor: pointer;" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do" />'"><i></i>
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>대시보드</h2>
|
||||
<h2>나의강의실</h2>
|
||||
</div>
|
||||
<ul class="edu_process">
|
||||
<li class="edu_apply"><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>
|
||||
|
||||
@ -337,6 +337,7 @@ function delete_item(obj, fileIdx){
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
drawUploadArea();
|
||||
}
|
||||
|
||||
function drawUploadArea(){
|
||||
|
||||
701
src/main/webapp/js/web_common_custom.js
Normal file
701
src/main/webapp/js/web_common_custom.js
Normal file
@ -0,0 +1,701 @@
|
||||
$(document).ready(function(){ //공통 js
|
||||
|
||||
/* 목록 정렬 항목 아이콘 표시 */
|
||||
var searchSortCnd = $("[name='searchSortCnd']").val();
|
||||
var searchSortOrd = $("[name='searchSortOrd']").val();
|
||||
if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) {
|
||||
var $sort_div = $("#sort_"+ searchSortCnd);
|
||||
var sortClass = 'sortBtnAsc' ;
|
||||
if (searchSortOrd == "desc") sortClass = "sortBtnDesc";
|
||||
$sort_div.replaceClass('btn_sort' , sortClass) ;
|
||||
$sort_div.attr("btn_odr", searchSortOrd);
|
||||
}
|
||||
|
||||
// 정렬 항목 이벤트
|
||||
$(".sort").click(function(e) {
|
||||
listSortOrd(this);
|
||||
});
|
||||
|
||||
//파일업로드 드래그앤 드롭
|
||||
var objDragAndDrop = $(".upload_area_cn");
|
||||
$(document).on("dragenter",".upload_area_cn",function(e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
//$(this).css('border', '2px solid #0B85A1');
|
||||
});
|
||||
$(document).on("dragover",".upload_area_cn",function(e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
$(document).on("drop",".upload_area_cn",function(e){
|
||||
//$(this).css('border', '2px dotted #0B85A1');
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
handleFileUpload_cn(files,objDragAndDrop); //파일업로드
|
||||
});
|
||||
|
||||
$(document).on('dragenter', function (e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
$(document).on('dragover', function (e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
//objDragAndDrop.css('border', '2px dotted #0B85A1');
|
||||
});
|
||||
$(document).on('drop', function (e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
drawUploadArea_cn();
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#file_temp_cn').change(function(e){
|
||||
var objUpload = $(".upload_area_cn");
|
||||
var files = $('#file_temp_cn')[0].files;
|
||||
handleFileUpload_cn(files,objUpload); //파일업로드
|
||||
if($("#file_temp_cn").length > 0){
|
||||
$("#file_temp_cn").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//최대 업로드 파일갯수 화면 노출 세팅
|
||||
if($("[name='limitcount']").length>0){
|
||||
if($('.limitcount_li').length > 0){
|
||||
$('.limitcount_li').text($("[name='limitcount']").val());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//프린트 워커 마크
|
||||
$('.printBtn').click(function(e){
|
||||
if(!confirm("프린트 하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
var printPopup ;
|
||||
printPopup= window.open("/offedu/tempPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n");
|
||||
});
|
||||
});
|
||||
|
||||
//목록 정렬 항목 클릭
|
||||
function listSortOrd(obj){
|
||||
var sortOrd = $(obj).attr("sortOrd");
|
||||
var sortCnd = $(obj).attr("id");
|
||||
|
||||
$("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거
|
||||
if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc");
|
||||
else $("[name='searchSortOrd']").val("desc");
|
||||
linkPage('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨
|
||||
}
|
||||
|
||||
//인쇄 영역 공통
|
||||
function printDiv(divName) {
|
||||
var printContents = $("."+divName).html();
|
||||
var originalContents = document.body.innerHTML;
|
||||
document.body.innerHTML = printContents;
|
||||
window.print();
|
||||
document.body.innerHTML = originalContents;
|
||||
|
||||
//originalContents 다시 그려줘서 이전의 메소드 다시 재지정
|
||||
$(".sort").click(function(e) {
|
||||
listSortOrd(this);
|
||||
});
|
||||
}
|
||||
|
||||
function printDiv2(divName) {
|
||||
var printContents = document.getElementById(divName).innerHTML;
|
||||
var originalContents = document.body.innerHTML;
|
||||
document.body.innerHTML = printContents;
|
||||
window.print();
|
||||
document.body.innerHTML = originalContents;
|
||||
}
|
||||
|
||||
/* 파일사이즈 가져오기 */
|
||||
function getStrFileSize(filesize){
|
||||
var sizeStr="";
|
||||
var sizeKB = filesize/1024;
|
||||
if(parseInt(sizeKB) > 1024){
|
||||
var sizeMB = sizeKB/1024;
|
||||
sizeStr = sizeMB.toFixed(2)+" MB";
|
||||
}else{
|
||||
sizeStr = sizeKB.toFixed(2)+" KB";
|
||||
}
|
||||
return sizeStr;
|
||||
}
|
||||
|
||||
/* 파일 이미지 가져오기 */
|
||||
function getfile_img(file_name){
|
||||
var img_type = file_name.split('.')[file_name.split('.').length-1].toLowerCase();
|
||||
if(img_type == "xlsx"){
|
||||
img_type = "xls";
|
||||
}else if(img_type == "jpeg" || img_type == "png" || img_type == "bmp"){
|
||||
img_type = "jpg";
|
||||
}else if(img_type == "doc"){
|
||||
img_type = "hwp";
|
||||
}
|
||||
|
||||
var img_url = "";
|
||||
switch (img_type) {
|
||||
case "pdf" :
|
||||
img_url = "/offedu/direct/img/enroll_pdf_file.png" ;
|
||||
break;
|
||||
case "xls" :
|
||||
img_url = "/offedu/direct/img/enroll_exel_file.png" ;
|
||||
break;
|
||||
case "hwp" :
|
||||
img_url = "/offedu/direct/img/enroll_hwp_file.png" ;
|
||||
break;
|
||||
case "jpg" :
|
||||
img_url = "/offedu/direct/img/enroll_jpg_file.png" ;
|
||||
break;
|
||||
case "mp4" :
|
||||
img_url = "/offedu/direct/img/enroll_mp4_file.png" ;
|
||||
break;
|
||||
case "ppt" :
|
||||
img_url = "/offedu/direct/img/enroll_ppt_file.png" ;
|
||||
break;
|
||||
case "zip" :
|
||||
img_url = "/offedu/direct/img/enroll_zip_file.png" ;
|
||||
break;
|
||||
default :
|
||||
img_url = "/offedu/direct/img/enroll_jpg_file.png" ;
|
||||
}
|
||||
|
||||
return img_url ;
|
||||
}
|
||||
|
||||
/*등록 시간 가져오기 */
|
||||
function getDate(){
|
||||
var d = new Date();
|
||||
var year = d.getFullYear();
|
||||
var month = d.getMonth() + 1 ; month.toString().length < 2 ? month = "0"+month : month;
|
||||
var date = d.getDate() ; date.toString().length < 2 ? date = "0"+date : date;
|
||||
var currentDate = year+"-"+month+"-"+date+" ";
|
||||
var hour = d.getHours(); hour.toString().length < 2 ? hour = "0"+hour : hour;
|
||||
var minutes = d.getMinutes() ; minutes.toString().length < 2 ? minutes = "0"+minutes : minutes;
|
||||
var seconds = d.getSeconds() ; seconds.toString().length < 2 ? seconds = "0"+seconds : hour;
|
||||
currentTime = hour+"-"+minutes+"-"+seconds ;
|
||||
return currentDate + currentTime ;
|
||||
}
|
||||
|
||||
/*파일 드래그앤 드롭*/
|
||||
/* 파일등록 */
|
||||
var _fileIdx_cn = 0;
|
||||
var _fileForm2_cn = new Array();
|
||||
function handleFileUpload_cn(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
|
||||
var limitcount = 999 ;
|
||||
var allrowFileExtsn = $("input[name=allrowFileExtsn]").val();
|
||||
|
||||
if($('#tbody_fiielist_cn').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
for (var i = 0; i < files.length; i++){
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
|
||||
if(allrowFileExtsn != undefined && allrowFileExtsn != ""){
|
||||
if(allrowFileExtsn.toLowerCase().indexOf(files[i].name.split(".")[1].toLowerCase()) < 0 ){
|
||||
alert(allrowFileExtsn.toUpperCase() +" 파일 형식만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _fileIdx_cn;
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_fileForm2_cn.push(tmpObj);
|
||||
sendFileToServer_cn(fd, obj, files[i], _fileIdx_cn);
|
||||
_fileIdx_cn++;
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.totalfileCount').text($('.item_file_size_cn').length) ;
|
||||
$('.item_file_size_cn').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function sendFileToServer_cn(formData, obj , fileObj, _fileIdx_cn)
|
||||
{
|
||||
$('.no_img_box_cn').hide(); //list 박스 형식 변경
|
||||
$('.file_list_div_cn').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' uploaded_obj">';
|
||||
|
||||
//list_html += '<td class="td_check"><input type="checkbox" class="delBtn" alt=""><label for=""></label></td>';
|
||||
//list_html += '<td class="td_filename"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filename_cn file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort_cn file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize_cn file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
//list_html += '<td class="file_date">'+getDate()+'</td>';
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" onclick="delete_item_cn(this, '+_fileIdx_cn+')" title="';
|
||||
list_html += fileObj.name;
|
||||
list_html += ' 삭제"><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize_cn" class="item_file_size_cn" value="'+fileObj.size+'">';
|
||||
list_html += '<input type="hidden" name="atchFileIds_cn" class="imsi" value="'+tt+'">';
|
||||
list_html += '</tr>';
|
||||
$('#tbody_fiielist_cn').append(list_html);
|
||||
}
|
||||
|
||||
function resetFileZone(){
|
||||
$('.file_size').each(function(index, element){
|
||||
$(this).text(getStrFileSize($(this).text())) ;
|
||||
});
|
||||
}
|
||||
|
||||
/* 등록되어 있는 파일 삭제버튼 클릭시 */
|
||||
function delAtchFile_cn(itemId , fileSn){
|
||||
if(!confirm("삭제하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
/*url: "/offedu/uss/ion/fms/fmsfileDeleteAjax.do",*/
|
||||
url: "/offedu/web/fms/fmsfileDeleteAjax.do",
|
||||
data:{ "atchFileId" : itemId , "fileSn" : fileSn},
|
||||
dataType:'json',
|
||||
cache: false,
|
||||
async: false,
|
||||
timeout: 600000,
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
if(returnData.result == 'fail'){
|
||||
alert("삭제처리가 실패하였습니다.");
|
||||
}else if(returnData.result == 'auth_fail'){
|
||||
alert("세션이 종료되었습니다.");
|
||||
}else if(returnData.result =='success'){
|
||||
$('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove();
|
||||
alert("삭제되었습니다.");
|
||||
drawUploadArea_cn();
|
||||
// $('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ;
|
||||
}
|
||||
}else{
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function autoDelAtchFile(data){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/offedu/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/fmsfileMultipleDeleteAjax.do",
|
||||
data: JSON.stringify(data),
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: "application/json",
|
||||
cache: false,
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
console.log('파일이 삭제되었습니다.');
|
||||
}else{
|
||||
alert("파일 삭제처리에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
});
|
||||
}
|
||||
|
||||
/* 임시파일 삭제버튼 클릭시 */
|
||||
function delete_item_cn(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_fileForm2_cn.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_cn" + fileIdx)) _fileForm2_cn[idx] = "";
|
||||
});
|
||||
|
||||
if($('.item_file_size_cn').length == 0){
|
||||
$('.file_upload_box_cn ').show();
|
||||
$('.upload_box_text').show();
|
||||
$('.fileAfter_cn').hide();
|
||||
}else{
|
||||
var totalfileSize = 0;
|
||||
$('.totalfileCount').text($('.item_file_size_cn').length) ;
|
||||
$('.item_file_size_cn').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
}
|
||||
}
|
||||
|
||||
function drawUploadArea_cn(){
|
||||
$('.no_img_box_cn').hide(); //list 박스 형식 변경
|
||||
$('.file_list_div_cn').show();
|
||||
|
||||
$('.file_name_text').each(function(index, item){
|
||||
$(this).parent().find('img').attr('src', getfile_img($(this).text())) ; //이미지 변경
|
||||
});
|
||||
$('.file_size_text').each(function(index, item){
|
||||
$(this).text(getStrFileSize($(this).attr('value')))
|
||||
});
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.totalfileCount').text($('.item_file_size_cn').length) ;
|
||||
$('.item_file_size_cn').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
|
||||
|
||||
//if( $("#tbody_fiielist_cn > [class^=item]").length == 0 && $("#tbody_fiielist_cn > [class^=item]").length > 0 ){
|
||||
if( $("#tbody_fiielist_cn > [class^=item]").length == 0){
|
||||
$('.no_img_box_cn').show();
|
||||
$('.file_list_div_cn ').hide();
|
||||
}
|
||||
|
||||
if($('.fileTable').length > 0 ){
|
||||
//$('.fileTable').remove();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*강사 첨부파일 등록 시작 - 썸네일 추가 기능*/
|
||||
//파일업로드 드래그앤 드롭
|
||||
var photoDragAndDrop = $(".photo_upload_area");
|
||||
$(document).on("dragenter",".photo_upload_area",function(e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
//$(this).css('border', '2px solid #0B85A1');
|
||||
});
|
||||
$(document).on("dragover",".photo_upload_area",function(e){
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
$(document).on("drop",".photo_upload_area",function(e){
|
||||
//$(this).css('border', '2px dotted #0B85A1');
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
handlePhotoFileUpload(files,photoDragAndDrop); //파일업로드
|
||||
});
|
||||
|
||||
$(function(){ //단일 파일업로드
|
||||
$('#photo_file_temp').change(function(e){
|
||||
var objUpload = $(".photo_upload_area");
|
||||
var files = $('#photo_file_temp')[0].files;
|
||||
handlePhotoFileUpload(files,objUpload); //파일업로드
|
||||
if($("#photo_file_temp").length > 0){
|
||||
$("#photo_file_temp").val(""); //파일지우기
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/*파일 드래그앤 드롭*/
|
||||
/* 파일등록 */
|
||||
var _photoFileIdx = 0;
|
||||
var _photoFileForm2 = new Array();
|
||||
function handlePhotoFileUpload(files,obj) //업로드 function
|
||||
{
|
||||
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
|
||||
var limitcount = $("input[name=limitcount]").val()*1 ;
|
||||
if($('#tbody_fiielist_cn').find('tr').length + files.length > limitcount ){
|
||||
alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
|
||||
return ;
|
||||
}
|
||||
for (var i = 0; i < files.length; i++){
|
||||
if(files[i].size > limitsize){
|
||||
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
/*이미지 확장자 체크*/
|
||||
for (var i = 0; i < files.length; i++){
|
||||
var fileNm = files[i].name;
|
||||
if (fileNm != "") {
|
||||
var ext = fileNm.slice(fileNm.lastIndexOf(".") + 1).toLowerCase();
|
||||
if (!(ext == "gif" || ext == "jpg" || ext == "png" || ext == "jpeg")) {
|
||||
alert("이미지파일 (jpg, jpeg, png, gif ) 만 업로드 가능합니다.");
|
||||
e.stopImmediatePropagation(); //js의 파일 업로드 막지
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < files.length; i++)
|
||||
{
|
||||
var fd = new FormData();
|
||||
fd.append('file', files[i]);
|
||||
var tmpObj = new Object();
|
||||
tmpObj.name = "file_" + _photoFileIdx;
|
||||
tmpObj.fileObj = files[i];
|
||||
|
||||
_photoFileForm2.push(tmpObj);
|
||||
sendPhotoFileToServer(fd, obj, files[i], _photoFileIdx);
|
||||
_photoFileIdx++;
|
||||
|
||||
/*사진 썸네일 등록*/
|
||||
$(".put_photo_box").html("");
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(e){
|
||||
//이미지 형식
|
||||
$('.put_photo_box').html('<img id="instrPhoto" src="'+e.target.result+'">');
|
||||
//백그라운드 형식
|
||||
/* $('.put_photo_in').css({'background':'url('+e.target.result+')',
|
||||
'background-repeat': 'no-repeat',
|
||||
'background-position':'center',
|
||||
'background-size' : '100%'
|
||||
});
|
||||
*/ }
|
||||
reader.readAsDataURL(files[i]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function sendPhotoFileToServer(formData, obj , fileObj, _photoFileIdx)
|
||||
{
|
||||
$('.no_img_box_cn').hide(); //list 박스 형식 변경
|
||||
$('.file_list_div_cn').show();
|
||||
var list_html = "";
|
||||
var tt = "";
|
||||
|
||||
var fileNm = fileObj.name;
|
||||
var fileExt = fileNm.split('.').pop().toLowerCase();
|
||||
|
||||
list_html += '<tr class="item_'+tt+' photo_upload_area">';
|
||||
|
||||
//list_html += '<td class="td_filename"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filename file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
|
||||
list_html += '<td class="td_filesort file_extension"><span class="file_filesort_text" value='+fileExt+'>.'+fileExt+'</span></td>';
|
||||
list_html += '<td class="td_filesize file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
|
||||
//list_html += '<td class="file_date">'+getDate()+'</td>';
|
||||
list_html += '<td class="file_del"><button type="button" class="btn_del" alt="" onclick="delete_photo(this, '+_photoFileIdx+')" ><i></i></button></td>';
|
||||
list_html += '<input type="hidden" name="fileSize" class="item_file_size_cn" value="'+fileObj.size+'">';
|
||||
list_html += '<input type="hidden" name="atchFileIds" class="imsi" value="'+tt+'">';
|
||||
list_html += '</tr>';
|
||||
$('#tbody_fiielist_cn').append(list_html);
|
||||
}
|
||||
|
||||
|
||||
/* 등록되어 있는 파일 삭제버튼 클릭시 */
|
||||
function delAtchPhotoFile_cn(itemId , fileSn){
|
||||
if(!confirm("삭제하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/offedu/uss/ion/fms/fmsfileDeleteAjax.do",
|
||||
data:{ "atchFileId" : itemId , "fileSn" : fileSn},
|
||||
dataType:'json',
|
||||
cache: false,
|
||||
async: false,
|
||||
timeout: 600000,
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
if(returnData.result == 'fail'){
|
||||
alert("삭제처리가 실패하였습니다.");
|
||||
}else if(returnData.result == 'auth_fail'){
|
||||
alert("세션이 종료되었습니다.");
|
||||
}else if(returnData.result =='success'){
|
||||
$('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn+"_cn").remove();
|
||||
alert("삭제되었습니다.");
|
||||
drawUploadArea_cn();
|
||||
$('.put_photo_box').html('<img src="/offedu/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">');
|
||||
/*강사 디테일 첨부파일 ID 삭제*/
|
||||
/*각각 jsp파일에 function존재*/
|
||||
atchFileIdDelete();
|
||||
|
||||
}
|
||||
}else{
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
});
|
||||
|
||||
deleteLodingBar();
|
||||
}
|
||||
/*function delAtchPhotoFile(itemId , fileSn){
|
||||
if(!confirm("삭제하시겠습니까?")){
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/uss/ion/fms/fmsfileDeleteAjax.do",
|
||||
data:{ "atchFileId" : itemId , "fileSn" : fileSn},
|
||||
dataType:'json',
|
||||
cache: false,
|
||||
async: false,
|
||||
timeout: 600000,
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){
|
||||
if(returnData.result == 'fail'){
|
||||
alert("삭제처리가 실패하였습니다.");
|
||||
}else if(returnData.result == 'auth_fail'){
|
||||
alert("세션이 종료되었습니다.");
|
||||
}else if(returnData.result =='success'){
|
||||
$('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove();
|
||||
alert("삭제되었습니다.");
|
||||
drawUploadArea_cn();
|
||||
$('.put_photo_box').html('<img src="/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요">');
|
||||
강사 디테일 첨부파일 ID 삭제
|
||||
각각 jsp파일에 function존재
|
||||
atchFileIdDelete();
|
||||
|
||||
}
|
||||
}else{
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
},
|
||||
error: function (e) {
|
||||
console.log("ERROR : ", e);
|
||||
alert("삭제처리에 실패하였습니다.");
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
/*function drawUploadArea_cn(){
|
||||
$('.no_img_box_cn').hide(); //list 박스 형식 변경
|
||||
$('.file_list_div_cn').show();
|
||||
|
||||
$('.file_name_text').each(function(index, item){
|
||||
$(this).parent().find('img').attr('src', getfile_img($(this).text())) ; //이미지 변경
|
||||
});
|
||||
$('.file_size_text').each(function(index, item){
|
||||
$(this).text(getStrFileSize($(this).attr('value')))
|
||||
});
|
||||
|
||||
var totalfileSize = 0;
|
||||
$('.totalfileCount').text($('.item_file_size_cn').length) ;
|
||||
$('.item_file_size_cn').each(function(){
|
||||
totalfileSize += $(this).val()*1 ;
|
||||
});
|
||||
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
|
||||
|
||||
|
||||
//if( $("#tbody_fiielist_cn > [class^=item]").length == 0 && $("#tbody_fiielist_cn > [class^=item]").length > 0 ){
|
||||
if( $("#tbody_fiielist_cn > [class^=item]").length == 0){
|
||||
$('.no_img_box_cn').show();
|
||||
$('.file_list_div_cn ').hide();
|
||||
}
|
||||
|
||||
if($('.fileTable').length > 0 ){
|
||||
//$('.fileTable').remove();
|
||||
}
|
||||
|
||||
|
||||
}*/
|
||||
|
||||
/*임시파일 삭제버튼 클릭시*/
|
||||
function delete_photo(obj, fileIdx){
|
||||
$(obj).closest("tr").remove();
|
||||
_photoFileForm2.forEach(function(fobj, idx) {
|
||||
if (fobj.name == ("file_" + fileIdx)) _photoFileForm2[idx] = "";
|
||||
});
|
||||
|
||||
if($('.item_file_size_cn').length == 0){
|
||||
$('.file_upload_box_cn ').show();
|
||||
$('.fileAfter_cn').hide();
|
||||
//백그라운드 형식
|
||||
/*$('.put_photo_in').css({'background':'',
|
||||
'background-color': '#f5f5f5',
|
||||
'width':'128px',
|
||||
'height' : '165px',
|
||||
'border' : '1px solid #d5d5d5',
|
||||
'border-radius' : '5px',
|
||||
'box-sizing' : 'border-box',
|
||||
'position' : 'relative',
|
||||
'height' : '165px',
|
||||
'overflow' : 'hidden'
|
||||
}); */
|
||||
//이미지 형식
|
||||
$('.put_photo_box').html('<img src="/offedu/visitEdu/usr/publish/images/content/img_add.png" alt="이미지를 넣어주세요"> <button type="button" class="btnType01" data-tooltip="sub26_pop02">사진등록</button>');
|
||||
}
|
||||
}
|
||||
/*강사 첨부파일 등록 종료 - 썸네일 추가 기능*/
|
||||
|
||||
/* 게시판 글 저장 function */
|
||||
function goWebSave(method_parm){ //method_parm :관리자로그 메소드에서 사용.(파일업로드 부분 공통으로 사용하여, 페이지 구분을 위해)
|
||||
if(undefined !=$("input[name=limitcount]").val() && ""!=$("input[name=limitcount]").val() ){
|
||||
if($('#atchFileNece').length > 0 ){
|
||||
if("Y" == $('#atchFileNece').val()){ //추가 2021.04.14
|
||||
if($('#tbody_fiielist_cn').find('tr').length == 0){
|
||||
alert("첨부파일을 추가해 주십시오");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var msg;
|
||||
msg = "해당 첨부파일을 수정하시겠습니까?";
|
||||
var data = new FormData(document.writeForm == undefined ? document.board : document.writeForm);
|
||||
_fileForm2_cn.forEach(function(obj, idx) {
|
||||
if (obj) data.append("file"+idx, obj.fileObj);
|
||||
});
|
||||
|
||||
var url = "";
|
||||
if($("#pageType").val() == "insert"){//게시판저장
|
||||
url = "/offedu/web/cop/bbs/insertBoardArticleAjax.do";
|
||||
}else if($("#pageType").val() == "update"){ //게시판 답변
|
||||
url = "/offedu/web/cop/bbs/updateBoardArticleAjax.do";
|
||||
}/*else{
|
||||
url = document.writeForm == undefined ? "/cop/bbs/updateBoardArticleAjax.do" : "/uss/ion/fms/FmsFileInsertAjax.do?logParam="+method_parm;
|
||||
}*/
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: url,
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
//timeout: 600000,
|
||||
success: function (returnData, status) {
|
||||
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
|
||||
if("fail"==returnData.result){
|
||||
alert(returnData.message);
|
||||
return;
|
||||
}
|
||||
alert("저장 되었습니다.");
|
||||
fn_egov_select_noticeList()
|
||||
} else if(status== 'fail'){
|
||||
alert("저장에 실패하였습니다. !!");
|
||||
}
|
||||
},
|
||||
error: function (request,status,error) {
|
||||
|
||||
//alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
alert("저장에 실패하였습니다.");
|
||||
console.log("ERROR : ", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
(function ($) {
|
||||
$.fn.replaceClass = function (pFromClass, pToClass) {
|
||||
return this.removeClass(pFromClass).addClass(pToClass);
|
||||
};
|
||||
}(jQuery));
|
||||
@ -773,6 +773,25 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
|
||||
/*마이페이지_m 추가*/
|
||||
.mypage_m .mypage_m_list ul{border-top: none;}
|
||||
|
||||
/*나의 강의실 > Q&A 추가*/
|
||||
.q_wrap .btn_layout01{margin: 50px 0 0 0;}
|
||||
.q_wrap .btn_right{margin: 0 0 10px 0;}
|
||||
.q_wrap .tb_tit02 .tb_tit02_left .q_title{height: 28px; background-image: url(/offedu/visitEdu/usr/publish/images/content/q&a_icon.png); background-repeat: no-repeat;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq{border-bottom: 1px solid #d5d5d5;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li{background-color: #f5f5f5;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq .first{border-top: 1px solid #222;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .qst_text{z-index: 1; margin: 0 25px 0 0; line-height: 2.7;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .qst_text::after{top: 55%; color: #fff;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .answer .awr_cont{font-weight: 400; color: #666;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .answer .qst_text{line-height: 1.4; color: #fff;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .answer .qst_text::after{top: 53%;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .date{font-size: 14px; color: #666; text-align: left; font-weight: 400;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .answer{background-color: #fff; z-index: 1;}
|
||||
.q_wrap .faq li .question,.q_wrap .faq li .answer .answer_i, .q_wrap .faq li .answer .answer_in{padding: 12px 46px;}
|
||||
|
||||
/*나의 강의실 > Q&A 내용 없을때 추가*/
|
||||
.q_wrap .q_text{padding: 25px 35px; border-top: 2px solid #222; border-bottom: 1px solid #d5d5d5; font-size: 18px; color: #666;}
|
||||
|
||||
@media all and (max-width: 1300px){
|
||||
/*교육소개 추가*/
|
||||
.edu_wrap .tb_type01 table tbody .edu_sus_num li{width: 55%;}
|
||||
@ -1013,6 +1032,14 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
|
||||
|
||||
/*마이페이지 추가*/
|
||||
.mypage_wrap .mypage{margin: 0 0 -60px 0;}
|
||||
|
||||
/*나의 강의실 > Q&A_m추가*/
|
||||
.q_wrap .tb_list02{display: block;}
|
||||
.q_wrap .btn_wrap button:last-child{display: block; font-size: 14px;}
|
||||
.q_wrap .btn_wrap.btn_layout01>div{width: auto;}
|
||||
.q_wrap .faq li p{font-size: 16px;}
|
||||
.q_wrap .tb_list02 .faq_wrap .faq li .answer .awr_cont{font-size: 15px;}
|
||||
.q_wrap .q_text{font-size: 16px;}
|
||||
}
|
||||
|
||||
@media all and (max-width: 640px) {
|
||||
@ -1051,9 +1078,22 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa
|
||||
|
||||
/*마이페이지 추가*/
|
||||
.mypage_wrap .mypage li{width: calc((100%)/1);}
|
||||
|
||||
/*나의 강의실 > Q&A_m추가*/
|
||||
.q_pop .pop_btn_wrap.btn_layout01>div{width: auto;}
|
||||
.q_pop .pop_btn_wrap.btn_layout01>div:nth-child(2){width: auto;}
|
||||
}
|
||||
|
||||
@media all and (max-width: 400px){
|
||||
@media all and (max-width: 420px){
|
||||
/*나의 강의실 > Q&A_m추가*/
|
||||
.class_m ul{padding: 10px 2px 0 2px;}
|
||||
.class_m ul li{word-break:break-word;}
|
||||
.class_m ul li>span:first-child{width: 63px;}
|
||||
.class_m ul li>span:last-child{padding-left: 10px;}
|
||||
.q_wrap .faq li .question, .q_wrap .faq li .answer .answer_i, .q_wrap .faq li .answer .answer_in{padding: 12px 10px 12px 46px;}
|
||||
}
|
||||
|
||||
@media all and (max-width: 400px){
|
||||
/*교육소개 추가*/
|
||||
.edu_wrap .tb_type01 table tbody .edu_sus_num li{border-radius: 10px; padding: 10px;}
|
||||
|
||||
|
||||
BIN
src/main/webapp/visitEdu/usr/publish/images/content/q&a_icon.png
Normal file
BIN
src/main/webapp/visitEdu/usr/publish/images/content/q&a_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
@ -0,0 +1,607 @@
|
||||
<html lang="ko">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>나의 강의실 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/reset.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/datapicker/default.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/font.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/common.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/content.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/popup.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/datepicker/classic.css">
|
||||
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/datepicker/classic.date.css">
|
||||
|
||||
|
||||
<!-- script -->
|
||||
<script src="/offedu/visitEdu/usr/publish/script/jquery-3.5.0.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/datapicker/duet.system.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/datapicker/duet.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/datapicker/duet.esm.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/publish/script/common.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/publish/script/content.js"></script>
|
||||
<script src="/offedu/visitEdu/usr/publish/script/popup.js"></script>
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
//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","답변 열기");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- skip menu -->
|
||||
<div class="skip_menu">
|
||||
<a href="#sub" class="contGo" title="본문 바로가기">본문 바로가기</a>
|
||||
</div>
|
||||
|
||||
<!-- 팝업을 위한 mask -->
|
||||
<div class="mask2" onclick="timeLayerUtil()"></div>
|
||||
<div class="mask"></div>
|
||||
|
||||
<!-- 교육신청 취소 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="sub01_pop01" data-focus="sub01_pop01" data-focus-prev="sub01_pop01_close">
|
||||
<div class="popup_tit">
|
||||
<p>교육신청 취소</p>
|
||||
<button class="btn_popup_close tooltip-close" data-focus="sub01_pop01_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>
|
||||
<colgroup>
|
||||
<col style="width:22%;">
|
||||
<col style="">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>첨부파일</th>
|
||||
<td>
|
||||
<div class="btn_wrap">
|
||||
<button type="button" class="btnType01 right">파일찾기</button>
|
||||
</div>
|
||||
<div class="file_wrap">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 15%;">
|
||||
<col style="width: 15%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<th>파일 명</th>
|
||||
<th>종류</th>
|
||||
<th>크기</th>
|
||||
</thead>
|
||||
<tbody class="tb_file_before">
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<p>첨부하실 파일을 <span>마우스끌어서</span> 넣어주세요.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>취소사유</th>
|
||||
<td><textarea></textarea></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">제출</button><button type="button" class="btnType02 tooltip-close" data-focus="imsi-close" data-focus-next="imsi">취소</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 교육신청 취소 -->
|
||||
|
||||
<!-- 교육문의 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="edu_in" data-focus="edu_in" data-focus-prev="edu_in_close">
|
||||
<div class="popup_tit">
|
||||
<p>교육문의하기</p> <button class="btn_popup_close tooltip-close" data-focus="edu_in_close" title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<p class="text_greeting">안녕하세요.</br>한국저작권위원회입니다.</p>
|
||||
<div class="popup_texta"><textarea placeholder="문의내용을 입력해 주세요."></textarea></div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btnType05">문의하기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 교육문의 -->
|
||||
|
||||
<!-- 교육문의 버튼 -->
|
||||
<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" style="overflow:visible;">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width:27%;">
|
||||
<col style="width:auto;">
|
||||
</colgroup>
|
||||
<tbody><tr>
|
||||
<th>문의내용</th>
|
||||
<td>
|
||||
<textarea type="text" id="qnaCn" name="qnaCn" style="height: 220px;width: 100%;"></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>
|
||||
<!--// 교육문의 버튼 -->
|
||||
|
||||
|
||||
<header class="">
|
||||
<div class="gnb_wrap">
|
||||
<div class="inner">
|
||||
<button class="site" alt="새창열림">
|
||||
<img src="/offedu/visitEdu/usr/publish/images/common/kcc_ci.png" alt="한국저작권위원회">
|
||||
<p>GO</p>
|
||||
</button>
|
||||
<div class="area_right">
|
||||
<a href="#" class="header_login"><i></i>로그인</a>
|
||||
<a href="#" class="header_join"><i></i>회원가입</a>
|
||||
<div class="btn_util">
|
||||
<button class="btn_minus" title="글자 축소"></button>
|
||||
<button class="btn_plus" title="글자 확대"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// skip menu -->
|
||||
|
||||
<!-- header -->
|
||||
<div class="header">
|
||||
<div class="header_inner">
|
||||
<h1 class="logo"><a href="#none"><img src="/offedu/visitEdu/usr/publish/images/common/ci.png"
|
||||
alt="한국저작권위원회 저작권 교육 시스템"></a></h1>
|
||||
<div class="nav_wrap">
|
||||
<nav id="menu">
|
||||
<ul class="depth01 dep_li_04">
|
||||
<li class="depth01_li"><a href="#" class="menu_link">찾아가는 저작권교육<span
|
||||
class="menu_link_br">청소년</span></a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">찾아가는 저작권교육<span
|
||||
class="menu_link_br">성인</span></a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">교육콘텐츠 신청</a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">저작권 체험교실</a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="area_right">
|
||||
<button class="btn_search" title="검색영역 열기"></button>
|
||||
<button class="btn_menu" title="전체메뉴 열기"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<!--// header -->
|
||||
|
||||
<!-- full menu -->
|
||||
<div class="full_menu">
|
||||
<div class="inner">
|
||||
<h1 class="logo"><img src="/offedu/visitEdu/usr/publish/images/common/ci.png" alt="한국저작권위원회 저작권 교육 시스템"></h1>
|
||||
<ul class="depth01">
|
||||
<li class="depth01_li"><a href="#" class="menu_link">찾아가는 저작권교육<span>청소년</span></a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">찾아가는 저작권교육<span>성인</span></a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">교육과정 안내</a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#" class="menu_link">알림마당</a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
<li><a href="#">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><a href="#none" class="menu_link" target="_blank" title="새창열림">이용안내</a>
|
||||
<ul class="depth02">
|
||||
<li><a href="#none" target="_blank" title="새창열림">개인정보처리방침 <i class="link"></i></a></li>
|
||||
<li><a href="#none" target="_blank" title="새창열림">이메일무단수집거부 <i class="link"></i></a></li>
|
||||
<li><a href="#none" target="_blank" title="새창열림">고객서비스헌장 <i class="link"></i></a></li>
|
||||
<li><a href="#none" target="_blank" title="새창열림">저작권정책 <i class="link"></i></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn_close" title="전체메뉴 닫기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<!--// full menu -->
|
||||
|
||||
<!-- moblie menu -->
|
||||
<div id="m_menu" class="">
|
||||
<ul class="depth01">
|
||||
<li class="depth01_li"><button class="menu_tit" title="소메뉴 열기">찾아가는 저작권교육 <span>청소년</span></button>
|
||||
<ul class="depth02">
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><button class="menu_tit" title="소메뉴 열기">찾아가는 저작권교육 <span>성인</span></button>
|
||||
<ul class="depth02">
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><button class="menu_tit" title="소메뉴 열기">교육과정 안내</button>
|
||||
<ul class="depth02">
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><button class="menu_tit" title="소메뉴 열기">알림마당</button>
|
||||
<ul class="depth02">
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
<li><a href="#none">depth02</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="depth01_li"><button class="menu_tit" title="소메뉴 열기">마이페이지</button>
|
||||
<ul class="depth02">
|
||||
<li><a href="#">개인정보관리</a></li>
|
||||
<li><a href="#">신청현황</a></li>
|
||||
<li><a href="#">대리인정보관리</a></li>
|
||||
<li><a href="#">신청문의</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="btn_close_wrap"><button class="btn_close" title="모바일메뉴 닫기"></button></div>
|
||||
</div>
|
||||
<!--// moblie menu -->
|
||||
|
||||
<!-- content -->
|
||||
<div class="container">
|
||||
<div class="navigation">
|
||||
<div class="inner">
|
||||
<ul class="list">
|
||||
<li class="home"><a href="/user/main/main.do">메인화면</a></li>
|
||||
<li>
|
||||
<button type="button" class="navi_title" id="p_menu_nm_navi" title="하위메뉴 열기">실무역량강화</button>
|
||||
<ul class="navi_depth" id="navi_depth_1">
|
||||
<li><a href="#">찾아가는 교육 청소년</a></li>
|
||||
<li><a href="#">찾아가는 교육 성인</a></li>
|
||||
<li><a href="#">체험교실</a></li>
|
||||
<li><a href="#">실무역량강화</a></li>
|
||||
<li><a href="#">기소유예</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" class="navi_title" id="menu_nm_navi" title="하위메뉴 열기">나의강의실</button>
|
||||
<ul class="navi_depth" id="navi_depth_2">
|
||||
<li><a href="#">교육소개</a></li>
|
||||
<li><a href="#">나의강의실</a></li>
|
||||
<li><a href="#">강의목록</a></li>
|
||||
<li><a href="#">신청목록</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="path">
|
||||
<div class="pathedfr">
|
||||
<ul>
|
||||
<li class="home"><i></i>HOME</li>
|
||||
<li> > </li>
|
||||
<li>교육신청·확인</li>
|
||||
<li> > </li>
|
||||
<li>교육신청</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="inner">
|
||||
<!-- <div class="snb">
|
||||
<h2>찾아가는 저작권 교육<span>청소년</span></h2>
|
||||
<div class="ssleftxt">
|
||||
<ul>
|
||||
<li><a href="#none">교육신청 방법</a></li>
|
||||
<li><a href="#none">교육일정 안내</a></li>
|
||||
<li class="menu_on"><a href="#none">교육신청</a></li>
|
||||
<li><a href="#none">교육신청 조회</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="cont_wrap">
|
||||
<div class="cont_tit">
|
||||
<h2>대시보드</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림" onclick="window.open('http://www.facebook.com/koreacopyright')"><img
|
||||
src="/offedu/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="edu_process">
|
||||
<li class="edu_apply"><i></i><div class="text_area">신청중 교육<p><span>0</span>건</p></div></li>
|
||||
<li class="edu_register"><i></i><div class="text_area">수강중 교육<p><span>0</span>건</p></div></li>
|
||||
<li class="edu_close"><i></i><div class="text_area">종료된 교육<p><span>5</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=''">더보기</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_list02">
|
||||
<table>
|
||||
<caption>최근 교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:15%;">
|
||||
<col style="width:15%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육기간</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>기반경영 과정(prcsAplctPrd_0000230)</td>
|
||||
<td>2023.11.01~2023.11.30</td>
|
||||
<td>요청</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- moblie table -->
|
||||
<div class="tb_list01_m class_m">
|
||||
<ul>
|
||||
<li>
|
||||
<span>교육과정</span>
|
||||
<span>기반경영 과정<br>(prcsAplctPrd_0000230)</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>교육기간</span>
|
||||
<span>2023.11.01~2023.11.30</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>신청결과</span>
|
||||
<span>요청</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>설문조사</span>
|
||||
<span>-</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>이수증</span>
|
||||
<span>-</span>
|
||||
</li>
|
||||
</ul>
|
||||
</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&A</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType04" data-info="prcsAplctPrd_0000220" data-tooltip="target_confirm_popup">교육문의</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tb_list02">
|
||||
<div class="faq_Wrap">
|
||||
<ul class="faq">
|
||||
<li class="first">
|
||||
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
|
||||
<p class="qst_text"><span>질문</span>Q</p>
|
||||
<div>
|
||||
<p class="qst_cont">문의테스트!</p>
|
||||
<p class="date">2023.11.20</p>
|
||||
</div>
|
||||
</button>
|
||||
<div class="answer">
|
||||
<div class="answer_in">
|
||||
<p class="qst_text"><span>답변</span>A</p>
|
||||
<div>
|
||||
<p class="awr_cont">내용이 없습니다.</p>
|
||||
<!--<p class="date">2023.11.21</p>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" title="답변 열기" class="question" onclick="faqOpen(this);">
|
||||
<p class="qst_text"><span>질문</span>Q</p>
|
||||
<div>
|
||||
<p class="qst_cont">문의테스트!</p>
|
||||
<p class="date">2023.11.20</p>
|
||||
</div>
|
||||
</button>
|
||||
<div class="answer">
|
||||
<div class="answer_in">
|
||||
<p class="qst_text"><span>답변</span>A</p>
|
||||
<div>
|
||||
<p class="awr_cont">지역균형 및 초·중등 학급 수 비율 고려 운영 교사 전체의 50% 수준으로 신규 운영교사 선정 고려 교육 대상인원이 15명 미만인 경우 선정에서 제외하되, 지역 균형 측면에서 접수율 미달 지역의 경우에는 선정 고려 전년도 포기 교사 및 불성실 운영 교사(기존 보고 내용 답습 등)는 당해연도 참여 제한 해당 학급 및 지역 경쟁률이 높을 경우 3년 연속 또는 5회 이상 운영 교사는 차순위로 배정될 수 있음</p>
|
||||
<p class="date">2023.11.21</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--//Q&A 내용 있을때-->
|
||||
|
||||
<!--//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&A</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType04" data-info="prcsAplctPrd_0000220" data-tooltip="target_confirm_popup">교육문의</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="q_text">
|
||||
- 내용이 없습니다.
|
||||
</div>
|
||||
</div>
|
||||
<!--//Q&A 내용 없을때-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// content -->
|
||||
|
||||
<!-- footer -->
|
||||
<footer>
|
||||
<div class="inner">
|
||||
<div class="site">
|
||||
<ul>
|
||||
<li><a href="/">개인정보처리방침</a></li>
|
||||
<li><a href="/">이메일무단수집거부</a></li>
|
||||
<li><a href="/">고객서비스헌장</a></li>
|
||||
<li><a href="/">저작권정책</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="area_top">
|
||||
<h1 class="logo"><a href="#none"><img src="/offedu/visitEdu/usr/publish/images/common/ci.png"
|
||||
alt="한국저작권위원회 저작권 교육 시스템"></a></h1>
|
||||
<address>
|
||||
<p>진주 [52852] 경상남도 진주시 충의로 19, 1/2/5층 ☎ 대표번호 055.792.0000</p>
|
||||
<p>서울 [04323] 서울특별시 용산구 후암로 107, 5/16층 ☎ 대표번호 02.2669.0010</p>
|
||||
</address>
|
||||
<div class="site_go">
|
||||
<label for="site_select" class="label">관련사이트 선택</label>
|
||||
<select name="" id="site_select">
|
||||
<option value="">관련사이트</option>
|
||||
<option value="">관련사이트</option>
|
||||
<option value="">관련사이트</option>
|
||||
<option value="">관련사이트</option>
|
||||
</select>
|
||||
<button class="btn_go" title="사이트 이동 새창열림">이동</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!--// footer -->
|
||||
</body>
|
||||
Loading…
Reference in New Issue
Block a user