Merge branch 'master' of http://yongjoon.cho@vcs.iten.co.kr:9999/hylee/kcc_adr_advc_git
2
.gitignore
vendored
@ -74,4 +74,4 @@ buildNumber.properties
|
|||||||
.mvn/timing.properties
|
.mvn/timing.properties
|
||||||
|
|
||||||
# jrebel
|
# jrebel
|
||||||
src/main/resources/rebel.xml
|
rebel.xml
|
||||||
|
|||||||
@ -1163,8 +1163,8 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
|
|||||||
public RestResponse selectRespondentSchChk(AdjstReqVO adjstReqVO) {
|
public RestResponse selectRespondentSchChk(AdjstReqVO adjstReqVO) {
|
||||||
|
|
||||||
|
|
||||||
adjstReqVO.setRpplNm(egovCryptoUtil.encrypt(adjstReqVO.getRpplNm()));
|
adjstReqVO.setRpplNm(egovCryptoUtil.encrypt(adjstReqVO.getRpplNm()).trim());
|
||||||
adjstReqVO.setRpplEmail(egovCryptoUtil.encrypt(adjstReqVO.getRpplEmail()));
|
adjstReqVO.setRpplEmail(egovCryptoUtil.encrypt(adjstReqVO.getRpplEmail()).trim());
|
||||||
|
|
||||||
log.debug("adjstReqVO.getRpplNm() :: [{}]", adjstReqVO.getRpplNm());
|
log.debug("adjstReqVO.getRpplNm() :: [{}]", adjstReqVO.getRpplNm());
|
||||||
log.debug("adjstReqVO.getRpplEmail() :: [{}]", adjstReqVO.getRpplEmail());
|
log.debug("adjstReqVO.getRpplEmail() :: [{}]", adjstReqVO.getRpplEmail());
|
||||||
|
|||||||
@ -255,23 +255,21 @@ public class AdjstReqWebController {
|
|||||||
// sMSOracleService.insertSmsSend(adjReqMgrVO);
|
// sMSOracleService.insertSmsSend(adjReqMgrVO);
|
||||||
|
|
||||||
//로그인 권한정보 불러오기
|
//로그인 권한정보 불러오기
|
||||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
// LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
|
// String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
|
||||||
|
|
||||||
MberManageVO mberManageVO = new MberManageVO();
|
// MberManageVO mberManageVO = new MberManageVO();
|
||||||
|
|
||||||
mberManageVO.setMberId(userId);
|
// mberManageVO.setMberId(userId);
|
||||||
|
|
||||||
MberManageVO resultMberVO = crtfcService.selectMberCrtfc(mberManageVO);
|
// MberManageVO resultMberVO = crtfcService.selectMberCrtfc(mberManageVO);
|
||||||
|
|
||||||
String crtfcSn = "N";
|
// String crtfcSn = "N";
|
||||||
if(StringUtil.isNotEmpty(resultMberVO.getCrtfcSn())) {
|
// if(StringUtil.isNotEmpty(resultMberVO.getCrtfcSn())) {
|
||||||
|
// crtfcSn = "Y";
|
||||||
|
// }
|
||||||
|
|
||||||
crtfcSn = "Y";
|
model.addAttribute("crtfcSn", "N");
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
model.addAttribute("crtfcSn", crtfcSn);
|
|
||||||
|
|
||||||
return "/web/kccadr/adjst/adjstReqRegistInformation";
|
return "/web/kccadr/adjst/adjstReqRegistInformation";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,21 +94,11 @@ public class AdjstExpController {
|
|||||||
// sMSOracleService.insertSmsSend(adjReqMgrVO);
|
// sMSOracleService.insertSmsSend(adjReqMgrVO);
|
||||||
|
|
||||||
//로그인 권한정보 불러오기
|
//로그인 권한정보 불러오기
|
||||||
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
// LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||||
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
|
// String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
|
||||||
|
|
||||||
MberManageVO mberManageVO = new MberManageVO();
|
|
||||||
|
|
||||||
mberManageVO.setMberId(userId);
|
model.addAttribute("crtfcSn", "N");
|
||||||
|
|
||||||
MberManageVO resultMberVO = crtfcService.selectMberCrtfc(mberManageVO);
|
|
||||||
|
|
||||||
String crtfcSn = "N";
|
|
||||||
if(StringUtil.isNotEmpty(resultMberVO.getCrtfcSn())) {
|
|
||||||
crtfcSn = "Y";
|
|
||||||
}
|
|
||||||
|
|
||||||
model.addAttribute("crtfcSn", crtfcSn);
|
|
||||||
|
|
||||||
return "/web/kccadr/adjstExp/adjstReqRegistInformation";
|
return "/web/kccadr/adjstExp/adjstReqRegistInformation";
|
||||||
}
|
}
|
||||||
|
|||||||
369
src/main/java/kcc/kccadr/certDoc/web/CertDocController.java
Normal file
@ -0,0 +1,369 @@
|
|||||||
|
package kcc.kccadr.certDoc.web;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
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 egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
|
import kcc.com.cmm.EgovMessageSource;
|
||||||
|
import kcc.com.cmm.util.StringUtil;
|
||||||
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
|
import kcc.kccadr.adjPgrMgr.arm.service.CmntVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.cmm.service.CloseVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmService;
|
||||||
|
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.dlvinfo.service.DlvinfoService;
|
||||||
|
import kcc.kccadr.adjPgrMgr.dlvinfo.service.DlvinfoVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.dnt.service.DntService;
|
||||||
|
import kcc.kccadr.adjPgrMgr.dnt.service.DntVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drt.service.AssVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drt.service.DrtService;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drt.service.DrtVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drtctr.service.AssCtrVO;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drtctr.service.DrtCtrService;
|
||||||
|
import kcc.kccadr.adjPgrMgr.drtctr.service.DrtCtrVO;
|
||||||
|
import kcc.kccadr.adjcclt.service.AdjstConciliatorService;
|
||||||
|
import kcc.kccadr.adjcclt.service.AdjstConciliatorVO;
|
||||||
|
import kcc.kccadr.cmm.KccadrConstants;
|
||||||
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 대국민(사용자)
|
||||||
|
* 인증을 통한 송달서류 조회 controller 클래스를 정의한다.
|
||||||
|
* @author 김봉호
|
||||||
|
* @since 2022.08.29
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2022.08.29 안주영 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class CertDocController {
|
||||||
|
|
||||||
|
//private static final Logger LOGGER = LoggerFactory.getLogger(AdjstChangeDateController.class);
|
||||||
|
|
||||||
|
// eGov 공통 메세지
|
||||||
|
@Resource(name = "egovMessageSource")
|
||||||
|
EgovMessageSource egovMessageSource;
|
||||||
|
|
||||||
|
//로그인 체크 util
|
||||||
|
@Resource(name = "checkLoginUtil")
|
||||||
|
private CheckLoginUtil checkLoginUtil;
|
||||||
|
//암복호화 유틸
|
||||||
|
@Resource(name = "egovCryptoUtil")
|
||||||
|
EgovCryptoUtil egovCryptoUtil;
|
||||||
|
|
||||||
|
@Resource(name = "pgrCmmService")
|
||||||
|
private PgrCmmService cmmService;
|
||||||
|
|
||||||
|
@Resource(name = "dlvinfoService")
|
||||||
|
private DlvinfoService dlvinfoService;
|
||||||
|
|
||||||
|
@Resource(name = "drtCtrService")
|
||||||
|
private DrtCtrService drtCtrService;
|
||||||
|
|
||||||
|
@Resource(name = "dntService")
|
||||||
|
private DntService dntService;
|
||||||
|
|
||||||
|
@Resource(name = "drtService")
|
||||||
|
private DrtService drtService;
|
||||||
|
|
||||||
|
@Resource(name="adjstConciliatorService")
|
||||||
|
private AdjstConciliatorService adjstConciliatorService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 확정증명원 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/kccadr/certDoc/cfrmDetail.do")
|
||||||
|
public String cfrmDetail(@ModelAttribute("cmmVO") PgrCmmVO cmmVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//TEST CODE START
|
||||||
|
cmmVO.setAdrSeq("ADR_0000000000002620");
|
||||||
|
cmmVO.setAdrSn("1");
|
||||||
|
//TEST CODE END
|
||||||
|
|
||||||
|
//사건 정보 불러오기
|
||||||
|
model.addAttribute("info", cmmService.selectPgrCmm(cmmVO));
|
||||||
|
|
||||||
|
//종결문서에서 확정증명서 불러오기
|
||||||
|
CloseVO closeVO = new CloseVO();
|
||||||
|
closeVO.setAdrSeq(cmmVO.getAdrSeq());
|
||||||
|
closeVO.setAdrSn(cmmVO.getAdrSn());
|
||||||
|
closeVO.setCloseDocTy(KccadrConstants.ADR_CLOSE_DOC_TY_80);
|
||||||
|
|
||||||
|
model.addAttribute("closeDocInfo", cmmService.selectCloseDoc(closeVO));
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10"); //조정번호 검색 조건 입력 - 10: 사건번호, 20: 신청인/피신청인 이름
|
||||||
|
dlvInfoVO.setSrcTxt(cmmVO.getAdrNo()); //사건번호 입력
|
||||||
|
dlvInfoVO.setSrcDocty(KccadrConstants.ADR_CLOSE_DOC_TY_80); //송달 문서 종류 코드번호
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
return "/web/kccadr/certDoc/cfrmDetail";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 기일통지서 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/web/kccadr/certDoc/dntDetail.do")
|
||||||
|
public String dntDetail(@ModelAttribute("dntVO") PgrCmmVO cmmVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//TEST CODE START
|
||||||
|
cmmVO.setAdrSeq("ADR_0000000000002620");
|
||||||
|
cmmVO.setAdrSn("1");
|
||||||
|
//TEST CODE END
|
||||||
|
|
||||||
|
PgrCmmVO dntVO = getDntInfo(cmmVO);
|
||||||
|
model.addAttribute("info", dntVO);
|
||||||
|
|
||||||
|
if(cmmVO.getSearchKeyword().equals("update")) {
|
||||||
|
// 조정기일 변경 조회
|
||||||
|
DntVO dntNoticeVO = new DntVO();
|
||||||
|
dntNoticeVO.setAdrSn(cmmVO.getAdrSn());
|
||||||
|
dntNoticeVO.setAdrSeq(cmmVO.getAdrSeq());
|
||||||
|
DntVO selectDateNoticeDate = dntService.selectDateNoticeDate(dntNoticeVO);
|
||||||
|
model.addAttribute("date",selectDateNoticeDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcTxt(cmmVO.getAdrNo());
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/dntDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 기일조서 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/web/kccadr/certDoc/drtDetail.do")
|
||||||
|
public String drtDetail(PgrCmmVO cmmVO, DrtVO drtVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
List<AssVO> assList = drtService.selectAssList(drtVO);
|
||||||
|
|
||||||
|
PgrCmmVO info = cmmService.selectPgrCmm(cmmVO);
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcDocty("20"); //송달 문서 종류 코드번호
|
||||||
|
dlvInfoVO.setSrcTxt(cmmVO.getAdrNo());
|
||||||
|
dlvInfoVO.setAdrSeq(cmmVO.getAdrSeq());
|
||||||
|
dlvInfoVO.setAdrSn(drtVO.getAdrSn());
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
model.addAttribute("assList", assList);
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
|
||||||
|
//조정위원 정보 불러오기
|
||||||
|
PgrCmmVO dntVO = getDntInfo(cmmVO);
|
||||||
|
model.addAttribute("uiwonInfo", dntVO);
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/drtDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 조정권고안 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/web/kccadr/certDoc/armDetail.do")
|
||||||
|
public String armDetail(@ModelAttribute("closeVO") CloseVO closeVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//TEST CODE START
|
||||||
|
closeVO.setAdrSeq("ADR_0000000000002762");
|
||||||
|
closeVO.setAdrSn("1");
|
||||||
|
//TEST CODE END
|
||||||
|
|
||||||
|
//조정기일 배석 정보 불러오기
|
||||||
|
DrtCtrVO drtCtrVO = new DrtCtrVO();
|
||||||
|
drtCtrVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
drtCtrVO.setAdrSn(closeVO.getAdrSn());
|
||||||
|
List<AssCtrVO> assList = drtCtrService.selectAssList(drtCtrVO);
|
||||||
|
|
||||||
|
//기일조서 정보 불러오기
|
||||||
|
PgrCmmVO pgrCmmVO = new PgrCmmVO();
|
||||||
|
pgrCmmVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
pgrCmmVO.setPrtclSeq(closeVO.getPrtclSeq());
|
||||||
|
PgrCmmVO info = cmmService.selectPgrCmm(pgrCmmVO);
|
||||||
|
|
||||||
|
|
||||||
|
//직권조정 조서 정보 가져오기
|
||||||
|
model.addAttribute("assList", assList);
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
|
||||||
|
closeVO.setCloseDocTy("30");
|
||||||
|
model.addAttribute("drtCtrVO", cmmService.selectCloseDoc(closeVO));
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcTxt(closeVO.getAdrNo());
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
CmntVO cmntVO = new CmntVO();
|
||||||
|
cmntVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
cmntVO.setAdrSn(closeVO.getAdrSn());
|
||||||
|
cmntVO.setCmntSeq(closeVO.getCmntSeq());
|
||||||
|
cmntVO.setCmntTy("30");
|
||||||
|
|
||||||
|
//조정위원 의견 리스트
|
||||||
|
model.addAttribute("list", cmmService.selectCmnList(cmntVO));
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/armDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 조정조서 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/kccadr/certDoc/drtCtrDetail.do")
|
||||||
|
public String drtCtrDetail(PgrCmmVO cmmVO, DrtCtrVO drtCtrVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//조정기일 배석 정보 불러오기
|
||||||
|
List<AssCtrVO> assList = drtCtrService.selectAssList(drtCtrVO);
|
||||||
|
|
||||||
|
//기일조서 정보 불러오기
|
||||||
|
PgrCmmVO info = cmmService.selectPgrCmm(cmmVO);
|
||||||
|
|
||||||
|
//조정조서 정보 불러오기
|
||||||
|
DrtCtrVO resultDrtCtrVO = drtCtrService.selectDrtCtrReport(drtCtrVO);
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcTxt(cmmVO.getAdrNo());
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
|
||||||
|
model.addAttribute("assList", assList);
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
model.addAttribute("drtCtrVO", resultDrtCtrVO);
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/drtCtrDetail";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 취하종결통보서 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/web/kccadr/certDoc/entDetail.do")
|
||||||
|
public String entDetail(@ModelAttribute("closeVO") CloseVO closeVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
model.addAttribute("info", cmmService.selectPgrCmm(closeVO));
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcDocty("50"); //송달 문서 종류 코드번호
|
||||||
|
dlvInfoVO.setSrcTxt(closeVO.getAdrNo());
|
||||||
|
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/entDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 직권조정결정서 상세
|
||||||
|
*/
|
||||||
|
|
||||||
|
@RequestMapping(value = "/web/kccadr/certDoc/oadDetail.do")
|
||||||
|
public String oadDetail(@ModelAttribute("closeVO") CloseVO closeVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
//조정기일 배석 정보 불러오기
|
||||||
|
DrtCtrVO drtCtrVO = new DrtCtrVO();
|
||||||
|
drtCtrVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
drtCtrVO.setAdrSn(closeVO.getAdrSn());
|
||||||
|
List<AssCtrVO> assList = drtCtrService.selectAssList(drtCtrVO);
|
||||||
|
model.addAttribute("assList", assList);
|
||||||
|
|
||||||
|
//기일조서 정보 불러오기
|
||||||
|
PgrCmmVO pgrCmmVO = new PgrCmmVO();
|
||||||
|
pgrCmmVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
pgrCmmVO.setPrtclSeq(closeVO.getPrtclSeq());
|
||||||
|
PgrCmmVO info = cmmService.selectPgrCmm(pgrCmmVO);
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
|
||||||
|
//직권조정 조서 정보 가져오기
|
||||||
|
closeVO.setCloseDocTy("60");
|
||||||
|
model.addAttribute("drtCtrVO", cmmService.selectCloseDoc(closeVO));
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcDocty("60"); //송달 문서 종류 코드번호
|
||||||
|
dlvInfoVO.setSrcTxt(closeVO.getAdrNo());
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
|
||||||
|
//조정위원들 의견 정보 불러오기(전체 불러오기 - memSeq로 그룹핑해서 중복 제거했음) 20220209 - 우영두 추가
|
||||||
|
AdjstConciliatorVO adjstConciliatorVO = new AdjstConciliatorVO();
|
||||||
|
adjstConciliatorVO.setAdrSeq(closeVO.getAdrSeq());
|
||||||
|
adjstConciliatorVO.setAdrSn(closeVO.getAdrSn());
|
||||||
|
adjstConciliatorVO.setCmntTy(dlvInfoVO.getSrcDocty()); //문서종류 코드 번호 전달
|
||||||
|
|
||||||
|
PaginationInfo paginationInfo = new PaginationInfo();
|
||||||
|
paginationInfo.setCurrentPageNo(adjstConciliatorVO.getPageIndex());
|
||||||
|
paginationInfo.setRecordCountPerPage(100);
|
||||||
|
paginationInfo.setPageSize(adjstConciliatorVO.getPageSize());
|
||||||
|
|
||||||
|
adjstConciliatorVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||||
|
adjstConciliatorVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||||
|
adjstConciliatorVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||||
|
List<AdjstConciliatorVO> cmnList = adjstConciliatorService.selectAdjstRecommendationCommentListGroup(adjstConciliatorVO);
|
||||||
|
|
||||||
|
model.addAttribute("cmnList",cmnList);
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/oadDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 불성립종결통보서 상세
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "crtDetail.do")
|
||||||
|
public String crtDetail(@ModelAttribute("closeVO") CloseVO closeVO, ModelMap model) throws Exception {
|
||||||
|
|
||||||
|
model.addAttribute("info", cmmService.selectPgrCmm(closeVO));
|
||||||
|
|
||||||
|
//송달정보 count 조회해오기
|
||||||
|
DlvinfoVO dlvInfoVO = new DlvinfoVO();
|
||||||
|
dlvInfoVO.setSrcCon("10");
|
||||||
|
dlvInfoVO.setSrcTxt(closeVO.getAdrNo());
|
||||||
|
dlvInfoVO.setSrcDocty("70");//불성립종결통보서 송달 문서 코드번호
|
||||||
|
model.addAttribute("dlvCnt", dlvinfoService.selectAdjustDeliveryInfoListCnt(dlvInfoVO));
|
||||||
|
|
||||||
|
return "/web/kccadr/certDoc/crtDetail";
|
||||||
|
}
|
||||||
|
|
||||||
|
private PgrCmmVO getDntInfo(PgrCmmVO cmmVO) throws Exception {
|
||||||
|
PgrCmmVO dntVO = cmmService.selectPgrCmm(cmmVO);
|
||||||
|
if (!StringUtil.isEmpty(dntVO.getMemNames())) {
|
||||||
|
String[] memNames = dntVO.getMemNames().split(", ");
|
||||||
|
String[] assSeqes = dntVO.getAssSeqes().split(", ");
|
||||||
|
|
||||||
|
if(memNames.length==1) {
|
||||||
|
dntVO.setAddUsrNm0(memNames[0]);
|
||||||
|
dntVO.setAssSeq0(assSeqes[0]);
|
||||||
|
}else if(memNames.length>1) {
|
||||||
|
dntVO.setAddUsrNm0(memNames[0]);
|
||||||
|
dntVO.setAssSeq0(assSeqes[0]);
|
||||||
|
dntVO.setAddUsrNm1(memNames[1]);
|
||||||
|
dntVO.setAssSeq1(assSeqes[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return dntVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
package kcc.kccadr.xxx.web;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
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.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
|
import kcc.let.cop.bbs.service.BoardMasterVO;
|
||||||
|
import kcc.let.cop.bbs.service.BoardVO;
|
||||||
|
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일 첨부에 대한 샘플 컨트롤러 서비스.
|
||||||
|
* @author 이준호
|
||||||
|
* @since 2021.10.01
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2022.09.15 이준호 최초 생성
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class fileUploadAndDownloadSampleController {
|
||||||
|
|
||||||
|
/** 로그설정 */
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(fileUploadAndDownloadSampleController.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (사용자)게시물 등록을 위한 등록페이지로 이동한다.
|
||||||
|
*
|
||||||
|
* @param boardVO
|
||||||
|
* @param model
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/fileUploadAndDownloadSample.do")
|
||||||
|
public String fileUploadAndDownloadSample() throws Exception {
|
||||||
|
return "kccadr/xxx/fileUploadAndDownloadSample";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -33,8 +33,12 @@ Globals.DriverClassName=cubrid.jdbc.driver.CUBRIDDriver
|
|||||||
#\ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84
|
#\ud074\ub77c\uc6b0\ub4dc \uc11c\ubc84
|
||||||
#Globals.Url=jdbc:cubrid:158.247.225.133:30000:kcc_adrs4:::?charset=utf8
|
#Globals.Url=jdbc:cubrid:158.247.225.133:30000:kcc_adrs4:::?charset=utf8
|
||||||
#\uac1c\ubc1c\uc11c\ubc84
|
#\uac1c\ubc1c\uc11c\ubc84
|
||||||
|
<<<<<<< HEAD
|
||||||
Globals.Url=jdbc:CUBRID:119.193.215.98:30000:kcc_adr_advc:::?charset=utf8
|
Globals.Url=jdbc:CUBRID:119.193.215.98:30000:kcc_adr_advc:::?charset=utf8
|
||||||
|
|
||||||
|
=======
|
||||||
|
Globals.Url=jdbc:cubrid:119.193.215.98:30000:kcc_adr_advc:::?charset=utf8
|
||||||
|
>>>>>>> refs/heads/anjooyoung
|
||||||
#\uc2e4\uc11c\ubc84
|
#\uc2e4\uc11c\ubc84
|
||||||
#Globals.Url=jdbc:cubrid:192.168.39.14:30000:kcc_adrs4:::?charset=utf8
|
#Globals.Url=jdbc:cubrid:192.168.39.14:30000:kcc_adrs4:::?charset=utf8
|
||||||
|
|
||||||
|
|||||||
@ -355,7 +355,7 @@
|
|||||||
|
|
||||||
|
|
||||||
LEFT JOIN ADR_APP_MGR AM ON M.ADR_SEQ = AM.ADR_SEQ AND D.ADR_SN = AM.ADR_SN AND ZAM.APP_SEQ = AM.APP_SEQ
|
LEFT JOIN ADR_APP_MGR AM ON M.ADR_SEQ = AM.ADR_SEQ AND D.ADR_SN = AM.ADR_SN AND ZAM.APP_SEQ = AM.APP_SEQ
|
||||||
LEFT JOIN ADR_PRTCL_MGR APM ON APM.ADR_SEQ = M.ADR_SEQ AND APM.ADR_SN = D.ADR_SN
|
LEFT JOIN (SELECT * FROM ADR_PRTCL_MGR a ORDER BY a.prtcl_seq DESC LIMIT 1) APM ON APM.ADR_SEQ = M.ADR_SEQ AND APM.ADR_SN = D.ADR_SN
|
||||||
LEFT JOIN ADR_AVOID_CMT_MGR AV ON AV.ADR_SEQ = M.ADR_SEQ AND AV.ADR_SN = D.ADR_SN
|
LEFT JOIN ADR_AVOID_CMT_MGR AV ON AV.ADR_SEQ = M.ADR_SEQ AND AV.ADR_SN = D.ADR_SN
|
||||||
LEFT OUTER JOIN (
|
LEFT OUTER JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
var exmpCd = $("#exmpCd").val();
|
var exmpCd = $("#exmpCd").val();
|
||||||
console.log(exmpCd.replace(/(^0+)/, ""));
|
console.log(exmpCd.replace(/(^0+)/, ""));
|
||||||
var perId = '#reqCn'+exmpCd.replace(/(^0+)/, "");
|
var perId = '#reqCn'+exmpCd.replace(/(^0+)/, "");
|
||||||
$(opener.document).find(perId).text($('#exmpCn').text());
|
$(opener.document).find(perId).val($('#exmpCn').text());
|
||||||
window.close();
|
window.close();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@ -0,0 +1,74 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<%
|
||||||
|
pageContext.setAttribute("crlf", "\r\n");
|
||||||
|
%>
|
||||||
|
<head>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- 내용s -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>
|
||||||
|
파일 첨부 샘플 페이지
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>파일 첨부 샘플 페이지</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01">
|
||||||
|
<caption>샘플 페이지</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 250px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">
|
||||||
|
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||||
|
<p>내용</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<label for="nttCn" class="label">내용 입력</label>
|
||||||
|
<textarea id="nttCn" name="nttCn"></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">
|
||||||
|
<p class="req_text"><span>필수입력 항목</span>*</p>
|
||||||
|
<p>첨부파일</p>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //신청인 정보 -->
|
||||||
|
|
||||||
|
<!-- 하단 버튼 -->
|
||||||
|
<div class="btn_wrap btn_layout03">
|
||||||
|
<div class="btn_left">
|
||||||
|
</div>
|
||||||
|
<div class="btn_right">
|
||||||
|
<button type="button" class="btnType09" onclick="javascript:fn_egov_regist_notice(); return false;">저장</button>
|
||||||
|
<button type="button" class="btnType11" onclick="javascript:fn_egov_select_noticeList(); return false;">취소</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //하단 버튼 -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
@ -30,6 +30,9 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>관련인 정보</title>
|
<title>관련인 정보</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<link rel="stylesheet" href="/kccadrPb/usr/css/reset.css">
|
||||||
|
<link rel="stylesheet" href="/kccadrPb/usr/css/common.css">
|
||||||
|
<link rel="stylesheet" href="/kccadrPb/usr/css/popup.css">
|
||||||
<style>
|
<style>
|
||||||
.btn_util button{width: 30px; height: 30px; border: 1px solid #bebebe; vertical-align: middle; background-repeat: no-repeat; background-position: center; }
|
.btn_util button{width: 30px; height: 30px; border: 1px solid #bebebe; vertical-align: middle; background-repeat: no-repeat; background-position: center; }
|
||||||
.btn_util button:hover{box-shadow: 0 0 5px rgba(0,0,0,.15);}
|
.btn_util button:hover{box-shadow: 0 0 5px rgba(0,0,0,.15);}
|
||||||
@ -59,11 +62,11 @@
|
|||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="area_popup supm_popup" style="width: 800px;">
|
<div class="area_popup supm_popup" style="width: 100%;">
|
||||||
<div class="cont_popup">
|
<div class="cont_popup popup_cont">
|
||||||
<!-- 신청인 정보 -->
|
<!-- 신청인 정보 -->
|
||||||
<div class="tb_tit_wrap">
|
<div class="tb_tit_wrap">
|
||||||
<p class="tb_tit">신청인 정보</p>
|
<p class="tb_tit cont_tit04">신청인 정보</p>
|
||||||
<div class="btn_util">
|
<div class="btn_util">
|
||||||
<button type="button" class="btn_minus" onclick="zoomOut();" title="글자 축소"></button>
|
<button type="button" class="btn_minus" onclick="zoomOut();" title="글자 축소"></button>
|
||||||
<button type="button" class="btn_plus" onclick="zoomIn();" title="글자 확대"></button>
|
<button type="button" class="btn_plus" onclick="zoomIn();" title="글자 확대"></button>
|
||||||
@ -71,14 +74,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<c:forEach var="item" items="${rppList}" varStatus="status">
|
<c:forEach var="item" items="${rppList}" varStatus="status">
|
||||||
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_REQ }">
|
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_REQ }">
|
||||||
<table class="pop_tbType01">
|
<table class="popup_tbType01">
|
||||||
|
<caption>신청인정보 : 신청인분류, 신청인 이름, 주소, 이메일, 연락처 등의 정보제공</caption>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>신청인 분류</th>
|
<th scope="row">신청인 분류</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
||||||
@ -88,7 +92,7 @@
|
|||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${not empty item.rpplBizNm}">
|
<c:when test="${not empty item.rpplBizNm}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>신청인 대표</th>
|
<th scope="row">신청인 대표</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${info.appliCantNm }"></c:out>
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
@ -98,7 +102,7 @@
|
|||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<tr>
|
<tr>
|
||||||
<th>신청인 이름</th>
|
<th scope="row">신청인 이름</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${info.appliCantNm }"></c:out>
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
@ -110,7 +114,7 @@
|
|||||||
|
|
||||||
<c:if test="${not empty item.rpplBizNm}">
|
<c:if test="${not empty item.rpplBizNm}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>신청인 법인명</th>
|
<th scope="row">신청인 법인명</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplBizNm }"></c:out>
|
<c:out value="${item.rpplBizNm }"></c:out>
|
||||||
@ -119,7 +123,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>주소</th>
|
<th scope="row">주소</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
||||||
@ -127,7 +131,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>이메일</th>
|
<th scope="row">이메일</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplEmail }"></c:out>
|
<c:out value="${item.rpplEmail }"></c:out>
|
||||||
@ -135,14 +139,14 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>연락처</th>
|
<th scope="row">연락처</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplPhone }"></c:out>
|
<c:out value="${item.rpplPhone }"></c:out>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th>이메일 수신여부</th>
|
<th>이메일 수신여부</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
@ -171,7 +175,7 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</c:if>
|
</c:if>
|
||||||
@ -181,8 +185,8 @@
|
|||||||
<!-- 신청인 대리인 정보 -->
|
<!-- 신청인 대리인 정보 -->
|
||||||
<c:forEach var="item" items="${rppList}" varStatus="status">
|
<c:forEach var="item" items="${rppList}" varStatus="status">
|
||||||
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_REQ_DEPUTY}">
|
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_REQ_DEPUTY}">
|
||||||
<p class="tb_tit">신청인 대리인 정보</p>
|
<p class="cont_tit02">신청인 대리인 정보</p>
|
||||||
<table class="pop_tbType01">
|
<table class="popup_tbType01">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
@ -192,7 +196,7 @@
|
|||||||
<c:when test="${not empty item.rpplUsrTy}">
|
<c:when test="${not empty item.rpplUsrTy}">
|
||||||
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
||||||
<tr>
|
<tr>
|
||||||
<th>대리인분류</th>
|
<th scope="row">대리인분류</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
||||||
@ -202,7 +206,7 @@
|
|||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
<tr>
|
<tr>
|
||||||
<th>본인과의 관계</th>
|
<th scope="row">본인과의 관계</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<kc:code codeId="CC006" code="${item.rpplRelation}"/>
|
<kc:code codeId="CC006" code="${item.rpplRelation}"/>
|
||||||
@ -215,7 +219,7 @@
|
|||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
<tr>
|
<tr>
|
||||||
<th>대리인 이름</th>
|
<th scope="row">대리인 이름</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplNm }"></c:out>
|
<c:out value="${item.rpplNm }"></c:out>
|
||||||
@ -224,7 +228,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<c:if test="${not empty item.rpplBizNm}">
|
<c:if test="${not empty item.rpplBizNm}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>피신청인 법인(개인사업자)명</th>
|
<th scope="row">피신청인 법인(개인사업자)명</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplBizNm }"></c:out>
|
<c:out value="${item.rpplBizNm }"></c:out>
|
||||||
@ -233,7 +237,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>주소</th>
|
<th scope="row">주소</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
||||||
@ -241,7 +245,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>이메일</th>
|
<th scope="row">이메일</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplEmail }"></c:out>
|
<c:out value="${item.rpplEmail }"></c:out>
|
||||||
@ -249,14 +253,14 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>연락처</th>
|
<th scope="row">연락처</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplPhone }"></c:out>
|
<c:out value="${item.rpplPhone }"></c:out>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th>이메일 수신여부</th>
|
<th>이메일 수신여부</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
@ -285,9 +289,9 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
<tr>
|
<tr>
|
||||||
<th>대리신청서</th>
|
<th scope="row">대리신청서</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:forEach var="files" items="${reqfileList}" varStatus="status">
|
<c:forEach var="files" items="${reqfileList}" varStatus="status">
|
||||||
@ -303,14 +307,14 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<c:if test="${not empty item.rpplRealPost }">
|
<c:if test="${not empty item.rpplRealPost }">
|
||||||
<table class="pop_tbType01" style="margin-top: 20px;">
|
<table class="popup_tbType01" style="margin-top: 20px;">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>우편물 수령지</th>
|
<th scope="row">우편물 수령지</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${item.rpplRealPost }) ${item.rpplRealAddr } ${item.rpplRealAddrDtl }"></c:out>
|
<c:out value="(${item.rpplRealPost }) ${item.rpplRealAddr } ${item.rpplRealAddrDtl }"></c:out>
|
||||||
@ -326,15 +330,15 @@
|
|||||||
<c:forEach var="item" items="${rppList}" varStatus="status">
|
<c:forEach var="item" items="${rppList}" varStatus="status">
|
||||||
<!-- 피신청인 정보 -->
|
<!-- 피신청인 정보 -->
|
||||||
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_RES}">
|
<c:if test="${item.rpplTy eq KccadrConstants.ADR_RPPL_TY_RES}">
|
||||||
<p class="tb_tit">피신청인 정보</p>
|
<p class="cont_tit02">피신청인 정보</p>
|
||||||
<table class="pop_tbType01">
|
<table class="popup_tbType01">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>피신청인 분류</th>
|
<th scope="row">피신청인 분류</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
<c:out value="${item.rpplUsrTyTx }"></c:out>
|
||||||
@ -342,7 +346,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>피신청인 이름</th>
|
<th scope="row">피신청인 이름</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplNm }"></c:out>
|
<c:out value="${item.rpplNm }"></c:out>
|
||||||
@ -351,7 +355,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<c:if test="${not empty item.rpplBizNm}">
|
<c:if test="${not empty item.rpplBizNm}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>피신청인 법인명</th>
|
<th scope="row">피신청인 법인명</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplBizNm }"></c:out>
|
<c:out value="${item.rpplBizNm }"></c:out>
|
||||||
@ -360,7 +364,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>주소</th>
|
<th scope="row">주소</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
<c:out value="(${item.rpplPost }) ${item.rpplAddr } ${item.rpplAddrDtl }"></c:out>
|
||||||
@ -368,7 +372,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>이메일</th>
|
<th scope="row">이메일</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplEmail }"></c:out>
|
<c:out value="${item.rpplEmail }"></c:out>
|
||||||
@ -377,7 +381,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>연락처</th>
|
<th scope="row">연락처</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${item.rpplPhone }"></c:out>
|
<c:out value="${item.rpplPhone }"></c:out>
|
||||||
@ -385,7 +389,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th>이메일 수신여부</th>
|
<th>이메일 수신여부</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
@ -414,7 +418,7 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<!-- //대리인 정보 -->
|
<!-- //대리인 정보 -->
|
||||||
@ -425,15 +429,15 @@
|
|||||||
<c:forEach var="resPDList" items="${rppList}" varStatus="status">
|
<c:forEach var="resPDList" items="${rppList}" varStatus="status">
|
||||||
<c:if test="${item.rpplSeq == resPDList.rpplRespddSeq}">
|
<c:if test="${item.rpplSeq == resPDList.rpplRespddSeq}">
|
||||||
<c:if test="${resPDList.rpplTy eq KccadrConstants.ADR_RPPL_TY_RES_DEPUTY}">
|
<c:if test="${resPDList.rpplTy eq KccadrConstants.ADR_RPPL_TY_RES_DEPUTY}">
|
||||||
<p class="tb_tit">피신청인 대리인 정보</p>
|
<p class="cont_tit02">피신청인 대리인 정보</p>
|
||||||
<table class="pop_tbType01">
|
<table class="popup_tbType01">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>본인과의 관계</th>
|
<th scope="row">본인과의 관계</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<kc:code codeId="CC006" code="${resPDList.rpplRelation}"/>
|
<kc:code codeId="CC006" code="${resPDList.rpplRelation}"/>
|
||||||
@ -444,7 +448,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>대리인 이름</th>
|
<th scope="row">대리인 이름</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${resPDList.rpplNm }"></c:out>
|
<c:out value="${resPDList.rpplNm }"></c:out>
|
||||||
@ -453,7 +457,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<c:if test="${not empty resPDList.rpplBizNm}">
|
<c:if test="${not empty resPDList.rpplBizNm}">
|
||||||
<tr>
|
<tr>
|
||||||
<th>피신청인 법인(개인사업자)명</th>
|
<th scope="row">피신청인 법인(개인사업자)명</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${resPDList.rpplBizNm }"></c:out>
|
<c:out value="${resPDList.rpplBizNm }"></c:out>
|
||||||
@ -462,7 +466,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</c:if>
|
</c:if>
|
||||||
<tr>
|
<tr>
|
||||||
<th>주소</th>
|
<th scope="row">주소</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${resPDList.rpplPost }) ${resPDList.rpplAddr } ${resPDList.rpplAddrDtl }"></c:out>
|
<c:out value="(${resPDList.rpplPost }) ${resPDList.rpplAddr } ${resPDList.rpplAddrDtl }"></c:out>
|
||||||
@ -470,7 +474,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>이메일</th>
|
<th scope="row">이메일</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${resPDList.rpplEmail }"></c:out>
|
<c:out value="${resPDList.rpplEmail }"></c:out>
|
||||||
@ -478,14 +482,14 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>연락처</th>
|
<th scope="row">연락처</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="${resPDList.rpplPhone }"></c:out>
|
<c:out value="${resPDList.rpplPhone }"></c:out>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th>이메일 수신여부</th>
|
<th>이메일 수신여부</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
@ -514,9 +518,9 @@
|
|||||||
</c:choose>
|
</c:choose>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
<tr>
|
<tr>
|
||||||
<th>대리신청서</th>
|
<th scope="row">대리신청서</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:forEach var="files" items="${reqfileList}" varStatus="status">
|
<c:forEach var="files" items="${reqfileList}" varStatus="status">
|
||||||
@ -533,14 +537,14 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<c:if test="${not empty resPDList.rpplRealPost }">
|
<c:if test="${not empty resPDList.rpplRealPost }">
|
||||||
<table class="pop_tbType01" style="margin-top: 20px;">
|
<table class="popup_tbType01" style="margin-top: 20px;">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width: 20%;">
|
<col style="width: 20%;">
|
||||||
<col style="width: auto;">
|
<col style="width: auto;">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>우편물 수령지</th>
|
<th scope="row">우편물 수령지</th>
|
||||||
<td>
|
<td>
|
||||||
<p>
|
<p>
|
||||||
<c:out value="(${resPDList.rpplRealPost }) ${resPDList.rpplRealAddr } ${resPDList.rpplRealAddrDtl }"></c:out>
|
<c:out value="(${resPDList.rpplRealPost }) ${resPDList.rpplRealAddr } ${resPDList.rpplRealAddrDtl }"></c:out>
|
||||||
@ -557,7 +561,7 @@
|
|||||||
</c:forEach>
|
</c:forEach>
|
||||||
<!-- //조정신청 내용 -->
|
<!-- //조정신청 내용 -->
|
||||||
<div class="btn_wrap btn_layout04">
|
<div class="btn_wrap btn_layout04">
|
||||||
<button type="button" class="btnType03" onclick="window.close()">닫기</button>
|
<button type="button" class="btnType02" onclick="window.close()">닫기</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -11,6 +11,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>조정진행</title>
|
<title>조정진행</title>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script src="/kccadrPb/usr/script/content.js"></script>
|
||||||
<script type="text/javaScript" language="javascript">
|
<script type="text/javaScript" language="javascript">
|
||||||
function fncGoAnsSubmit() {
|
function fncGoAnsSubmit() {
|
||||||
var linkForm = document.listForm;
|
var linkForm = document.listForm;
|
||||||
@ -203,6 +204,51 @@ resInfo--%>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- //step -->
|
<!-- //step -->
|
||||||
|
</div>
|
||||||
|
<div class="tab_cont on">
|
||||||
|
<div class="work_flow_wrap off">
|
||||||
|
<div class="work_tit">
|
||||||
|
<p>조정진행 워크플로우</p>
|
||||||
|
<button type="button" class="btn_open"><i></i></button>
|
||||||
|
</div>
|
||||||
|
<div class="work_cont">
|
||||||
|
<ul class="top_work">
|
||||||
|
<li class="status01"><p>조정신청 제출</p><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음"></li>
|
||||||
|
<li class="status02"><p>신청서 보완</p><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음"></li>
|
||||||
|
<li><p>조정비용납부</p><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음"></li>
|
||||||
|
<li><p>사건접수</p><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음"></li>
|
||||||
|
<li><p>조정부배정</p><img src="/kccadrPb/usr/image/workflow/nexticon2.png" alt="다음" style="top: 51px; right: 105px;"></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="work_2">
|
||||||
|
<li><p>기일확정</p><img src="/kccadrPb/usr/image/workflow/nexticon3.png" alt="다음" class="nexticon_3"></li>
|
||||||
|
<li>
|
||||||
|
<p>기일통지</p><img src="/kccadrPb/usr/image/workflow/nexticon3.png" alt="다음" class="nexticon_3"><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음" style="position: absolute;z-index: 1;top: 8px;left: 203px;">
|
||||||
|
<ul class="work_3">
|
||||||
|
<li><p>1차 기일 개최</p><img src="/kccadrPb/usr/image/workflow/nexticon3.png" alt="다음" class="nexticon_3"></li>
|
||||||
|
<li>
|
||||||
|
<p>2차 기일 개최<img src="/kccadrPb/usr/image/workflow/nexticon4.png" alt="다음" class="nexticon_4"></p><img src="/kccadrPb/usr/image/workflow/nexticon3.png" alt="다음" class="nexticon_3">
|
||||||
|
<ul class="work_4">
|
||||||
|
<li><p>조정성립</p></li>
|
||||||
|
<li><p>직권조정<img src="/kccadrPb/usr/image/workflow/nexticon5.png" alt="다음" class="nexticon_5"></p>
|
||||||
|
<ul class="work_5">
|
||||||
|
<li><p>이의신청</p></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><p>조정권고</p></li>
|
||||||
|
<li><p>쌍방수락여부 확인</p></li>
|
||||||
|
<li><p>불성립종결</p></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><p>3차 기일 개최</p><img src="/kccadrPb/usr/image/workflow/nexticon3.png" alt="다음" class="nexticon_3"></li>
|
||||||
|
<li><p>4차 기일 개최</p></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li style="position: absolute; top: 146px"><p>기일변경</p></li>
|
||||||
|
<li><p>변론서 및 답변서</p></li>
|
||||||
|
<li style="width: 450px;"><p>취하신청</p><img src="/kccadrPb/usr/image/workflow/nexticon1.png" alt="다음" style="position:absolute; left: 203px;"><p style="margin-left: 7px;">취하종결</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<c:if test="${not empty master.appDe}">
|
<c:if test="${not empty master.appDe}">
|
||||||
<div class="exp_date">
|
<div class="exp_date">
|
||||||
<i></i>
|
<i></i>
|
||||||
@ -212,6 +258,80 @@ resInfo--%>
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<table class="tbType01">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 250px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 250px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<p>신청인</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p>홍길동</p>
|
||||||
|
</td>
|
||||||
|
<th>
|
||||||
|
<p>대리인</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p>없음</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<p>피신청인1</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p>고길동</p>
|
||||||
|
</td>
|
||||||
|
<th>
|
||||||
|
<p>피신청인2</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p>고길동</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<table class="tbType01">
|
||||||
|
<caption>신청취지, 신청원인등의 정보제공</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 200px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">
|
||||||
|
<p>신청취지</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p>독도는 우리땅입니다.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">
|
||||||
|
<p>신청원인</p>
|
||||||
|
</th>
|
||||||
|
<td>
|
||||||
|
<p class="change_text_wrap close">아직도 넌 혼잔거니 물어오네요 난 그저 웃어요 사랑하고 있죠 사랑하는 사람 있어요 그대는 내가 안쓰러운 건가봐
|
||||||
|
좋은 사람있다면 한 번 만나보라 말하죠 그댄 모르죠 내게도 멋진 애인이 있다는 걸 너무 소중해 꼭 숨겨 두었죠
|
||||||
|
그 사람 나만 볼 수 있어요 내 눈에만 보여요 내 입술에 영원히 담아둘거야 가끔씩 차오르는 눈물만 알고 있죠 그 사람 그대라는 걸
|
||||||
|
나는 그 사람 갖고 싶지 않아요 욕심나지 않아요 그냥 사랑하고 싶어요 그댄 모르죠 내게도 멋진 애인이 있다는 걸 너무 소중해 꼭 숨겨 두었죠
|
||||||
|
그 사람 나만 볼 수 있어요 내 눈에만 보여요 내 입술에 영원히 담아둘거야 가끔씩 차오르는 눈물만 알고 있죠 그 사람 그대라는 걸
|
||||||
|
</p>
|
||||||
|
<button type="button" class="btn_all" title="내용 전체보기">더보기</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table class="tbType01">
|
<table class="tbType01">
|
||||||
<caption>신청인, 주소등의 정보제공</caption>
|
<caption>신청인, 주소등의 정보제공</caption>
|
||||||
|
|||||||
@ -19,40 +19,40 @@
|
|||||||
|
|
||||||
function fncDrtDetail(){
|
function fncDrtDetail(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_20;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_20}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstDrtDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstDrtDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function fncMediation(){
|
function fncMediation(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_60;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_60}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstMediationDecisionDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstMediationDecisionDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
function fncProtocol(){
|
function fncProtocol(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_40;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_40}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstProtocolDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstProtocolDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
function fncRecommendation(){
|
function fncRecommendation(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_30;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_30}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstRecommendationDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstRecommendationDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function fncCancleDetail(){
|
function fncCancleDetail(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_50;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_50}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstCancleDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstCancleDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function fncNoEstablishDetail(){
|
function fncNoEstablishDetail(){
|
||||||
var linkForm = document.linkForm ;
|
var linkForm = document.linkForm ;
|
||||||
linkForm.closeDocTy.value = KccadrConstants.ADR_CLOSE_DOC_TY_70;
|
linkForm.closeDocTy.value = "<c:out value='${KccadrConstants.ADR_CLOSE_DOC_TY_70}'/>";
|
||||||
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstNoEstablishmentDetail.do'/>";
|
linkForm.action = "<c:url value='/web/kccadr/adjcclt/adjstNoEstablishmentDetail.do'/>";
|
||||||
linkForm.submit();
|
linkForm.submit();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -357,7 +357,7 @@ $( document ).ready(function(){
|
|||||||
</tr>
|
</tr>
|
||||||
<tr scope="row" class="cop_num" usrTy="02" style="display:${list.rpplUsrTy eq '02' ? '' : 'none'}">
|
<tr scope="row" class="cop_num" usrTy="02" style="display:${list.rpplUsrTy eq '02' ? '' : 'none'}">
|
||||||
<th>
|
<th>
|
||||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
<!-- <p class="req_text"><span>필수입력 항목</span>*</p> -->
|
||||||
<p>법인등록번호</p>
|
<p>법인등록번호</p>
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@ -102,7 +102,7 @@
|
|||||||
, contentType: "application/json"
|
, contentType: "application/json"
|
||||||
, cache: false
|
, cache: false
|
||||||
, success: function (data) {
|
, success: function (data) {
|
||||||
alert('\''+rpplNm + '\' 피신청인은 '+data.message);
|
alert('\''+rpplNm + '\' 피신청인은 '+data.data);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
, error: function (e) { alert("조회에 실패하였습니다."); console.log("ERROR : ", e); }
|
, error: function (e) { alert("조회에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||||
|
|||||||
@ -231,6 +231,7 @@ function fn_adjstReq_preview() {
|
|||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
<p class="cf_text02">제출하신 신청서는 조정조사관이 서류미비시 도움을 드리겠습니다.</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- 하단 버튼 -->
|
<!-- 하단 버튼 -->
|
||||||
<div class="btn_wrap btn_layout03">
|
<div class="btn_wrap btn_layout03">
|
||||||
|
|||||||
@ -47,7 +47,7 @@ $(document).ready(function(){
|
|||||||
var exmpCd = $("#exmpCd").val();
|
var exmpCd = $("#exmpCd").val();
|
||||||
console.log(exmpCd.replace(/(^0+)/, ""));
|
console.log(exmpCd.replace(/(^0+)/, ""));
|
||||||
var perId = '#reqCn'+exmpCd.replace(/(^0+)/, "");
|
var perId = '#reqCn'+exmpCd.replace(/(^0+)/, "");
|
||||||
$(perId).text($('#exmpCn').text());
|
$(perId).val($('#exmpCn').text());
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -357,7 +357,7 @@ $( document ).ready(function(){
|
|||||||
</tr>
|
</tr>
|
||||||
<tr scope="row" class="cop_num" usrTy="02" style="display:${list.rpplUsrTy eq '02' ? '' : 'none'}">
|
<tr scope="row" class="cop_num" usrTy="02" style="display:${list.rpplUsrTy eq '02' ? '' : 'none'}">
|
||||||
<th>
|
<th>
|
||||||
<p class="req_text"><span>필수입력 항목</span>*</p>
|
<!-- <p class="req_text"><span>필수입력 항목</span>*</p> -->
|
||||||
<p>법인등록번호</p>
|
<p>법인등록번호</p>
|
||||||
</th>
|
</th>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
182
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/armDetail.jsp
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>조정권고안 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>조정권고안</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>조정권고안</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>조정권고안 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">권고일</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="rplyEndDeDay inp" title="검색시작일" id="rplyEndDeDay" name="rplyEndDeDay" value="<c:out value="${drtCtrVO.rplyEndDeDay }"></c:out>" data-datecontrol="true">
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="rplyEndDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="rplyEndDeDay-ifrm" name="rplyEndDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">신청의표시</th>
|
||||||
|
<th>신청취지</th>
|
||||||
|
<td>
|
||||||
|
<p>별지 조정신청 해당란 기재와 같다.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청원인</th>
|
||||||
|
<td>
|
||||||
|
<p>별지 조정신청 해당란 기재와 같다.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정조항</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<textarea name="closeCn1" id="closeCn1" cols="30" rows="2"><c:out value="${drtCtrVO.closeCn1 }"></c:out> </textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정위원</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memNames }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조사관</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrAdmNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table class="tbType02">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
등록일자
|
||||||
|
<!-- <button type="button" class="btn_sort">▲</button> -->
|
||||||
|
</th>
|
||||||
|
<th>의견 내용</th>
|
||||||
|
<th>조정위원</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${not empty list}">
|
||||||
|
<c:forEach var="item" items="${list}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>${item.frstRegistDay }</p>
|
||||||
|
</td>
|
||||||
|
<td class="tb_ctt">
|
||||||
|
<p>
|
||||||
|
<a href="#" onclick="cmtnPop ('<c:out value="${item.cmntSeq}" />')"> ${item.cmntCn } </a>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>${item.memName}</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="3">등록된 의견이 없습니다.</td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
195
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/certDocList.jsp
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>송달 서류 목록</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>송달 서류 목록</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>송달 서류 목록</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>송달 서류 목록</caption>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
목록 수정 필요
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">권고일</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="rplyEndDeDay inp" title="검색시작일" id="rplyEndDeDay" name="rplyEndDeDay" value="<c:out value="${drtCtrVO.rplyEndDeDay }"></c:out>" data-datecontrol="true">
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="rplyEndDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="rplyEndDeDay-ifrm" name="rplyEndDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">신청의표시</th>
|
||||||
|
<th>신청취지</th>
|
||||||
|
<td>
|
||||||
|
<p>별지 조정신청 해당란 기재와 같다.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청원인</th>
|
||||||
|
<td>
|
||||||
|
<p>별지 조정신청 해당란 기재와 같다.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정조항</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<textarea name="closeCn1" id="closeCn1" cols="30" rows="2"><c:out value="${drtCtrVO.closeCn1 }"></c:out> </textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정위원</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memNames }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조사관</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrAdmNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table class="tbType02">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 15%">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
등록일자
|
||||||
|
<!-- <button type="button" class="btn_sort">▲</button> -->
|
||||||
|
</th>
|
||||||
|
<th>의견 내용</th>
|
||||||
|
<th>조정위원</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${not empty list}">
|
||||||
|
<c:forEach var="item" items="${list}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>${item.frstRegistDay }</p>
|
||||||
|
</td>
|
||||||
|
<td class="tb_ctt">
|
||||||
|
<p>
|
||||||
|
<a href="#" onclick="cmtnPop ('<c:out value="${item.cmntSeq}" />')"> ${item.cmntCn } </a>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>${item.memName}</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<tr>
|
||||||
|
<td colspan="3">등록된 의견이 없습니다.</td>
|
||||||
|
</tr>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
253
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/cfrmDetail.jsp
Normal file
@ -0,0 +1,253 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>확정증명원 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
<script src="<c:url value='/js/kccadr/kakaojs/kakao.js' />"></script>
|
||||||
|
<script src="<c:url value='/js/kccadr/naverjs/naveridlogin_js_sdk_2.0.2.js' />"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>확정증명원</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>확정증명원</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>확정증명원 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">확정일자</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="rplyEndDeDay inp" title="검색시작일" id="rplyEndDeDay" name="rplyEndDeDay" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" value="<c:out value='${closeDocInfo.rplyEndDeDay}'/>" data-datecontrol="true" readonly>
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="rplyEndDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="rplyEndDeDay-ifrm" name="rplyEndDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">확정 증명 내용</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<c:out value="${closeDocInfo.closeCn1}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }" />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정위원</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memNames }" />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정조사관</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrAdmNm }" />
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- TEST CODE -->
|
||||||
|
<ul>
|
||||||
|
<li onclick="kakaoLogin();">
|
||||||
|
<a href="javascript:void(0)">
|
||||||
|
<span>카카오 로그인</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li onclick="kakaoLogout();">
|
||||||
|
<a href="javascript:void(0)">
|
||||||
|
<span>카카오 로그아웃</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<br><br><br><br><br><br>
|
||||||
|
|
||||||
|
<div class="login-area">
|
||||||
|
<div id="message">
|
||||||
|
로그인 버튼을 눌러 로그인 해주세요.
|
||||||
|
</div>
|
||||||
|
<div id="button_area">
|
||||||
|
<div id="naverIdLogin"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 카카오 스크립트 -->
|
||||||
|
<script>
|
||||||
|
Kakao.init('5a964d4a736ef47416f326a646bcfc5e'); //발급받은 키 중 javascript키를 사용해준다.
|
||||||
|
console.log(Kakao.isInitialized()); // sdk초기화여부판단
|
||||||
|
//카카오로그인
|
||||||
|
function kakaoLogin() {
|
||||||
|
Kakao.Auth.login({
|
||||||
|
success: function (response) {
|
||||||
|
Kakao.API.request({
|
||||||
|
url: '/v2/user/me',
|
||||||
|
success: function (response) {
|
||||||
|
console.log(response)
|
||||||
|
},
|
||||||
|
fail: function (error) {
|
||||||
|
console.log(error)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
|
fail: function (error) {
|
||||||
|
console.log(error)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//카카오로그아웃
|
||||||
|
function kakaoLogout() {
|
||||||
|
if (Kakao.Auth.getAccessToken()) {
|
||||||
|
Kakao.API.request({
|
||||||
|
url: '/v1/user/unlink',
|
||||||
|
success: function (response) {
|
||||||
|
console.log(response)
|
||||||
|
},
|
||||||
|
fail: function (error) {
|
||||||
|
console.log(error)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Kakao.Auth.setAccessToken(undefined)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const naverLogin = new naver.LoginWithNaverId(
|
||||||
|
{
|
||||||
|
clientId: "iMGwQvTUeD4tVwv41haJ",
|
||||||
|
callbackUrl: "http://localhost:8089/web/kccadr/certDoc/cfrmDetail.do",
|
||||||
|
loginButton: {color: "green", type: 2, height: 40}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
naverLogin.init(); // 로그인 설정
|
||||||
|
|
||||||
|
naverLogin.getLoginStatus(function (status) {
|
||||||
|
alert(status);
|
||||||
|
if (status) {
|
||||||
|
const email=naverLogin.user.getEmail();
|
||||||
|
const name=naverLogin.user.getName();
|
||||||
|
const mobile=naverLogin.user.getMobile();
|
||||||
|
|
||||||
|
//필수사항을 선택하지 않으면 선택창으로 돌아갑니다.
|
||||||
|
if(email===null||email===undefined ){
|
||||||
|
alert("이메일이 필요합니다. 정보제공을 동의해주세요.");
|
||||||
|
naverLogin.reprompt();
|
||||||
|
return ;
|
||||||
|
} else if(name===null||name===undefined ){
|
||||||
|
alert("이름이 필요합니다. 정보제공을 동의해주세요.");
|
||||||
|
naverLogin.reprompt();
|
||||||
|
return ;
|
||||||
|
} else if(mobile===null||mobile===undefined ){
|
||||||
|
alert("휴대폰번호가 필요합니다. 정보제공을 동의해주세요.");
|
||||||
|
naverLogin.reprompt();
|
||||||
|
return ;
|
||||||
|
} else{
|
||||||
|
setLoginStatus(); //모든 필수 정보 제공 동의하면 실행하는 함수
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const message_area=document.getElementById('message');
|
||||||
|
message_area.innerHTML=`
|
||||||
|
<h3> Login 성공 </h3>
|
||||||
|
<div>user email : ${naverLogin.user.email}</div>
|
||||||
|
<div>user name : ${naverLogin.user.name}</div>
|
||||||
|
<div>user mobile : ${naverLogin.user.mobile}</div>
|
||||||
|
`;
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(naverLogin);
|
||||||
|
|
||||||
|
function setLoginStatus(){
|
||||||
|
const button_area=document.getElementById('button_area');
|
||||||
|
button_area.innerHTML="<button id='btn_logout'>로그아웃</button>";
|
||||||
|
|
||||||
|
const logout=document.getElementById('btn_logout');
|
||||||
|
|
||||||
|
logout.addEventListener('click',(e)=>{
|
||||||
|
naverLogin.logout();
|
||||||
|
location.reload(true);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
113
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/crtDetail.jsp
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>불성립종결통보서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>불성립종결통보서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>불성립종결통보서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>불성립종결통보서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">신청내용</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.ccTyTx }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">제목</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
불성립 종결 통보
|
||||||
|
<%-- <c:out value="${info.appliCantNm }"></c:out> --%>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">수신</th>
|
||||||
|
<th>신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">이 유</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<textarea name="closeCn1" id="closeCn1" cols="30" rows="2"><c:out value="${info.closeCn1 }"/></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
123
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/dntDetail.jsp
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>기일통지서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="appSeq" name="appSeq" value="<c:out value="${info.appSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="assSeq0" name="assSeq0" value="<c:out value="${info.assSeq0 }"></c:out>" />
|
||||||
|
<input type="hidden" id="assSeq1" name="assSeq1" value="<c:out value="${info.assSeq1 }"></c:out>" />
|
||||||
|
<input type="hidden" id="assSeq2" name="assSeq2" value="<c:out value="${info.assSeq2 }"></c:out>" />
|
||||||
|
|
||||||
|
<input type="hidden" id="addUsrId0" name="addUsrId0" />
|
||||||
|
<input type="hidden" id="addUsrId1" name="addUsrId1" />
|
||||||
|
<input type="hidden" id="addUsrId2" name="addUsrId2" />
|
||||||
|
|
||||||
|
<input type="hidden" id="addChgYn0" name="addChgYn0" />
|
||||||
|
<input type="hidden" id="addChgYn1" name="addChgYn1" />
|
||||||
|
<input type="hidden" id="addChgYn2" name="addChgYn2" />
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>기일통지서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>기일통지서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>기일통지서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 210px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
<col style="width: 210px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>조 정 부</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memDeptNm }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>차 수</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.adrSn}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사 건</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.adrNo }"/>
|
||||||
|
</td>
|
||||||
|
<th>사건내용</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.ccTyTx }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청인</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.appliCantNm }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피신청인</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.resPonDentNm }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<c:if test="${dntVO.searchKeyword eq 'update' && date.appDeDay ne null}">
|
||||||
|
<tr>
|
||||||
|
<th>변경기일</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${date.appDeDay }"/>
|
||||||
|
|
||||||
|
<c:out value="${date.appDeTime }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:if>
|
||||||
|
<tr>
|
||||||
|
<th>조정기일</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.appDeDay }"/>
|
||||||
|
|
||||||
|
<c:out value="${info.appDeTime }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>장소</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<kc:code codeId="CC020" code="${info.appPlaceTy }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>주소</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<kc:code codeId="CC021" code="${info.appPlaceAddrTy }"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
193
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/drtCtrDetail.jsp
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>조정조서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>조정조서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>조정조서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>조정조서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 30%;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>조 정 부</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>차 수</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.adrSn}"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사 건</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</td>
|
||||||
|
<th>사건내용</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.ccTyTx }"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='10'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120" disabled>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
<br/>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
<th>대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='30'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120" disabled>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
<br/>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피신청인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='20'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120" disabled>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
<br/>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
<th>대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='40'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120" disabled>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정기일</th>
|
||||||
|
<td>
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="appDeDay inp" title="검색시작일" id="appDeDay" name="appDeDay" value="<c:out value="${info.apmAppDeDay }"></c:out>" data-datecontrol="true" onkeyup="setFormat('day',this)" maxlength="10" readonly>
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('appDeDay-lry','',this)" class="btn_cal" disabled></button>
|
||||||
|
<div id="appDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="appDeDay-ifrm" name="appDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="time_input" placeholder="11:00" id="appDeTime" name="appDeTime" value="<c:out value="${info.apmAppDeTime }"></c:out>" onkeyup="setFormat('time',this)" maxlength="8" readonly>
|
||||||
|
</td>
|
||||||
|
<th>공개여부</th>
|
||||||
|
<td>
|
||||||
|
<select name="openYn" id="openYn" class="wid_120" disabled>
|
||||||
|
<option value="N" <c:if test="${info.openYn=='N' }">selected="selected"</c:if> >비공개</option>
|
||||||
|
<option value="Y" <c:if test="${info.openYn=='Y' }">selected="selected"</c:if> >공개</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>장소</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<kc:select codeId="CC020" id="appPlaceTy" name="appPlaceTy" selectedValue="${info.apmAppPlaceTy }" script="onchange='fncShow()'; disabled='true';" />
|
||||||
|
<div id="appPlaceTyDiv" style="display: none;">
|
||||||
|
<button type="button" class="btnType01" onclick="fn_postCode(this);" disabled>주소검색</button>
|
||||||
|
<input type="hidden" id="appPlaceZipTx" name="appPlaceZipTx" class="adr_input" readonly>
|
||||||
|
<input type="text" id="appPlaceTx" name="appPlaceTx" class="searchResultAddr" size="40" value="<c:out value="${info.apmAppPlaceTx }"></c:out>" readonly>
|
||||||
|
<input type="text" class="dir_input" id="appPlaceDetailTx" name="appPlaceDetailTx" value="<c:out value="${info.apmAppPlaceDetailTx }"></c:out>" readonly>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정조항</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<textarea name="ctrCn" id="ctrCn" cols="30" rows="2"><c:out value="${drtCtrVO.ctrCn }" /></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정부장</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memName }" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정위원</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memNames }" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정조사관</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.adrAdmNm }" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
285
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/drtDetail.jsp
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>기일조서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>기일조서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>기일조서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>기일조서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 20%;">
|
||||||
|
<col style="width: 35%;">
|
||||||
|
<col style="width: 15%;">
|
||||||
|
<col style="width: 30%;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>조 정 부</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>차 수</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.adrSn}"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사 건</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</td>
|
||||||
|
<th>사건내용</th>
|
||||||
|
<td>
|
||||||
|
<c:out value="${info.ccTyTx }"></c:out>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">신청인</th>
|
||||||
|
<td rowspan="2">
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='10'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
<th>대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='30'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>참관대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ass.assUsrTy=='35' && ass.isAgnt eq 'Y'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.agntNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addAgntList" id="addAgntList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.agntSeq }|35|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.agntSeq }|35|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${ass.assUsrTy=='30' && ass.isAgnt eq 'N'}">
|
||||||
|
<button type="button" class="btnType01 btn_change" onclick="fncAddAgnt('${ass.addUsrId}')">참관대리인등록</button>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">피신청인</th>
|
||||||
|
<td rowspan="2">
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='20'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
<th>대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:if test="${ass.assUsrTy=='40'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.addUsrNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addUsrIdList" id="addUsrIdList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.addUsrId }|${ass.assUsrTy }|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>참관대리인</th>
|
||||||
|
<td>
|
||||||
|
<c:forEach var="ass" items="${assList}">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${ass.assUsrTy=='45' && ass.isAgnt eq 'Y'}">
|
||||||
|
<p>
|
||||||
|
<c:out value="${ass.agntNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
<select name="addAgntList" id="addAgntList" class="wid_120">
|
||||||
|
<option value="<c:out value="${ass.agntSeq }|45|Y|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='Y' }">selected="selected"</c:if>>출석</option>
|
||||||
|
<option value="<c:out value="${ass.agntSeq }|45|N|${ass.assSeq}"></c:out>" <c:if test="${ass.addYn=='N' }">selected="selected"</c:if>>불출석</option>
|
||||||
|
</select>
|
||||||
|
</c:when>
|
||||||
|
<c:when test="${ass.assUsrTy=='40' && ass.isAgnt eq 'N'}">
|
||||||
|
<button type="button" class="btnType01 btn_change" onclick="fncAddAgnt('${ass.addUsrId}')">참관대리인등록</button>
|
||||||
|
</c:when>
|
||||||
|
</c:choose>
|
||||||
|
</c:forEach>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정기일</th>
|
||||||
|
<td>
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="appDeDay inp" title="검색시작일" id="appDeDay" name="appDeDay" value="<c:out value="${info.apmAppDeDay }"></c:out>" data-datecontrol="true" onkeyup="setFormat('day',this)" maxlength="10">
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('appDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="appDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="appDeDay-ifrm" name="appDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="time_input" placeholder="11:00" id="appDeTime" name="appDeTime" value="<c:out value="${info.apmAppDeTime }"></c:out>" onkeyup="setFormat('time',this)" maxlength="8">
|
||||||
|
</td>
|
||||||
|
<th>공개여부</th>
|
||||||
|
<td>
|
||||||
|
<select name="openYn" id="openYn" class="wid_120">
|
||||||
|
<option value="N" <c:if test="${info.openYn=='N' }">selected="selected"</c:if> >비공개</option>
|
||||||
|
<option value="Y" <c:if test="${info.openYn=='Y' }">selected="selected"</c:if> >공개</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>장소</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<kc:select codeId="CC020" id="appPlaceTy" name="appPlaceTy" selectedValue="${info.apmAppPlaceTy }" script="onchange='fncShow()'" />
|
||||||
|
<div id="appPlaceTyDiv" style="display: none;">
|
||||||
|
<button type="button" class="btnType01" onclick="fn_postCode(this);">주소검색</button>
|
||||||
|
<input type="hidden" id="appPlaceZipTx" name="appPlaceZipTx" class="adr_input">
|
||||||
|
<input type="text" id="appPlaceTx" name="appPlaceTx" class="searchResultAddr" size="40" value="<c:out value="${info.apmAppPlaceTx }"></c:out>">
|
||||||
|
<input type="text" class="dir_input" id="appPlaceDetailTx" name="appPlaceDetailTx" value="<c:out value="${info.apmAppPlaceDetailTx }"></c:out>">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>기일결과</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<kc:select codeId="CC023" id="appResultTy" name="appResultTy" selectedValue="${info.appResultTy}" onChange="fncNextApp()" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="nextApp">
|
||||||
|
<th>다음 기일 지정 여부</th>
|
||||||
|
<td>
|
||||||
|
<div class="radio_wrap">
|
||||||
|
<span>
|
||||||
|
<input type="radio" id="nextAppDeY" name="nextAppDeYn" value="Y" <c:if test="${info.nextAppDeYn=='Y' }">checked="checked"</c:if> onclick="fncCheckNextYn()">
|
||||||
|
<label for="nextAppDeY">필요</label>
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
<input type="radio" id="nextAppDeN" name="nextAppDeYn" value="N" <c:if test="${info.nextAppDeYn=='N' }">checked="checked"</c:if> onclick="fncCheckNextYn()">
|
||||||
|
<label for="nextAppDeN">필요없음</label>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr id="nextAppDeRow">
|
||||||
|
<th>고지된 다음기일</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="nextAppDeDay inp" title="검색시작일" id="nextAppDeDay" name="nextAppDeDay" data-datecontrol="true" value="<c:out value="${info.nextAppDeDay }" />" onkeyup="setFormat('day',this)" maxlength="10">
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('nextAppDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="nextAppDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="nextAppDeDay-ifrm" name="nextAppDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="time_input" placeholder="11:00:00" id="nextAppDeTime" name="nextAppDeTime" value="<c:out value="${info.nextAppDeTime }" />" onkeyup="setFormat('time',this)" maxlength="8">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조서내용</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<textarea name="prtclCn" id="prtclCn" cols="30" rows="2"><c:out value="${info.prtclCn }" /></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정부장</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memName }" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<%-- <tr>
|
||||||
|
<th>조정위원</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.memNames }" />
|
||||||
|
</td>
|
||||||
|
</tr> --%>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>조정위원1</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="text" size="30" id="addUsrNm0" value="${uiwonInfo.addUsrNm0 }" readonly="readonly" />
|
||||||
|
<c:if test="${!empty uiwonInfo.addUsrNm0}">
|
||||||
|
<button type="button" class="btnType01 btn_overlap" onclick="srcAss(0)">대석</button>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정위원2</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="text" size="30" id="addUsrNm1" value="${uiwonInfo.addUsrNm1 }" readonly="readonly" />
|
||||||
|
<c:if test="${!empty uiwonInfo.addUsrNm1}">
|
||||||
|
<button type="button" class="btnType01 btn_overlap" onclick="srcAss(1)">대석</button>
|
||||||
|
</c:if>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th>조정조사관</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<c:out value="${info.adrAdmNm }" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
113
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/entDetail.jsp
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>취하종결통보서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>취하종결통보서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>취하종결통보서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>취하종결통보서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: 120px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">신청내용</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.ccTyTx }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">제목</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
취하 종결 통보
|
||||||
|
<%-- <c:out value="${info.appliCantNm }"></c:out> --%>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th rowspan="2">수신</th>
|
||||||
|
<th>신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">이 유</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<textarea name="closeCn1" id="closeCn1" cols="30" rows="2"><c:out value="${info.closeCn1}"></c:out> </textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2">조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
171
src/main/webapp/WEB-INF/jsp/web/kccadr/certDoc/oadDetail.jsp
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
<%@ 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"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<title>직권조정결정서 상세</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
|
<script type="text/javaScript" language="javascript">
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="createForm" name="createForm" commandName="adjstChangeDateVO" onsubmit="return false;">
|
||||||
|
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq }"></c:out>" />
|
||||||
|
<input type="hidden" id="adrSn" name="adrSn" value="<c:out value="${info.adrSn }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDocTy" name="closeDocTy" value="<c:out value="${info.closeDocTy }"></c:out>" />
|
||||||
|
<input type="hidden" id="closeDoc" name="closeDoc" value="<c:out value="${info.closeDoc }"></c:out>" />
|
||||||
|
<input type="hidden" id="memSeq" name="memSeq" value=""/>
|
||||||
|
<!-- cont -->
|
||||||
|
<div class="cont_wrap sub02_1" id="sub">
|
||||||
|
<div class="inner">
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>직권조정결정서</h2>
|
||||||
|
</div>
|
||||||
|
<div class="tb_wrap">
|
||||||
|
<div class="tb_top">
|
||||||
|
<p>직권조정결정서</p>
|
||||||
|
</div>
|
||||||
|
<table class="tbType01 tb_offeree">
|
||||||
|
<caption>직권조정결정서 정보</caption>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 160px;">
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>조정부</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memDeptNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>사건</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.adrNo }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.appliCantNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>피신청인</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.resPonDentNm }"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>결정일</th>
|
||||||
|
<td>
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="rplyEndDeDay inp" title="검색시작일" id="rplyEndDeDay" name="rplyEndDeDay" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" value="<c:out value="${drtCtrVO.rplyEndDeDay }"></c:out>" data-datecontrol="true" readonly>
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('rplyEndDeDay-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="rplyEndDeDay-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="rplyEndDeDay-ifrm" name="rplyEndDeDay-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>송달완료일</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.recDe}"></c:out>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>이의신청기한</th>
|
||||||
|
<td>
|
||||||
|
<div class="sel_date">
|
||||||
|
<input type="text" class="adrOjctDe inp" title="검색시작일" id="adrOjctDe" name="adrOjctDe" onclick="return calendarOpen('adrOjctDe-lry','',this)" value="<c:out value="${drtCtrVO.adrOjctDe }"></c:out>" data-datecontrol="true" readonly>
|
||||||
|
<div class="calendar_in" id="calendarName_startDate" style="z-index: 9;">
|
||||||
|
<button type="button" value="달력 팝업 열기" onclick="return calendarOpen('adrOjctDe-lry','',this)" class="btn_cal"></button>
|
||||||
|
<div id="adrOjctDe-lry" class="calendarPop" style="display: none;">
|
||||||
|
<iframe id="adrOjctDe-ifrm" name="adrOjctDe-ifrm" class="calendar-frame" src="/kccadrPb/adm/calendar.html" title=" 달력 팝업" frameborder="0" scrolling="no"></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>주문</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<%-- <input type="text" name="closeCn3" id="closeCn3" value="<c:out value="${drtCtrVO.closeCn3 }"></c:out>" size="70"> --%>
|
||||||
|
<textarea name="closeCn3" id="closeCn3" cols="30" rows="3"><c:out value="${drtCtrVO.closeCn3}"/></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>신청취지</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<%-- <input type="text" name="closeCn2" id="closeCn2" value="<c:out value="${drtCtrVO.closeCn2 }"></c:out>" size="70"> --%>
|
||||||
|
<textarea name="closeCn2" id="closeCn2" cols="30" rows="3"><c:out value="${drtCtrVO.closeCn2 }"/></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>이유</th>
|
||||||
|
<td class="td_cause">
|
||||||
|
<textarea name="closeCn1" id="closeCn1" cols="30" rows="2"><c:out value="${drtCtrVO.closeCn1 }"></c:out> </textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>조정부장</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${info.memName }" />
|
||||||
|
<c:forEach var="cmnList" items="${cmnList}" varStatus="status">
|
||||||
|
<c:if test="${info.memSeq eq cmnList.memSeq}">
|
||||||
|
<button type="button" class="btnType01 btn_change" onclick="fncCmnDetail('<c:out value="${cmnList.memSeq}"/>')">의견정보</button>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<%-- 조정위원 이름 split 처리 --%>
|
||||||
|
<c:set var="memNmList" value="${fn:split(info.memNames, ', ')}"/>
|
||||||
|
|
||||||
|
<%-- 조정위원 일련번호 split 처리 --%>
|
||||||
|
<c:set var="memSeqsList" value="${fn:split(info.memSeqs, ', ')}"/>
|
||||||
|
<c:forEach var="memNm" items="${memNmList}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<th>조정위원</th>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
|
<c:out value="${memNm}" />
|
||||||
|
<%-- 현재 선택된 조정위원에 해당하는 일련번호 변수 저장 --%>
|
||||||
|
<c:set var="memSeqNo" value="${memSeqsList[status.index]}"/>
|
||||||
|
<c:forEach var="cmnList" items="${cmnList}" varStatus="status">
|
||||||
|
<c:if test="${memSeqNo eq cmnList.memSeq}">
|
||||||
|
<button type="button" class="btnType01 btn_change" onclick="fncCmnDetail('<c:out value="${cmnList.memSeq}"/>')">의견정보</button>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //cont -->
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
src/main/webapp/WEB-INF/lib/InnorixJAVA-v9.2-r1450.jar
Normal file
BIN
src/main/webapp/WEB-INF/lib/JSON-java.jar
Normal file
BIN
src/main/webapp/WEB-INF/lib/commons-codec-1.4.jar
Normal file
BIN
src/main/webapp/WEB-INF/lib/commons-compress-1.1.jar
Normal file
48
src/main/webapp/innorix/exam/autoAddFiles.html
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl',
|
||||||
|
installUrl: '../install/install.html',
|
||||||
|
uploadUrl: './upload.jsp'
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function addFiles() {
|
||||||
|
var fileArray = new Array();
|
||||||
|
// 자동으로 추가할 사용자측 파일목록 구성
|
||||||
|
var fileObj = new Object();
|
||||||
|
fileObj.filePath = "c:\\windows\\notepad.exe",
|
||||||
|
fileObj.fileSize = "246784",
|
||||||
|
|
||||||
|
fileArray.push(fileObj);
|
||||||
|
|
||||||
|
control.addFiles(fileArray); // 리스트 컨트롤에 파일 추가
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일 자동추가" onclick="addFiles();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
src/main/webapp/innorix/exam/combine.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../innorix.css">
<script src="../innorix.js"></script>
<script>
var control = new Object();
window.onload = function() {
// 파일전송 컨트롤 생성
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
transferMode: 'both', // 업로드, 다운로드 혼합사용
installUrl: '../install/install.html', // Agent 설치 페이지
uploadUrl: './upload.jsp' // 업로드 URL
});
// 업로드 완료 이벤트
control.on('uploadComplete', function (p) {
alert("업로드가 완료 되었습니다.\n다운로드 가능하게 재구성 합니다.");
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
var fileArray = new Array();
var f = p.files;
for (var i = 0; i < f.length; i++ ) {
var fileObj = new Object();
fileObj.printFileName = f[i].clientFileName;
fileObj.fileSize = f[i].fileSize;
fileObj.downloadUrl = urlBase + "download.jsp?fileName=" + f[i].serverFileName;
fileArray.push(fileObj);
}
console.log(fileArray);
control.removeAllFiles(); // 리스트 컨트롤에서 파일을 삭제
control.presetDownloadFiles(fileArray); // 다운로드 목록을 구성
});
};
</script>
</head>
<body>
<a href="../index.html">← 예제 목록</a><br /><br />
<div id="fileControl"></div><br/>
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
<input type="button" value="업로드" onclick="control.upload();"/> |
<input type="button" value="선택파일 다운로드" onclick="control.downloadSelectedFiles();"/>
<input type="button" value="전체 다운로드" onclick="control.download();"/>
</body>
</html>
|
||||||
BIN
src/main/webapp/innorix/exam/data/다수 피신청인 오류.JPG
Normal file
|
After Width: | Height: | Size: 19 KiB |
53
src/main/webapp/innorix/exam/download.html
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html' // Agent 설치 페이지
|
||||||
|
});
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function getFileCount(){
|
||||||
|
var fileCount = control.getFileCount();
|
||||||
|
alert("allFileCount" + "\n" + fileCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
<input type="button" value="getFileCount" onClick="getFileCount();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
140
src/main/webapp/innorix/exam/download.jsp
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixDownload" %>
|
||||||
|
<%@ page import="java.io.*" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String saveDir = delimiterReplace(request.getRealPath(request.getServletPath()));
|
||||||
|
String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
filePath
|
||||||
|
파일이 저장된 스토리지 전체경로
|
||||||
|
디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용
|
||||||
|
윈도우 - C:/storage/path1/path2/data
|
||||||
|
유닉스 - /storage/path1/path2/data
|
||||||
|
*/
|
||||||
|
|
||||||
|
// downloadType : "stream" 설정시 자동 전달되는 GET Param 값
|
||||||
|
String szStartOffset = request.getParameter("_StartOffset");
|
||||||
|
String szEndOffset = request.getParameter("_EndOffset");
|
||||||
|
|
||||||
|
// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식
|
||||||
|
String fileID = request.getParameter("fileID");
|
||||||
|
String fileName = request.getParameter("fileName");
|
||||||
|
String sysFileName = new String();
|
||||||
|
String orgFileName = new String();
|
||||||
|
|
||||||
|
if (fileID != null) {
|
||||||
|
if (fileID.equals("1")) {
|
||||||
|
sysFileName = "sample-file.pdf"; // 시스템 저장 파일명
|
||||||
|
orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("2")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP Brochure.pdf";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("3")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP パンフレット.pdf";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileName != null) {
|
||||||
|
sysFileName = "data/" + fileName;
|
||||||
|
orgFileName = "data/" + fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일명 깨짐대응 문자열 인코딩 처리
|
||||||
|
orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
|
||||||
|
File file = new File(filePath + sysFileName);
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Accept-Ranges", "bytes");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\"");
|
||||||
|
|
||||||
|
long startOffset = 0;
|
||||||
|
long endOffset = 0;
|
||||||
|
|
||||||
|
if (szStartOffset != null) {
|
||||||
|
startOffset = Long.parseLong(szStartOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szEndOffset != null) {
|
||||||
|
endOffset = Long.parseLong(szEndOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
long contentLength = 0;
|
||||||
|
|
||||||
|
if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시
|
||||||
|
contentLength = endOffset - startOffset + 1;
|
||||||
|
} else { // html 일반 다운로드 요청시
|
||||||
|
contentLength = file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setHeader("Content-Length", "" + contentLength);
|
||||||
|
|
||||||
|
byte b[] = new byte[8192];
|
||||||
|
BufferedInputStream input = null;
|
||||||
|
BufferedOutputStream output = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
input = new BufferedInputStream(new FileInputStream(file));
|
||||||
|
output = new BufferedOutputStream(response.getOutputStream());
|
||||||
|
|
||||||
|
int read = 0;
|
||||||
|
|
||||||
|
if (startOffset != 0) {
|
||||||
|
long n = input.skip(startOffset);
|
||||||
|
if (n == -1) read = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contentLength > 0) {
|
||||||
|
while (contentLength > 0) {
|
||||||
|
if(contentLength < 8192) {
|
||||||
|
b = new byte[(int)contentLength];
|
||||||
|
}
|
||||||
|
|
||||||
|
read = input.read(b);
|
||||||
|
|
||||||
|
if(read == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.write(b, 0, read);
|
||||||
|
contentLength = contentLength - read;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("fileID \t: " + fileID);
|
||||||
|
System.out.println("sysFilePath \t: " + filePath + sysFileName);
|
||||||
|
System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8"));
|
||||||
|
System.out.println("totalLength \t: " + file.length() );
|
||||||
|
System.out.println("startOffset \t: " + startOffset);
|
||||||
|
System.out.println("endOffset \t: " + endOffset);
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if(output != null) {
|
||||||
|
output.flush();
|
||||||
|
output.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(input != null) {
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
private String delimiterReplace(String fullDir)
|
||||||
|
{
|
||||||
|
String ret1 = fullDir.replaceAll("\\\\+", "/");
|
||||||
|
String ret2 = ret1.replaceAll("\\/+", "/");
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
%>
|
||||||
121
src/main/webapp/innorix/exam/downloadCustomTable.html
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<style>
|
||||||
|
button { font-size:9pt; }
|
||||||
|
table.fileTable {
|
||||||
|
width: 500px;
|
||||||
|
font-size: 9pt;
|
||||||
|
color: #333333;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
table.fileTable th {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
background-color: #dedede;
|
||||||
|
}
|
||||||
|
table.fileTable td {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
#fileTable tr > .fileInfo { display:none; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
var control = new Object(); // 파일전송 컨트롤
|
||||||
|
|
||||||
|
innoJquery(document).ready(function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html' // Agent 설치 페이지
|
||||||
|
});
|
||||||
|
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
for (var i=1; i<4; i++) {
|
||||||
|
var _filePath = urlBase + "download.jsp?fileID=" + i;
|
||||||
|
var _fileSize = 1433885;
|
||||||
|
var _fileType = "normal";
|
||||||
|
|
||||||
|
var fileName = i + ". INNORIX WP 소개서.pdf";
|
||||||
|
var fileSize = bytesToSize(_fileSize);
|
||||||
|
var fileType = "일반";
|
||||||
|
|
||||||
|
// 다운로드 파일 목록을 커스텀 테이블에 추가
|
||||||
|
innoJquery('#fileTable > tbody:last').append(' \
|
||||||
|
<tr class="fileTable"> \
|
||||||
|
<td class="fileInfo">' + _filePath + '</td> \
|
||||||
|
<td class="fileInfo">' + _fileSize + '</td> \
|
||||||
|
<td class="fileInfo">' + _fileType + '</td> \
|
||||||
|
<td>' + fileName + '</td> \
|
||||||
|
<td>' + fileSize + '</td> \
|
||||||
|
<td>' + fileType + '</td> \
|
||||||
|
</tr> \
|
||||||
|
');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일 사이즈 bytes 를 KB, MB... 형식으로 변환
|
||||||
|
function bytesToSize(bytes) {
|
||||||
|
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
||||||
|
if (bytes == 0) return 'n/a';
|
||||||
|
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
|
||||||
|
if (i == 0) return bytes + ' ' + sizes[i];
|
||||||
|
return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 커스텀 테이블 파일 정보를 확인
|
||||||
|
function getTableFiles() {
|
||||||
|
var tbl = innoJquery('#fileTable tr:has(td)').map(function(i, v) {
|
||||||
|
var innoJquerytd = innoJquery('td', this);
|
||||||
|
return {
|
||||||
|
downloadUrl: innoJquerytd.eq(0).text(),
|
||||||
|
fileSize: Number(innoJquerytd.eq(1).text()),
|
||||||
|
printFileName: innoJquerytd.eq(3).text()
|
||||||
|
}
|
||||||
|
}).get();
|
||||||
|
|
||||||
|
return tbl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 다운로드 실행
|
||||||
|
function download(obj, type) {
|
||||||
|
control.removeAllFiles(); // 이전에 컨트롤에 담겨진 파일정보 모두 삭제
|
||||||
|
var data = getTableFiles(); // 커스텀 테이블로부터 파일 다운로드 정보 얻어옴
|
||||||
|
control.presetDownloadFiles(data); // 커스텀 테이블의 파일정보를 컨트롤에 추가
|
||||||
|
setTimeout(function(){ control.download(); }, 500);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<table id="fileTable" class="fileTable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="fileInfo">filePath</th>
|
||||||
|
<th class="fileInfo">fileSize</th>
|
||||||
|
<th class="fileInfo">fileType</th>
|
||||||
|
<th>파일명</th>
|
||||||
|
<th>용량</th>
|
||||||
|
<th>구분</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div id="fileControl" style="display:none"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="모든파일 다운로드" onclick="download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
61
src/main/webapp/innorix/exam/downloadMulti.html
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control1 = new Object();
|
||||||
|
var control2 = new Object();
|
||||||
|
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control1 = innorix.create({
|
||||||
|
el: '#fileControl1',
|
||||||
|
installUrl: '../install/install.html' // Agent 설치 페이지
|
||||||
|
});
|
||||||
|
|
||||||
|
control2 = innorix.create({
|
||||||
|
el: '#fileControl2',
|
||||||
|
installUrl: '../install/install.html'
|
||||||
|
});
|
||||||
|
|
||||||
|
control1.on('loadComplete', function (p) {
|
||||||
|
control1.presetDownloadFiles([{
|
||||||
|
printFileName: "INNORIX WEB PAGES 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WEB PAGES Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
control2.on('loadComplete', function (p) {
|
||||||
|
control2.presetDownloadFiles([{
|
||||||
|
printFileName: "INNORIX WEB PAGES パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl1"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control1.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control1.download();"/><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl2"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control2.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control2.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
49
src/main/webapp/innorix/exam/dropZone.html
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
window.onload = function() {
|
||||||
|
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 특정 html 객체를 파일추가용 DropZone 으로 활성
|
||||||
|
innoJquery("#dropZone").on({
|
||||||
|
"dragenter": function(innoJqueryevt) {
|
||||||
|
control.setDropZone(innoJqueryevt, this);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<table id="dropZone" style="width:555px; height:150px; border: 1px solid green">
|
||||||
|
<tr><td align="center">Drop files and folders here</td></tr>
|
||||||
|
</table><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
src/main/webapp/innorix/exam/edit.html
Normal file
1
src/main/webapp/innorix/exam/html5Combine.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../innorix.css">
<script src="../innorix.js"></script>
<script>
var control = new Object();
window.onload = function() {
// 파일전송 컨트롤 생성
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
transferMode: 'both', // 업로드, 다운로드 혼합사용
agent: false, // true = Agent 설치, false = html5 모드 사용
installUrl: '../install/install.html', // Agent 설치 페이지
uploadUrl: './upload.jsp' // 업로드 URL
});
// 업로드 완료 이벤트
control.on('uploadComplete', function (p) {
alert("업로드가 완료 되었습니다.\n다운로드 가능하게 재구성 합니다.");
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
var fileArray = new Array();
var f = p.files;
for (var i = 0; i < f.length; i++ ) {
var fileObj = new Object();
fileObj.printFileName = f[i].clientFileName;
fileObj.fileSize = f[i].fileSize;
fileObj.downloadUrl = urlBase + "download.jsp?fileName=" + f[i].serverFileName;
fileArray.push(fileObj);
}
control.removeAllFiles(); // 파일을 삭제
control.presetDownloadFiles(fileArray); // 다운로드 목록을 구성
});
};
</script>
</head>
<body>
<a href="../index.html">← 예제 목록</a><br /><br />
<div id="fileControl"></div><br/>
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
<input type="button" value="업로드" onclick="control.upload();"/> |
<input type="button" value="선택파일 다운로드" onclick="control.downloadSelectedFiles();"/>
<input type="button" value="전체 다운로드" onclick="control.download();"/>
</body>
</html>
|
||||||
47
src/main/webapp/innorix/exam/html5Download.html
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
agent: false, // true = Agent 설치, false = html5 모드 사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
});
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
37
src/main/webapp/innorix/exam/html5Upload.html
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
agent: false, // true = Agent 설치, false = html5 모드 사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1
src/main/webapp/innorix/exam/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<script>location.href="../index.html";</script>
|
||||||
78
src/main/webapp/innorix/exam/installCheck.html
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 강제 html5 모드여부 확인
|
||||||
|
var useHtml5 = !!(getCookie("forceHtml5Mode"));
|
||||||
|
|
||||||
|
// agent 설치 URL
|
||||||
|
var installUrl = "../install/install.html?redirect="+ encodeURIComponent("http://innorix.com");
|
||||||
|
|
||||||
|
// 강제 html5 모드가 아니면
|
||||||
|
|
||||||
|
if (useHtml5 != true) {
|
||||||
|
// agent 설치 또는 버전체크
|
||||||
|
innorix.checkVersion(function (result) {
|
||||||
|
if (result != true) {
|
||||||
|
location.href = installUrl;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: installUrl,
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function getCookie( name ) {
|
||||||
|
var nameOfCookie = name + "=", endOfCookie, x = 0;
|
||||||
|
|
||||||
|
while ( x <= document.cookie.length ) {
|
||||||
|
var y = (x+nameOfCookie.length);
|
||||||
|
if ( document.cookie.substring( x, y ) == nameOfCookie ) {
|
||||||
|
if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
|
||||||
|
endOfCookie = document.cookie.length;
|
||||||
|
return unescape( document.cookie.substring( y, endOfCookie ) );
|
||||||
|
}
|
||||||
|
x = document.cookie.indexOf( " ", x ) + 1;
|
||||||
|
if ( x === 0 )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function setCookie( name, value, expiredays ) {
|
||||||
|
var todayDate = new Date();
|
||||||
|
todayDate.setDate( todayDate.getDate() + expiredays);
|
||||||
|
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";" ;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
<input type="button" value="forceHtml5Mode 쿠키삭제" onclick="setCookie('forceHtml5Mode', false, 0);"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
53
src/main/webapp/innorix/exam/postParam.html
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function upload() {
|
||||||
|
var postObj = new Object();
|
||||||
|
postObj.type = "t31",
|
||||||
|
postObj.part = "p25"
|
||||||
|
|
||||||
|
/*
|
||||||
|
postObj =
|
||||||
|
{
|
||||||
|
type : "t31",
|
||||||
|
part : "p25",
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
|
||||||
|
control.upload(); // 업로드 시작
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
18
src/main/webapp/innorix/exam/result.jsp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<%
|
||||||
|
request.setCharacterEncoding("UTF-8");
|
||||||
|
java.util.Enumeration names = request.getParameterNames();
|
||||||
|
|
||||||
|
while (names.hasMoreElements()) {
|
||||||
|
String name = (String)names.nextElement();
|
||||||
|
String values[] = request.getParameterValues(name);
|
||||||
|
|
||||||
|
if (values != null) {
|
||||||
|
for (int i=0; i< values.length; i++) {
|
||||||
|
System.out.println ( i + ". " + name + " = " + values[i]);
|
||||||
|
out.println ( i + ". " + name + " = " + values[i] + "<br />");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
40
src/main/webapp/innorix/exam/retrySet.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
retryCount: 1, // 전송 쓰레드 내부 재시도 횟수
|
||||||
|
retryDelay: 1, // 전송 쓰레드 내부 지연시간 second
|
||||||
|
maximumErrorCount: 3, // 전송창에 예외 3회 발생시 resume 모드로 전환 사용자가 버튼 클릭시 재시도
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
src/main/webapp/innorix/exam/sample-file.pdf
Normal file
51
src/main/webapp/innorix/exam/upload.html
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<!-- <link rel="stylesheet" href="../innorix.css"> -->
|
||||||
|
<link rel="stylesheet" href="/innorix/innorix.css">
|
||||||
|
<!-- <script src="../innorix.js"></script> -->
|
||||||
|
<script src="/innorix/innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '/innorix/install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: '/innorix/exam/upload_test_220916.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
67
src/main/webapp/innorix/exam/upload.jsp
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가
|
||||||
|
if (request.getMethod().equals("POST"))
|
||||||
|
{
|
||||||
|
String directory = InnorixUpload.getServletAbsolutePath(request);
|
||||||
|
directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data";
|
||||||
|
int maxPostSize = 2147482624; // bytes
|
||||||
|
|
||||||
|
InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory);
|
||||||
|
|
||||||
|
/*
|
||||||
|
전달되는 _action Param 정보
|
||||||
|
speedCheck : 전송속도 측정
|
||||||
|
getServerInfo : 서버정보 확인
|
||||||
|
getFileInfo : 파일정보 확인
|
||||||
|
attachFile : 파일전송 진행
|
||||||
|
attachFileCompleted : 파일전송 완료
|
||||||
|
*/
|
||||||
|
|
||||||
|
String _action = uploader.getParameter("_action"); // 동작 플래그
|
||||||
|
String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명
|
||||||
|
String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명
|
||||||
|
String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈
|
||||||
|
String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점
|
||||||
|
String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점
|
||||||
|
String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로
|
||||||
|
String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID
|
||||||
|
String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1
|
||||||
|
String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2
|
||||||
|
String _transferId = uploader.getParameter("_transferId"); // TransferId
|
||||||
|
String _run_retval = uploader.run();
|
||||||
|
|
||||||
|
// 개별파일 업로드 완료
|
||||||
|
if (uploader.isUploadDone()) {
|
||||||
|
/*
|
||||||
|
System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename);
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename);
|
||||||
|
System.out.println("_filesize \t = " + _filesize);
|
||||||
|
System.out.println("_filepath \t = " + _filepath);
|
||||||
|
System.out.println("_el \t = " + _el);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_action \t = " + _action);
|
||||||
|
System.out.println("_run_retval \t = " + _run_retval);
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename);
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename);
|
||||||
|
System.out.println("_filesize \t = " + _filesize);
|
||||||
|
System.out.println("_start_offset \t = " + _start_offset);
|
||||||
|
System.out.println("_end_offset \t = " + _end_offset);
|
||||||
|
System.out.println("_filepath \t = " + _filepath);
|
||||||
|
System.out.println("_el \t = " + _el);
|
||||||
|
System.out.println("_type \t = " + _type);
|
||||||
|
System.out.println("_part \t = " + _part);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CORS 관련 헤더 추가
|
||||||
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
|
||||||
|
response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");
|
||||||
|
%>
|
||||||
164
src/main/webapp/innorix/exam/uploadCustomTable.html
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<style>
|
||||||
|
button { font-size:9pt; }
|
||||||
|
table.fileTable {
|
||||||
|
width: 500px;
|
||||||
|
font-size: 9pt;
|
||||||
|
color: #333333;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
table.fileTable th {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
background-color: #dedede;
|
||||||
|
}
|
||||||
|
table.fileTable td {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 8px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #c0c0c0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
#fileTable tr > .fileInfo { display:none; }
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
var control = new Object(); // 파일전송 컨트롤
|
||||||
|
var tableRowInsert = true; // 파일 추가시 커스텀 테이블에 정보전달 여부
|
||||||
|
|
||||||
|
innoJquery(document).ready(function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
innoJquery("#dropZone").on({ // 외부 HTML 객체 DropZone 활성
|
||||||
|
"dragenter": function(innoJqueryevt) {
|
||||||
|
control.setDropZone(innoJqueryevt, this); // DropZone 으로 지정
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일을 추가후 발생 이벤트
|
||||||
|
control.on('afterAddFiles', function (p) {
|
||||||
|
|
||||||
|
// 커스텀 테이블 사용하는 경우 선택된 파일정보 전달
|
||||||
|
if (tableRowInsert == true) {
|
||||||
|
for (var i = 0; i < p.length; i++ ) {
|
||||||
|
|
||||||
|
var _filePath = p[i].filePath;
|
||||||
|
var _fileSize = p[i].fileSize;
|
||||||
|
var _fileID = p[i].id;
|
||||||
|
var _fileType = "normal";
|
||||||
|
|
||||||
|
var arr = (_filePath.replace(/\\/gi,"/")).split("/");
|
||||||
|
var fileName = arr[arr.length-1];
|
||||||
|
var fileSize = bytesToSize(_fileSize);
|
||||||
|
var fileType = "일반";
|
||||||
|
|
||||||
|
if (_fileSize > 104857600) {
|
||||||
|
var _fileType = "large";
|
||||||
|
var fileType = "대용량";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 선택된 파일을 커스텀 테이블에 추가
|
||||||
|
innoJquery('#fileTable > tbody:last').append(' \
|
||||||
|
<tr class="fileTable"> \
|
||||||
|
<td class="fileInfo">' + _filePath + '</td> \
|
||||||
|
<td class="fileInfo">' + _fileSize + '</td> \
|
||||||
|
<td class="fileInfo">' + _fileType + '</td> \
|
||||||
|
<td>' + fileName + '</td> \
|
||||||
|
<td>' + fileSize + '</td> \
|
||||||
|
<td>' + fileType + '</td> \
|
||||||
|
<td><input type="button" value="삭제" onClick="deleteRow(this,\'' + _fileID + '\')"/></td> \
|
||||||
|
</tr> \
|
||||||
|
');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일 사이즈 bytes 를 KB, MB... 형식으로 변환
|
||||||
|
function bytesToSize(bytes) {
|
||||||
|
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
|
||||||
|
if (bytes == 0) return 'n/a';
|
||||||
|
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
|
||||||
|
if (i == 0) return bytes + ' ' + sizes[i];
|
||||||
|
return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 커스텀 테이블 행 삭제
|
||||||
|
function deleteRow(obj, fileID) {
|
||||||
|
var row = obj.parentNode.parentNode;
|
||||||
|
row.parentNode.removeChild(row);
|
||||||
|
control.removeFileById(fileID);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 커스텀 테이블 파일 정보를 확인
|
||||||
|
function getTableFiles() {
|
||||||
|
var tbl = innoJquery('#fileTable tr:has(td)').map(function(i, v) {
|
||||||
|
var innoJquerytd = innoJquery('td', this);
|
||||||
|
var type = innoJquerytd.eq(2).text();
|
||||||
|
if (type == "large") {
|
||||||
|
var uploadUrl = control.option.uploadUrl + "?type=large";
|
||||||
|
} else {
|
||||||
|
var uploadUrl = control.option.uploadUrl + "?type=normal";
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
basePath: "",
|
||||||
|
filePath: innoJquerytd.eq(0).text(),
|
||||||
|
fileSize: Number(innoJquerytd.eq(1).text()),
|
||||||
|
fileType: innoJquerytd.eq(2).text(),
|
||||||
|
uploadUrl: uploadUrl
|
||||||
|
}
|
||||||
|
}).get();
|
||||||
|
|
||||||
|
return tbl;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
<div id="dropZone" style="overflow:auto; width:500px; height:200px; border: 1px solid #c0c0c0;">
|
||||||
|
<table id="fileTable" class="fileTable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="fileInfo">filePath</th>
|
||||||
|
<th class="fileInfo">fileSize</th>
|
||||||
|
<th class="fileInfo">fileType</th>
|
||||||
|
<th>파일명</th>
|
||||||
|
<th>용량</th>
|
||||||
|
<th>구분</th>
|
||||||
|
<th>삭제</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="fileControl" style="display:none"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
84
src/main/webapp/innorix/exam/uploadMulti.html
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control1 = new Object(); // 파일전송 컨트롤 1
|
||||||
|
var control2 = new Object(); // 파일전송 컨트롤 2
|
||||||
|
var control3 = new Object(); // 파일전송 컨트롤 3
|
||||||
|
|
||||||
|
function uploadAll() {
|
||||||
|
control3.addFiles(control1.getAllFiles());
|
||||||
|
control3.addFiles(control2.getAllFiles());
|
||||||
|
control3.upload();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control1 = innorix.create({
|
||||||
|
el: '#fileControll', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp?el=fileControll'
|
||||||
|
});
|
||||||
|
|
||||||
|
control2 = innorix.create({
|
||||||
|
el: '#fileControl2',
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp?el=fileControl2'
|
||||||
|
});
|
||||||
|
|
||||||
|
control3 = innorix.create({
|
||||||
|
el: '#fileControl3',
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp'
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control1.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
|
||||||
|
control2.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
|
||||||
|
control3.on('uploadComplete', function (p) {
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
<div id="fileControll"></div><br />
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control1.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control1.upload();" /><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl2"></div><br />
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control2.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control2.upload();" /><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl3" style="display:none"></div>
|
||||||
|
|
||||||
|
<input type="button" value="전체 업로드" onclick="uploadAll();" />
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
52
src/main/webapp/innorix/exam/upload_test_220916.html
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<!-- <link rel="stylesheet" href="../innorix.css"> -->
|
||||||
|
<link rel="stylesheet" href="/innorix/innorix.css">
|
||||||
|
<!-- <script src="../innorix.js"></script> -->
|
||||||
|
<script src="/innorix/innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '/innorix/install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: '/innorix/exam/upload_test_220916.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
innoJquery('form#f_write').submit();
|
||||||
|
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
67
src/main/webapp/innorix/exam/upload_test_220916.jsp
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가
|
||||||
|
if (request.getMethod().equals("POST"))
|
||||||
|
{
|
||||||
|
String directory = InnorixUpload.getServletAbsolutePath(request);
|
||||||
|
directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data";
|
||||||
|
int maxPostSize = 2147482624; // bytes
|
||||||
|
|
||||||
|
InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory);
|
||||||
|
|
||||||
|
/*
|
||||||
|
전달되는 _action Param 정보
|
||||||
|
speedCheck : 전송속도 측정
|
||||||
|
getServerInfo : 서버정보 확인
|
||||||
|
getFileInfo : 파일정보 확인
|
||||||
|
attachFile : 파일전송 진행
|
||||||
|
attachFileCompleted : 파일전송 완료
|
||||||
|
*/
|
||||||
|
|
||||||
|
String _action = uploader.getParameter("_action"); // 동작 플래그
|
||||||
|
String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명
|
||||||
|
String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명
|
||||||
|
String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈
|
||||||
|
String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점
|
||||||
|
String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점
|
||||||
|
String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로
|
||||||
|
String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID
|
||||||
|
String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1
|
||||||
|
String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2
|
||||||
|
String _transferId = uploader.getParameter("_transferId"); // TransferId
|
||||||
|
String _run_retval = uploader.run();
|
||||||
|
|
||||||
|
// 개별파일 업로드 완료
|
||||||
|
if (uploader.isUploadDone()) {
|
||||||
|
/*
|
||||||
|
System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename);
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename);
|
||||||
|
System.out.println("_filesize \t = " + _filesize);
|
||||||
|
System.out.println("_filepath \t = " + _filepath);
|
||||||
|
System.out.println("_el \t = " + _el);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_action \t = " + _action);
|
||||||
|
System.out.println("_run_retval \t = " + _run_retval);
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename);
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename);
|
||||||
|
System.out.println("_filesize \t = " + _filesize);
|
||||||
|
System.out.println("_start_offset \t = " + _start_offset);
|
||||||
|
System.out.println("_end_offset \t = " + _end_offset);
|
||||||
|
System.out.println("_filepath \t = " + _filepath);
|
||||||
|
System.out.println("_el \t = " + _el);
|
||||||
|
System.out.println("_type \t = " + _type);
|
||||||
|
System.out.println("_part \t = " + _part);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CORS 관련 헤더 추가
|
||||||
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
|
||||||
|
response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");
|
||||||
|
%>
|
||||||
397
src/main/webapp/innorix/gnIndex.html
Normal file
@ -0,0 +1,397 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=yes">
|
||||||
|
<meta name="author" content="(주)지엔기술">
|
||||||
|
<title>GNIT 이노릭스 샘플 목록</title>
|
||||||
|
<link rel="shortcut icon" href="./gnexam/img/favicon.ico" />
|
||||||
|
<link rel="stylesheet" href="./gnexam/css/gnit.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header id="header">
|
||||||
|
<h1><img src="./gnexam/img/gnlogo.png">INNORIX SAMPLE LIST</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<div class="cont-wrap">
|
||||||
|
<div class="notice-wrap">
|
||||||
|
<table class="notice-tb">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:50%">
|
||||||
|
<col style="width:50%">
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th colspan="2" class="notice-txt"><p>이노릭스는 사용하고 계시는 모드별로 제공되는 기능이 다릅니다. 샘플 비고란을 참고해주세요.</p></th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div class="notice notice-a">
|
||||||
|
<p><img src="./gnexam/img/agent.png"> Agent 모드 </p>
|
||||||
|
<span>사용자 PC에 exe파일로 설치되며, 제공되는 기능이 더 많습니다. (agent : true)</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="notice notice-h">
|
||||||
|
<p><img src="./gnexam/img/html5.png"> Html5 모드 </p>
|
||||||
|
<span>무설치형으로 파일전송을 이용하며, 제약되는 기능이 있습니다. (agent : false)</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="origin-exam"><a href="./index.html">이노릭스제공 기본예제로 이동</a></p>
|
||||||
|
<div class="table-wrap">
|
||||||
|
<table class="list-tb">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:60px">
|
||||||
|
<col style="width:auto">
|
||||||
|
<col style="width:15%">
|
||||||
|
<col style="width:15%">
|
||||||
|
</colgroup>
|
||||||
|
<tr>
|
||||||
|
<th>No</th>
|
||||||
|
<th>기능설명</th>
|
||||||
|
<th>샘플</th>
|
||||||
|
<th>비고</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>커스텀 포스트데이터 전송(클라이언트→서버)</p>
|
||||||
|
<span class="refer">클라이언트메소트 setPostData, setFilePostDataByIndex를 이용한 포스트 데이터 전송</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/postData.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 시 커스텀 벨류 전송(서버→클라이언트)</p>
|
||||||
|
<span class="refer">서버메소드 setCustomValue를 이용한 커스텀 벨류 전송</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadCustomValue.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 시 커스텀 에러 전송(서버→클라이언트)</p>
|
||||||
|
<span class="refer">InnorixCustomError 커스텀 에러 전송</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadCustomError.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 시 서버 저장경로 변경</p>
|
||||||
|
<span class="refer">서버메소드 setDirectory를 이용한 서버 저장경로 지정</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadSetDirectory.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 시 서버 저장파일명 변경</p>
|
||||||
|
<span class="refer">서버메소드 setFileName를 이용한 저장파일명 변경</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/changeFileName.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 서버경로 숨김 처리</p>
|
||||||
|
<span class="refer">서버메소드 setHideServerPathInfo를 이용한 서버경로 숨김 처리</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/hideServerPathInfo.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>업로드 파일 확장자 제한, 그룹화</p>
|
||||||
|
<span class="refer">allowExtension, limitExtension 옵션 활용법</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadExtension.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>파일첨부 에러 시 메세지 출력(382이상 버전)</p>
|
||||||
|
<span class="refer">addFileError이벤트를 이용한 에러 메세지 출력</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadAddFileError.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>파일첨부 에러 시 메세지 출력(373이하 버전)</p>
|
||||||
|
<span class="refer">addFileError이벤트를 이용한 에러 메세지 출력</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadAddFileError_old.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>다운로드 시 커스텀 에러 전송(서버→클라이언트)</p>
|
||||||
|
<span class="refer">downloadCustomError 에러코드, 에러메시지 설정</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/downloadCustomError.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>다운로드 이중 무결성</p>
|
||||||
|
<span class="refer">다운로드 간 파일 해시 값을 이용한 이중 무결성 체크 예제</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/downloadIntegrity.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>다운로드 요청 간격 설정</p>
|
||||||
|
<span class="refer">downloadDelay옵션이용 ms단위 다운로드 딜레이 설정</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/downloadDelay.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>압축(.zip)하여 파일 다운로드</p>
|
||||||
|
<span class="refer">파일 다운로드 시 파일을 압축하여 다운로드</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/zipCombine.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>설정된 드랍존 영역을 확인하는 방법</p>
|
||||||
|
<span class="refer">isDebugDropZone옵션을 활용한 드랍존 영역 표시</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/debugDropZone.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>출력 언어 설정(한글/영어)</p>
|
||||||
|
<span class="refer">영어 메시지를 기본으로 출력하며 설정을 한글로 변경</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/setLanguage.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>에이전트 설치 시 팝업창으로 출력</p>
|
||||||
|
<span class="refer">installPopupWindow옵션활용 설치페이지 팝업창으로 출력</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/installPopup.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>삭제한 파일정보를 서버에 출력</p>
|
||||||
|
<span class="refer">파일추가 후 업로드 전 삭제된 파일에대한 정보출력</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/deleteFileInfo.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>전송 조각 사이즈변경, 세션 개수 설정</p>
|
||||||
|
<span class="refer">기본 조각 사이즈 2MB, 세션 16개가 적용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/sliceSizeSession.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>오류 시 전송 시도 횟수</p>
|
||||||
|
<span class="refer">retryCount, retryDelay, maximumErrorCount 옵션활용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/errorRetryCount.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>다운로드목록 구성 시 파일사이즈를 가상의사이즈로 지정 (Agent 모드)</p>
|
||||||
|
<span class="refer">isTempFileSize 옵션을 활용한 가상파일 사이즈 선언</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/isTempFileSize.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>다운로드목록 구성 시 파일사이즈를 가상의사이즈로 지정 (Html5 모드)</p>
|
||||||
|
<span class="refer">skipFileSizeCheck 옵션을 활용한 파일 사이즈 체크 건너 뜀용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/skipFileSizeCheck.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>폴더구조 업로드, 다운로드</p>
|
||||||
|
<span class="refer">folderIntact, showFolderItems 옵션활용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/upDownFolder.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>리스트 전송창 모드에서 파일별 전송상태 출력</p>
|
||||||
|
<span class="refer">showTransferFileStatus 옵션활용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/showTransferFileStatus.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>파일 아이템 이동, 삭제 기능버튼 출력</p>
|
||||||
|
<span class="refer">useFuncBtn 옵션활용</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/useFuncBtn.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!--
|
||||||
|
미사용
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>커스텀테이블을 이용한 선택파일 다운로드</p>
|
||||||
|
<span class="refer"></span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/downloadSelectedFileCustomTable.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>커스텀테이블을 이용한 업로드 폴더 구조 나타내기</p>
|
||||||
|
<span class="refer">설명부분</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/uploadFolderCustomTable.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td class="ta_l">
|
||||||
|
<p>색상 변경 샘플</p>
|
||||||
|
<span class="refer">페이지 컨셉에 맞는 색상으로 변경 (커스텀)</span>
|
||||||
|
</td>
|
||||||
|
<td><a class="exam-link" href="./gnexam/upload.html">샘플보기</a></td>
|
||||||
|
<td>
|
||||||
|
<img src="./gnexam/img/agent.png">
|
||||||
|
<img src="./gnexam/img/html5.png">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
-->
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="notice notice-pdf">
|
||||||
|
<p><img src="./gnexam/img/pdf.png">이노릭스 참고 문서</p>
|
||||||
|
<span><a href="../INNORIX Platform WP v9.2 Manual.pdf" target="_blank">INNORIX Platform WP v9.2 Manual.pdf</a></span>
|
||||||
|
<span><a href="../이노릭스 에이전트 오동작 조치 매뉴얼.pdf" target="_blank">이노릭스 에이전트 오동작 조치 매뉴얼.pdf</a></span>
|
||||||
|
<span><a href="../INNORIX-WP-JSP-빠른설치-R2.pdf" target="_blank">INNORIX-WP-JSP-빠른설치-R2.pdf</a></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><!-- //.section -->
|
||||||
|
|
||||||
|
<footer id="footer">
|
||||||
|
<p>추가 문의사항은 <em>innorix@gnit.co.kr</em>로 보내주시길 바랍니다.</p>
|
||||||
|
<span class="top_btn" onclick="window.scrollTo(0,0);">TOP</span>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
89
src/main/webapp/innorix/gnexam/agentImageUpload.html
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko');
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'upload', // 업로드, 다운로드 혼합사용
|
||||||
|
agent : true,
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
allowExtension : ["png", "jpg", "jpeg"],
|
||||||
|
showPreviewImage: true, // 이미지 미리보기
|
||||||
|
uploadUrl: './upload.jsp', // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
//innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일 선택 시
|
||||||
|
control.on('onSelectRows', function (p) {
|
||||||
|
console.log(p);
|
||||||
|
console.log('---------------------------');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function imageUpload(){
|
||||||
|
control.appendThumbnailProperty("ALL", 200, 200, "VERTICAL");
|
||||||
|
control.appendWatermarkProperty("ALL", "innorix_logo.png", "CENTER|BOTTOM");
|
||||||
|
|
||||||
|
control.upload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
이미지 미리보기
|
||||||
|
- 옵션 : showPreviewImage: true
|
||||||
|
|
||||||
|
- 썸네일 생성(리사이징) : control.appendThumbnailProperty((1), (2), (3), (4));
|
||||||
|
(1) 리사이징을 진행할 원본 이미지 인덱스 Number를 입력해주시거나 ALL을 입력받습니다.
|
||||||
|
ex: control.appendThumnailProperty(1, 300, 300, "VERTICAL");
|
||||||
|
(2) 가로 픽셀 사이즈 (Number)
|
||||||
|
(3) 세로 픽셀 사이즈 (Number)
|
||||||
|
(4) 리사이징을 진행할 가로세로 기준
|
||||||
|
VERTICAL : 세로축 기준 리사이징
|
||||||
|
HORIZONTAL : 가로축 기준 리사이징
|
||||||
|
FIX : 설정한 사이즈에 맞게 리사이징(비율무시)
|
||||||
|
|
||||||
|
- 워터마크 추가 : control.appendWatermarkProperty((1), (2), (3));
|
||||||
|
(1) 워터마크를 적용할 원본 파일 인덱스 Number를 입력해주시거나 ALL을 입력받습니다.
|
||||||
|
ex : control.appendWatermarkProperty(2, "innorix_logo.png", "LEFT|MIDDLE")
|
||||||
|
(2) 워터마크 이미지 URL
|
||||||
|
(3) 워터마크를 적용할 위치 ("횡축|종축") ("가로|세로")
|
||||||
|
가로 기준 위치 : "LEFT" / "RIGHT" / "CENTER"
|
||||||
|
세로 기준 위치 : "TOP" / "BOTTOM" / "MIDDLE"
|
||||||
|
*/
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="resultImg.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="imageUpload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
55
src/main/webapp/innorix/gnexam/changeFileName.html
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
allowExtension: 'jpg', //jpg 확장자만 첨부 허용
|
||||||
|
uploadUrl: './changeFileName.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
console.log('실제 저장된 파일명 : '+f[i].serverFileName);
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
//innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일 첨부시 에러
|
||||||
|
control.on('addFileError', function (p) {
|
||||||
|
alert(p[0].message + "\n jpg 파일만 등록해주세요.");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
69
src/main/webapp/innorix/gnexam/changeFileName.jsp
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
<%@ page import="java.util.UUID" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가
|
||||||
|
if ("POST".equals(request.getMethod()))
|
||||||
|
{
|
||||||
|
String directory = InnorixUpload.getServletAbsolutePath(request);
|
||||||
|
directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data";
|
||||||
|
int maxPostSize = 2147482624; // bytes
|
||||||
|
|
||||||
|
InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory);
|
||||||
|
|
||||||
|
/*
|
||||||
|
전달되는 _action Param 정보
|
||||||
|
speedCheck : 전송속도 측정
|
||||||
|
getServerInfo : 서버정보 확인
|
||||||
|
getFileInfo : 파일정보 확인
|
||||||
|
attachFile : 파일전송 진행
|
||||||
|
attachFileCompleted : 파일전송 완료
|
||||||
|
*/
|
||||||
|
|
||||||
|
String _action = uploader.getParameter("_action"); // 동작 플래그
|
||||||
|
String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명
|
||||||
|
String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명
|
||||||
|
String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈
|
||||||
|
String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점
|
||||||
|
String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점
|
||||||
|
String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로
|
||||||
|
String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID
|
||||||
|
String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1
|
||||||
|
String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2
|
||||||
|
String _transferId = uploader.getParameter("_transferId"); // TransferId
|
||||||
|
|
||||||
|
|
||||||
|
// 파일정보 확인
|
||||||
|
if("getFileInfo".equals(_action)) {
|
||||||
|
/*
|
||||||
|
업로드 시 서버에 저장되는 파일 명 변경 (해당 예제는 랜덥값으로 서버에 저장되는 파일명을 설정)
|
||||||
|
- uploader.setFileName(파일명+확장자);
|
||||||
|
- 확장자 변경 시 파일은 열리지 않게 됩니다.
|
||||||
|
- upload.run()전에 위치
|
||||||
|
*/
|
||||||
|
String saveNm = UUID.randomUUID()+".jpg";
|
||||||
|
uploader.setFileName(saveNm);
|
||||||
|
}
|
||||||
|
|
||||||
|
String _run_retval = uploader.run();
|
||||||
|
|
||||||
|
// 개별파일 업로드 완료
|
||||||
|
if("attachFileCompleted".equals(_action)) {
|
||||||
|
/*
|
||||||
|
System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename);
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename);
|
||||||
|
System.out.println("_filesize \t = " + _filesize);
|
||||||
|
System.out.println("_filepath \t = " + _filepath);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// CORS 관련 헤더 추가
|
||||||
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
|
||||||
|
response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");
|
||||||
|
%>
|
||||||
1
src/main/webapp/innorix/gnexam/combine.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../innorix.css">
<script src="../innorix.js"></script>
<script>
var control = new Object();
window.onload = function() {
// 파일전송 컨트롤 생성
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
transferMode: 'both', // 업로드, 다운로드 혼합사용
installUrl: '../install/install.html', // Agent 설치 페이지
uploadUrl: './upload.jsp' // 업로드 URL
});
// 업로드 완료 이벤트
control.on('uploadComplete', function (p) {
alert("업로드가 완료 되었습니다.\n다운로드 가능하게 재구성 합니다.");
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
var fileArray = new Array();
var f = p.files;
for (var i = 0; i < f.length; i++ ) {
var fileObj = new Object();
fileObj.printFileName = f[i].clientFileName;
fileObj.fileSize = f[i].fileSize;
fileObj.downloadUrl = urlBase + "download.jsp?fileName=" + f[i].serverFileName;
fileArray.push(fileObj);
}
console.log(fileArray);
control.removeAllFiles(); // 리스트 컨트롤에서 파일을 삭제
control.presetDownloadFiles(fileArray); // 다운로드 목록을 구성
});
};
</script>
</head>
<body>
<a href="../index.html">← 예제 목록</a><br /><br />
<div id="fileControl"></div><br/>
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
<input type="button" value="업로드" onclick="control.upload();"/> |
<input type="button" value="선택파일 다운로드" onclick="control.downloadSelectedFiles();"/>
<input type="button" value="전체 다운로드" onclick="control.download();"/>
</body>
</html>
|
||||||
1
src/main/webapp/innorix/gnexam/combineTest.html
Normal file
88
src/main/webapp/innorix/gnexam/css/gnit.css
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
@charset "utf-8";
|
||||||
|
/* RESET CSS */
|
||||||
|
html, body, div, span, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, address, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, dl, dt, dd, menu, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
main, menu, nav, output, ruby, section, summary{font-family: 'NanumBarunGothic',sans-serif !important;margin: 0;padding: 0;border: 0;font: inherit;vertical-align: baseline;}
|
||||||
|
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section {display: block;}
|
||||||
|
body {line-height: 1;}
|
||||||
|
menu, ol, ul, li {list-style: none;}
|
||||||
|
table {border-collapse: collapse;border-spacing: 0;}
|
||||||
|
a {color: #333;text-decoration: none;cursor: pointer;font-size:inherit;}
|
||||||
|
em {color: #73b644; font-weight: bold;}
|
||||||
|
i {font-style: italic;display: inline;}
|
||||||
|
|
||||||
|
.clear {clear: both;display: block;height: 0;overflow: hidden;visibility: hidden;width: 0;}
|
||||||
|
|
||||||
|
|
||||||
|
/* GNIT SAMPLE CSS */
|
||||||
|
html, body{min-width: 900px;}
|
||||||
|
#header{width: 100%; height: 70px; background-color: #73b644; border-bottom: 2px solid #539426; box-sizing: border-box; text-align: center;}
|
||||||
|
#header img{display: inline-block; height: 40px; padding:15px 20px; vertical-align: middle;}
|
||||||
|
#header h1{display: inline-block; font-size: 22px; color: #fff; font-weight: bold;}
|
||||||
|
|
||||||
|
#footer{width: 100%; height: 70px; background-color: #eff4e5; box-sizing: border-box; padding: 45px 0; border-top: 1px solid #539426;}
|
||||||
|
#footer p{color: #333; text-align: center;}
|
||||||
|
#footer .top_btn{
|
||||||
|
display: block; width: 50px; height: 50px;
|
||||||
|
background:url('../img/top_btn.jpg') 0 0 no-repeat; text-indent: -99999px;
|
||||||
|
position: fixed; bottom: 40px; right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section{width: 100%; height: auto; background-color: #fdfdfd;}
|
||||||
|
.section .cont-wrap{width: 100%; padding: 40px; box-sizing: border-box; max-width: 1300px; margin:0 auto;}
|
||||||
|
|
||||||
|
.notice-tb{width: 100%; table-layout: fixed;}
|
||||||
|
.notice-tb th, .notice-tb td{padding: 15px 30px;}
|
||||||
|
.notice-wrap{padding-bottom: 20px; box-sizing: border-box;}
|
||||||
|
.notice-txt p{font-size: 18px; color:#2b3a58;}
|
||||||
|
.notice-txt p::before{
|
||||||
|
content: ""; display: inline-block; width: 60px; height: 50px;
|
||||||
|
vertical-align: middle; background: url(../img/notice.png) no-repeat; background-size: contain;
|
||||||
|
}
|
||||||
|
.notice{padding-bottom: 20px; }
|
||||||
|
.notice p{padding-bottom: 8px; font-size: 16px; font-weight: bold;}
|
||||||
|
.notice img{width: 24px; vertical-align: text-bottom; padding-right: 5px;}
|
||||||
|
.notice span{font-size: 15px; display: block; padding: 5px;}
|
||||||
|
.notice span::before{content: "-"; display: inline-block; width: 14px;}
|
||||||
|
.notice-a p{color: #005DA6;}
|
||||||
|
.notice-h p{color: #fb843f;}
|
||||||
|
|
||||||
|
.notice-pdf img{width: 20px; padding: 0 10px 0 2px;}
|
||||||
|
.notice-pdf p{color: #444;}
|
||||||
|
.notice-pdf a:hover{text-decoration: underline; color: #0f6fb9;}
|
||||||
|
|
||||||
|
.origin-exam{font-size: 14px; color: #666; text-align: right;}
|
||||||
|
.origin-exam a:hover{text-decoration: underline; color: #0f6fb9;}
|
||||||
|
|
||||||
|
/* (공통)목록 table */
|
||||||
|
.list-tb{counter-reset: tr 0;}
|
||||||
|
.list-tb tr td:first-child::before{counter-increment: tr 1; content:counter(tr) '';}
|
||||||
|
.list-tb{width: 100%; table-layout: fixed; border-top: 2px solid #539426; margin: 20px 0 50px; font-size: 15px;}
|
||||||
|
.list-tb th, .list-tb td{border-right: 1px solid #cecece; text-align: center; padding:12px 18px; line-height: 24px; vertical-align:middle; background-color: #fff; word-break:break-all;}
|
||||||
|
.list-tb th:last-child, .list-tb td:last-child{border:none;}
|
||||||
|
.list-tb th{background-color: #eff4e5; font-size: 16px; color: #333; font-weight: bold;}
|
||||||
|
.list-tb td.ta_l{text-align: left;}
|
||||||
|
.list-tb td.ta_r{text-align: right;}
|
||||||
|
.list-tb td p{font-size: 16px;}
|
||||||
|
.list-tb td > img{width: 24px; padding: 0 5px; vertical-align: middle;}
|
||||||
|
.list-tb td a:hover{ text-decoration:underline;}
|
||||||
|
.list-tb tr{border-bottom: 1px solid #cecece;}
|
||||||
|
.list-tb tr:last-child{border-bottom: 2px solid #2b3a58;}
|
||||||
|
|
||||||
|
.refer{color: #999; font-size: 14px;}
|
||||||
|
|
||||||
|
.exam-link{border-radius: 5px; }
|
||||||
|
.exam-link::before{content: ""; display: inline-block; width: 22px; height: 18px;
|
||||||
|
vertical-align: middle; background: url(../img/code.png) no-repeat; background-size: contain;}
|
||||||
|
.exam-link:hover{color: #0f6fb9;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../innorix.css">
<script src="../innorix.js"></script>
<script>
var control = new Object();
window.onload = function() {
// 파일전송 컨트롤 생성
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
installUrl: '../install/install.html' // Agent 설치 페이지
});
control.on('loadComplete', function (p) { // 다운로드 파일 추가
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
control.presetDownloadFiles(
[{
printFileName: "INNORIX WP 브로셔.pdf",
fileSize: 1433885,
downloadUrl: urlBase + "download.jsp?fileID=1"
},
{
printFileName: "INNORIX WP Brochure.pdf",
fileSize: 1433885,
downloadUrl: urlBase + "download.jsp?fileID=2"
},
{
printFileName: "INNORIX WP パンフレット.pdf",
fileSize: 1433885,
downloadUrl: urlBase + "download.jsp?fileID=3"
}]);
});
// 더블클릭 시
control.on('onDblClickRows', function (file) {
control.downloadAndOpen(file); // 다운로드 완료 후 파일 열기
});
/*
downloadAndOpen (※ Agent 모드 전용 옵션)
- 다운로드 되는 경로 C:\Users\{사용자}\AppData(숨김폴더)\Local\Temp\{난수}
- n개를 선택 후 downloadAndOpen 실행 시 선택한 파일들 중 인덱스 숫자가 큰 파일이 열리게 됩니다.
*/
// 다운로드 완료
control.on('downloadComplete', function (p) {
console.log('download done');
});
};
</script>
</head>
<body>
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
<div id="fileControl"></div><br/>
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
<input type="button" value="전체 다운로드" onclick="control.download();"/>
<input type="button" value="n개선택 후 downloadAndOpen" onclick="control.downloadAndOpen();"/>
</body>
</html>
|
||||||
57
src/main/webapp/innorix/gnexam/debugDropZone.html
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './upload.jsp', // 업로드 URL
|
||||||
|
|
||||||
|
isDebugDropZone: true //드랍존 영역 표시
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
isDebugDropZone (※ Agent 모드 전용 옵션)
|
||||||
|
- true (파일을 드랍존으로 드래그하면 드랍존이 검은색으로 표시)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
<p>설정된 드랍존 영역을 확인하는 방법 - 파일을 드래그하여 드랍존 영역을 확인할 수 있습니다.<p>
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
71
src/main/webapp/innorix/gnexam/deleteFileInfo.html
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="http://code.jquery.com/jquery-latest.min.js" charset="UTF-8"></script>
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
var fileArray = new Array();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
uploadUrl: './upload.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
|
||||||
|
$('#f_write').submit(); // deleteServer.jsp로 넘어가 삭제된 파일정보가 보여집니다.
|
||||||
|
|
||||||
|
/*innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
innoJquery('form#f_write').submit();*/
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 선택삭제
|
||||||
|
function deleteTest(){
|
||||||
|
var fileInfo = control.getSelectedFiles(); //선택된파일 정보
|
||||||
|
var arrId = new Array();
|
||||||
|
var arrName = new Array();
|
||||||
|
var arrSize = new Array();
|
||||||
|
for(var i=0; i<fileInfo.length; i++){
|
||||||
|
arrId.push(fileInfo[i].id);
|
||||||
|
arrName.push(fileInfo[i].printFileName);
|
||||||
|
arrSize.push(fileInfo[i].fileSize);
|
||||||
|
$('#f_write').append('<input type="hidden" name="_innorix_deleted_id" id="_innorix_deleted_id" value=\'' + arrId[i] + '\' />');
|
||||||
|
$('#f_write').append('<input type="hidden" name="_innorix_deleted_name" id="_innorix_deleted_name" value=\'' + arrName[i] + '\' />');
|
||||||
|
$('#f_write').append('<input type="hidden" name="_innorix_deleted_size" id="_innorix_deleted_size" value=\'' + arrSize[i] + '\' />');
|
||||||
|
}
|
||||||
|
control.removeSelectedFiles(); //선택된파일삭제
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
<p>삭제한 파일정보를 서버에 출력 - 삭제한 파일정보를 확인할 수 있습니다. 선택삭제 후 업로드를 진행해주세요.</p>
|
||||||
|
|
||||||
|
<form action="./deleteServer.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
<input type="button" value="선택삭제" onclick="deleteTest();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
19
src/main/webapp/innorix/gnexam/deleteServer.jsp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
<%@page import="java.io.File" %>
|
||||||
|
<%
|
||||||
|
request.setCharacterEncoding("UTF-8");
|
||||||
|
String[] strDeletedID = request.getParameterValues("_innorix_deleted_id"); // 삭제된 파일ID
|
||||||
|
String[] strDeletedName = request.getParameterValues("_innorix_deleted_name"); // 삭제된 파일이름
|
||||||
|
String[] strDeletedSize = request.getParameterValues("_innorix_deleted_size"); // 삭제된 파일용량
|
||||||
|
for(int i=0; i<strDeletedID.length; i++){
|
||||||
|
System.out.println("삭제된 "+i+"번째 id= "+strDeletedID[i]);
|
||||||
|
System.out.println("삭제된 "+i+"번째 name= "+strDeletedName[i]);
|
||||||
|
System.out.println("삭제된 "+i+"번째 size= "+strDeletedSize[i]);
|
||||||
|
|
||||||
|
out.println("삭제된 " + i + "번째 id= " + strDeletedID[i] + "<br />");
|
||||||
|
out.println("삭제된 " + i + "번째 name= " + strDeletedName[i] + "<br />");
|
||||||
|
out.println("삭제된 " + i + "번째 size= " + strDeletedSize[i] + "<br />");
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
88
src/main/webapp/innorix/gnexam/download.html
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko');
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html' // Agent 설치 페이지
|
||||||
|
});
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
control.on('downloadComplete', function (p) { // 다운로드 완료
|
||||||
|
console.log(p);
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
console.log(control.getDownloadFiles());
|
||||||
|
var r = "";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].filePath;
|
||||||
|
}
|
||||||
|
console.log(r);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
control.on('onDblClickRows', function(p) { // onSelectRows파일선택시
|
||||||
|
control.downloadAndOpen();
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
function getFileCount(){
|
||||||
|
var fileCount = control.getFileCount();
|
||||||
|
alert("allFileCount" + "\n" + fileCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
//n건 선택 후 downloadAndOpen()
|
||||||
|
function downOpen(){
|
||||||
|
var fileInfos = control.getSelectedFiles();
|
||||||
|
console.log(fileInfos);
|
||||||
|
control.unselectAllFiles();
|
||||||
|
|
||||||
|
for (var i=0; i<fileInfos.length; i++) {
|
||||||
|
control.addSelectFilesById(fileInfos[i].rowID);
|
||||||
|
control.downloadAndOpen();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
<input type="button" value="getFileCount" onClick="getFileCount();"/>
|
||||||
|
<input type="button" value="실행" onclick="downOpen();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
143
src/main/webapp/innorix/gnexam/download.jsp
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixDownload" %>
|
||||||
|
<%@ page import="java.io.*" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
out.clear();
|
||||||
|
out = pageContext.pushBody();
|
||||||
|
|
||||||
|
String saveDir = delimiterReplace(request.getRealPath(request.getServletPath()));
|
||||||
|
String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
filePath
|
||||||
|
파일이 저장된 스토리지 전체경로
|
||||||
|
디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용
|
||||||
|
윈도우 - C:/storage/path1/path2/data
|
||||||
|
유닉스 - /storage/path1/path2/data
|
||||||
|
*/
|
||||||
|
|
||||||
|
// downloadType : "stream" 설정시 자동 전달되는 GET Param 값
|
||||||
|
String szStartOffset = request.getParameter("_StartOffset");
|
||||||
|
String szEndOffset = request.getParameter("_EndOffset");
|
||||||
|
|
||||||
|
// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식
|
||||||
|
String fileID = request.getParameter("fileID");
|
||||||
|
String fileName = request.getParameter("fileName");
|
||||||
|
String sysFileName = new String();
|
||||||
|
String orgFileName = new String();
|
||||||
|
|
||||||
|
if (fileID != null) {
|
||||||
|
if (fileID.equals("1")) {
|
||||||
|
sysFileName = "sample-file.pdf"; // 시스템 저장 파일명
|
||||||
|
orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("2")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP Brochure.pdf";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("3")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP パンフレット.pdf";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileName != null) {
|
||||||
|
sysFileName = "data/" + fileName;
|
||||||
|
orgFileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일명 깨짐대응 문자열 인코딩 처리
|
||||||
|
orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
|
||||||
|
File file = new File(filePath + sysFileName);
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Accept-Ranges", "bytes");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\"");
|
||||||
|
|
||||||
|
long startOffset = 0;
|
||||||
|
long endOffset = 0;
|
||||||
|
|
||||||
|
if (szStartOffset != null) {
|
||||||
|
startOffset = Long.parseLong(szStartOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szEndOffset != null) {
|
||||||
|
endOffset = Long.parseLong(szEndOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
long contentLength = 0;
|
||||||
|
|
||||||
|
if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시
|
||||||
|
contentLength = endOffset - startOffset + 1;
|
||||||
|
} else { // html 일반 다운로드 요청시
|
||||||
|
contentLength = file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setHeader("Content-Length", "" + contentLength);
|
||||||
|
|
||||||
|
byte b[] = new byte[8192];
|
||||||
|
BufferedInputStream input = null;
|
||||||
|
BufferedOutputStream output = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
input = new BufferedInputStream(new FileInputStream(file));
|
||||||
|
output = new BufferedOutputStream(response.getOutputStream());
|
||||||
|
|
||||||
|
int read = 0;
|
||||||
|
|
||||||
|
if (startOffset != 0) {
|
||||||
|
long n = input.skip(startOffset);
|
||||||
|
if (n == -1) read = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contentLength > 0) {
|
||||||
|
while (contentLength > 0) {
|
||||||
|
if(contentLength < 8192) {
|
||||||
|
b = new byte[(int)contentLength];
|
||||||
|
}
|
||||||
|
|
||||||
|
read = input.read(b);
|
||||||
|
|
||||||
|
if(read == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.write(b, 0, read);
|
||||||
|
contentLength = contentLength - read;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("fileID \t: " + fileID);
|
||||||
|
System.out.println("sysFilePath \t: " + filePath + sysFileName);
|
||||||
|
System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8"));
|
||||||
|
System.out.println("totalLength \t: " + file.length() );
|
||||||
|
System.out.println("startOffset \t: " + startOffset);
|
||||||
|
System.out.println("endOffset \t: " + endOffset);
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if(output != null) {
|
||||||
|
output.flush();
|
||||||
|
output.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(input != null) {
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
private String delimiterReplace(String fullDir)
|
||||||
|
{
|
||||||
|
String ret1 = fullDir.replaceAll("\\\\+", "/");
|
||||||
|
String ret2 = ret1.replaceAll("\\/+", "/");
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
%>
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||||
|
pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko');
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './uploadSession.jsp', // 업로드 URL
|
||||||
|
agent: false
|
||||||
|
});
|
||||||
|
|
||||||
|
// 로딩 완료
|
||||||
|
control.on('loadComplete', function (p) {
|
||||||
|
control.setCookie("JSESSIONID=<%=session.getId()%>"); //Agent모드 시 세션 유지
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
alert("업로드가 완료 되었습니다.\n다운로드 가능하게 재구성 합니다.");
|
||||||
|
console.log(p);
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
var fileArray = new Array();
|
||||||
|
var f = p.files;
|
||||||
|
|
||||||
|
console.log(p.uniqueId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
console.log(f[i].uniqueId);
|
||||||
|
var fileObj = new Object();
|
||||||
|
fileObj.printFileName = f[i].clientFileName;
|
||||||
|
fileObj.fileSize = f[i].fileSize;
|
||||||
|
fileObj.downloadUrl = urlBase + "downloadDeleteSession.jsp?uniqueId=" + f[i].uniqueId + "&fileName=" + f[i].clientFileName;
|
||||||
|
fileObj.serverFilePath = f[i].serverFilePath;
|
||||||
|
fileObj.rootName = f[i].rootName;
|
||||||
|
fileArray.push(fileObj);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
control.removeAllFiles(); // 리스트 컨트롤에서 파일을 삭제
|
||||||
|
control.presetDownloadFiles(fileArray); // 다운로드 목록을 구성
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../index.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="폴더추가" onclick="control.openFolderDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
<input type="button" value="선택파일 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
75
src/main/webapp/innorix/gnexam/downloadCustomError.html
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko'); // 한/영설정 [en,ko]
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
agent : true, // Agent 모드 사용
|
||||||
|
|
||||||
|
retryCount: 1, // 재전송 횟수
|
||||||
|
retryDelay: 1, // 재전송 간격(sec)
|
||||||
|
maximumErrorCount: 0 // 최대 에러 허용 횟수
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
파일 전송 간 오류 발생 시 재전송 시도 횟수 및 간격에 대한 설정을 해줍니다.
|
||||||
|
미설정 시 무제한으로 재전송을 시도하게 됩니다.
|
||||||
|
- 관련 예제 [오류 시 전송 시도 횟수]참고
|
||||||
|
*/
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadCustomError.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadCustomError.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadCustomError.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
//다운로드 에러 이벤트 (※ Agent 모드 전용)
|
||||||
|
control.on('downloadError', function (p) {
|
||||||
|
control.closeTransferWindow(); //전송창 바로 닫힘
|
||||||
|
|
||||||
|
console.log(p);
|
||||||
|
|
||||||
|
console.log('---- Download Error Event ----');
|
||||||
|
var f = p.files;
|
||||||
|
for(var i=0; i<f.length; i++){
|
||||||
|
console.log("fileName:" + f[i].fileName);
|
||||||
|
console.log("errorCode:" + f[i].errorCode);
|
||||||
|
console.log("errorMessage:" + f[i].errorMessage);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
156
src/main/webapp/innorix/gnexam/downloadCustomError.jsp
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%-- <%@ page import="com.innorix.transfer.InnorixCustomError"%> --%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixDownload" %>
|
||||||
|
<%@ page import="java.io.*" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String saveDir = delimiterReplace(request.getRealPath(request.getServletPath()));
|
||||||
|
String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
filePath
|
||||||
|
파일이 저장된 스토리지 전체경로
|
||||||
|
디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용
|
||||||
|
윈도우 - C:/storage/path1/path2/data
|
||||||
|
유닉스 - /storage/path1/path2/data
|
||||||
|
*/
|
||||||
|
|
||||||
|
// downloadType : "stream" 설정시 자동 전달되는 GET Param 값
|
||||||
|
String szStartOffset = request.getParameter("_StartOffset");
|
||||||
|
String szEndOffset = request.getParameter("_EndOffset");
|
||||||
|
|
||||||
|
// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식
|
||||||
|
String fileID = request.getParameter("fileID");
|
||||||
|
String fileName = request.getParameter("fileName");
|
||||||
|
String sysFileName = new String();
|
||||||
|
String orgFileName = new String();
|
||||||
|
|
||||||
|
if (fileID != null) {
|
||||||
|
if (fileID.equals("1")) {
|
||||||
|
sysFileName = "sample-file.pdf"; // 시스템 저장 파일명
|
||||||
|
orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("2")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP Brochure.pdf";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("3")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP パンフレット.pdf";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileName != null) {
|
||||||
|
sysFileName = "data/" + fileName;
|
||||||
|
orgFileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일명 깨짐대응 문자열 인코딩 처리
|
||||||
|
orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
|
||||||
|
//File file = new File(filePath + sysFileName);
|
||||||
|
File file = new File("missingFile.txt"); // 예제 구현을 위한 오류 발생 !!!
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Accept-Ranges", "bytes");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\"");
|
||||||
|
|
||||||
|
long startOffset = 0;
|
||||||
|
long endOffset = 0;
|
||||||
|
|
||||||
|
if (szStartOffset != null) {
|
||||||
|
startOffset = Long.parseLong(szStartOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szEndOffset != null) {
|
||||||
|
endOffset = Long.parseLong(szEndOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
long contentLength = 0;
|
||||||
|
|
||||||
|
if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시
|
||||||
|
contentLength = endOffset - startOffset + 1;
|
||||||
|
} else { // html 일반 다운로드 요청시
|
||||||
|
contentLength = file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 예제 구현을 위한 오류 발생 !!!
|
||||||
|
// response.setHeader("Content-Length", "" + contentLength);
|
||||||
|
|
||||||
|
byte b[] = new byte[8192];
|
||||||
|
BufferedInputStream input = null;
|
||||||
|
BufferedOutputStream output = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
out.clear();
|
||||||
|
out=pageContext.pushBody();
|
||||||
|
|
||||||
|
input = new BufferedInputStream(new FileInputStream(file));
|
||||||
|
output = new BufferedOutputStream(response.getOutputStream());
|
||||||
|
|
||||||
|
int read = 0;
|
||||||
|
|
||||||
|
if (startOffset != 0) {
|
||||||
|
long n = input.skip(startOffset);
|
||||||
|
if (n == -1) read = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contentLength > 0) {
|
||||||
|
while (contentLength > 0) {
|
||||||
|
if(contentLength < 8192) {
|
||||||
|
b = new byte[(int)contentLength];
|
||||||
|
}
|
||||||
|
|
||||||
|
read = input.read(b);
|
||||||
|
|
||||||
|
if(read == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.write(b, 0, read);
|
||||||
|
contentLength = contentLength - read;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("fileID \t: " + fileID);
|
||||||
|
System.out.println("sysFilePath \t: " + filePath + sysFileName);
|
||||||
|
System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8"));
|
||||||
|
System.out.println("totalLength \t: " + file.length() );
|
||||||
|
System.out.println("startOffset \t: " + startOffset);
|
||||||
|
System.out.println("endOffset \t: " + endOffset);
|
||||||
|
} catch(Exception e) {
|
||||||
|
|
||||||
|
e.printStackTrace();
|
||||||
|
/*
|
||||||
|
downloadCustomError
|
||||||
|
에러코드, 에러메시지 설정
|
||||||
|
서버에서 예외상황 발생 시 response에 2000번대 이상의 커스텀 코드와 에러 메시지를 write 해줍니다.
|
||||||
|
*/
|
||||||
|
response.setStatus(2000); //2000번대 이상 커스텀 에러 코드
|
||||||
|
response.getWriter().write("에러메시지 입니다"); // 에러메시지
|
||||||
|
response.getWriter().flush();
|
||||||
|
response.getWriter().close();
|
||||||
|
} finally {
|
||||||
|
if(output != null) {
|
||||||
|
output.flush();
|
||||||
|
output.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(input != null) {
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
private String delimiterReplace(String fullDir)
|
||||||
|
{
|
||||||
|
String ret1 = fullDir.replaceAll("\\\\+", "/");
|
||||||
|
String ret2 = ret1.replaceAll("\\/+", "/");
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
%>
|
||||||
55
src/main/webapp/innorix/gnexam/downloadDelay.html
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
|
||||||
|
downloadDelay: 1000 // ms 단위 다운로드 딜레이 설정 | 기본 : 200
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
downloadDelay
|
||||||
|
- 다운로드 딜레이 설정 (기본값 : 0.2초)
|
||||||
|
빠르고 반복되게 다운로드 요청이 이루어질 때, 브라우저 자체에서 악성 접근으로 감지하여
|
||||||
|
차단되어 다운로드가 정상적으로 진행되지 않을 수 있습니다.
|
||||||
|
해당 경우 downloadDelay 옵션을 통해 딜레이 시간을 보다 길게 설정하여 조치할 수 있습니다.
|
||||||
|
*/
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
172
src/main/webapp/innorix/gnexam/downloadDeleteSession.jsp
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@page import="com.innorix.transfer.InnorixCustomValue"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixTransfer" %>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixDownload" %>
|
||||||
|
<%@ page import="org.json.JSONArray" %>
|
||||||
|
<%@ page import="org.json.JSONObject" %>
|
||||||
|
<%@ page import="java.io.*" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
request.setCharacterEncoding("utf-8");
|
||||||
|
|
||||||
|
String saveDir = delimiterReplace(request.getRealPath(request.getServletPath()));
|
||||||
|
String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1);
|
||||||
|
/*
|
||||||
|
filePath
|
||||||
|
파일이 저장된 스토리지 전체경로
|
||||||
|
디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용
|
||||||
|
윈도우 - C:/storage/path1/path2/data
|
||||||
|
유닉스 - /storage/path1/path2/data
|
||||||
|
*/
|
||||||
|
|
||||||
|
// downloadType : "stream" 설정시 자동 전달되는 GET Param 값
|
||||||
|
String szStartOffset = request.getParameter("_StartOffset");
|
||||||
|
String szEndOffset = request.getParameter("_EndOffset");
|
||||||
|
|
||||||
|
// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식
|
||||||
|
String getuniqueId = request.getParameter("uniqueId"); //유니크 아이디
|
||||||
|
String fileName = request.getParameter("fileName");
|
||||||
|
|
||||||
|
String html5 = request.getParameter("_Html5");
|
||||||
|
|
||||||
|
String sysFileName = new String();
|
||||||
|
String orgFileName = new String();
|
||||||
|
|
||||||
|
String fileFullPath = (String)session.getAttribute(getuniqueId); //파일 절대 경로 취득
|
||||||
|
session.setAttribute(getuniqueId, fileFullPath);
|
||||||
|
|
||||||
|
if (fileName != null) {
|
||||||
|
orgFileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
File file = null;
|
||||||
|
|
||||||
|
if (fileFullPath != null){
|
||||||
|
file = new File(fileFullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일명 깨짐대응 문자열 인코딩 처리
|
||||||
|
orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Accept-Ranges", "bytes");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\"");
|
||||||
|
|
||||||
|
long startOffset = 0;
|
||||||
|
long endOffset = 0;
|
||||||
|
|
||||||
|
if (szStartOffset != null) {
|
||||||
|
startOffset = Long.parseLong(szStartOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szEndOffset != null) {
|
||||||
|
endOffset = Long.parseLong(szEndOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
long contentLength = 0;
|
||||||
|
|
||||||
|
if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시
|
||||||
|
contentLength = endOffset - startOffset + 1;
|
||||||
|
} else { // html 일반 다운로드 요청시
|
||||||
|
contentLength = file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setHeader("Content-Length", "" + contentLength);
|
||||||
|
|
||||||
|
byte b[] = new byte[8192];
|
||||||
|
BufferedInputStream input = null;
|
||||||
|
BufferedOutputStream output = null;
|
||||||
|
try {
|
||||||
|
out.clear();
|
||||||
|
out=pageContext.pushBody();
|
||||||
|
input = new BufferedInputStream(new FileInputStream(file));
|
||||||
|
output = new BufferedOutputStream(response.getOutputStream());
|
||||||
|
|
||||||
|
int read = 0;
|
||||||
|
|
||||||
|
if (startOffset != 0) {
|
||||||
|
long n = input.skip(startOffset);
|
||||||
|
if (n == -1) read = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contentLength > 0) {
|
||||||
|
while (contentLength > 0) {
|
||||||
|
if(contentLength < 8192) {
|
||||||
|
b = new byte[(int)contentLength];
|
||||||
|
}
|
||||||
|
|
||||||
|
read = input.read(b);
|
||||||
|
|
||||||
|
if(read == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.write(b, 0, read);
|
||||||
|
contentLength = contentLength - read;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("uniqueId \t: " + getuniqueId);
|
||||||
|
System.out.println("sysFilePath \t: " + filePath + sysFileName);
|
||||||
|
System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8"));
|
||||||
|
System.out.println("totalLength \t: " + file.length() );
|
||||||
|
System.out.println("startOffset \t: " + startOffset);
|
||||||
|
System.out.println("endOffset \t: " + endOffset);
|
||||||
|
System.out.println("_Html5 \t : " + html5);
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if(output != null) {
|
||||||
|
|
||||||
|
output.flush();
|
||||||
|
output.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(input != null) {
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if("true".equals(html5)){ //html5 모드 일때
|
||||||
|
session.removeAttribute(getuniqueId); //세션 삭제
|
||||||
|
File f = new File(fileFullPath); //파일 경로
|
||||||
|
System.out.println(f);
|
||||||
|
if(f.exists()){
|
||||||
|
if(f.delete()){
|
||||||
|
System.out.println("파일삭제 성공");
|
||||||
|
|
||||||
|
}else{
|
||||||
|
System.out.println("파일삭제 실패");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
System.out.println("파일 없음");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{ //Agent 모드 일때
|
||||||
|
session.removeAttribute(getuniqueId);
|
||||||
|
File f = new File(fileFullPath);
|
||||||
|
System.out.println(f);
|
||||||
|
if(f.exists()){
|
||||||
|
if(f.delete()){
|
||||||
|
System.out.println("파일삭제 성공");
|
||||||
|
}else{
|
||||||
|
System.out.println("파일삭제 실패");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
System.out.println("파일 없음");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
private String delimiterReplace(String fullDir)
|
||||||
|
{
|
||||||
|
String ret1 = fullDir.replaceAll("\\\\+", "/");
|
||||||
|
String ret2 = ret1.replaceAll("\\/+", "/");
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
%>
|
||||||
54
src/main/webapp/innorix/gnexam/downloadIntegrity.html
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
|
||||||
|
downloadIntegrity: true // 다운로드 이중 무결성
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
downloadIntegrity (※ Agent 모드 전용 옵션)
|
||||||
|
- 이중 무결성 로직을 추가하지 않았을 경우에 비해 다운로드 속도가 저하됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadIntegrity.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadIntegrity.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadIntegrity.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
173
src/main/webapp/innorix/gnexam/downloadIntegrity.jsp
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixDownload" %>
|
||||||
|
<%-- 1. Integrity 패키지 추가 --%>
|
||||||
|
<%@ page import="com.innorix.integrity.Integrity" %>
|
||||||
|
<%@ page import="java.io.*" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
String saveDir = delimiterReplace(request.getRealPath(request.getServletPath()));
|
||||||
|
String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
filePath
|
||||||
|
파일이 저장된 스토리지 전체경로
|
||||||
|
디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용
|
||||||
|
윈도우 - C:/storage/path1/path2/data
|
||||||
|
유닉스 - /storage/path1/path2/data
|
||||||
|
*/
|
||||||
|
|
||||||
|
// downloadType : "stream" 설정시 자동 전달되는 GET Param 값
|
||||||
|
String szStartOffset = request.getParameter("_StartOffset");
|
||||||
|
String szEndOffset = request.getParameter("_EndOffset");
|
||||||
|
|
||||||
|
String szIntegrity = request.getParameter("_Integrity"); // 파라미터를 통해 이중 무결성 여부 확인
|
||||||
|
|
||||||
|
// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식
|
||||||
|
String fileID = request.getParameter("fileID");
|
||||||
|
String fileName = request.getParameter("fileName");
|
||||||
|
String sysFileName = new String();
|
||||||
|
String orgFileName = new String();
|
||||||
|
|
||||||
|
/*
|
||||||
|
다운로드 이중 무결성 (※ Agent 모드 전용 옵션)
|
||||||
|
_Integity 파라미터를 확인해서 이중 무결성 여부 확인
|
||||||
|
- 이중 무결성 로직을 추가하지 않았을 경우에 비해 다운로드 속도가 저하됩니다.
|
||||||
|
*/
|
||||||
|
boolean isIntegrity = false;
|
||||||
|
if (szIntegrity != null && szIntegrity.equalsIgnoreCase("true")) {
|
||||||
|
isIntegrity = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (fileID != null) {
|
||||||
|
if (fileID.equals("1")) {
|
||||||
|
sysFileName = "sample-file.pdf"; // 시스템 저장 파일명
|
||||||
|
orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("2")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP Brochure.pdf";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileID.equals("3")) {
|
||||||
|
sysFileName = "sample-file.pdf";
|
||||||
|
orgFileName = "INNORIX WP パンフレット.pdf";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileName != null) {
|
||||||
|
sysFileName = "data/" + fileName;
|
||||||
|
orgFileName = "data/" + fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
long startOffset = 0;
|
||||||
|
long endOffset = 0;
|
||||||
|
|
||||||
|
if (szStartOffset != null) {
|
||||||
|
startOffset = Long.parseLong(szStartOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (szEndOffset != null) {
|
||||||
|
endOffset = Long.parseLong(szEndOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 응답 데이터 수정
|
||||||
|
if (isIntegrity) {
|
||||||
|
Integrity integrity = new Integrity();
|
||||||
|
String md5 = new String();
|
||||||
|
try {
|
||||||
|
// getMD5FromFileSlice() 메소드 리턴 값을 response에 write 해줍니다.
|
||||||
|
md5 = integrity.getMD5FromFileSlice(filePath + sysFileName, startOffset, endOffset);
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setStatus(200);
|
||||||
|
response.getWriter().write(md5);
|
||||||
|
response.getWriter().flush();
|
||||||
|
response.getWriter().close();
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 파일명 깨짐대응 문자열 인코딩 처리
|
||||||
|
orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
|
||||||
|
File file = new File(filePath + sysFileName);
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Accept-Ranges", "bytes");
|
||||||
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\"");
|
||||||
|
|
||||||
|
long contentLength = 0;
|
||||||
|
|
||||||
|
if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시
|
||||||
|
contentLength = endOffset - startOffset + 1;
|
||||||
|
} else { // html 일반 다운로드 요청시
|
||||||
|
contentLength = file.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setHeader("Content-Length", "" + contentLength);
|
||||||
|
|
||||||
|
byte b[] = new byte[8192];
|
||||||
|
BufferedInputStream input = null;
|
||||||
|
BufferedOutputStream output = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
input = new BufferedInputStream(new FileInputStream(file));
|
||||||
|
output = new BufferedOutputStream(response.getOutputStream());
|
||||||
|
|
||||||
|
int read = 0;
|
||||||
|
|
||||||
|
if (startOffset != 0) {
|
||||||
|
long n = input.skip(startOffset);
|
||||||
|
if (n == -1) read = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(contentLength > 0) {
|
||||||
|
while (contentLength > 0) {
|
||||||
|
if(contentLength < 8192) {
|
||||||
|
b = new byte[(int)contentLength];
|
||||||
|
}
|
||||||
|
|
||||||
|
read = input.read(b);
|
||||||
|
|
||||||
|
if(read == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
output.write(b, 0, read);
|
||||||
|
contentLength = contentLength - read;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("fileID \t: " + fileID);
|
||||||
|
System.out.println("sysFilePath \t: " + filePath + sysFileName);
|
||||||
|
System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8"));
|
||||||
|
System.out.println("totalLength \t: " + file.length() );
|
||||||
|
System.out.println("startOffset \t: " + startOffset);
|
||||||
|
System.out.println("endOffset \t: " + endOffset);
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if(output != null) {
|
||||||
|
output.flush();
|
||||||
|
output.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(input != null) {
|
||||||
|
input.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
<%!
|
||||||
|
private String delimiterReplace(String fullDir)
|
||||||
|
{
|
||||||
|
String ret1 = fullDir.replaceAll("\\\\+", "/");
|
||||||
|
String ret2 = ret1.replaceAll("\\/+", "/");
|
||||||
|
|
||||||
|
return ret2;
|
||||||
|
}
|
||||||
|
%>
|
||||||
99
src/main/webapp/innorix/gnexam/errorRetryCount.html
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko'); // 한/영설정 [en,ko]
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
transferMode : 'download', // 다운로드 모드 설정
|
||||||
|
agent : true, // Agent 모드 사용
|
||||||
|
|
||||||
|
retryCount: 2, // 재전송 횟수
|
||||||
|
retryDelay: 2, // 재전송 간격(sec)
|
||||||
|
maximumErrorCount: 2 // 최대 에러 허용 횟수
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
오류 발생 시 재전송을 시도할 횟수 설정
|
||||||
|
|
||||||
|
※ retryCount나 retryDelay는 내부에서 처리되는 재시도이기에 별도의 로그 및 이벤트 등으로 캐치 되지 않습니다.
|
||||||
|
|
||||||
|
retryCount (※ Agent 모드 전용 옵션)
|
||||||
|
- 기본값 : 무제한
|
||||||
|
- 전송 내부 쓰레드 재시도 횟수. 지정된 횟수만큼 내부 쓰레드의 재전송을 진행 후, Error로 상태를 반영
|
||||||
|
즉, 전송에 문제가 있을 시 에러라고 판별하기 전까지 진행할 재전송 횟수
|
||||||
|
|
||||||
|
retryDelay (※ Agent 모드 전용 옵션)
|
||||||
|
- 기본값 : 3
|
||||||
|
- 전송 내부 쓰레드 재시도 간격으로, 몇 초마다 재시도 할 것인지를 정의
|
||||||
|
|
||||||
|
maximumErrorCount (※ Agent 모드 전용 옵션)
|
||||||
|
- 기본값 : 무제한
|
||||||
|
- 최대 에러 출력 갯수. retryCount에 따라 재시도 후 에러로 상태기록이 될때 ErrorCount가 1씩 증가
|
||||||
|
|
||||||
|
|
||||||
|
[ 진행 예시 ]
|
||||||
|
전송 ※※ --2초간격--재전송(1회) ※※ --2초간격--재전송(2회) ※※ 에러카운트(1회-downloadError 캐치)
|
||||||
|
전송 ※※ --2초간격--재전송(1회) ※※ --2초간격--재전송(2회) ※※ 에러카운트(2회-downloadError 캐치)
|
||||||
|
전송 ※※ --2초간격--재전송(1회) ※※ --2초간격--재전송(2회) ※※ 에러카운트(3회-downloadError 캐치) => maximumErrorCount 2회를 초과하여 전송중단.
|
||||||
|
|
||||||
|
[ 진행 예시 기호 풀이 ]
|
||||||
|
오류 : ※※
|
||||||
|
retryCount : 재전송(n회)
|
||||||
|
retryDelay : --n초간격--
|
||||||
|
maximumErrorCount : 에러카운트(n회)
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadErr.jsp?fileID=1" //오류 발생을 위해 downloadErr.jsp(존재하지않는파일)설정
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadErr.jsp?fileID=2" //오류 발생을 위해 downloadErr.jsp(존재하지않는파일)설정
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
fileSize: 1433885,
|
||||||
|
downloadUrl: urlBase + "downloadErr.jsp?fileID=3" //오류 발생을 위해 downloadErr.jsp(존재하지않는파일)설정
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
//다운로드 에러 이벤트 (Agent 모드 전용)
|
||||||
|
control.on('downloadError', function (p) {
|
||||||
|
console.log(p);
|
||||||
|
|
||||||
|
var f = p.files;
|
||||||
|
for(var i=0; i<f.length; i++){
|
||||||
|
console.log("파일이름: " + f[i].fileName +"\n에러코드: " + f[i].errorCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
49
src/main/webapp/innorix/gnexam/hideServerPathInfo.html
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
uploadUrl: './hideServerPathInfo.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
//innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
71
src/main/webapp/innorix/gnexam/hideServerPathInfo.jsp
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
<%-- File import --%>
|
||||||
|
<%@page import="java.io.File"%>
|
||||||
|
|
||||||
|
<%
|
||||||
|
// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가
|
||||||
|
if ("POST".equals(request.getMethod()))
|
||||||
|
{
|
||||||
|
String directory = InnorixUpload.getServletAbsolutePath(request);
|
||||||
|
directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data";
|
||||||
|
int maxPostSize = 2147482624; // bytes
|
||||||
|
|
||||||
|
InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory);
|
||||||
|
|
||||||
|
/*
|
||||||
|
전달되는 _action Param 정보
|
||||||
|
speedCheck : 전송속도 측정
|
||||||
|
getServerInfo : 서버정보 확인
|
||||||
|
getFileInfo : 파일정보 확인
|
||||||
|
attachFile : 파일전송 진행
|
||||||
|
attachFileCompleted : 파일전송 완료
|
||||||
|
*/
|
||||||
|
|
||||||
|
String _action = uploader.getParameter("_action"); // 동작 플래그
|
||||||
|
String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명
|
||||||
|
String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명
|
||||||
|
String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈
|
||||||
|
String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점
|
||||||
|
String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점
|
||||||
|
String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로
|
||||||
|
String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID
|
||||||
|
String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1
|
||||||
|
String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2
|
||||||
|
String _transferId = uploader.getParameter("_transferId"); // TransferId
|
||||||
|
|
||||||
|
/*
|
||||||
|
업로드 간 메타정보 상 노출되는 서버 경로를 숨기기 위한 방법
|
||||||
|
( 업로드 완료 시 클라이언트에 서버에 저장된 파일의 절대 경로가 노출되기 때문에 보안 상 노출이 안 되도록 설정 )
|
||||||
|
uploader.setHideServerPathInfo(true);
|
||||||
|
- uploader.run() 이전에 설정
|
||||||
|
- 해당 설정 시 파일 전송 간 발생되는 통신 구간에서는 서버 경로 정보를 주고 받지 않기 위해
|
||||||
|
InnorixUplaod 클래스를 객체화 할 때 지정해주는 directory 값을 고정으로 업로드하며, setDirectory와 함께 사용할 수 없음
|
||||||
|
*/
|
||||||
|
|
||||||
|
uploader.setHideServerPathInfo(true); //업로드 서버경로 숨김처리
|
||||||
|
String _run_retval = uploader.run();
|
||||||
|
|
||||||
|
// 개별파일 업로드 완료
|
||||||
|
if("attachFileCompleted".equals(_action)) {
|
||||||
|
|
||||||
|
System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_orig_filename \t = " + _orig_filename); // 원본 파일명
|
||||||
|
System.out.println("_new_filename \t = " + _new_filename); // 저장 파일명
|
||||||
|
|
||||||
|
/* 업로드 서버 경로 숨김처리 시 저장경로 확인 방법 */
|
||||||
|
System.out.println("_filepath \t = " + _filepath); // 파일 저장경로 (업로드 서버 경로 숨김처리하여 빈값으로 출력)
|
||||||
|
String strDir = uploader.getDirectory(); // 서버에 저장되는 폴더경로
|
||||||
|
System.out.println("strDir \t = " + strDir);
|
||||||
|
String strSrvFilePath = strDir.concat(File.separator).concat(_new_filename);
|
||||||
|
System.out.println("strSrvFilePath \t = " + strSrvFilePath); //서버에 저장된 파일 위치
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// CORS 관련 헤더 추가
|
||||||
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
|
||||||
|
response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");
|
||||||
|
%>
|
||||||
88
src/main/webapp/innorix/gnexam/html5ImageUpload.html
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko');
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'upload', // 업로드, 다운로드 혼합사용
|
||||||
|
agent : false,
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
allowExtension : ["png", "jpg", "jpeg"],
|
||||||
|
showPreviewImage: true, // 이미지 미리보기
|
||||||
|
uploadUrl: './upload.jsp', // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
//innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 파일 선택 시
|
||||||
|
control.on('onSelectRows', function (p) {
|
||||||
|
console.log(p);
|
||||||
|
console.log('---------------------------');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function imageUpload(){
|
||||||
|
control.appendThumbnailProperty("ALL", 300, 300, "FIX");
|
||||||
|
|
||||||
|
control.upload();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
이미지 미리보기
|
||||||
|
- 옵션 : showPreviewImage: true
|
||||||
|
|
||||||
|
- 썸네일 생성(리사이징) : control.appendThumbnailProperty((1), (2), (3), (4));
|
||||||
|
(1) 리사이징을 진행할 원본 이미지 인덱스 Number를 입력해주시거나 ALL을 입력받습니다.
|
||||||
|
ex: control.appendThumnailProperty(1, 300, 300, "VERTICAL");
|
||||||
|
(2) 가로 픽셀 사이즈 (Number)
|
||||||
|
(3) 세로 픽셀 사이즈 (Number)
|
||||||
|
(4) 리사이징을 진행할 가로세로 기준
|
||||||
|
VERTICAL : 세로축 기준 리사이징
|
||||||
|
HORIZONTAL : 가로축 기준 리사이징
|
||||||
|
FIX : 설정한 사이즈에 맞게 리사이징(비율무시)
|
||||||
|
|
||||||
|
- 워터마크 추가
|
||||||
|
(1) 워터마크를 적용할 원본 파일 인덱스 Number를 입력해주시거나 ALL을 입력받습니다.
|
||||||
|
ex : control.appendWatermarkProperty(2, "innorix_logo.png", "LEFT|MIDDLE")
|
||||||
|
(2) 워터마크 이미지 URL
|
||||||
|
(3) 워터마크를 적용할 위치 ("횡축|종축") ("가로|세로")
|
||||||
|
가로 기준 위치 : "LEFT" / "RIGHT" / "CENTER"
|
||||||
|
세로 기준 위치 : "TOP" / "BOTTOM" / "MIDDLE"
|
||||||
|
*/
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="resultImg.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="imageUpload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
15
src/main/webapp/innorix/gnexam/iframe.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script src="../jquery-3.5.1.min.js"></script>
|
||||||
|
<title>Insert title here</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<iframe src="http://localhost:4040/innorix/gnexam0/uploadIframe.html" style="width:600px; height:400px">
|
||||||
|
|
||||||
|
</iframe>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
src/main/webapp/innorix/gnexam/img/agent.png
Normal file
|
After Width: | Height: | Size: 586 B |
BIN
src/main/webapp/innorix/gnexam/img/close-blue.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/main/webapp/innorix/gnexam/img/code.png
Normal file
|
After Width: | Height: | Size: 603 B |
BIN
src/main/webapp/innorix/gnexam/img/dropzone.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
src/main/webapp/innorix/gnexam/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/main/webapp/innorix/gnexam/img/gnlogo.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
src/main/webapp/innorix/gnexam/img/gnlogo_w_png.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/main/webapp/innorix/gnexam/img/html5.png
Normal file
|
After Width: | Height: | Size: 441 B |
|
After Width: | Height: | Size: 2.1 KiB |
BIN
src/main/webapp/innorix/gnexam/img/move-blue.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/main/webapp/innorix/gnexam/img/notice.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
src/main/webapp/innorix/gnexam/img/pdf.png
Normal file
|
After Width: | Height: | Size: 591 B |
BIN
src/main/webapp/innorix/gnexam/img/top_btn.jpg
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
85
src/main/webapp/innorix/gnexam/installPopup.html
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
innorix.setLanguage('ko');
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
transferMode: 'both', // 업로드, 다운로드 혼합사용
|
||||||
|
uploadUrl: './upload.jsp', // 업로드 URL
|
||||||
|
installUrl: '../install/install2.html', // Agent 설치 페이지
|
||||||
|
|
||||||
|
installPopupWindow: true, // Agent설치 시 다른 페이지로 이동하지 않고 팝업창으로 띄우기 (※브라우저에서 팝업 허용을 해주어야합니다.)
|
||||||
|
installPopupWindowHeight: 400, // 출력되는 팝업창 높이
|
||||||
|
installPopupWindowWidth: 500, // 출력되는 팝업창 폭
|
||||||
|
installPopupWindowLeft: 100, // 출력되는 팝업창 장축 기준 위치
|
||||||
|
installPopupWindowTop: 50 // 출력되는 팝업창 상단 기준 위치
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
installPopupWindow (※ Agent 모드 전용 옵션)
|
||||||
|
- false (기본값, 기존페이지에서 출력)
|
||||||
|
- true (설치페이지가 팝업으로 출력)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
|
||||||
|
console.log(p.files);
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].controlId + " " + f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
|
||||||
|
var files = JSON.stringify(f);
|
||||||
|
var innoJquery = innorix._load("innoJquery");
|
||||||
|
innoJquery('form#f_write').append('<input type="hidden" name="files" id="files" value=\'' + files + '\' />');
|
||||||
|
innoJquery('form#f_write').submit();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 팝업창 종료시점 감지하기
|
||||||
|
var g_oWindow = null;
|
||||||
|
var g_oInterval = null;
|
||||||
|
var popup = function() {
|
||||||
|
g_oWindow = window.open('http://localhost:8118/innorixjsp/innorix/install/install2.html', 'agent install');
|
||||||
|
// 0.5초 마다 감지
|
||||||
|
g_oInterval = window.setInterval(function() {
|
||||||
|
try {
|
||||||
|
console.log('00000000');
|
||||||
|
// 창이 꺼졌는지 판단
|
||||||
|
if( g_oWindow == null || g_oWindow.closed ) {
|
||||||
|
window.clearInterval(g_oInterval);
|
||||||
|
g_oWindow = null;
|
||||||
|
//opener.parent.location.reload();
|
||||||
|
location.reload();
|
||||||
|
// Todo....
|
||||||
|
//.....
|
||||||
|
alert('창 close');
|
||||||
|
}
|
||||||
|
} catch (e) { }
|
||||||
|
}, 500);
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<form action="result.jsp" id="f_write" name="f_write" method="post">
|
||||||
|
test1 : <input type="text" name="test1" />
|
||||||
|
</form><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="멀티 파일 추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="단일 파일 추가" onclick="control.openFileDialogSingle();"/>
|
||||||
|
<input type="button" value="업로드" onclick="control.upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
67
src/main/webapp/innorix/gnexam/isTempFileSize.html
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
|
||||||
|
agent : true // Agent 모드 사용
|
||||||
|
});
|
||||||
|
|
||||||
|
control.on('loadComplete', function (p) { // 다운로드 파일 추가
|
||||||
|
var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1);
|
||||||
|
control.presetDownloadFiles(
|
||||||
|
[{
|
||||||
|
printFileName: "INNORIX WP 브로셔.pdf",
|
||||||
|
fileSize: 1433885, // 실제 파일 사이즈
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP Brochure.pdf",
|
||||||
|
fileSize: 143, // 가상의 파일 사이즈
|
||||||
|
isTempFileSize : true,
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
printFileName: "INNORIX WP パンフレット.pdf",
|
||||||
|
downloadUrl: urlBase + "download.jsp?fileID=3"
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
|
||||||
|
isTempFileSize (※ Agent 모드 전용 옵션)
|
||||||
|
|
||||||
|
- presetDownloadFiles 구성 시 fileSize를 미작성 시 서버의 downloadUrl(download.jsp)에 접속하여 해당 파일의 실제 사이즈를 알아옵니다.
|
||||||
|
실제파일사이즈과 다르게 작성 시 다운로드가 정상적으로 진행되지 않습니다.
|
||||||
|
이때 isTempFileSize 옵션을 통해 가상의 파일사이즈를 작성하여도 정상 다운로드 되게 합니다.
|
||||||
|
(※ fileSize 미작성 시 서버에 접속하여 Request Method "HEAD"에 파일정보가 담겨오게됩니다. 먼저 방화벽에서 해당 메소드허용을 해주어야 합니다.)
|
||||||
|
|
||||||
|
- 선언된 파일 사이즈가 실제 파일 사이즈가 아닌 가상 파일 사이즈임을 선언하는 것으로
|
||||||
|
잘못 입력된 다운로드 fileSize를 무시하고, 요청하는 downloadUrl에서 던져주는 데이터만큼 전송이 진행됩니다.
|
||||||
|
이에 분할 전송이 불가능하며, 고속전송 및 이어받기, 에러 시 중간지점에서부터의 재시도 등 부가기능이 제한됩니다.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
control.on('downloadCancel', function (p) {
|
||||||
|
alert("다운로드가 취소되었습니다.");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="선택 다운로드" onclick="control.downloadSelectedFiles();"/>
|
||||||
|
<input type="button" value="전체 다운로드" onclick="control.download();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
63
src/main/webapp/innorix/gnexam/postData.html
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="../innorix.css">
|
||||||
|
<script src="../innorix.js"></script>
|
||||||
|
<script>
|
||||||
|
var control = new Object();
|
||||||
|
window.onload = function() {
|
||||||
|
// 파일전송 컨트롤 생성
|
||||||
|
control = innorix.create({
|
||||||
|
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
|
||||||
|
installUrl: '../install/install.html', // Agent 설치 페이지
|
||||||
|
transferMode: 'upload', // 업로드, 다운로드 혼합사용
|
||||||
|
uploadUrl: './postData.jsp' // 업로드 URL
|
||||||
|
});
|
||||||
|
|
||||||
|
// 업로드 완료 이벤트
|
||||||
|
control.on('uploadComplete', function (p) {
|
||||||
|
var f = p.files;
|
||||||
|
var r = "Upload complete\n\n";
|
||||||
|
for (var i = 0; i < f.length; i++ ) {
|
||||||
|
r += f[i].clientFileName + " " + f[i].fileSize + "\n";
|
||||||
|
}
|
||||||
|
alert(r);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 업로드
|
||||||
|
function upload() {
|
||||||
|
var fileInfo = control.getAllFiles(); // 모든 파일 정보 출력
|
||||||
|
if (fileInfo.length == 0 ) { // 파일 개수가 0 이면 return
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 트랜잭션 별 업로드시 함께 전달될 POST Param 추가
|
||||||
|
var postObj1 = new Object(); // postdata 를 전달할 object 객체 생성
|
||||||
|
var paramVal = "Transection";
|
||||||
|
postObj1.transParam1 = paramVal; // 임의의 텍스트 할당
|
||||||
|
postObj1.transParam2 = fileInfo[0].mode; // 전송모드 할당
|
||||||
|
control.setPostData(postObj1); // 트랜잭션 별 postdata로 값 저장
|
||||||
|
|
||||||
|
|
||||||
|
// 파일 별 업로드시 함께 전달될 POST Param 추가
|
||||||
|
for (i=0; i<fileInfo.length; i++){
|
||||||
|
var postObj2 = new Object(); //파일별 postdata를 전달할 object 객체 생성
|
||||||
|
postObj2.fileParam1 = fileInfo[i].basePath; // 각 파일 index의 basePath 할당
|
||||||
|
postObj2.fileParam2 = fileInfo[i].printFileName; // 각 파일 index의 printFileName 할당
|
||||||
|
control.setFilePostDataByIndex(i, postObj2); // 파일별 postdata로 값 저장
|
||||||
|
}
|
||||||
|
|
||||||
|
control.upload(); // 파일 업로드 시작
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<div id="fileControl"></div><br/>
|
||||||
|
|
||||||
|
<input type="button" value="파일추가" onclick="control.openFileDialog();"/>
|
||||||
|
<input type="button" value="업로드" onclick="upload();"/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
56
src/main/webapp/innorix/gnexam/postData.jsp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ page import="com.innorix.transfer.InnorixUpload" %>
|
||||||
|
|
||||||
|
<%
|
||||||
|
// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가
|
||||||
|
if ("POST".equals(request.getMethod()))
|
||||||
|
{
|
||||||
|
String directory = InnorixUpload.getServletAbsolutePath(request);
|
||||||
|
directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data";
|
||||||
|
int maxPostSize = 2147482624; // bytes
|
||||||
|
|
||||||
|
InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory);
|
||||||
|
|
||||||
|
/*
|
||||||
|
전달되는 _action Param 정보
|
||||||
|
speedCheck : 전송속도 측정
|
||||||
|
getServerInfo : 서버정보 확인
|
||||||
|
getFileInfo : 파일정보 확인
|
||||||
|
attachFile : 파일전송 진행
|
||||||
|
attachFileCompleted : 파일전송 완료
|
||||||
|
*/
|
||||||
|
|
||||||
|
String _action = uploader.getParameter("_action"); // 동작 플래그
|
||||||
|
String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명
|
||||||
|
String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명
|
||||||
|
String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈
|
||||||
|
String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점
|
||||||
|
String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점
|
||||||
|
String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로
|
||||||
|
String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID
|
||||||
|
|
||||||
|
String fileParam1 = uploader.getParameter("fileParam1"); // 파일 별 커스텀 정의 POST Param 1
|
||||||
|
String fileParam2 = uploader.getParameter("fileParam2"); // 파일 별 커스텀 정의 POST Param 2
|
||||||
|
String transParam1 = uploader.getParameter("transParam1"); // 전송 별 커스텀 정의 POST Param 3
|
||||||
|
String transParam2 = uploader.getParameter("transParam2"); // 전송 별 커스텀 정의 POST Param 4
|
||||||
|
|
||||||
|
String _run_retval = uploader.run();
|
||||||
|
|
||||||
|
// 개별파일 업로드 완료
|
||||||
|
if("attachFileCompleted".equals(_action)) {
|
||||||
|
System.out.println("========== innorix transfer " + System.currentTimeMillis() + " ==========");
|
||||||
|
System.out.println("_action \t = " + _action);
|
||||||
|
System.out.println("트랜잭션별 transParam1 : " + transParam1 + ", transParam2 : " + transParam2);
|
||||||
|
System.out.println("파일별 fileParam1 : " + fileParam1 + ", fileParam2 : " + fileParam2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// CORS 관련 헤더 추가
|
||||||
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
|
||||||
|
response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");
|
||||||
|
%>
|
||||||
18
src/main/webapp/innorix/gnexam/result.jsp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<a href="../gnIndex.html">← 예제 목록</a><br /><br />
|
||||||
|
|
||||||
|
<%
|
||||||
|
request.setCharacterEncoding("UTF-8");
|
||||||
|
java.util.Enumeration names = request.getParameterNames();
|
||||||
|
|
||||||
|
while (names.hasMoreElements()) {
|
||||||
|
String name = (String)names.nextElement();
|
||||||
|
String values[] = request.getParameterValues(name);
|
||||||
|
|
||||||
|
if (values != null) {
|
||||||
|
for (int i=0; i< values.length; i++) {
|
||||||
|
System.out.println ( i + ". " + name + " = " + values[i]);
|
||||||
|
out.println ( i + ". " + name + " = " + values[i] + "<br />");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%>
|
||||||