Merge branch 'advc' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/offedu into advc
This commit is contained in:
commit
f68a829c6e
@ -21,6 +21,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.Font;
|
import org.apache.poi.ss.usermodel.Font;
|
||||||
@ -89,6 +90,7 @@ import kcc.let.sym.site.service.SiteManagerVO;
|
|||||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.let.utl.sim.service.EgovClntInfo;
|
import kcc.let.utl.sim.service.EgovClntInfo;
|
||||||
|
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
|
||||||
import kcc.ve.cmm.VeConstants;
|
import kcc.ve.cmm.VeConstants;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
||||||
@ -139,6 +141,11 @@ public class MyPageController {
|
|||||||
@Resource(name = "vEPrcsService")
|
@Resource(name = "vEPrcsService")
|
||||||
private VEPrcsService vEPrcsService;
|
private VEPrcsService vEPrcsService;
|
||||||
|
|
||||||
|
//온라인콘텐츠과정 관리
|
||||||
|
@Resource(name = "fndtnEnhanceTrnService")
|
||||||
|
private FndtnEnhanceTrnService fndtnEnhanceTrnService;
|
||||||
|
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class);
|
||||||
|
|
||||||
@RequestMapping(value = { "/web/my/myPageDashBoard.do" })
|
@RequestMapping(value = { "/web/my/myPageDashBoard.do" })
|
||||||
@ -149,9 +156,7 @@ public class MyPageController {
|
|||||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
if (loginVO == null || ssoLoginVO == null) {
|
if (loginVO == null || ssoLoginVO == null) {
|
||||||
// 이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
|
||||||
return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다.
|
return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||||
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -297,6 +302,16 @@ public class MyPageController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||||
|
vEPrcsDetailVO.setRecordCountPerPage(3);
|
||||||
|
vEPrcsDetailVO.setFirstIndex(0);
|
||||||
|
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||||
|
List<VEPrcsDetailVO> qnaList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
||||||
|
model.addAttribute("qnaList", qnaList);
|
||||||
|
}
|
||||||
|
|
||||||
// return "/web/cop/bbs/FaqListAjax";
|
// return "/web/cop/bbs/FaqListAjax";
|
||||||
return "web/my/myPageDashBoard";
|
return "web/my/myPageDashBoard";
|
||||||
}
|
}
|
||||||
@ -308,22 +323,34 @@ public class MyPageController {
|
|||||||
, ModelMap model
|
, ModelMap model
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기
|
||||||
//1.pageing step1
|
//1.pageing step1
|
||||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||||
//2. pageing step2
|
//2. pageing step2
|
||||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||||
|
|
||||||
|
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
|
||||||
|
|
||||||
|
|
||||||
|
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
|
||||||
|
String status = "";
|
||||||
|
if("Y".equals(vEPrcsDetailVO.getSearchStatus()))
|
||||||
|
status = "IS NOT NULL";
|
||||||
|
if("N".equals(vEPrcsDetailVO.getSearchStatus()))
|
||||||
|
status = "IS NULL";
|
||||||
|
|
||||||
|
vEPrcsDetailVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status);
|
||||||
|
}
|
||||||
|
|
||||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
|
||||||
|
|
||||||
//3.pageing step3
|
//3.pageing step3
|
||||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||||
|
|
||||||
|
|
||||||
model.addAttribute("paginationInfo", paginationInfo);
|
model.addAttribute("paginationInfo", paginationInfo);
|
||||||
|
|
||||||
// 사용자 이름 디코딩
|
// 사용자 이름 디코딩
|
||||||
vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
|
||||||
|
|
||||||
|
|
||||||
//대상 리스트, 페이징 정보 전달
|
//대상 리스트, 페이징 정보 전달
|
||||||
model.addAttribute("list", vEPrcsDetailVOList);
|
model.addAttribute("list", vEPrcsDetailVOList);
|
||||||
@ -332,6 +359,38 @@ public class MyPageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = { "/web/my/myQnaMngDetail.do"})
|
||||||
|
public String myQnaMngDetail(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
, ModelMap model
|
||||||
|
, RedirectAttributes redirectAttributes
|
||||||
|
, HttpSession session
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
if (loginVO == null || ssoLoginVO == null) {
|
||||||
|
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
|
||||||
|
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||||
|
}
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//과정 조회
|
||||||
|
VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO);
|
||||||
|
vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm()));
|
||||||
|
|
||||||
|
model.addAttribute("info", vEPrcsQnaDetail);
|
||||||
|
//세부과정 목록 조회
|
||||||
|
|
||||||
|
return "web/my/myQnaMngDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|||||||
@ -36,6 +36,9 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
|||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
|
||||||
|
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
||||||
@ -138,6 +141,10 @@ public class EduAplctTngrController {
|
|||||||
@Resource(name = "vEAStngService")
|
@Resource(name = "vEAStngService")
|
||||||
private VEAStngService vEAStngService;
|
private VEAStngService vEAStngService;
|
||||||
|
|
||||||
|
//rkdtk 관리
|
||||||
|
@Resource(name = "vEInstrMixService")
|
||||||
|
private VEInstrMixService vEInstrMixService;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* START
|
* START
|
||||||
@ -633,7 +640,7 @@ public class EduAplctTngrController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("eduInstrAsgnmChkAjax.do")
|
@RequestMapping("eduInstrAsgnmChkAjax.do")
|
||||||
public ModelAndView eduInstrAsgnmChkAjax(
|
public ModelAndView eduInstrAsgnmChkAjax(
|
||||||
@ModelAttribute("vEAStngVO") VEAStngVO vEAStngVO
|
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||||
, ModelMap model
|
, ModelMap model
|
||||||
, HttpServletRequest request
|
, HttpServletRequest request
|
||||||
) throws Exception {
|
) throws Exception {
|
||||||
@ -650,8 +657,7 @@ public class EduAplctTngrController {
|
|||||||
System.out.println(request.getParameter("eduAplctOrd"));
|
System.out.println(request.getParameter("eduAplctOrd"));
|
||||||
System.out.println(request.getParameter("eduChasiOrd"));
|
System.out.println(request.getParameter("eduChasiOrd"));
|
||||||
|
|
||||||
//String s_message = vEAStngMixService.eduAplctDateChkProcess(vEAStngVO, request, modelAndView);
|
VELctrDetailVO instrInfo = vEInstrMixService.findByIdFromVeInstr(vEInstrDetailVO);
|
||||||
|
|
||||||
//vEAStngMixService.selectDetail_VEADPTQS(paramVO)
|
//vEAStngMixService.selectDetail_VEADPTQS(paramVO)
|
||||||
//ㅁ
|
//ㅁ
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -92,4 +92,6 @@ public interface VEInstrMixService {
|
|||||||
|
|
||||||
//교육실정통계-기반강화
|
//교육실정통계-기반강화
|
||||||
List<VELctrDetailVO> selectEduPrfrmInfoFndthEnhanceTrn(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
List<VELctrDetailVO> selectEduPrfrmInfoFndthEnhanceTrn(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
||||||
|
|
||||||
|
VELctrDetailVO findByIdFromVeInstr(VEInstrDetailVO vEInstrDetailVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -209,4 +209,8 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
|
|||||||
return tlist;
|
return tlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VELctrDetailVO findByIdFromVeInstr(VEInstrDetailVO vEInstrDetailVO) {
|
||||||
|
return (VELctrDetailVO) select("VEInstrMixDAO.findByIdFromVeInstr", vEInstrDetailVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,4 +154,9 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
|
|||||||
public List<VELctrDetailVO> selectEduPrfrmInfoFndthEnhanceTrn(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
public List<VELctrDetailVO> selectEduPrfrmInfoFndthEnhanceTrn(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
||||||
return vEInstrMixDAO.selectEduPrfrmInfoFndthEnhanceTrn(vEInstrDetailVO);
|
return vEInstrMixDAO.selectEduPrfrmInfoFndthEnhanceTrn(vEInstrDetailVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VELctrDetailVO findByIdFromVeInstr(VEInstrDetailVO vEInstrDetailVO) {
|
||||||
|
return vEInstrMixDAO.findByIdFromVeInstr(vEInstrDetailVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,9 +29,9 @@ Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
|||||||
#\ub85c\uceec DB
|
#\ub85c\uceec DB
|
||||||
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
||||||
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
|
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
|
||||||
Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
||||||
#\uc6b4\uc601 DB
|
#\uc6b4\uc601 DB
|
||||||
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
||||||
|
|
||||||
|
|
||||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
||||||
|
|||||||
@ -3443,4 +3443,24 @@
|
|||||||
on(bbb.prcs_aplct_prd_ord=aaa.prcsOrd)
|
on(bbb.prcs_aplct_prd_ord=aaa.prcsOrd)
|
||||||
GROUP BY rollup(yr, bbb.prcs_nm)
|
GROUP BY rollup(yr, bbb.prcs_nm)
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="VEInstrMixDAO.findByIdFromVeInstr" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
|
||||||
|
select
|
||||||
|
USER_ID AS userId
|
||||||
|
, TNGR_INSTR_YN AS tngrInstrYn
|
||||||
|
, ADULT_INSTR_YN AS adultInstrYn
|
||||||
|
, FRST_REGIST_PNTTM AS frstRegistPnttm
|
||||||
|
, FRST_REGISTER_ID AS frstRegisterId
|
||||||
|
, LAST_UPDT_PNTTM AS lastUpdtPnttm
|
||||||
|
, LAST_UPDUSR_ID AS lastUpdusrId
|
||||||
|
, DESC_1 AS desc1
|
||||||
|
, DESC_2 AS desc2
|
||||||
|
, DESC_3 AS desc3
|
||||||
|
, DESC_4 AS desc4
|
||||||
|
FROM
|
||||||
|
VE_INSTR
|
||||||
|
WHERE
|
||||||
|
USER_ID = #userId#
|
||||||
|
|
||||||
|
</select>
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|||||||
@ -395,7 +395,14 @@
|
|||||||
<isNotEmpty property="searchSmbtEndDt">
|
<isNotEmpty property="searchSmbtEndDt">
|
||||||
AND TO_CHAR(qn.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
AND TO_CHAR(qn.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||||
</isNotEmpty>
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="qnaRegist">
|
||||||
|
AND QNA_REGIST = #qnaRegist#
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchQuery">
|
||||||
|
$searchQuery$
|
||||||
|
</isNotEmpty>
|
||||||
|
ORDER BY qn.FRST_REGIST_PNTTM desc
|
||||||
|
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -48,6 +48,16 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function qnaGoDetail(p_pk){
|
||||||
|
var form = document.deatilForm ;
|
||||||
|
form.prcsAplctPrdQnaOrd.value = p_pk ;
|
||||||
|
form.action = "<c:url value='/web/my/myQnaMngDetail.do'/>";
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -55,6 +65,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<form id="deatilForm" name="deatilForm" >
|
||||||
|
<input type="hidden" id="prcsAplctPrdQnaOrd" name="prcsAplctPrdQnaOrd" value=""/>
|
||||||
|
</form>
|
||||||
<form id="listForm" name="listForm">
|
<form id="listForm" name="listForm">
|
||||||
<input type="hidden" name="eduAplctOrd" id="adrSeq" value="" />
|
<input type="hidden" name="eduAplctOrd" id="adrSeq" value="" />
|
||||||
</form>
|
</form>
|
||||||
@ -401,6 +414,113 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mypage_table">
|
||||||
|
<div class="tb_list02 right">
|
||||||
|
<div class="tb_tit02">
|
||||||
|
<div class="tb_tit02_left">
|
||||||
|
<div class="t_best">내 문의 목록</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap1">
|
||||||
|
<button type="button" title="실무역량강화 교육 더보기" class="con_more" onclick="location.href='<c:url value="/web/my/myQnaMngList.do" />'">더보기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<caption>내 문의 목록표</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:15%;">
|
||||||
|
<col style="width:12%;">
|
||||||
|
<col style="width:12%;">
|
||||||
|
<col style="width:15%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>강의구분</th>
|
||||||
|
<th>문의내용</th>
|
||||||
|
<th>문의일시</th>
|
||||||
|
<th>답변여부</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="list" items="${qnaList}" varStatus="status" begin="0" end="2">
|
||||||
|
<tr>
|
||||||
|
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
|
||||||
|
<ve:code codeId="VE0011" code="${list.lctrDivCd }" />
|
||||||
|
</td>
|
||||||
|
<td onclick="qnaGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
|
||||||
|
<c:out value="${list.qnaCn }" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.frstRegistPnttm }" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${empty list.qnaAnswerCn }">
|
||||||
|
-
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
완료
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<%-- <div class="tb_list02">
|
||||||
|
<div class="tb_tit02">
|
||||||
|
<div class="tb_tit02_left">
|
||||||
|
<div class="t_best">실무역량강화 교육</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap1">
|
||||||
|
<button type="button" title="실무역량강화 교육 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do" />'">더보기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<caption>실무역량강화 교육 목록표</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:15%;">
|
||||||
|
<col style="width:12%;">
|
||||||
|
<col style="width:12%;">
|
||||||
|
<col style="width:15%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>과정명</th>
|
||||||
|
<th>교육시작일</th>
|
||||||
|
<th>교육종료일</th>
|
||||||
|
<th>신청결과</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="list" items="${fndtnList}" varStatus="status" begin="0" end="2">
|
||||||
|
<tr onclick="fncFndtnGoDetail('${list.prcsAplctPrdOrd}')">
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.prcsNm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.eduStrtPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:out value="${list.eduDdlnPnttm}"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${not empty list.aplctStateCd }">
|
||||||
|
<kc:code codeId="VEA003" code="${list.aplctStateCd}"/>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div> --%>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- moblie table -->
|
<!-- moblie table -->
|
||||||
<div class="tb_list01_m mypage_m">
|
<div class="tb_list01_m mypage_m">
|
||||||
|
|||||||
130
src/main/webapp/WEB-INF/jsp/web/my/myQnaMngDetail.jsp
Normal file
130
src/main/webapp/WEB-INF/jsp/web/my/myQnaMngDetail.jsp
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
<%@ page contentType="text/html; charset=utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||||
|
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||||
|
|
||||||
|
<% pageContext.setAttribute("replaceChar", "\n"); %>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
input:disabled {
|
||||||
|
background-color: #f9f9f9 !important;
|
||||||
|
}
|
||||||
|
input:read-only {
|
||||||
|
background-color: #f9f9f9 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
listForm.action = "<c:url value='/web/my/myQnaMngList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<form name="listForm">
|
||||||
|
<input type="hidden" name="pageIndex" value="1"/>
|
||||||
|
</form>
|
||||||
|
<div class="cont_wrap" id="sub">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>내 교육문의 상세</h2>
|
||||||
|
<div class="sns_go">
|
||||||
|
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||||
|
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tb_type01 tb_write">
|
||||||
|
<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 info.lastUpdtPnttm }">
|
||||||
|
-
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value='${info.lastUpdtPnttm }'/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">답변내용</th>
|
||||||
|
<td colspan="5">
|
||||||
|
<c:out value="${empty info.qnaAnswerCn? '-' : info.qnaAnswerCn}" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<!-- //list_상세 -->
|
||||||
|
<!-- 비공개 메보 정보 -->
|
||||||
|
</div>
|
||||||
|
<div class="btn_wrap btn_layout01">
|
||||||
|
<div class="btn_left">
|
||||||
|
</div>
|
||||||
|
<div class="btn_center">
|
||||||
|
</div>
|
||||||
|
<div class="btn_right">
|
||||||
|
<button type="button" id="regBtn" class="btnType04" onclick="linkPage(1)">목록</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
@ -16,27 +16,43 @@
|
|||||||
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
$('#searchStatus').change(function(){
|
||||||
|
fncGoList();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
listForm.action = "<c:url value='/web/my/myQnaMngList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncGoDetail(p_pk){
|
||||||
|
var form = document.deatilForm ;
|
||||||
|
form.prcsAplctPrdQnaOrd.value = p_pk ;
|
||||||
|
form.action = "<c:url value='/web/my/myQnaMngDetail.do'/>";
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- content -->
|
<!-- content -->
|
||||||
<div class="cont_wrap" id="sub">
|
<div class="cont_wrap" id="sub">
|
||||||
|
|
||||||
<form name="regForm" id="regForm">
|
<form id="deatilForm" name="deatilForm" >
|
||||||
<input type="hidden" name="prcsAplctPrdOrd">
|
<input type="hidden" id="prcsAplctPrdQnaOrd" name="prcsAplctPrdQnaOrd" value=""/>
|
||||||
</form>
|
</form>
|
||||||
<form name="viewForm" id="viewForm">
|
|
||||||
<input type="hidden" name="prcsAplctPrdOrd">
|
|
||||||
</form>
|
|
||||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
||||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
|
||||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
|
||||||
|
|
||||||
<div class="cont_tit">
|
<div class="cont_tit">
|
||||||
<h2>내 교육문의</h2>
|
<h2>내 교육문의</h2>
|
||||||
@ -45,32 +61,17 @@ $(document).ready(function(){
|
|||||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<%-- <div class="list_top">
|
|
||||||
|
<div class="list_top">
|
||||||
<div class="list_top_left">
|
<div class="list_top_left">
|
||||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
<label for="searchStatus2" class="label">신청상태 선택</label>
|
||||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
<option value="">답변여부</option>
|
||||||
<option ${vEPrcsDetailVO.searchStatus eq 10 ? 'selected' : ''} value="10">교육신청</option>
|
<option ${vEPrcsDetailVO.searchStatus eq 'Y' ? 'selected' : ''} value="Y">완료</option>
|
||||||
<option ${vEPrcsDetailVO.searchStatus eq 5 ? 'selected' : ''} value="5">미이수</option>
|
<option ${vEPrcsDetailVO.searchStatus eq 'N' ? 'selected' : ''} value="N">미완료</option>
|
||||||
<option ${vEPrcsDetailVO.searchStatus eq 20 ? 'selected' : ''} value="20">이수완료</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn_wrap">
|
|
||||||
<div class="calendar_wrap">
|
|
||||||
<input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}">
|
|
||||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
|
||||||
</div>
|
</div>
|
||||||
~
|
|
||||||
<div class="calendar_wrap">
|
|
||||||
<input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}">
|
|
||||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
|
||||||
</div>
|
|
||||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
|
||||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
|
||||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
|
||||||
</div>
|
|
||||||
</div> --%>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- list -->
|
<!-- list -->
|
||||||
<div class="tb_list01">
|
<div class="tb_list01">
|
||||||
@ -93,10 +94,10 @@ $(document).ready(function(){
|
|||||||
<tbody>
|
<tbody>
|
||||||
<c:forEach var="list" items="${list}">
|
<c:forEach var="list" items="${list}">
|
||||||
<tr>
|
<tr>
|
||||||
<td onclick="fncGoDetail('prcsAplctPrd_0000286');" style="cursor:pointer;">
|
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
|
||||||
<ve:code codeId="VE0011" code="${list.lctrDivCd }" />
|
<ve:code codeId="VE0011" code="${list.lctrDivCd }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd }" />');" style="cursor:pointer;">
|
||||||
<c:out value="${list.qnaCn }" />
|
<c:out value="${list.qnaCn }" />
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@ -116,7 +117,7 @@ $(document).ready(function(){
|
|||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
<c:if test="${empty list}">
|
<c:if test="${empty list}">
|
||||||
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@ -262,6 +262,13 @@
|
|||||||
}
|
}
|
||||||
function validCheck(){
|
function validCheck(){
|
||||||
|
|
||||||
|
var oathAtchFileId = '${info.oathAtchFileId}';
|
||||||
|
|
||||||
|
if(oathAtchFileId == null || oathAtchFileId == ''){
|
||||||
|
alert("서약서를 제출해주세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if($('#trgtGrade').val() == ''){
|
if($('#trgtGrade').val() == ''){
|
||||||
alert('대상학년/반을 입력해주세요.');
|
alert('대상학년/반을 입력해주세요.');
|
||||||
$("#trgtGrade").focus();
|
$("#trgtGrade").focus();
|
||||||
|
|||||||
@ -21,14 +21,16 @@
|
|||||||
</style>
|
</style>
|
||||||
<script type="text/javaScript" language="javascript">
|
<script type="text/javaScript" language="javascript">
|
||||||
var aprvlCd = ${info.aprvlCd}
|
var aprvlCd = ${info.aprvlCd}
|
||||||
if(aprvlCd == '11' || aprvlCd == '12' || aprvlCd == '13'){
|
|
||||||
aprvlCd = '10';
|
|
||||||
}
|
|
||||||
$( document ).ready(function(){
|
$( document ).ready(function(){
|
||||||
if(${info == null}){
|
if(${info == null}){
|
||||||
alert("진행 중인 체험교실이 없습니다.");
|
alert("진행 중인 체험교실이 없습니다.");
|
||||||
location.href = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do'/>";
|
location.href = "<c:url value='/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctGuide.do'/>";
|
||||||
}else{
|
}else{
|
||||||
|
if(aprvlCd == '11' || aprvlCd == '12' || aprvlCd == '13'){
|
||||||
|
aprvlCd = '10';
|
||||||
|
}
|
||||||
|
|
||||||
$("#p_"+aprvlCd).parent().attr('class', 'p_on');
|
$("#p_"+aprvlCd).parent().attr('class', 'p_on');
|
||||||
$("#p_"+aprvlCd).parent().prevAll().attr('class', 'p_on');
|
$("#p_"+aprvlCd).parent().prevAll().attr('class', 'p_on');
|
||||||
$("#p_"+aprvlCd).css("color", "#FFFF00");
|
$("#p_"+aprvlCd).css("color", "#FFFF00");
|
||||||
|
|||||||
@ -237,6 +237,13 @@
|
|||||||
|
|
||||||
function validCheck(){
|
function validCheck(){
|
||||||
|
|
||||||
|
var oathAtchFileId = '${info.oathAtchFileId}';
|
||||||
|
|
||||||
|
if(oathAtchFileId == null || oathAtchFileId == ''){
|
||||||
|
alert("서약서를 제출해주세요.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if($('#trgtGrade').val() == ''){
|
if($('#trgtGrade').val() == ''){
|
||||||
alert('대상학년/반을 입력해주세요.');
|
alert('대상학년/반을 입력해주세요.');
|
||||||
$("#trgtGrade").focus();
|
$("#trgtGrade").focus();
|
||||||
|
|||||||
@ -74,28 +74,21 @@
|
|||||||
alert("강사ID는 필수 입력값 입니다.");
|
alert("강사ID는 필수 입력값 입니다.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
var searchKeyword = $('#searchKeyword').val();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
url:"${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduInstrAsgnmChkAjax.do",
|
url:"${pageContext.request.contextPath}/web/ve/aplct/tngrVisitEdu/eduAplct/eduInstrAsgnmChkAjax.do",
|
||||||
data: {
|
data: {
|
||||||
|
userId : searchKeyword
|
||||||
},
|
},
|
||||||
dataType:'json',
|
dataType:'json',
|
||||||
async: false,
|
async: false,
|
||||||
success:function(returnData){
|
success:function(returnData){
|
||||||
if(returnData.result == "fail"){
|
if(returnData.result == "fail"){
|
||||||
|
|
||||||
//신청 버튼 숨기기
|
|
||||||
$("div.btn_layout01").hide();
|
|
||||||
//alert("신청가능한 기간이 아닙니다.");
|
|
||||||
alert("신청가능한 기간이 아닙니다.\n\n"+returnData.message+"\n\n(교사, 학부모 대상 교육은 ‘찾아가는 저작권 교육(성인)'에서 상시 신청 가능합니다)");
|
|
||||||
//location.href="<c:url value='/web/main/mainPage.do'/>"
|
|
||||||
|
|
||||||
psblFlag = 'N';
|
|
||||||
}else if(returnData.result == "success"){
|
}else if(returnData.result == "success"){
|
||||||
|
|
||||||
alert("등록처리되었습니다.");
|
alert("등록처리되었습니다.");
|
||||||
//location.href="<c:url value='/web/main/mainPage.do'/>"
|
|
||||||
$(".btn_popup_close").click();
|
$(".btn_popup_close").click();
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user