jhleem / egov star

이다솜 이다솜 2022-02-08 @12

[20220208 이다솜] bbs master 코밋
Index: base3.10/src/main/java/egovframework/com/cmm/ComDefaultVO.java =================================================================== --- base3.10/src/main/java/egovframework/com/cmm/ComDefaultVO.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cmm/ComDefaultVO.java (revision 12) @@ -16,30 +16,30 @@ * @author 공통서비스 개발팀 조재영 * @since 2009.02.01 * @version 1.0 - * @see - * + * @see + * */ @SuppressWarnings("serial") public class ComDefaultVO implements Serializable { - + /** 검색조건 */ private String searchCondition = ""; - + /** 검색Keyword */ private String searchKeyword = ""; - + /** 검색사용여부 */ private String searchUseYn = ""; - - /** 페이징 사용 유무 */ - private boolean pagingAt = true; - + + /** 페이징 사용 유무 */ + private boolean pagingAt = true; + /** 현재페이지 */ private int pageIndex = 1; - + /** 페이지갯수 */ private int pageUnit = 10; - + /** 페이지사이즈 */ private int pageSize = 10; @@ -51,13 +51,13 @@ /** recordCountPerPage */ private int recordCountPerPage = 10; - + /** 검색KeywordFrom */ - private String searchKeywordFrom = ""; + private String searchKeywordFrom = ""; /** 검색KeywordTo */ - private String searchKeywordTo = ""; - + private String searchKeywordTo = ""; + public int getFirstIndex() { return firstIndex; } @@ -173,4 +173,5 @@ public void setSearchKeywordTo(String searchKeywordTo) { this.searchKeywordTo = searchKeywordTo; } + } Index: base3.10/src/main/java/egovframework/com/cop/bbs/web/EgovBBSMasterController.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/web/EgovBBSMasterController.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cop/bbs/web/EgovBBSMasterController.java (revision 12) @@ -4,6 +4,7 @@ import java.util.Map; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -28,10 +29,13 @@ import egovframework.com.cop.bbs.service.BoardMaster; import egovframework.com.cop.bbs.service.BoardMasterVO; import egovframework.com.cop.bbs.service.EgovBBSMasterService; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; import egovframework.com.utl.fcc.service.EgovStringUtil; import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.property.EgovPropertyService; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import froala.editor.utils.CommonUtil; /** @@ -43,7 +47,7 @@ * * <pre> * << 개정이력(Modification Information) >> - * + * * 수정일 수정자 수정내용 * ------- -------- --------------------------- * 2009.3.12 이삼섭 최초 생성 @@ -66,27 +70,29 @@ @Resource(name = "propertiesService") protected EgovPropertyService propertyService; - + @Resource(name = "egovBBSMstrIdGnrService") private EgovIdGnrService idgenServiceBbs; - + @Resource(name = "egovBlogIdGnrService") private EgovIdGnrService idgenServiceBlog; - + /** EgovMessageSource */ @Resource(name = "egovMessageSource") EgovMessageSource egovMessageSource; - + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; @Autowired private DefaultBeanValidator beanValidator; //Logger log = Logger.getLogger(this.getClass()); - + /** * 신규 게시판 마스터 등록을 위한 등록페이지로 이동한다. - * + * * @param boardMasterVO * @param model * @return @@ -101,23 +107,28 @@ List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo); model.addAttribute("bbsTyCode", codeResult); model.addAttribute("boardMasterVO", boardMaster); - - + + // 사용자 등록 권한을 위한 권한 리스트를 가지고 온다 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setPagingAt(false); + authorManageVO.setSearchCondition("999"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + //--------------------------------- // 2011.09.15 : 2단계 기능 추가 반영 방법 변경 //--------------------------------- - if(EgovComponentChecker.hasComponent("EgovArticleCommentService")){ model.addAttribute("useComment", "true"); } - - return "egovframework/com/cop/bbs/EgovBBSMasterRegist"; + + return ".adminLayout/게시판관리등록/com/cop/bbs/EgovBBSMasterRegist"; } /** * 신규 게시판 마스터 정보를 등록한다. - * + * * @param boardMasterVO * @param boardMaster * @param status @@ -127,42 +138,40 @@ @RequestMapping("/cop/bbs/insertBBSMaster.do") public String insertBBSMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster, BindingResult bindingResult, ModelMap model) throws Exception { - + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - + beanValidator.validate(boardMaster, bindingResult); if (bindingResult.hasErrors()) { ComDefaultCodeVO vo = new ComDefaultCodeVO(); - + //게시판유형코드 vo.setCodeId("COM101"); List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo); model.addAttribute("bbsTyCode", codeResult); - + return "egovframework/com/cop/bbs/EgovBBSMasterRegist"; } - - if (isAuthenticated) { - boardMaster.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); - if((boardMasterVO == null ? "" : EgovStringUtil.isNullToString(boardMasterVO.getBlogAt())).equals("Y")){ - boardMaster.setBlogAt("Y"); - }else{ - boardMaster.setBlogAt("N"); - } - egovBBSMasterService.insertBBSMasterInf(boardMaster); + + boardMaster.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); + if((boardMasterVO == null ? "" : EgovStringUtil.isNullToString(boardMasterVO.getBlogAt())).equals("Y")){ + boardMaster.setBlogAt("Y"); + }else{ + boardMaster.setBlogAt("N"); } + egovBBSMasterService.insertBBSMasterInf(boardMaster); + if(boardMaster.getBlogAt().equals("Y")){ return "forward:/cop/bbs/selectArticleBlogList.do"; }else{ return "forward:/cop/bbs/selectBBSMasterInfs.do"; } - + } /** * 게시판 마스터 목록을 조회한다. - * + * * @param boardMasterVO * @param model * @return @@ -173,32 +182,32 @@ public String selectBBSMasterInfs(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception { boardMasterVO.setPageUnit(propertyService.getInt("pageUnit")); boardMasterVO.setPageSize(propertyService.getInt("pageSize")); - + PaginationInfo paginationInfo = new PaginationInfo(); - + paginationInfo.setCurrentPageNo(boardMasterVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardMasterVO.getPageUnit()); paginationInfo.setPageSize(boardMasterVO.getPageSize()); - + boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - + Map<String, Object> map = egovBBSMasterService.selectBBSMasterInfs(boardMasterVO); int totCnt = Integer.parseInt((String)map.get("resultCnt")); - + paginationInfo.setTotalRecordCount(totCnt); - + model.addAttribute("resultList", map.get("resultList")); - model.addAttribute("resultCnt", map.get("resultCnt")); + model.addAttribute("resultCnt", map.get("resultCnt")); model.addAttribute("paginationInfo", paginationInfo); - return "egovframework/com/cop/bbs/EgovBBSMasterList"; + return ".adminLayout/게시판관리목록/com/cop/bbs/EgovBBSMasterList"; } - + /** * 블로그에 대한 목록을 조회한다. - * + * * @param blogVO * @param model * @return @@ -207,7 +216,7 @@ @IncludedInfo(name="블로그관리", order = 170 ,gid = 40) @RequestMapping("/cop/bbs/selectBlogList.do") public String selectBlogMasterList(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception { - + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); //KISA 보안취약점 조치 (2018-12-10, 신용호) Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); @@ -215,36 +224,36 @@ if(!isAuthenticated) { return "egovframework/com/uat/uia/EgovLoginUsr"; } - + boardMasterVO.setPageUnit(propertyService.getInt("pageUnit")); boardMasterVO.setPageSize(propertyService.getInt("pageSize")); - + PaginationInfo paginationInfo = new PaginationInfo(); - + paginationInfo.setCurrentPageNo(boardMasterVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardMasterVO.getPageUnit()); paginationInfo.setPageSize(boardMasterVO.getPageSize()); - + boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); boardMasterVO.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); - + Map<String, Object> map = egovBBSMasterService.selectBlogMasterInfs(boardMasterVO); int totCnt = Integer.parseInt((String)map.get("resultCnt")); - + paginationInfo.setTotalRecordCount(totCnt); - + model.addAttribute("resultList", map.get("resultList")); - model.addAttribute("resultCnt", map.get("resultCnt")); + model.addAttribute("resultCnt", map.get("resultCnt")); model.addAttribute("paginationInfo", paginationInfo); return "egovframework/com/cop/bbs/EgovBlogList"; } - + /** * 블로그 등록을 위한 등록페이지로 이동한다. - * + * * @param blogVO * @param model * @return @@ -255,10 +264,10 @@ model.addAttribute("blogMasterVO", new BlogVO()); return "egovframework/com/cop/bbs/EgovBlogRegist"; } - + /** * 블로그 생성 유무를 판단한다. - * + * * @param blogVO * @param model * @return @@ -273,13 +282,13 @@ if(!isAuthenticated) { throw new IllegalAccessException("Login Required!"); } - + model.addAttribute("blogMasterVO", new BlogVO()); - + String userVal=""; blogVO.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); userVal = egovBBSMasterService.checkBlogUser(blogVO); - + ModelAndView mav = new ModelAndView("jsonView"); mav.addObject("userChk", userVal); return mav; @@ -287,7 +296,7 @@ /** * 블로그 정보를 등록한다. - * + * * @param blogVO * @param blog * @param status @@ -301,36 +310,36 @@ LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - + if(!isAuthenticated) { //KISA 보안약점 조치 (2018-12-10, 신용호) return "egovframework/com/uat/uia/EgovLoginUsr"; } - + blogVO.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); BlogVO vo = egovBBSMasterService.checkBlogUser2(blogVO); - + if(vo != null) { model.addAttribute("blogMasterVO", new BlogVO()); model.addAttribute("message", egovMessageSource.getMessage("comCopBlog.validate.blogUserCheck")); return "egovframework/com/cop/bbs/EgovBlogRegist"; } - + beanValidator.validate(blog, bindingResult); - + if (bindingResult.hasErrors()) { return "egovframework/com/cop/bbs/EgovBlogRegist"; } - + String blogId = idgenServiceBlog.getNextStringId(); //블로그 아이디 채번 String bbsId = idgenServiceBbs.getNextStringId(); //게시판 아이디 채번 - + blog.setRegistSeCode("REGC02"); blog.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); blog.setBbsId(bbsId); blog.setBlogId(blogId); blog.setBlogAt("Y"); egovBBSMasterService.insertBlogMaster(blog); - + if (isAuthenticated) { //블로그 개설자의 정보를 등록한다. BlogUserVO blogUserVO = new BlogUserVO(); @@ -340,7 +349,7 @@ blogUserVO.setMberSttus("P"); blogUserVO.setUseAt("Y"); blogUserVO.setFrstRegisterId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); - + egovBBSMasterService.insertBoardBlogUserRqst(blogUserVO); } return "forward:/cop/bbs/selectBlogList.do"; @@ -348,28 +357,37 @@ /** * 게시판 마스터 상세내용을 조회한다. - * + * * @param boardMasterVO * @param model * @return * @throws Exception */ @RequestMapping("/cop/bbs/selectBBSMasterDetail.do") - public String selectBBSMasterDetail(@ModelAttribute("searchVO") BoardMasterVO searchVO, ModelMap model) throws Exception { + public String selectBBSMasterDetail(@ModelAttribute("searchVO") BoardMasterVO searchVO, HttpServletRequest request, ModelMap model) throws Exception { BoardMasterVO vo = egovBBSMasterService.selectBBSMasterInf(searchVO); + // 에디터 내용 이미지, 파일다운로드 대응(contextpath) + vo.setBbsForm(CommonUtil.convertEditorCn(vo.getBbsForm(), request)); model.addAttribute("result", vo); - + + // 사용자 등록 권한을 위한 권한 리스트를 가지고 온다 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setPagingAt(false); + authorManageVO.setSearchCondition("999"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + //--------------------------------- // 2011.09.15 : 2단계 기능 추가 반영 방법 변경 //--------------------------------- - + if(EgovComponentChecker.hasComponent("EgovArticleCommentService")){ model.addAttribute("useComment", "true"); } - - return "egovframework/com/cop/bbs/EgovBBSMasterDetail"; + + return ".adminLayout/게시판관리상세화면/com/cop/bbs/EgovBBSMasterDetail"; } - + /** * 게시판 마스터정보를 수정하기 위한 전 처리 * @param bbsId @@ -377,41 +395,47 @@ * @param model * @throws Exception */ - @RequestMapping("/cop/bbs/updateBBSMasterView.do") - public String updateBBSMasterView(@RequestParam("bbsId") String bbsId , - @ModelAttribute("searchVO") BoardMaster searchVO, ModelMap model) - throws Exception { + @RequestMapping("/cop/bbs/updateBBSMasterView.do") + public String updateBBSMasterView(@RequestParam("bbsId") String bbsId, @ModelAttribute("searchVO") BoardMaster searchVO + , HttpServletRequest request, ModelMap model) throws Exception { + BoardMasterVO boardMasterVO = new BoardMasterVO(); + //게시판유형코드 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM101"); + List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("bbsTyCode", codeResult); - BoardMasterVO boardMasterVO = new BoardMasterVO(); + // Primary Key 값 세팅 + boardMasterVO.setBbsId(bbsId); - - //게시판유형코드 - ComDefaultCodeVO vo = new ComDefaultCodeVO(); - vo.setCodeId("COM101"); - List<?> codeResult = cmmUseService.selectCmmCodeDetail(vo); - model.addAttribute("bbsTyCode", codeResult); - - // Primary Key 값 세팅 - boardMasterVO.setBbsId(bbsId); + BoardMasterVO bdvo = egovBBSMasterService.selectBBSMasterInf(boardMasterVO); + // 에디터 내용 이미지, 파일다운로드 대응(contextpath) + bdvo.setBbsForm(CommonUtil.convertEditorCn(bdvo.getBbsForm(), request)); + model.addAttribute("boardMasterVO", egovBBSMasterService.selectBBSMasterInf(boardMasterVO)); - model.addAttribute("boardMasterVO", egovBBSMasterService.selectBBSMasterInf(boardMasterVO)); + // 사용자 등록 권한을 위한 권한 리스트를 가지고 온다 + AuthorManageVO authorManageVO = new AuthorManageVO(); + authorManageVO.setPagingAt(false); + authorManageVO.setSearchCondition("999"); + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); //--------------------------------- // 2011.09.15 : 2단계 기능 추가 반영 방법 변경 //--------------------------------- - + if(EgovComponentChecker.hasComponent("EgovArticleCommentService")){ model.addAttribute("useComment", "true"); } - - return "egovframework/com/cop/bbs/EgovBBSMasterUpdt"; - } - + + return ".adminLayout/게시판관리수정화면/com/cop/bbs/EgovBBSMasterUpdt"; + } + /** * 게시판 마스터 정보를 수정한다. - * + * * @param boardMasterVO * @param boardMaster * @param model @@ -423,33 +447,30 @@ BindingResult bindingResult, ModelMap model) throws Exception { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - + beanValidator.validate(boardMaster, bindingResult); if (bindingResult.hasErrors()) { BoardMasterVO vo = egovBBSMasterService.selectBBSMasterInf(boardMasterVO); - + model.addAttribute("result", vo); - + ComDefaultCodeVO comVo = new ComDefaultCodeVO(); comVo.setCodeId("COM101"); List<?> codeResult = cmmUseService.selectCmmCodeDetail(comVo); model.addAttribute("bbsTyCode", codeResult); - + return "egovframework/com/cop/bbs/EgovBBSMasterUpdt"; } - - if (isAuthenticated) { - boardMaster.setLastUpdusrId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); - egovBBSMasterService.updateBBSMasterInf(boardMaster); - } - + + boardMaster.setLastUpdusrId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); + egovBBSMasterService.updateBBSMasterInf(boardMaster); + return "forward:/cop/bbs/selectBBSMasterInfs.do"; } /** * 게시판 마스터 정보를 삭제한다. - * + * * @param boardMasterVO * @param boardMaster * @param status @@ -461,19 +482,17 @@ ) throws Exception { LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (isAuthenticated) { - boardMaster.setLastUpdusrId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); - egovBBSMasterService.deleteBBSMasterInf(boardMaster); - } + boardMaster.setLastUpdusrId(user == null ? "" : EgovStringUtil.isNullToString(user.getUniqId())); + egovBBSMasterService.deleteBBSMasterInf(boardMaster); + // status.setComplete(); return "forward:/cop/bbs/selectBBSMasterInfs.do"; } - + /** * 포트릿을 위한 블로그 목록 정보를 조회한다. - * + * * @param blogVO * @param model * @return @@ -482,15 +501,15 @@ @RequestMapping("/cop/bbs/selectBlogListPortlet.do") public String selectBlogListPortlet(@ModelAttribute("searchVO") BlogVO blogVO, ModelMap model) throws Exception { List<BlogVO> result = egovBBSMasterService.selectBlogListPortlet(blogVO); - + model.addAttribute("resultList", result); return "egovframework/com/cop/bbs/EgovBlogListPortlet"; } - + /** * 포트릿을 위한 게시판 목록 정보를 조회한다. - * + * * @param blogVO * @param model * @return @@ -499,11 +518,11 @@ @RequestMapping("/cop/bbs/selectBBSListPortlet.do") public String selectBBSListPortlet(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception { List<BoardMasterVO> result = egovBBSMasterService.selectBBSListPortlet(boardMasterVO); - + model.addAttribute("resultList", result); - + return "egovframework/com/cop/bbs/EgovBBSListPortlet"; } - + } Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterServiceImpl.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterServiceImpl.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterServiceImpl.java (revision 12) @@ -8,13 +8,13 @@ import org.springframework.stereotype.Service; -import egovframework.com.cop.bbs.service.BoardMaster; -import egovframework.com.cop.bbs.service.BoardMasterVO; -import egovframework.com.cop.bbs.service.EgovBBSMasterService; import egovframework.com.cmm.EgovComponentChecker; import egovframework.com.cop.bbs.service.Blog; import egovframework.com.cop.bbs.service.BlogUser; import egovframework.com.cop.bbs.service.BlogVO; +import egovframework.com.cop.bbs.service.BoardMaster; +import egovframework.com.cop.bbs.service.BoardMasterVO; +import egovframework.com.cop.bbs.service.EgovBBSMasterService; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import egovframework.rte.fdl.cmmn.exception.FdlException; import egovframework.rte.fdl.idgnr.EgovIdGnrService; @@ -27,14 +27,14 @@ @Resource(name = "egovBBSMstrIdGnrService") private EgovIdGnrService idgenService; - + //--------------------------------- // 2009.06.26 : 2단계 기능 추가 //--------------------------------- @Resource(name = "BBSAddedOptionsDAO") private BBSAddedOptionsDAO addedOptionsDAO; ////------------------------------- - + @Override public Map<String, Object> selectNotUsedBdMstrList(BoardMasterVO boardMasterVO) { // TODO Auto-generated method stub @@ -43,20 +43,20 @@ @Override public void deleteBBSMasterInf(BoardMaster boardMaster) { - egovBBSMasterDao.deleteBBSMaster(boardMaster); + egovBBSMasterDao.deleteBBSMaster(boardMaster); } @Override public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception { egovBBSMasterDao.updateBBSMaster(boardMaster); - + //--------------------------------- // 2009.06.26 : 2단계 기능 추가 //--------------------------------- if (boardMaster.getOption().equals("comment") || boardMaster.getOption().equals("stsfdg")) { addedOptionsDAO.insertAddedOptionsInf(boardMaster); } - + } @Override @@ -64,10 +64,10 @@ BoardMasterVO resultVO = egovBBSMasterDao.selectBBSMasterDetail(boardMasterVO); if (resultVO == null) throw processException("info.nodata.msg"); - + if(EgovComponentChecker.hasComponent("EgovBBSCommentService")){//2011.09.15 BoardMasterVO options = addedOptionsDAO.selectAddedOptionsInf(boardMasterVO); - + if (options != null) { if (options.getCommentAt().equals("Y")) { resultVO.setOption("comment"); @@ -76,7 +76,7 @@ resultVO.setOption("na"); // 미지정 상태로 수정 가능 (이미 지정된 경우는 수정 불가로 처리) } } - + return resultVO; } @@ -84,22 +84,22 @@ public Map<String, Object> selectBBSMasterInfs(BoardMasterVO boardMasterVO) { List<?> result = egovBBSMasterDao.selectBBSMasterInfs(boardMasterVO); int cnt = egovBBSMasterDao.selectBBSMasterInfsCnt(boardMasterVO); - + Map<String, Object> map = new HashMap<String, Object>(); - + map.put("resultList", result); map.put("resultCnt", Integer.toString(cnt)); return map; } - + @Override public Map<String, Object> selectBlogMasterInfs(BoardMasterVO boardMasterVO) { List<?> result = egovBBSMasterDao.selectBlogMasterInfs(boardMasterVO); int cnt = egovBBSMasterDao.selectBlogMasterInfsCnt(boardMasterVO); - + Map<String, Object> map = new HashMap<String, Object>(); - + map.put("resultList", result); map.put("resultCnt", Integer.toString(cnt)); @@ -108,13 +108,13 @@ @Override public void insertBBSMasterInf(BoardMaster boardMaster) throws Exception { - + //게시판 ID 채번 String bbsId = idgenService.getNextStringId(); boardMaster.setBbsId(bbsId); - + egovBBSMasterDao.insertBBSMasterInf(boardMaster); - + //--------------------------------- // 2009.06.26 : 2단계 기능 추가 //--------------------------------- @@ -123,35 +123,35 @@ } } - + @Override public String checkBlogUser(BlogVO blogVO) { int userCnt = egovBBSMasterDao.checkExistUser(blogVO); - + if (userCnt == 0) { return ""; } else { return "EXIST"; } } - + @Override public BlogVO checkBlogUser2(BlogVO blogVO) { BlogVO userBlog = egovBBSMasterDao.checkExistUser2(blogVO); return userBlog; } - + @Override public void insertBoardBlogUserRqst(BlogUser blogUser) { egovBBSMasterDao.insertBoardBlogUserRqst(blogUser); } - + @Override public void insertBlogMaster(Blog blog) throws FdlException { egovBBSMasterDao.insertBlogMaster(blog); } - + @Override public BlogVO selectBlogDetail(BlogVO blogVO) throws Exception { BlogVO resultVO = egovBBSMasterDao.selectBlogDetail(blogVO); @@ -169,5 +169,5 @@ public List<BoardMasterVO> selectBBSListPortlet(BoardMasterVO boardMasterVO) throws Exception { return egovBBSMasterDao.selectBBSListPortlet(boardMasterVO); } - + } Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterDAO.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterDAO.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovBBSMasterDAO.java (revision 12) @@ -2,27 +2,28 @@ import java.util.List; +import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Repository; import egovframework.com.cmm.service.impl.EgovComAbstractDAO; -import egovframework.com.cop.bbs.service.BoardMaster; -import egovframework.com.cop.bbs.service.BoardMasterVO; -import egovframework.com.cop.bbs.service.BlogVO; import egovframework.com.cop.bbs.service.Blog; import egovframework.com.cop.bbs.service.BlogUser; +import egovframework.com.cop.bbs.service.BlogVO; +import egovframework.com.cop.bbs.service.BoardMaster; +import egovframework.com.cop.bbs.service.BoardMasterVO; @Repository("EgovBBSMasterDAO") public class EgovBBSMasterDAO extends EgovComAbstractDAO { - public List<?> selectBBSMasterInfs(BoardMasterVO boardMasterVO) { - return list("BBSMaster.selectBBSMasterList", boardMasterVO); + public List<BoardMasterVO> selectBBSMasterInfs(BoardMasterVO boardMasterVO) throws DataAccessException { + return selectList("BBSMaster.selectBBSMasterList", boardMasterVO); } - public int selectBBSMasterInfsCnt(BoardMasterVO boardMasterVO) { + public int selectBBSMasterInfsCnt(BoardMasterVO boardMasterVO) throws DataAccessException { return (Integer)selectOne("BBSMaster.selectBBSMasterListTotCnt", boardMasterVO); } - - public BoardMasterVO selectBBSMasterDetail(BoardMasterVO boardMasterVO) { + + public BoardMasterVO selectBBSMasterDetail(BoardMasterVO boardMasterVO) throws DataAccessException { return (BoardMasterVO) selectOne("BBSMaster.selectBBSMasterDetail", boardMasterVO); } @@ -37,34 +38,34 @@ public void deleteBBSMaster(BoardMaster boardMaster) { update("BBSMaster.deleteBBSMaster", boardMaster); } - + /* * 블로그 관련 */ public List<?> selectBlogMasterInfs(BoardMasterVO boardMasterVO) { return list("BBSMaster.selectBlogMasterList", boardMasterVO); } - + public int selectBlogMasterInfsCnt(BoardMasterVO boardMasterVO) { return (Integer)selectOne("BBSMaster.selectBlogMasterListTotCnt", boardMasterVO); } - + public int checkExistUser(BlogVO blogVO) { return (Integer)selectOne("BBSMaster.checkExistUser", blogVO); } - + public BlogVO checkExistUser2(BlogVO blogVO) { return (BlogVO) selectOne("BBSMaster.checkExistUser2", blogVO); } - + public void insertBoardBlogUserRqst(BlogUser blogUser) { insert("BBSMaster.insertBoardBlogUserRqst", blogUser); } - + public void insertBlogMaster(Blog blog) { insert("BBSMaster.insertBlogMaster", blog); } - + public BlogVO selectBlogDetail(BlogVO blogVO) { return (BlogVO) selectOne("BBSMaster.selectBlogDetail", blogVO); } Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMaster.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMaster.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMaster.java (revision 12) @@ -4,6 +4,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder; +import egovframework.com.cmm.CustomDefaultVO; + /** * 게시판 속성정보를 담기위한 엔티티 클래스 * @author 공통서비스개발팀 이삼섭 @@ -13,7 +15,7 @@ * * <pre> * << 개정이력(Modification Information) >> - * + * * 수정일 수정자 수정내용 * ------- -------- --------------------------- * 2009.03.12 이삼섭 최초 생성 @@ -22,87 +24,93 @@ * </pre> */ @SuppressWarnings("serial") -public class BoardMaster implements Serializable { - +public class BoardMaster extends CustomDefaultVO implements Serializable { + /** 게시판 아이디 */ private String bbsId = ""; - + /** 게시판 소개 */ private String bbsIntrcn = ""; - + /** 게시판 명 */ private String bbsNm = ""; - + /** 게시판 유형코드 */ private String bbsTyCode = ""; - + /** 파일첨부가능여부 */ private String fileAtchPosblAt = ""; - + /** 최초등록자 아이디 */ private String frstRegisterId = ""; - + /** 최초등록시점 */ private String frstRegisterPnttm = ""; - + /** 최종수정자 아이디 */ public String lastUpdusrId = ""; - + /** 최종수정시점 */ private String lastUpdusrPnttm = ""; - + /** 첨부가능파일숫자 */ private int atchPosblFileNumber = 0; - + /** 첨부가능파일사이즈 */ - private String atchPosblFileSize = ""; - + private int atchPosblFileSize = 0; + /** 답장가능여부 */ private String replyPosblAt = ""; - + /** 사용여부 */ private String useAt = ""; - + /** 사용플래그 */ private String bbsUseFlag = ""; - + /** 대상 아이디 */ private String trgetId = ""; - + /** 등록구분코드 */ private String registSeCode = ""; - + /** 유일 아이디 */ private String uniqId = ""; - - /** 템플릿 명 */ - private String tmplatNm = ""; - - /** 커뮤니티 ID */ - private String cmmntyId; - + /** 블로그 ID */ private String blogId; - + /** 블로그 사용 유무 */ private String blogAt; - + //--------------------------------- // 2009.06.26 : 2단계 기능 추가 //--------------------------------- /** 추가 option (댓글-comment, 만족도조사-stsfdg) */ private String option = ""; - + /** 댓글 여부 */ private String commentAt = ""; - + /** 만족도조사 */ private String stsfdgAt = ""; ////------------------------------- + /** 게시판양식 */ + private String bbsForm = ""; + + /** 삭제여부 */ + private String deleteAt = ""; + + /** 글 등록권한 */ + private String sntncRegistAuthor = ""; + + /** 댓글 등록권한 */ + private String answerRegistAuthor = ""; + /** * bbsId attribute를 리턴한다. - * + * * @return the bbsId */ public String getBbsId() { @@ -111,7 +119,7 @@ /** * bbsId attribute 값을 설정한다. - * + * * @param bbsId * the bbsId to set */ @@ -121,7 +129,7 @@ /** * bbsIntrcn attribute를 리턴한다. - * + * * @return the bbsIntrcn */ public String getBbsIntrcn() { @@ -130,7 +138,7 @@ /** * bbsIntrcn attribute 값을 설정한다. - * + * * @param bbsIntrcn * the bbsIntrcn to set */ @@ -140,7 +148,7 @@ /** * bbsNm attribute를 리턴한다. - * + * * @return the bbsNm */ public String getBbsNm() { @@ -149,7 +157,7 @@ /** * bbsNm attribute 값을 설정한다. - * + * * @param bbsNm * the bbsNm to set */ @@ -159,7 +167,7 @@ /** * bbsTyCode attribute를 리턴한다. - * + * * @return the bbsTyCode */ public String getBbsTyCode() { @@ -168,7 +176,7 @@ /** * bbsTyCode attribute 값을 설정한다. - * + * * @param bbsTyCode * the bbsTyCode to set */ @@ -178,7 +186,7 @@ /** * fileAtchPosblAt attribute를 리턴한다. - * + * * @return the fileAtchPosblAt */ public String getFileAtchPosblAt() { @@ -187,7 +195,7 @@ /** * fileAtchPosblAt attribute 값을 설정한다. - * + * * @param fileAtchPosblAt * the fileAtchPosblAt to set */ @@ -197,7 +205,7 @@ /** * frstRegisterId attribute를 리턴한다. - * + * * @return the frstRegisterId */ public String getFrstRegisterId() { @@ -206,7 +214,7 @@ /** * frstRegisterId attribute 값을 설정한다. - * + * * @param frstRegisterId * the frstRegisterId to set */ @@ -216,7 +224,7 @@ /** * frstRegisterPnttm attribute를 리턴한다. - * + * * @return the frstRegisterPnttm */ public String getFrstRegisterPnttm() { @@ -225,7 +233,7 @@ /** * frstRegisterPnttm attribute 값을 설정한다. - * + * * @param frstRegisterPnttm * the frstRegisterPnttm to set */ @@ -235,7 +243,7 @@ /** * lastUpdusrId attribute를 리턴한다. - * + * * @return the lastUpdusrId */ public String getLastUpdusrId() { @@ -244,7 +252,7 @@ /** * lastUpdusrId attribute 값을 설정한다. - * + * * @param lastUpdusrId * the lastUpdusrId to set */ @@ -254,7 +262,7 @@ /** * lastUpdusrPnttm attribute를 리턴한다. - * + * * @return the lastUpdusrPnttm */ public String getLastUpdusrPnttm() { @@ -263,7 +271,7 @@ /** * lastUpdusrPnttm attribute 값을 설정한다. - * + * * @param lastUpdusrPnttm * the lastUpdusrPnttm to set */ @@ -273,7 +281,7 @@ /** * atchPosblFileNumber attribute를 리턴한다. - * + * * @return the atchPosblFileNumber */ public int getAtchPosblFileNumber() { @@ -282,7 +290,7 @@ /** * atchPosblFileNumber attribute 값을 설정한다. - * + * * @param atchPosblFileNumber * the atchPosblFileNumber to set */ @@ -291,27 +299,8 @@ } /** - * atchPosblFileSize attribute를 리턴한다. - * - * @return the atchPosblFileSize - */ - public String getAtchPosblFileSize() { - return atchPosblFileSize; - } - - /** - * atchPosblFileSize attribute 값을 설정한다. - * - * @param atchPosblFileSize - * the atchPosblFileSize to set - */ - public void setAtchPosblFileSize(String atchPosblFileSize) { - this.atchPosblFileSize = atchPosblFileSize; - } - - /** * replyPosblAt attribute를 리턴한다. - * + * * @return the replyPosblAt */ public String getReplyPosblAt() { @@ -320,7 +309,7 @@ /** * replyPosblAt attribute 값을 설정한다. - * + * * @param replyPosblAt * the replyPosblAt to set */ @@ -330,7 +319,7 @@ /** * useAt attribute를 리턴한다. - * + * * @return the useAt */ public String getUseAt() { @@ -339,7 +328,7 @@ /** * useAt attribute 값을 설정한다. - * + * * @param useAt * the useAt to set */ @@ -349,7 +338,7 @@ /** * bbsUseFlag attribute를 리턴한다. - * + * * @return the bbsUseFlag */ public String getBbsUseFlag() { @@ -358,7 +347,7 @@ /** * bbsUseFlag attribute 값을 설정한다. - * + * * @param bbsUseFlag * the bbsUseFlag to set */ @@ -368,7 +357,7 @@ /** * trgetId attribute를 리턴한다. - * + * * @return the trgetId */ public String getTrgetId() { @@ -377,7 +366,7 @@ /** * trgetId attribute 값을 설정한다. - * + * * @param trgetId * the trgetId to set */ @@ -387,7 +376,7 @@ /** * registSeCode attribute를 리턴한다. - * + * * @return the registSeCode */ public String getRegistSeCode() { @@ -396,7 +385,7 @@ /** * registSeCode attribute 값을 설정한다. - * + * * @param registSeCode * the registSeCode to set */ @@ -406,7 +395,7 @@ /** * uniqId attribute를 리턴한다. - * + * * @return the uniqId */ public String getUniqId() { @@ -415,7 +404,7 @@ /** * uniqId attribute 값을 설정한다. - * + * * @param uniqId * the uniqId to set */ @@ -424,25 +413,6 @@ } /** - * tmplatNm attribute를 리턴한다. - * - * @return the tmplatNm - */ - public String getTmplatNm() { - return tmplatNm; - } - - /** - * tmplatNm attribute 값을 설정한다. - * - * @param tmplatNm - * the tmplatNm to set - */ - public void setTmplatNm(String tmplatNm) { - this.tmplatNm = tmplatNm; - } - - /** * option attribute를 리턴한다. * @return the option */ @@ -489,22 +459,6 @@ public void setStsfdgAt(String stsfdgAt) { this.stsfdgAt = stsfdgAt; } - - /** - * cmmntyId attribute를 리턴한다. - * @return the cmmntyId - */ - public String getCmmntyId() { - return cmmntyId; - } - - /** - * cmmntyId attribute 값을 설정한다. - * @param cmmntyId the cmmntyId to set - */ - public void setCmmntyId(String cmmntyId) { - this.cmmntyId = cmmntyId; - } public String getBlogId() { return blogId; @@ -525,7 +479,49 @@ /** * toString 메소드를 대치한다. */ - public String toString() { + @Override + public String toString() { return ToStringBuilder.reflectionToString(this); } + + public String getBbsForm() { + return bbsForm; + } + + public void setBbsForm(String bbsForm) { + this.bbsForm = bbsForm; + } + + public String getSntncRegistAuthor() { + return sntncRegistAuthor; + } + + public void setSntncRegistAuthor(String sntncRegistAuthor) { + this.sntncRegistAuthor = sntncRegistAuthor; + } + + public String getAnswerRegistAuthor() { + return answerRegistAuthor; + } + + public void setAnswerRegistAuthor(String answerRegistAuthor) { + this.answerRegistAuthor = answerRegistAuthor; + } + + public int getAtchPosblFileSize() { + return atchPosblFileSize; + } + + public void setAtchPosblFileSize(int atchPosblFileSize) { + this.atchPosblFileSize = atchPosblFileSize; + } + + public String getDeleteAt() { + return deleteAt; + } + + public void setDeleteAt(String deleteAt) { + this.deleteAt = deleteAt; + } + } Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMasterVO.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMasterVO.java (revision 11) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardMasterVO.java (revision 12) @@ -13,7 +13,7 @@ * * <pre> * << 개정이력(Modification Information) >> - * + * * 수정일 수정자 수정내용 * ------- -------- --------------------------- * 2009.3.12 이삼섭 최초 생성 @@ -22,42 +22,9 @@ */ @SuppressWarnings("serial") public class BoardMasterVO extends BoardMaster implements Serializable { - - /** 검색시작일 */ - private String searchBgnDe = ""; - - /** 검색조건 */ - private String searchCnd = ""; - - /** 검색종료일 */ - private String searchEndDe = ""; - - /** 검색단어 */ - private String searchWrd = ""; - + /** 정렬순서(DESC,ASC) */ private String sortOrdr = ""; - - /** 검색사용여부 */ - private String searchUseYn = ""; - - /** 현재페이지 */ - private int pageIndex = 1; - - /** 페이지갯수 */ - private int pageUnit = 10; - - /** 페이지사이즈 */ - private int pageSize = 10; - - /** firstIndex */ - private int firstIndex = 1; - - /** lastIndex */ - private int lastIndex = 1; - - /** recordCountPerPage */ - private int recordCountPerPage = 10; /** rowNo */ private int rowNo = 0; @@ -81,84 +48,8 @@ private String tmplatCours = ""; /** - * searchBgnDe attribute를 리턴한다. - * - * @return the searchBgnDe - */ - public String getSearchBgnDe() { - return searchBgnDe; - } - - /** - * searchBgnDe attribute 값을 설정한다. - * - * @param searchBgnDe - * the searchBgnDe to set - */ - public void setSearchBgnDe(String searchBgnDe) { - this.searchBgnDe = searchBgnDe; - } - - /** - * searchCnd attribute를 리턴한다. - * - * @return the searchCnd - */ - public String getSearchCnd() { - return searchCnd; - } - - /** - * searchCnd attribute 값을 설정한다. - * - * @param searchCnd - * the searchCnd to set - */ - public void setSearchCnd(String searchCnd) { - this.searchCnd = searchCnd; - } - - /** - * searchEndDe attribute를 리턴한다. - * - * @return the searchEndDe - */ - public String getSearchEndDe() { - return searchEndDe; - } - - /** - * searchEndDe attribute 값을 설정한다. - * - * @param searchEndDe - * the searchEndDe to set - */ - public void setSearchEndDe(String searchEndDe) { - this.searchEndDe = searchEndDe; - } - - /** - * searchWrd attribute를 리턴한다. - * - * @return the searchWrd - */ - public String getSearchWrd() { - return searchWrd; - } - - /** - * searchWrd attribute 값을 설정한다. - * - * @param searchWrd - * the searchWrd to set - */ - public void setSearchWrd(String searchWrd) { - this.searchWrd = searchWrd; - } - - /** * sortOrdr attribute를 리턴한다. - * + * * @return the sortOrdr */ public String getSortOrdr() { @@ -167,7 +58,7 @@ /** * sortOrdr attribute 값을 설정한다. - * + * * @param sortOrdr * the sortOrdr to set */ @@ -176,141 +67,8 @@ } /** - * searchUseYn attribute를 리턴한다. - * - * @return the searchUseYn - */ - public String getSearchUseYn() { - return searchUseYn; - } - - /** - * searchUseYn attribute 값을 설정한다. - * - * @param searchUseYn - * the searchUseYn to set - */ - public void setSearchUseYn(String searchUseYn) { - this.searchUseYn = searchUseYn; - } - - /** - * pageIndex attribute를 리턴한다. - * - * @return the pageIndex - */ - public int getPageIndex() { - return pageIndex; - } - - /** - * pageIndex attribute 값을 설정한다. - * - * @param pageIndex - * the pageIndex to set - */ - public void setPageIndex(int pageIndex) { - this.pageIndex = pageIndex; - } - - /** - * pageUnit attribute를 리턴한다. - * - * @return the pageUnit - */ - public int getPageUnit() { - return pageUnit; - } - - /** - * pageUnit attribute 값을 설정한다. - * - * @param pageUnit - * the pageUnit to set - */ - public void setPageUnit(int pageUnit) { - this.pageUnit = pageUnit; - } - - /** - * pageSize attribute를 리턴한다. - * - * @return the pageSize - */ - public int getPageSize() { - return pageSize; - } - - /** - * pageSize attribute 값을 설정한다. - * - * @param pageSize - * the pageSize to set - */ - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - /** - * firstIndex attribute를 리턴한다. - * - * @return the firstIndex - */ - public int getFirstIndex() { - return firstIndex; - } - - /** - * firstIndex attribute 값을 설정한다. - * - * @param firstIndex - * the firstIndex to set - */ - public void setFirstIndex(int firstIndex) { - this.firstIndex = firstIndex; - } - - /** - * lastIndex attribute를 리턴한다. - * - * @return the lastIndex - */ - public int getLastIndex() { - return lastIndex; - } - - /** - * lastIndex attribute 값을 설정한다. - * - * @param lastIndex - * the lastIndex to set - */ - public void setLastIndex(int lastIndex) { - this.lastIndex = lastIndex; - } - - /** - * recordCountPerPage attribute를 리턴한다. - * - * @return the recordCountPerPage - */ - public int getRecordCountPerPage() { - return recordCountPerPage; - } - - /** - * recordCountPerPage attribute 값을 설정한다. - * - * @param recordCountPerPage - * the recordCountPerPage to set - */ - public void setRecordCountPerPage(int recordCountPerPage) { - this.recordCountPerPage = recordCountPerPage; - } - - /** * rowNo attribute를 리턴한다. - * + * * @return the rowNo */ public int getRowNo() { @@ -319,7 +77,7 @@ /** * rowNo attribute 값을 설정한다. - * + * * @param rowNo * the rowNo to set */ @@ -329,7 +87,7 @@ /** * frstRegisterNm attribute를 리턴한다. - * + * * @return the frstRegisterNm */ public String getFrstRegisterNm() { @@ -338,7 +96,7 @@ /** * frstRegisterNm attribute 값을 설정한다. - * + * * @param frstRegisterNm * the frstRegisterNm to set */ @@ -348,7 +106,7 @@ /** * bbsTyCodeNm attribute를 리턴한다. - * + * * @return the bbsTyCodeNm */ public String getBbsTyCodeNm() { @@ -357,7 +115,7 @@ /** * bbsTyCodeNm attribute 값을 설정한다. - * + * * @param bbsTyCodeNm * the bbsTyCodeNm to set */ @@ -367,7 +125,7 @@ /** * tmplatNm attribute를 리턴한다. - * + * * @return the tmplatNm */ public String getTmplatNm() { @@ -376,7 +134,7 @@ /** * tmplatNm attribute 값을 설정한다. - * + * * @param tmplatNm * the tmplatNm to set */ @@ -386,7 +144,7 @@ /** * lastUpdusrNm attribute를 리턴한다. - * + * * @return the lastUpdusrNm */ public String getLastUpdusrNm() { @@ -395,7 +153,7 @@ /** * lastUpdusrNm attribute 값을 설정한다. - * + * * @param lastUpdusrNm * the lastUpdusrNm to set */ @@ -405,7 +163,7 @@ /** * authFlag attribute를 리턴한다. - * + * * @return the authFlag */ public String getAuthFlag() { @@ -414,7 +172,7 @@ /** * authFlag attribute 값을 설정한다. - * + * * @param authFlag * the authFlag to set */ @@ -424,7 +182,7 @@ /** * tmplatCours attribute를 리턴한다. - * + * * @return the tmplatCours */ public String getTmplatCours() { @@ -433,7 +191,7 @@ /** * tmplatCours attribute 값을 설정한다. - * + * * @param tmplatCours * the tmplatCours to set */ Index: base3.10/src/main/resources/egovframework/mapper/com/sec/ram/EgovAuthorManage_SQL_postgres.xml =================================================================== --- base3.10/src/main/resources/egovframework/mapper/com/sec/ram/EgovAuthorManage_SQL_postgres.xml (revision 11) +++ base3.10/src/main/resources/egovframework/mapper/com/sec/ram/EgovAuthorManage_SQL_postgres.xml (revision 12) @@ -10,17 +10,19 @@ <result property="authorCreatDe" column="AUTHOR_CREAT_DE"/> </resultMap> - <select id="selectAuthorList" parameterType="egovframework.com.sec.ram.service.AuthorManageVO" resultMap="author"> - SELECT - AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE - FROM COMTNAUTHORINFO - WHERE 1=1 - <if test="searchCondition == 1">AND - AUTHOR_NM LIKE CONCAT('%' , #{searchKeyword}, '%') - </if> - ORDER BY AUTHOR_CREAT_DE DESC - LIMIT #{recordCountPerPage} OFFSET #{firstIndex} - </select> + <select id="selectAuthorList" parameterType="egovframework.com.sec.ram.service.AuthorManageVO" resultMap="author"> + SELECT + AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE + FROM COMTNAUTHORINFO + WHERE 1=1 + <if test="searchCondition == 1"> + AND AUTHOR_NM LIKE CONCAT('%' , #{searchKeyword}, '%') + </if> + ORDER BY AUTHOR_CREAT_DE DESC + <if test="pagingAt == true"> + LIMIT #{recordCountPerPage} OFFSET #{firstIndex} + </if> + </select> <insert id="insertAuthor" parameterType="egovframework.com.sec.ram.service.AuthorManage"> Index: base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSAddedOptions_SQL_postgres.xml =================================================================== --- base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSAddedOptions_SQL_postgres.xml (revision 11) +++ base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSAddedOptions_SQL_postgres.xml (revision 12) @@ -36,19 +36,19 @@ </insert> <select id="selectAddedOptionsInf" parameterType="egovframework.com.cop.bbs.service.BoardMaster" resultMap="boardMasterDetail"> - + SELECT - a.BBS_ID, a.ANSWER_AT, a.STSFDG_AT, + a.BBS_ID, a.ANSWER_AT, a.FRST_REGISTER_ID, b.USER_NM as FRST_REGISTER_NM, TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYYmmdd') as FRST_REGIST_PNTTM FROM - COMTNBBSMASTEROPTN a + COMTNBBSMASTEROPTN a LEFT OUTER JOIN COMVNUSERMASTER b - ON a.FRST_REGISTER_ID = b.ESNTL_ID + ON a.FRST_REGISTER_ID = b.ESNTL_ID WHERE a.BBS_ID = #{bbsId} - - </select> - + + </select> + <update id="updateAddedOptionsInf" parameterType="egovframework.com.cop.bbs.service.BoardMaster"> UPDATE COMTNBBSMASTEROPTN SET Index: base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSMaster_SQL_postgres.xml =================================================================== --- base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSMaster_SQL_postgres.xml (revision 11) +++ base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovBBSMaster_SQL_postgres.xml (revision 12) @@ -29,11 +29,12 @@ <result property="frstRegisterNm" column="FRST_REGISTER_NM"/> <result property="frstRegisterPnttm" column="FRST_REGIST_PNTTM"/> <result property="bbsTyCodeNm" column="BBS_TY_CODE_NM"/> - <result property="tmplatNm" column="TMPLAT_NM"/> <result property="authFlag" column="AUTH_FLAG"/> <result property="tmplatCours" column="TMPLAT_COURS"/> - <result property="cmmntyId" column="CMMNTY_ID"/> <result property="blogId" column="BLOG_ID"/> + <result property="bbsForm" column="BBS_FORM"/> + <result property="sntncRegistAuthor" column="SNTNC_REGIST_AUTHOR"/> + <result property="answerRegistAuthor" column="ANSWER_REGIST_AUTHOR"/> </resultMap> <resultMap id="boardMasterAll" type="egovframework.com.cop.bbs.service.BoardMasterVO"> @@ -78,99 +79,114 @@ </resultMap> <insert id="insertBBSMaster" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO"> - - INSERT INTO COMTNBBSMASTER - (BBS_ID, BBS_TY_CODE, BBS_NM, BBS_INTRCN, - REPLY_POSBL_AT, FILE_ATCH_POSBL_AT, ATCH_POSBL_FILE_NUMBER, - USE_AT, CMMNTY_ID, - FRST_REGISTER_ID, FRST_REGIST_PNTTM, BLOG_ID, BLOG_AT ) - VALUES - ( #{bbsId}, #{bbsTyCode}, #{bbsNm}, #{bbsIntrcn}, - #{replyPosblAt}, #{fileAtchPosblAt}, #{atchPosblFileNumber}, - #{useAt}, #{cmmntyId}, #{frstRegisterId}, NOW(), #{blogId}, #{blogAt} - ) - + INSERT INTO COMTNBBSMASTER + (BBS_ID, + BBS_TY_CODE, + BBS_NM, + BBS_INTRCN, + REPLY_POSBL_AT, + FILE_ATCH_POSBL_AT, + ATCH_POSBL_FILE_NUMBER, + USE_AT, + FRST_REGISTER_ID, + FRST_REGIST_PNTTM, + BLOG_ID, + BLOG_AT, + BBS_FORM, + DELETE_AT, + SNTNC_REGIST_AUTHOR, + ANSWER_REGIST_AUTHOR + ) VALUES ( + #{bbsId}, + #{bbsTyCode}, + #{bbsNm}, + #{bbsIntrcn}, + #{replyPosblAt}, + #{fileAtchPosblAt}, + #{atchPosblFileNumber}, + #{useAt}, + #{frstRegisterId}, + NOW(), + #{blogId}, + #{blogAt}, + #{bbsForm}, + 'N', + #{sntncRegistAuthor}, + #{answerRegistAuthor} + ) </insert> - + <select id="selectBBSMasterList" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO" resultMap="boardMasterList"> - - SELECT - a.BBS_ID, a.BBS_TY_CODE, b.CODE_NM as BBS_TY_CODE_NM, - a.BBS_NM, - a.USE_AT, - TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYYmmdd') as FRST_REGIST_PNTTM, - d.USER_NM AS FRST_REGISTER_NM - FROM - COMTNBBSMASTER a - LEFT OUTER JOIN - (SELECT CODE_ID, CODE, CODE_NM FROM - COMTCCMMNDETAILCODE WHERE CODE_ID = 'COM101' AND USE_AT='Y') b - ON a.BBS_TY_CODE = b.CODE - LEFT OUTER JOIN - (SELECT ESNTL_ID, USER_ID, USER_NM FROM COMVNUSERMASTER) d - ON a.FRST_REGISTER_ID = d.ESNTL_ID - WHERE 1=1 - <if test='cmmntyId != null and cmmntyId != ""'> - AND a.CMMNTY_ID = #{cmmntyId} - </if> - <if test="searchCnd == 0">AND - a.BBS_NM LIKE CONCAT ('%', #{searchWrd},'%') - </if> - <if test="searchCnd == 1">AND - a.BBS_INTRCN LIKE CONCAT ('%', #{searchWrd},'%') - </if> - - ORDER BY a.FRST_REGIST_PNTTM DESC - LIMIT #{recordCountPerPage} OFFSET #{firstIndex} - + SELECT + a.BBS_ID, a.BBS_TY_CODE, b.CODE_NM as BBS_TY_CODE_NM, + a.BBS_NM, + a.USE_AT, + TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYYmmdd') as FRST_REGIST_PNTTM, + d.USER_NM AS FRST_REGISTER_NM + FROM + COMTNBBSMASTER a + LEFT OUTER JOIN + (SELECT CODE_ID, CODE, CODE_NM FROM + COMTCCMMNDETAILCODE WHERE CODE_ID = 'COM101' AND USE_AT='Y') b + ON a.BBS_TY_CODE = b.CODE + LEFT OUTER JOIN + (SELECT ESNTL_ID, USER_ID, USER_NM FROM COMVNUSERMASTER) d + ON a.FRST_REGISTER_ID = d.ESNTL_ID + WHERE 1=1 + AND a.DELETE_AT = 'N' + <if test="searchCondition == 0"> + AND a.BBS_NM LIKE CONCAT ('%', #{searchKeyword},'%') + </if> + <if test="searchCondition == 1"> + AND a.BBS_INTRCN LIKE CONCAT ('%', #{searchKeyword},'%') + </if> + ORDER BY a.FRST_REGIST_PNTTM DESC + LIMIT #{recordCountPerPage} OFFSET #{firstIndex} </select> - + <select id="selectBBSMasterListTotCnt" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO" resultType="java.lang.Integer"> - - SELECT - COUNT(a.BBS_ID) - FROM - COMTNBBSMASTER a - LEFT OUTER JOIN - (SELECT CODE_ID, CODE, CODE_NM FROM - COMTCCMMNDETAILCODE WHERE CODE_ID = 'COM101' AND USE_AT='Y') b - ON a.BBS_TY_CODE = b.CODE - LEFT OUTER JOIN - (SELECT ESNTL_ID, USER_ID, USER_NM FROM COMVNUSERMASTER) d - ON a.FRST_REGISTER_ID = d.ESNTL_ID - WHERE 1=1 - <if test='cmmntyId != null and cmmntyId != ""'>AND - a.CMMNTY_ID = #{cmmntyId} - </if> - <if test="searchCnd == 0">AND - a.BBS_NM LIKE CONCAT ('%', #{searchWrd},'%') - </if> - <if test="searchCnd == 1">AND - a.BBS_INTRCN LIKE CONCAT ('%', #{searchWrd},'%') - </if> + + SELECT + COUNT(a.BBS_ID) + FROM + COMTNBBSMASTER a + LEFT OUTER JOIN + (SELECT CODE_ID, CODE, CODE_NM FROM + COMTCCMMNDETAILCODE WHERE CODE_ID = 'COM101' AND USE_AT='Y') b + ON a.BBS_TY_CODE = b.CODE + LEFT OUTER JOIN + (SELECT ESNTL_ID, USER_ID, USER_NM FROM COMVNUSERMASTER) d + ON a.FRST_REGISTER_ID = d.ESNTL_ID + WHERE 1=1 + AND a.DELETE_AT = 'N' + <if test="searchCondition == 0"> + AND a.BBS_NM LIKE CONCAT ('%', #{searchKeyword},'%') + </if> + <if test="searchCondition == 1"> + AND a.BBS_INTRCN LIKE CONCAT ('%', #{searchKeyword},'%') + </if> </select> - + <select id="selectBBSMasterDetail" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO" resultMap="boardMasterDetail"> - + SELECT a.BBS_ID, a.BBS_TY_CODE, b.CODE_NM as BBS_TY_CODE_NM, a.BBS_INTRCN, a.BBS_NM, a.FILE_ATCH_POSBL_AT, a.ATCH_POSBL_FILE_NUMBER, - a.ATCH_POSBL_FILE_SIZE, a.REPLY_POSBL_AT, a.FRST_REGISTER_ID, e.USER_NM as FRST_REGISTER_NM, a.CMMNTY_ID, - a.USE_AT, TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYYmmdd') as FRST_REGIST_PNTTM, BLOG_ID + a.ATCH_POSBL_FILE_SIZE, a.REPLY_POSBL_AT, a.FRST_REGISTER_ID, e.USER_NM as FRST_REGISTER_NM, + a.USE_AT, TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYYmmdd') as FRST_REGIST_PNTTM, BLOG_ID, a.BBS_FORM ,(SELECT COALESCE(USE_AT,'N') FROM COMTNBBSUSE WHERE BBS_ID = #{bbsId} AND TRGET_ID IN (#{uniqId}, 'SYSTEM_DEFAULT_BOARD') - ) as AUTH_FLAG + ) as AUTH_FLAG, a.SNTNC_REGIST_AUTHOR, a.ANSWER_REGIST_AUTHOR FROM COMTNBBSMASTER a LEFT OUTER JOIN (SELECT CODE_ID, CODE, CODE_NM FROM COMTCCMMNDETAILCODE WHERE CODE_ID = 'COM101' AND USE_AT='Y') b ON a.BBS_TY_CODE = b.CODE LEFT OUTER JOIN COMVNUSERMASTER e - ON a.FRST_REGISTER_ID = e.ESNTL_ID + ON a.FRST_REGISTER_ID = e.ESNTL_ID WHERE a.BBS_ID = #{bbsId} - </select> <update id="updateBBSMaster" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO"> @@ -181,21 +197,24 @@ BBS_TY_CODE = #{bbsTyCode}, FILE_ATCH_POSBL_AT = #{fileAtchPosblAt}, ATCH_POSBL_FILE_NUMBER = #{atchPosblFileNumber}, + ATCH_POSBL_FILE_SIZE = #{atchPosblFileSize}, LAST_UPDUSR_ID = #{lastUpdusrId}, LAST_UPDT_PNTTM = NOW(), - USE_AT = #{useAt} + USE_AT = #{useAt}, + BBS_FORM = #{bbsForm}, + SNTNC_REGIST_AUTHOR = #{sntncRegistAuthor}, + ANSWER_REGIST_AUTHOR = #{answerRegistAuthor} WHERE BBS_ID = #{bbsId} </update> <update id="deleteBBSMaster" parameterType="egovframework.com.cop.bbs.service.BoardMasterVO"> - - UPDATE COMTNBBSMASTER SET - USE_AT = 'N', - LAST_UPDUSR_ID = #{lastUpdusrId}, - LAST_UPDT_PNTTM = NOW() - WHERE BBS_ID = #{bbsId} - + UPDATE COMTNBBSMASTER SET + USE_AT = 'N', + DELETE_AT = 'Y', + LAST_UPDUSR_ID = #{lastUpdusrId}, + LAST_UPDT_PNTTM = NOW() + WHERE BBS_ID = #{bbsId} </update> <select id="selectBlogMasterList" parameterType="egovframework.com.cop.bbs.service.BlogVO" resultMap="BlogList"> @@ -217,8 +236,8 @@ ON a.FRST_REGISTER_ID = d.SCRTY_DTRMN_TRGET_ID WHERE c.CODE_ID = 'COM001' - <if test="searchCnd == 0">AND - a.BLOG_NM LIKE CONCAT ('%', #{searchWrd},'%') + <if test="searchCondition == 0">AND + a.BLOG_NM LIKE CONCAT ('%', #{searchKeyword},'%') </if> ORDER BY a.FRST_REGIST_PNTTM DESC @@ -240,8 +259,8 @@ ON a.FRST_REGISTER_ID = d.SCRTY_DTRMN_TRGET_ID WHERE c.CODE_ID = 'COM001' - <if test="searchCnd == 0">AND - a.BLOG_NM LIKE CONCAT ('%', #{searchWrd},'%') + <if test="searchCondition == 0">AND + a.BLOG_NM LIKE CONCAT ('%', #{searchKeyword},'%') </if> </select> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterDetail.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterDetail.jsp (revision 11) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterDetail.jsp (revision 12) @@ -21,111 +21,176 @@ <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%pageContext.setAttribute("crlf", "\r\n"); %> +<c:set var="reBbsId" value="${fn:replace(result.bbsId, \"BBSMSTR_\", \"\")}"/> <c:set var="pageTitle"><spring:message code="comCopBbs.boardMasterVO.title"/></c:set> -<!DOCTYPE html> -<html> -<head> -<title>${pageTitle} <spring:message code="title.detail" /></title><!-- 게시판 상세조회 --> -<meta http-equiv="content-type" content="text/html; charset=utf-8"> -<link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> +<!-- 에디터 관련 추가 CSS, Javascript 추가 --> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_editor.pkgd.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_style.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<!-- 에디터 관련 추가 CSS, Javascript 종료 --> + <script type="text/javascript"> /* ******************************************************** * 삭제처리 ******************************************************** */ - function fn_egov_delete_bbs(bbsId){ +function fn_egov_delete_bbs(bbsId){ if(confirm("<spring:message code="common.delete.msg" />")){ // Delete하기 위한 키값을 셋팅 document.BBSMasterForm.bbsId.value = bbsId; document.BBSMasterForm.action = "<c:url value='/cop/bbs/deleteBBSMaster.do'/>"; - document.BBSMasterForm.submit(); - } -} + document.BBSMasterForm.submit(); + } +} +/* ******************************************************** + * 목록처리 + ******************************************************** */ +function fn_list(){ + document.BBSMasterForm.action = "<c:url value='/cop/bbs/selectBBSMasterInfs.do'/>"; + document.BBSMasterForm.submit(); +} </script> -</head> -<body> + <!-- javascript warning tag --> <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> <form name="BBSMasterForm" action="<c:url value='/cop/bbs/updateBBSMasterView.do'/>" method="post"> -<div class="wTableFrm"> - <!-- 타이틀 --> - <h2>${pageTitle} <spring:message code="title.detail" /></h2><!-- 게시판 상세조회 --> + <div class="wTableFrm"> + <div class="board_header"> + <!-- 타이틀 --> + <h3>${pageTitle} <spring:message code="title.detail" /></h3><!-- 게시판 상세조회 --> + </div> + + <div class="board_body"> + <!-- 상세조회 --> + <table class="table_view"> + <caption>게시판 상세정보 - 게시판명, 게시판 유형, 사용여부, 등록자, 등록일, 글 등록권한, 파일첨부가능여부, 첨부가능파일숫자, 첨부가능파일사이즈, 답글가능여부, 게시판 소개내용, 게시판 주소, 추가선택사항, 댓글 등록권한, 양식으로 구성</caption> + <colgroup> + <col class="width150"> + <col class=""> + <col class="width150"> + <col class=""> + <col class="width150"> + <col class=""> + </colgroup> + <tbody> + <!-- 게시판명, 게시판 유형, 사용여부 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.bbsNm" /></th> + <td class="alignL"><c:out value="${result.bbsNm}"/></td> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.bbsTyCode" /></th> + <td class="alignL"><c:out value="${result.bbsTyCodeNm}"/></td> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.useAt" /></th> + <td class="alignL">${result.useAt}</td> + </tr> + <!-- 등록자, 등록일 --> + <tr> + <th scope="row"><spring:message code="table.reger" /></th> + <td class="alignL"><c:out value="${result.frstRegisterNm}"/></td> + <th scope="row"><spring:message code="table.regdate" /></th> + <td class="alignL" colspan="3"><c:out value="${result.frstRegisterPnttm}"/></td> + </tr> + <tr> + <th scope="row">글 등록권한</th> + <td class="alignL" colspan="5"> + <ul class="check_auto"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(result.sntncRegistAuthor, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <li><input type="checkbox" name="sntncRegistAuthor" id="authorCode${status.index }" value="${author.authorCode }" <c:if test="${chk eq 'Y' }">checked</c:if> disabled><label for="authorCode${status.index }" class="mr20"><span></span> <c:out value="${author.authorNm }" /></label></li> + </c:forEach> + </ul> + </td> + </tr> + + <!-- 파일첨부가능여부, 첨부가능파일숫자, 첨부가능파일사이즈 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.fileAtchPosblAt" /></th> + <td class="alignL"><c:out value="${result.fileAtchPosblAt}"/></td> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.fileAtchPosblAt" /></th> + <td class="alignL"><c:out value="${result.atchPosblFileNumber}"/></td> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.atchPosblFileNumber" /></th> + <td class="alignL"><c:out value="${result.atchPosblFileSize}"/>MB</td> + </tr> + + <!-- 답장가능여부 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.replyPosblAt" /></th> + <td colspan="5" class="cnt"> + ${fn:replace(result.replyPosblAt, crlf , '<br/>')} + </td> + </tr> + + <!-- 게시판 소개내용 --> + <tr> + <th><spring:message code="comCopBbs.boardMasterVO.detail.bbsIntrcn" /></th> + <td colspan="5" class="cnt"> + ${fn:replace(result.bbsIntrcn , crlf , '<br/>')} + </td> + </tr> + + <!-- 게시판 주소 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.bbsAdres" /></th> + <td colspan="5" class="cnt"> + 사용자 : <a href="<c:url value='/cop/bbs/${reBbsId}/selectArticleList.do'/>" target="_blank">/cop/bbs/${reBbsId}/selectArticleList.do</a><br/> + 관리자 : <a href="<c:url value='/cop/bbs/manage/${reBbsId }/selectArticleList.do' />" target="_blank">/cop/bbs/manage/${reBbsId}/selectArticleList.do</a> + </td> + </tr> + + <!-- 추가선택사항 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.option" /></th><!-- 추가선택사항 --> + <td class="cnt" colspan="5"> + <c:if test="${result.option == ''}"><spring:message code="comCopBbs.boardMasterVO.detail.option1" /></c:if><!-- 미선택 --> + <c:if test="${result.option == 'comment'}"><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></c:if><!-- 댓글 --> + </td> + </tr> - <!-- 상세조회 --> - <table class="wTable" summary="<spring:message code="common.summary.inqire" arguments="${pageTitle}" />"> - <caption>${pageTitle} <spring:message code="title.detail" /></caption> - <colgroup> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - <col style="width: ;"> - </colgroup> - <tbody> - <!-- 게시판명 --> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.bbsNm" /></th> - <td colspan="3" class="left"><c:out value="${result.bbsNm}"/></td> - <th><spring:message code="comCopBbs.boardMasterVO.detail.bbsTyCode" /></th> - <td class="left"><c:out value="${result.bbsTyCodeNm}"/></td> - </tr> - <!-- 등록자, 등록일, 사용여부 --> - <tr> - <th><spring:message code="table.reger" /></th> - <td class="left"><c:out value="${result.frstRegisterNm}"/></td> - <th><spring:message code="table.regdate" /></th> - <td class="left"><c:out value="${result.frstRegisterPnttm}"/></td> - <th><spring:message code="comCopBbs.boardMasterVO.detail.useAt" /></th> - <td class="left"><c:out value="${result.useAt}"/></td> - </tr> - <!-- 답장가능여부, 파일첨부가능여부, 첨부가능파일숫자 --> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.replyPosblAt" /></th> - <td class="left"><c:out value="${result.replyPosblAt}"/></td> - <th><spring:message code="comCopBbs.boardMasterVO.detail.fileAtchPosblAt" /></th> - <td class="left"><c:out value="${result.fileAtchPosblAt}"/></td> - <th><spring:message code="comCopBbs.boardMasterVO.detail.atchPosblFileNumber" /></th> - <td class="left"><c:out value="${result.atchPosblFileNumber}"/></td> - </tr> - <!-- 게시판 소개내용 --> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.bbsIntrcn" /></th> - <td colspan="5" class="cnt"> - <c:out value="${fn:replace(result.bbsIntrcn , crlf , '<br/>')}" escapeXml="false" /> - </td> - </tr> - - <c:if test="${result.useAt == 'Y' }"> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.bbsAdres" /></th> - <td colspan="5" class="cnt"> - <a href="<c:url value='/cop/bbs/selectArticleList.do?bbsId=${result.bbsId}' />">/cop/bbs/selectArticleList.do?bbsId=${result.bbsId }</a> - </td> - </tr> - </c:if> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.option" /></th><!-- 추가선택사항 --> - <td colspan="5" class="cnt"> - <c:if test="${result.option == ''}"><spring:message code="comCopBbs.boardMasterVO.detail.option1" /></c:if><!-- 미선택 --> - <c:if test="${result.option == 'comment'}"><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></c:if><!-- 댓글 --> - <c:if test="${result.option == 'stsfdg'}"><spring:message code="comCopBbs.boardMasterVO.detail.option3" /></c:if><!-- 만족도조사 --> - </td> - </tr> - </tbody> - </table> - <!-- 하단 버튼 --> - <div class="btn"> - <input type="submit" class="s_submit" value="<spring:message code="button.update" />" title="<spring:message code="title.update" /> <spring:message code="input.button" />" /><!-- 수정 --> - <span class="btn_s"><a href="<c:url value='/cop/bbs/selectBBSMasterInfs.do' /><c:if test='${result.cmmntyId != null}'>?cmmntyId=${result.cmmntyId}</c:if>" title="<spring:message code="title.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></a></span><!-- 목록 --> - </div><div style="clear:both;"></div> - -</div> + <!-- 댓글 등록권한 --> + <tr> + <th scope="row">댓글 등록권한</th> + <td class="alignL" colspan="5"> + <ul class="check_auto"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(result.answerRegistAuthor, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <li><input type="checkbox" name="sntncRegistAuthor" id="authorCode${status.index }" value="${author.authorCode }" <c:if test="${chk eq 'Y' }">checked</c:if> disabled><label for="authorCode${status.index }" ><span></span> <c:out value="${author.authorNm }" /></label></li> + </c:forEach> + </ul> + </td> + </tr> -<input name="cmmntyId" type="hidden" value="<c:out value="${result.cmmntyId}" />"> -<input name="bbsId" type="hidden" value="<c:out value="${result.bbsId}" />"> -<input name="cmd" type="hidden" value=""> + <!-- 게시판양식 --> + <tr> + <th scope="row">게시판 양식</th> + <td colspan="5" class="cnt fr-view"> + ${result.bbsForm} + </td> + </tr> + </tbody> + </table> + </div> + + <!-- 하단 버튼 --> + <div class="board_footer"> + <div class="bottom_wrap"> + <div class="fl"> + <button class="btn_s" type="button" onclick="fn_list()" title="<spring:message code="title.update" /> <spring:message code="input.button" />" ><spring:message code="button.list" /></button> + </div> + <div class="fr"> + <button class="btn_s" onclick="fn_egov_delete_bbs('${result.bbsId}'); return false;" title="<spring:message code="title.delete" /> <spring:message code="input.button" />" ><spring:message code="button.delete" /></button> + <button class="btn_s" type="submit" title="<spring:message code="title.update" /> <spring:message code="input.button" />" ><spring:message code="button.update" /></button> + </div> + </div> + </div> + </div> + + <input name="bbsId" type="hidden" value="<c:out value="${result.bbsId}" />"> + <input name="cmd" type="hidden" value=""> + <input name="searchKeyword" type="hidden" value="${searchVO.searchKeyword}" /> + <input name="pageIndex" type="hidden" value="${searchVO.pageIndex}" /> </form> -</body> -</html> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterUpdt.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterUpdt.jsp (revision 11) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterUpdt.jsp (revision 12) @@ -22,13 +22,25 @@ <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <c:set var="pageTitle"><spring:message code="comCopBbs.boardMasterVO.title"/></c:set> -<!DOCTYPE html> -<html> -<head> -<title>${pageTitle } <spring:message code="title.update" /></title><!-- 게시판 마스터 수정 --> -<meta http-equiv="content-type" content="text/html; charset=utf-8"> -<link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> + +<!-- 에디터 관련 추가 CSS, Javascript 추가 --> +<jsp:useBean id="today" class="java.util.Date" /> +<fmt:formatDate value="${today}" pattern="yyyyMMddHHmm" var="nowDate" scope="application"/> +<!-- Include Editor style. --> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_editor.pkgd.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_style.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/font-awesome/css/font-awesome.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/codemirror/lib/codemirror.css'><c:param name="dt" value="${nowDate}"/></c:url>" /> +<!-- Include Editor JS files. --> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor.pkgd.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/languages/ko.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor_script_custom.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/codemirror.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/xml.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<!-- 에디터 관련 추가 CSS, Javascript 종료 --> + <script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <validator:javascript formName="boardMasterVO" staticJavascript="false" xhtml="true" cdata="false"/> <script type="text/javascript"> @@ -43,10 +55,9 @@ * 저장처리화면 ******************************************************** */ function fn_egov_updt_bbs(form, bbsId){ - if (!validateBoardMasterVO(form)) { - return false; + if (!validateBoardMasterVO(form)) { + return false; } else { - var validateForm = document.getElementById("boardMasterVO"); //방명록 게시판의 경우 답장 불가, 파일첨부 불가 @@ -65,11 +76,11 @@ return; } } - + if(confirm("<spring:message code="common.update.msg" />")){ - form.submit(); - } - } + form.submit(); + } + } } /* ******************************************************** * 목록 으로 가기 @@ -79,136 +90,260 @@ boardMasterVO.submit(); } </script> -</head> + <body onLoad="fn_egov_init();"> -<!-- javascript warning tag --> -<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> + <!-- javascript warning tag --> + <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> + <!-- 상단타이틀 --> + <form:form commandName="boardMasterVO" action="${pageContext.request.contextPath}/cop/bbs/updateBBSMaster.do" method="post" onSubmit="fn_egov_updt_bbs(document.forms[0]); return false;"> + <div class="board_header"> + <h3>${pageTitle} <spring:message code="title.update" /></h3><!-- 게시판 마스터 수정 --> + + <div class="board_body"> + <!-- 수정폼 --> + <p class="must_text"><em>*</em>는 필수 입력사항입니다.</p> + <table class="table_write"> + <caption>게시글 수정 - 게시판명, 게시판 소개내용, 게시판 유형, 글 등록권한, 답장가능여부, 파일첨부가능여부, 첨부가능파일숫자, 첨부가능파일사이즈, 추가선택사항, 댓글 등록권한, 사용여부, 양식으로 구성</caption> + <colgroup> + <col style="width: 20%;"> + <col style="width: ;"> + <col style="width: 20%;"> + <col style="width: ;"> + </colgroup> + <tbody> + <!-- 입력 --> + <c:set var="inputTxt"><spring:message code="input.input" /></c:set> + <!-- 게시판명 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsNm"/> </c:set> + <tr> + <th scope="col" class="must"><label for="bbsNm">${title} </label></th> + <td class="left" colspan="3"> + <form:input path="bbsNm" class="width100p inputText" title="${title} ${inputTxt }" size="70" maxlength="70" /> + <div><form:errors path="bbsNm" cssClass="error" /></div> + </td> + </tr> + <!-- 게시판 소개내용 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsIntrcn"/> </c:set> + <tr> + <th scope="row" class="must"><label for="bbsIntrcn">${title}</label></th> + <td class="nopd lh0" colspan="3"> + <textarea id="bbsIntrcn" name="bbsIntrcn" class="textArea width100p height100">${boardMasterVO.bbsIntrcn}</textarea> + </td> + </tr> + + <!-- 게시판 유형 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsTyCode"/> </c:set> + <tr> + <th scope="row" class="must"><label for="bbsTyCode">${title}</label></th> + <td class="left" colspan="3"> + <form:select path="bbsTyCode" title="${title} ${inputTxt}" cssClass="width150 selectText"> + <form:option value='' label="--선택하세요--" /> + <form:option value="BBST01" label="통합게시판" /> +<%-- <form:options items="${bbsTyCode}" itemValue="code" itemLabel="codeNm" /> --%> + </form:select> + <div><form:errors path="bbsTyCode" cssClass="error" /></div> + </td> + </tr> + + <!-- 글 등록권한 --> + <tr> + <th scope="row" class="must"><label for="mberSttus">글 등록권한</label></th> + <td class="memberCode" colspan="3"> + <div class="check_wrap"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(boardMasterVO.sntncRegistAuthor, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <input type="checkbox" name="sntncRegistAuthor" id="authorCode${status.index }" value="${author.authorCode }" <c:if test="${chk eq 'Y' }">checked</c:if>><label for="authorCode${status.index }" class="mr20"><span></span> <c:out value="${author.authorNm }" /></label> + </c:forEach> + </div> + </td> + </tr> + + <!-- 답장가능여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.replyPosblAt"/> </c:set> + <tr> + <th scope="row" class="must"><label for="replyPosblAt">${title}</label></th> + <td class="left"> + <form:select path="replyPosblAt" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="replyPosblAt" cssClass="error" /></div> + </td> + <!-- 파일첨부가능여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.fileAtchPosblAt"/> </c:set> + <th scope="row" class="must"><label for="fileAtchPosblAt">${title}</label></th> + <td class="left" > + <form:select path="fileAtchPosblAt" title="${title} ${inputTxt}" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="fileAtchPosblAt" cssClass="error" /></div> + </td> + </tr> + + <!-- 첨부가능파일숫자 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.atchPosblFileNumber"/> </c:set> + <tr> + <th scope="row"><label for="atchPosblFileNumber">${title }</label></th> + <td class="left"> + <form:select path="atchPosblFileNumber" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="0" selected="selected">없음</form:option> + <form:option value='1'>1</form:option> + <form:option value='2'>2</form:option> + <form:option value='3'>3</form:option> + </form:select> + <div><form:errors path="atchPosblFileNumber" cssClass="error" /></div> + </td> + + <th scope="row"><label for="atchPosblFileSize">첨부가능파일사이즈</label></th> + <td class="left"> + <form:input path="atchPosblFileSize" title="${title} ${inputTxt }" class="width90p inputText onlyStopPointNumber"/> + MB + <div><form:errors path="atchPosblFileSize" cssClass="error" /></div> + </td> + </tr> + + <!-- 추가 선택사항 --> + <tr> + <th scope="row"><spring:message code="comCopBbs.boardMasterVO.detail.option" /></th><!-- 추가 선택사항 --> + <td class="left" colspan="3"> + <select id="option" name="option" class="width150 selectText" <c:if test="${boardMasterVO.option != 'na'}">disabled="disabled"</c:if> title="추가선택사항"> + <option value='na' <c:if test="${boardMasterVO.option == 'na'}">selected="selected"</c:if>>---<spring:message code="input.select" />--</option> + <option value='' <c:if test="${boardMasterVO.option == ''}">selected="selected"</c:if>><spring:message code="comCopBbs.boardMasterVO.detail.option1" /></option> + <c:if test="${useComment == 'true' }"> + <option value='comment' <c:if test="${boardMasterVO.option == 'comment'}">selected="selected"</c:if>><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></option> + </c:if> + </select> + <spring:message code="comCopBbs.boardMasterVO.detail.option.unabledToModify" /><!-- ※ 추가 선택사항은 수정 불가 (미설정된 기존 게시판의 경우 처음 설정은 가능함) --> + </td> + </tr> + <tr> + <th scope="row">댓글 등록권한</th> + <td class="memberCode" colspan="3"> + <div class="check_wrap"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(boardMasterVO.answerRegistAuthor, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <input type="checkbox" name="answerRegistAuthor" id="replyAuthorCode${status.index }" value="${author.authorCode }" <c:if test="${chk eq 'Y' }">checked</c:if> <c:if test="${boardMasterVO.option ne 'comment' && boardMasterVO.option ne 'stsfdg'}">disabled</c:if>> + <label for="replyAuthorCode${status.index }" class="mr20"><span></span> <c:out value="${author.authorNm }" /></label> + </c:forEach> + </div> + </td> + </tr> + + <!-- 사용여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.useAt"/> </c:set> + <tr> + <th scope="col" class="must"><label for="useAt">${title }</label></th> + <td class="left" colspan="3"> + <form:select path="useAt" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="useAt" cssClass="error" /></div> + </td> + </tr> + + <!-- 게시판양식 --> + <tr> + <th scope="row"><label for="bbsForm">게시판 양식</label></th> + <td class="left" colspan="3"> + <textarea id="bbsForm" name="bbsForm"> + <c:if test="${not empty boardMasterVO.bbsForm}">${boardMasterVO.bbsForm}</c:if> + </textarea> + <input type="hidden" id="atchFileId" name="atchFileId" value="" /> + </td> + </tr> -<!-- 상단타이틀 --> -<form:form commandName="boardMasterVO" action="${pageContext.request.contextPath}/cop/bbs/updateBBSMaster.do" method="post" onSubmit="fn_egov_updt_bbs(document.forms[0]); return false;"> -<div class="wTableFrm"> - <h2>${pageTitle} <spring:message code="title.update" /></h2><!-- 게시판 마스터 수정 --> + </tbody> + </table> + </div> - <!-- 수정폼 --> - <table class="wTable" summary="<spring:message code="common.summary.update" arguments="${pageTitle}" />"> - <caption>${pageTitle} <spring:message code="title.update" /></caption> - <colgroup> - <col style="width: 20%;"><col style="width: ;"> - </colgroup> - <tbody> - <!-- 입력 --> - <c:set var="inputTxt"><spring:message code="input.input" /></c:set> - <!-- 게시판명 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsNm"/> </c:set> - <tr> - <th><label for="bbsNm">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:input path="bbsNm" title="${title} ${inputTxt }" size="70" maxlength="70" /> - <div><form:errors path="bbsNm" cssClass="error" /></div> - </td> - </tr> - <!-- 게시판 소개내용 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsIntrcn"/> </c:set> - <tr> - <th><label for="bbsIntrcn">${title} <span class="pilsu">*</span></label></th> - <td class="nopd"> - <form:textarea path="bbsIntrcn" title="${title} ${inputTxt}" cols="300" rows="20"/> - <div><form:errors path="bbsIntrcn" cssClass="error" /></div> - </td> - </tr> - - <!-- 게시판 유형 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.bbsTyCode"/> </c:set> - <tr> - <th><label for="bbsTyCode">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="bbsTyCode" title="${title} ${inputTxt}" cssClass="txt"> - <form:option value='' label="--선택하세요--" /> - <form:options items="${bbsTyCode}" itemValue="code" itemLabel="codeNm" /> - </form:select> - <div><form:errors path="bbsTyCode" cssClass="error" /></div> - </td> - </tr> - - - <!-- 파일첨부가능여부 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.fileAtchPosblAt"/> </c:set> - <tr> - <th><label for="fileAtchPosblAt">${title}<span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="fileAtchPosblAt" title="${title} ${inputTxt}" cssClass="txt"> - <form:option value='' label="--선택하세요--" /> - <form:option value="Y" label="예" /> - <form:option value='N'>아니오</form:option> - </form:select> - <div><form:errors path="fileAtchPosblAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 첨부가능파일숫자 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.atchPosblFileNumber"/> </c:set> - <tr> - <th><label for="atchPosblFileNumber">${title } <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="atchPosblFileNumber" title="${title} ${inputTxt }" cssClass="txt"> - <form:option value="0" selected="selected">없음</form:option> - <form:option value='1'>1</form:option> - <form:option value='2'>2</form:option> - <form:option value='3'>3</form:option> - </form:select> - <div><form:errors path="atchPosblFileNumber" cssClass="error" /></div> - </td> - </tr> - - <!-- 추가 선택사항 --> - <tr> - <th><spring:message code="comCopBbs.boardMasterVO.detail.option" /></th><!-- 추가 선택사항 --> - <td class="left"> - <select name="option" class="select" <c:if test="${boardMasterVO.option != 'na'}">disabled="disabled"</c:if> title="추가선택사항"> - <option value='na' <c:if test="${boardMasterVO.option == 'na'}">selected="selected"</c:if>>---<spring:message code="input.select" />--</option> - <option value='' <c:if test="${boardMasterVO.option == ''}">selected="selected"</c:if>><spring:message code="comCopBbs.boardMasterVO.detail.option1" /></option> - <c:if test="${useComment == 'true' }"> - <option value='comment' <c:if test="${boardMasterVO.option == 'comment'}">selected="selected"</c:if>><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></option> - </c:if> - <c:if test="${useSatisfaction == 'true' }"> - <option value='stsfdg' <c:if test="${boardMasterVO.option == 'stsfdg'}">selected="selected"</c:if>><spring:message code="comCopBbs.boardMasterVO.detail.option3" /></option> - </c:if> - </select> - <spring:message code="comCopBbs.boardMasterVO.detail.option.unabledToModify" /><!-- ※ 추가 선택사항은 수정 불가 (미설정된 기존 게시판의 경우 처음 설정은 가능함) --> - </td> - </tr> + <div class="board_footer"> + <!-- 하단 버튼 --> + <div class="bottom_wrap"> + <div class="fl"> + <button class="btn_m" type="button" onclick="fn_egov_inqire_bbslist();" title="<spring:message code="button.list" /> <spring:message code="input.button" />" ><spring:message code="button.list" /></button> + </div> + <div class="fr"> + <button class="btn_m" type="button" onclick="fn_egov_updt_bbs(this.form,'${boardMasterVO.bbsId}'); return false;" title="<spring:message code="button.update" /> <spring:message code="input.button" />" ><spring:message code="button.update" /></button> + </div> + </div> + </div> + </div> - <!-- 사용여부 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.updt.useAt"/> </c:set> - <tr> - <th><label for="useAt">${title } <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="useAt" title="${title} ${inputTxt }" cssClass="txt"> - <form:option value="" label="--선택하세요--" /> - <form:option value="Y" label="예" /> - <form:option value='N'>아니오</form:option> - </form:select> - <div><form:errors path="useAt" cssClass="error" /></div> - </td> - </tr> - - </tbody> - </table> + <!-- validator 값 체크용 --> + <input name="replyPosblAt" type="hidden" value="<c:out value='${boardMasterVO.replyPosblAt}'/>"> + <input name="bbsId" type="hidden" value="<c:out value='${boardMasterVO.bbsId}'/>"> + <input name="searchKeyword" type="hidden" value="${searchVO.searchKeyword}" > + <input name="pageIndex" type="hidden" value="${searchVO.pageIndex}" > + </form:form> - <!-- 하단 버튼 --> - <div class="btn"> - <input type="submit" class="s_submit" value="<spring:message code="button.update" />" title="<spring:message code="button.update" /> <spring:message code="input.button" />" /><!-- 수정 --> - <span class="btn_s"><a href="<c:url value='/cop/bbs/selectBBSMasterInfs.do' /><c:if test='${boardMasterVO.cmmntyId != null}'>?cmmntyId=${boardMasterVO.cmmntyId}</c:if>" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></a></span><!-- 목록 --> - </div><div style="clear:both;"></div> - -</div> + <script type="text/javascript"> + $(function(){ + /* ******************************************************** + * 첨부파일여부에 따라 첨부파일숫자select onoff, 첨부파일사이즈 onoff + ******************************************************** */ + $('#fileAtchPosblAt').on('change',function(){ + var fileAtchPosblAt = $('#fileAtchPosblAt'); + var atchPosblFileNumber = $('#atchPosblFileNumber'); + var atchPosblFileSize = $('#atchPosblFileSize'); -<!-- validator 값 체크용 --> -<input name="replyPosblAt" type="hidden" value="<c:out value='${boardMasterVO.replyPosblAt}'/>"> -<input name="cmmntyId" type="hidden" value="<c:out value='${boardMasterVO.cmmntyId}'/>"> -<input name="bbsId" type="hidden" value="<c:out value='${boardMasterVO.bbsId}'/>"> -</form:form> + if(fileAtchPosblAt.val() == 'Y'){ + //파일첨부가능 + $('#atchPosblFileNumber').attr("disabled",false); + $('#atchPosblFileSize').val("10"); + $('#atchPosblFileSize').attr("disabled",false); + }else{ + //파일첨부불가능 + $('#atchPosblFileNumber').val("0").prop("selected", true); + $('#atchPosblFileNumber').attr("disabled",true); + $('#atchPosblFileSize').val("0"); + $('#atchPosblFileSize').attr("disabled",true); -</body> -</html> + } + }); + /* ******************************************************** + * 첨부파일사이즈체크 (최대 1024MB) + ******************************************************** */ + $('#atchPosblFileSize').on('focusout', function(){ + var atchPosblFileSize = parseFloat($('#atchPosblFileSize').val()); + if(atchPosblFileSize > 1024 ){ + alert("최소 10MB 최대1024MB(1GB) 까지 입력 가능합니다.\n다시 입력해주세요."); + $('#atchPosblFileSize').val("10"); + } + }); + + var options = { + fileListDivId : 'egovComFileList', + inputFileId : 'egovComFileUploader', + hiddenFileName : 'atchFileId', + txtAreaId : 'bbsForm', + authorType : 'user' + } + $('#bbsForm').initEditor(options); + + /* 추가선택사항 선택 시 댓글등록권한 선택 */ + $('#option').on('change',function(){ + var option = $('#option').val(); + if(option == 'comment' || option == 'stsfdg'){ + $('[name=answerRegistAuthor]').attr('disabled',false); + }else{ + $('[name=answerRegistAuthor]').attr('checked',false); + $('[name=answerRegistAuthor]').attr('disabled',true); + } + }); + }); + + </script> + +</body> \ No newline at end of file Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterList.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterList.jsp (revision 11) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterList.jsp (revision 12) @@ -23,19 +23,13 @@ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <c:set var="pageTitle"><spring:message code="comCopBbs.boardMasterVO.title"/></c:set> -<!DOCTYPE html> -<html> -<head> -<title>${pageTitle} <spring:message code="title.list" /></title><!-- 게시판 목록 --> -<meta http-equiv="content-type" content="text/html; charset=utf-8"> -<link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> <script type="text/javascript"> /********************************************************* * 초기화 ******************************************************** */ function fn_egov_init(){ // 첫 입력란에 포커스.. - document.BBSMasterForm.searchCnd.focus(); + document.BBSMasterForm.searchCondition.focus(); } /********************************************************* @@ -59,8 +53,15 @@ function fn_egov_inquire_bbsdetail(bbsId) { // 사이트 키값(siteId) 셋팅. document.BBSMasterForm.bbsId.value = bbsId; - document.BBSMasterForm.action = "<c:url value='/cop/bbs/selectBBSMasterDetail.do'/>"; - document.BBSMasterForm.submit(); + document.BBSMasterForm.action = "<c:url value='/cop/bbs/selectBBSMasterDetail.do'/>"; + document.BBSMasterForm.submit(); +} +/* ******************************************************** + * 등록화면 처리 함수 + ******************************************************** */ +function fn_egov_bbsInsertView() { + document.BBSMasterForm.action = "<c:url value='/cop/bbs/insertBBSMasterView.do'/>"; + document.BBSMasterForm.submit(); } </script> </head> @@ -68,83 +69,76 @@ <!-- javascript warning tag --> <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> -<form name="BBSMasterForm" action="<c:url value='/cop/bbs/selectBBSMasterInfs.do'/>" method="post" onSubmit="fn_egov_search_bbssj(); return false;"> -<div class="board"> - <h1>${pageTitle} <spring:message code="title.list" /></h1><!-- 게시판 목록 --> - <!-- 하단 버튼 --> - <div class="search_box" title="<spring:message code="common.searchCondition.msg" />"> - <ul> - <li> - <select name="searchCnd" title="<spring:message code="title.searchCondition" /> <spring:message code="input.cSelect" />"> - <option value="0" <c:if test="${searchVO.searchCnd == '0'}">selected="selected"</c:if> ><spring:message code="comCopBbs.boardMasterVO.list.bbsNm" /></option><!-- 게시판명 --> - <option value="1" <c:if test="${searchVO.searchCnd == '1'}">selected="selected"</c:if> ><spring:message code="comCopBbs.boardMasterVO.list.bbsIntrcn" /></option><!-- 게시판 소개내용 --> - </select> - </li> +<form name="BBSMasterForm" action="<c:url value='/cop/bbs/selectBBSMasterInfs.do'/>" method="post" onSubmit="fn_egov_search_bbssj(); return false;"> + <div class="board_header"> + <h3>${pageTitle} <spring:message code="title.list" /></h3><!-- 게시판 목록 --> + <!-- 검색구역 --> + <div class="search_box" title="<spring:message code="common.searchCondition.msg" />"> + <select class="select fl" name="searchCondition" title="<spring:message code="title.searchCondition" /> <spring:message code="input.cSelect" />"> + <option value="0" <c:if test="${searchVO.searchCondition == '0'}">selected="selected"</c:if> ><spring:message code="comCopBbs.boardMasterVO.list.bbsNm" /></option><!-- 게시판명 --> + <option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if> ><spring:message code="comCopBbs.boardMasterVO.list.bbsIntrcn" /></option><!-- 게시판 소개내용 --> + </select> <!-- 검색키워드 및 조회버튼 --> - <li> - <input class="s_input" name="searchWrd" type="text" size="35" title="<spring:message code="title.search" /> <spring:message code="input.input" />" value='<c:out value="${searchVO.searchWrd}"/>' maxlength="155" > - <input type="submit" class="s_btn" value="<spring:message code="button.inquire" />" title="<spring:message code="title.inquire" /> <spring:message code="input.button" />" /><!-- 조회 --> - <span class="btn_b"><a href="<c:url value='/cop/bbs/insertBBSMasterView.do?cmmntyId=${searchVO.cmmntyId}' />" title="<spring:message code="button.create" /> <spring:message code="input.button" />"><spring:message code="button.create" /></a></span><!-- 등록 --> - </li> - </ul> - </div> - + <input class="inputText" name="searchKeyword" type="text" size="35" title="<spring:message code="title.search" /> <spring:message code="input.input" />" value='${searchVO.searchKeyword}' maxlength="155" placeholder="검색어를 입력하세요"> + <button class="btn_board"><spring:message code="button.inquire" /></button> + </div> + </div> + <!-- 목록영역 --> - <table class="board_list" summary="<spring:message code="common.summary.list" arguments="${pageTitle}" />"> - <caption>${pageTitle}<spring:message code="title.list" /></caption> - <colgroup> - <col style="width: 9%;"> - <col style="width: 40%;"> - <col style="width: 13%;"> - <col style="width: 13%;"> - <col style="width: 13%;"> - </colgroup> - <thead> - <tr> - <th><spring:message code="table.num" /></th><!-- 번호 --> - <th class="board_th_link"><spring:message code="comCopBbs.boardMasterVO.list.bbsNm" /></th><!-- 게시판명 --> - <th><spring:message code="table.reger" /></th><!-- 작성자명 --> - <th><spring:message code="table.regdate" /></th><!-- 작성시각 --> - <th><spring:message code="comCopBbs.boardMasterVO.list.useAt" /></th><!-- 사용여부 --> - </tr> - </thead> - <tbody class="ov"> - <c:if test="${fn:length(resultList) == 0}"> - <tr> - <td colspan="5"><spring:message code="common.nodata.msg" /></td> - </tr> - </c:if> - <c:forEach items="${resultList}" var="resultInfo" varStatus="status"> - <tr> - <td><c:out value="${(searchVO.pageIndex-1) * searchVO.pageSize + status.count}"/></td> - <td class="left"><a href="<c:url value='/cop/bbs/selectBBSMasterDetail.do?bbsId=${resultInfo.bbsId}'/>" onClick="fn_egov_inquire_bbsdetail('<c:out value="${resultInfo.bbsId}"/>');return false;"><c:out value='${fn:substring(resultInfo.bbsNm, 0, 40)}'/></a></td> - <td><c:out value='${resultInfo.frstRegisterNm}'/></td> - <td><c:out value='${resultInfo.frstRegisterPnttm}'/></td> - <td><c:out value='${resultInfo.useAt}'/></td> - </tr> - </c:forEach> - </tbody> - </table> - - <!-- paging navigation --> - <div class="pagination"> - <ul> - <ui:pagination paginationInfo="${paginationInfo}" type="image" jsFunction="fn_egov_select_linkPage"/> - </ul> + <div class="board_body"> + <div class="board_infomation"> + <p>총 : <span>${paginationInfo.totalRecordCount}</span>건, 쪽번호 : <span>${paginationInfo.currentPageNo }</span> / <span>${paginationInfo.totalPageCount }</span></p> + </div> + <table class="table_list"> + <caption>${pageTitle}<spring:message code="title.list" /></caption> + <colgroup> + <col class="width80"> + <col> + <col class="width120"> + <col class="width120"> + <col class="width120"> + </colgroup> + <thead> + <tr> + <th><spring:message code="table.num" /></th><!-- 번호 --> + <th class="board_th_link"><spring:message code="comCopBbs.boardMasterVO.list.bbsNm" /></th><!-- 게시판명 --> + <th><spring:message code="table.reger" /></th><!-- 작성자명 --> + <th><spring:message code="table.regdate" /></th><!-- 작성시각 --> + <th><spring:message code="comCopBbs.boardMasterVO.list.useAt" /></th><!-- 사용여부 --> + </tr> + </thead> + <tbody class="ov"> + <c:if test="${fn:length(resultList) == 0}"> + <tr> + <td colspan="5"><spring:message code="common.nodata.msg" /></td> + </tr> + </c:if> + <c:forEach items="${resultList}" var="resultInfo" varStatus="status"> + <tr> + <td><c:out value="${paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo-1) * paginationInfo.recordCountPerPage + status.index) }" /></td> + <td class="alignL"><a href="<c:url value='/cop/bbs/selectBBSMasterDetail.do?bbsId=${resultInfo.bbsId}'/>" onClick="fn_egov_inquire_bbsdetail('<c:out value="${resultInfo.bbsId}"/>');return false;"><c:out value='${fn:substring(resultInfo.bbsNm, 0, 40)}'/></a></td> + <td><c:out value='${resultInfo.frstRegisterNm}'/></td> + <td><c:out value='${resultInfo.frstRegisterPnttm}'/></td> + <td><c:out value='${resultInfo.useAt}'/></td> + </tr> + </c:forEach> + </tbody> + </table> </div> - - <!-- 등록버튼 --> - <!-- - <div class="btn"> - <span class="btn_s"><a href="<c:url value='/cop/bbs/insertBBSMasterView.do' />" title="<spring:message code="button.create" /> <spring:message code="input.button" />"><spring:message code="button.create" /></a></span> + + <div class="board_footer"> + <!-- paging navigation --> + <div class="page" role="group" aria-label="..."> + <ul> + <ui:pagination paginationInfo="${paginationInfo}" type="admin" jsFunction="fn_egov_select_linkPage" /> + </ul> + </div> + <!-- 등록버튼 --> + <div class="bottom_wrap fr"> + <button type="button" class="btn_s" style="margin-left:3px;" onclick="fn_egov_bbsInsertView(); return false;"><spring:message code="button.create" /></button> + </div> </div> - --> - -</div> -<input name="cmmntyId" type="hidden" value="<c:out value='${searchVO.cmmntyId}'/>"> -<input name="bbsId" type="hidden" value=""> -<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"> -</form> -</body> -</html> \ No newline at end of file + <input name="bbsId" type="hidden" value=""> + <input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"> +</form> Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterRegist.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterRegist.jsp (revision 11) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovBBSMasterRegist.jsp (revision 12) @@ -26,12 +26,23 @@ <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <c:set var="pageTitle"><spring:message code="comCopBbs.boardMasterVO.title"/></c:set> -<!DOCTYPE html> -<html> -<head> -<title>${pageTitle} <spring:message code="title.create" /></title><!-- 게시판 마스터 등록 --> -<meta http-equiv="content-type" content="text/html; charset=utf-8"> -<link type="text/css" rel="stylesheet" href="<c:url value='/css/egovframework/com/com.css' />"> + +<!-- 에디터 관련 추가 CSS, Javascript 추가 --> +<jsp:useBean id="today" class="java.util.Date" /> +<fmt:formatDate value="${today}" pattern="yyyyMMddHHmm" var="nowDate" scope="application"/> +<!-- Include Editor style. --> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_editor.pkgd.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/css/froala_style.min.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/font-awesome/css/font-awesome.css'><c:param name="dt" value="${nowDate}"/></c:url>"> +<link rel="stylesheet" type="text/css" href="<c:url value='/resource/editor/codemirror/lib/codemirror.css'><c:param name="dt" value="${nowDate}"/></c:url>" /> +<!-- Include Editor JS files. --> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor.pkgd.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/languages/ko.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/js/froala_editor_script_custom.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/codemirror.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<script type="text/javascript" src="<c:url value='/resource/editor/codemirror/lib/xml.js'><c:param name="dt" value="${nowDate}"/></c:url>"></script> +<!-- 에디터 관련 추가 CSS, Javascript 종료 --> + <script type="text/javascript" src="<c:url value="/validator.do"/>"></script> <validator:javascript formName="boardMasterVO" staticJavascript="false" xhtml="true" cdata="false"/> <script type="text/javascript"> @@ -39,10 +50,8 @@ * 초기화 ******************************************************** */ function fn_egov_init(){ - // 첫 입력란에 포커스 document.getElementById("boardMasterVO").bbsNm.focus(); - } /* ******************************************************** * 저장처리화면 @@ -52,9 +61,7 @@ if (!validateBoardMasterVO(form)) { return false; } else { - var validateForm = document.getElementById("boardMasterVO"); - //방명록 게시판의 경우 답장 불가, 파일첨부 불가 if(validateForm.bbsTyCode.value == 'BBST03') { if(validateForm.replyPosblAt.value == 'Y') { @@ -71,159 +78,275 @@ return; } } - if(confirm("<spring:message code="common.regist.msg" />")){ form.submit(); } } } +/* ******************************************************** + * 목록 + ******************************************************** */ +function fn_list() { + document.getElementById("boardMasterVO").action = "<c:url value='/cop/bbs/selectBBSMasterInfs.do'/>"; + document.getElementById("boardMasterVO").submit(); +} </script> -</head> <body onLoad="fn_egov_init();"> + <!-- javascript warning tag --> + <noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> + + <form:form commandName="boardMasterVO" action="${pageContext.request.contextPath}/cop/bbs/insertBBSMaster.do" method="post" onSubmit="fn_egov_regist_bbs(document.forms[0]); return false;"> + <div class="board_header"> + <!-- 타이틀 --> + <h3>${pageTitle} <spring:message code="title.create" /></h3><!-- 게시판 마스터 등록 --> + </div> + + <!-- 등록폼 --> + <div class="board_body"> + <p class="must_text"><em>*</em>는 필수 입력사항입니다.</p> + <table class="table_write"> + <caption>${pageTitle } <spring:message code="title.create" /></caption> + <colgroup> + <col style="width: 20%;"> + <col style="width: ;"> + <col style="width: 20%;"> + <col style="width: ;"> + </colgroup> + <tbody> + <!-- 입력 --> + <c:set var="inputTxt"><spring:message code="input.input" /></c:set> + <!-- 게시판명 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsNm"/> </c:set> + <tr> + <th scope="col" class="must"><label for="bbsNm">${title}</label></th> + <td class="left" colspan="3"> + <form:input path="bbsNm" class="width100p inputText" title="${title} ${inputTxt}" size="70" maxlength="70" /> + <div><form:errors path="bbsNm" cssClass="error" /></div> + </td> + </tr> + <!-- 게시판 소개내용 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsIntrcn"/> </c:set> + <tr> + <th scope="col" class="must"><label for="bbsIntrcn">${title }</label></th> + <td class="nopd" colspan="3"> + <form:textarea path="bbsIntrcn" class="textArea width100p height100" title="${title} ${inputTxt}" cols="300" rows="20" /> + <div><form:errors path="bbsIntrcn" cssClass="error" /></div> + </td> + </tr> + + <!-- 게시판 유형 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsTyCode"/> </c:set> + <tr> + <th scope="col" class="must"><label for="bbsTyCode">${title}</label></th> + <td class="left" colspan="3"> + <form:select path="bbsTyCode" title="${title} ${inputTxt}" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="BBST01" label="통합게시판" /> +<%-- <form:options items="${bbsTyCode}" itemValue="code" itemLabel="codeNm" /> --%> + </form:select> + <div><form:errors path="bbsTyCode" cssClass="error" /></div> + </td> + </tr> + + <!-- 글 등록권한 --> + <tr> + <th scope="col" class="must"><label for="mberSttus">글 등록권한</label></th> + <td class="memberCode" colspan="3"> + <div class="check_wrap"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(userAutho, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <input type="checkbox" name="sntncRegistAuthor" id="authorCode${status.index }" value="${author.authorCode }"><label for="authorCode${status.index }" class="mr20"><span></span> <c:out value="${author.authorNm }" /></label> + </c:forEach> + </div> + </td> + </tr> + + <!-- 답장가능여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.replyPosblAt"/> </c:set> + <tr> + <th scope="col" class="must"><label for="replyPosblAt">${title}</label></th> + <td class="left"> + <form:select path="replyPosblAt" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="replyPosblAt" cssClass="error" /></div> + </td> + + <!-- 파일첨부가능여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.fileAtchPosblAt"/> </c:set> + <th scope="col" class="must"><label for="fileAtchPosblAt">${title}</label></th> + <td class="left"> + <form:select path="fileAtchPosblAt" title="${title} ${inputTxt}" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="fileAtchPosblAt" cssClass="error" /></div> + </td> + </tr> + + <!-- 첨부가능파일숫자 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.atchPosblFileNumber"/> </c:set> + <tr> + <th scope="col"><label for="atchPosblFileNumber">${title }</label></th> + <td class="left"> + <form:select path="atchPosblFileNumber" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="0" selected="selected">없음</form:option> + <form:option value='1'>1</form:option> + <form:option value='2'>2</form:option> + <form:option value='3'>3</form:option> + </form:select> + <div><form:errors path="atchPosblFileNumber" cssClass="error" /></div> + </td> -<!-- javascript warning tag --> -<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript> + <!-- 첨부가능파일사이즈 --> + <th scope="col"><label for="atchPosblFileSize" >첨부가능파일사이즈</label></th> + <td class="left"> + <form:input path="atchPosblFileSize" class="width90p inputText onlyStopPointNumber" title="${title} ${inputTxt}" size="4" maxlength="4" value="10"/> + MB + <div><form:errors path="atchPosblFileSize" cssClass="error" /></div> + </td> + </tr> -<form:form commandName="boardMasterVO" action="${pageContext.request.contextPath}/cop/bbs/insertBBSMaster.do" method="post" onSubmit="fn_egov_regist_bbs(document.forms[0]); return false;"> -<div class="wTableFrm"> - <!-- 타이틀 --> - <h2>${pageTitle} <spring:message code="title.create" /></h2><!-- 게시판 마스터 등록 --> + <!-- 2011.09.15 : 2단계 기능 추가 방법 변경 --> + <c:if test="${useComment == 'true' || useSatisfaction == 'true'}"> + <tr> + <th scope="col"><label for="option"><spring:message code="comCopBbs.boardMasterVO.detail.option" />&nbsp;&nbsp;&nbsp;&nbsp;</label></th> + <td class="left" colspan="3"> + <form:select path="option" title="추가선택사항선택" cssClass="width150 selectText"> + <form:option value="" label="미선택" /> + <c:if test="${useComment == 'true'}"> + <form:option value='comment'><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></form:option> + </c:if> + </form:select> + </td> + </tr> - <!-- 등록폼 --> - <table class="wTable" summary="<spring:message code="common.summary.list" arguments="${pageTitle}" />"> - <caption>${pageTitle } <spring:message code="title.create" /></caption> - <colgroup> - <col style="width: 20%;"><col style="width: ;"> - </colgroup> - <tbody> - <!-- 입력 --> - <c:set var="inputTxt"><spring:message code="input.input" /></c:set> - <!-- 게시판명 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsNm"/> </c:set> - <tr> - <th><label for="bbsNm">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:input path="bbsNm" title="${title} ${inputTxt}" size="70" maxlength="70" /> - <div><form:errors path="bbsNm" cssClass="error" /></div> - </td> - </tr> - <!-- 게시판 소개내용 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsIntrcn"/> </c:set> - <tr> - <th><label for="bbsIntrcn">${title } <span class="pilsu">*</span></label></th> - <td class="nopd"> - <form:textarea path="bbsIntrcn" title="${title} ${inputTxt}" cols="300" rows="20" /> - <div><form:errors path="bbsIntrcn" cssClass="error" /></div> - </td> - </tr> - - <!-- 게시판 유형 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.bbsTyCode"/> </c:set> - <tr> - <th><label for="bbsTyCode">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="bbsTyCode" title="${title} ${inputTxt}" cssClass="txt"> - <form:option value="" label="--선택하세요--" /> - <form:options items="${bbsTyCode}" itemValue="code" itemLabel="codeNm" /> - </form:select> - <div><form:errors path="bbsTyCode" cssClass="error" /></div> - </td> - </tr> - - <!-- 답장가능여부 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.replyPosblAt"/> </c:set> - <tr> - <th><label for="replyPosblAt">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="replyPosblAt" title="${title} ${inputTxt }" cssClass="txt"> - <form:option value="" label="--선택하세요--" /> - <form:option value="Y" label="예" /> - <form:option value='N'>아니오</form:option> - </form:select> - <div><form:errors path="replyPosblAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 파일첨부가능여부 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.fileAtchPosblAt"/> </c:set> - <tr> - <th><label for="fileAtchPosblAt">${title} <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="fileAtchPosblAt" title="${title} ${inputTxt}" cssClass="txt"> - <form:option value="" label="--선택하세요--" /> - <form:option value="Y" label="예" /> - <form:option value='N'>아니오</form:option> - </form:select> - <div><form:errors path="fileAtchPosblAt" cssClass="error" /></div> - </td> - </tr> - - <!-- 첨부가능파일숫자 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.atchPosblFileNumber"/> </c:set> - <tr> - <th><label for="atchPosblFileNumber">${title } <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="atchPosblFileNumber" title="${title} ${inputTxt }" cssClass="txt"> - <form:option value="0" selected="selected">없음</form:option> - <form:option value='1'>1</form:option> - <form:option value='2'>2</form:option> - <form:option value='3'>3</form:option> - </form:select> - <div><form:errors path="atchPosblFileNumber" cssClass="error" /></div> - </td> - </tr> + <tr> + <th scope="col">댓글 등록권한</th> + <td class="memberCode" colspan="3"> + <div class="check_wrap"> + <c:forEach var="author" items="${authorList}" varStatus="status"> + <c:set var="chk" value="" /> + <c:if test="${fn:contains(userAutho, author.authorCode) }"> + <c:set var="chk" value="Y" /> + </c:if> + <input type="checkbox" name="answerRegistAuthor" id="replyAuthorCode${status.index }" value="${author.authorCode }" disabled="disabled"> + <label for="replyAuthorCode${status.index }" class="mr20"><span></span> <c:out value="${author.authorNm }" /></label> + </c:forEach> + </div> + </td> + </tr> + </c:if> + <!-- 2009.06.26 : 2단계 기능 추가 방법 변경 --> - <!-- 2011.09.15 : 2단계 기능 추가 방법 변경 --> - <c:if test="${useComment == 'true' || useSatisfaction == 'true'}"> - <tr> - <th><label for="option"><spring:message code="comCopBbs.boardMasterVO.detail.option" />&nbsp;&nbsp;&nbsp;&nbsp;</label></th> - <td class="left"> - <form:select path="option" title="추가선택사항선택" > - <form:option value="" label="미선택" /> - <c:if test="${useComment == 'true'}"> - <form:option value='comment'><spring:message code="comCopBbs.boardMasterVO.detail.option2" /></form:option> - </c:if> - <c:if test="${useSatisfaction == 'true'}"> - <form:option value='stsfdg'><spring:message code="comCopBbs.boardMasterVO.detail.option3" /></form:option> - </c:if> - </form:select> - </td> - </tr> - </c:if> - <!-- 2009.06.26 : 2단계 기능 추가 방법 변경 --> - - <!-- 사용여부 --> - <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.useAt"/> </c:set> - <tr> - <th><label for="useAt">${title } <span class="pilsu">*</span></label></th> - <td class="left"> - <form:select path="useAt" title="${title} ${inputTxt }" cssClass="txt"> - <form:option value="" label="--선택하세요--" /> - <form:option value="Y" label="예" /> - <form:option value='N'>아니오</form:option> - </form:select> - <div><form:errors path="useAt" cssClass="error" /></div> - </td> - </tr> - - </tbody> - </table> + <!-- 사용여부 --> + <c:set var="title"><spring:message code="comCopBbs.boardMasterVO.regist.useAt"/> </c:set> + <tr> + <th scope="col" class="must"><label for="useAt">${title } </label></th> + <td class="left" colspan="3"> + <form:select path="useAt" title="${title} ${inputTxt }" cssClass="width150 selectText"> + <form:option value="" label="--선택하세요--" /> + <form:option value="Y" label="예" /> + <form:option value='N'>아니오</form:option> + </form:select> + <div><form:errors path="useAt" cssClass="error" /></div> + </td> + </tr> - <!-- 하단 버튼 --> - <div class="btn"> - <input type="submit" class="s_submit" value="<spring:message code="button.create" />" title="<spring:message code="button.create" /> <spring:message code="input.button" />" /><!-- 등록 --> - <span class="btn_s"><a href="<c:url value='/cop/bbs/selectBBSMasterInfs.do' />" title="<spring:message code="button.list" /> <spring:message code="input.button" />"><spring:message code="button.list" /></a></span><!-- 목록 --> - </div><div style="clear:both;"></div> - -</div> + <!-- 게시판내용양식 --> + <tr> + <th scope="col"><label for="bbsForm">양식</label></th> + <td class="left" colspan="3"> + <textarea id="bbsForm" name="bbsForm" class="textArea width100p height100"></textarea> + <input type="hidden" id="atchFileId" name="atchFileId" value="" /> + </td> + </tr> + </tbody> + </table> + </div> -<input name="cmmntyId" type="hidden" value="<c:out value='${searchVO.cmmntyId}'/>"> -<input name="blogId" type="hidden" value="<c:out value='${searchVO.blogId}'/>"> -<input name="blogAt" type="hidden" value="<c:out value='${searchVO.blogAt}'/>"> -<input name="cmd" type="hidden" value="<c:out value='save'/>"> -</form:form> + <!-- 하단 버튼 --> + <div class="board_footer"> + <div class="bottom_wrap fl"> + <button class="btn_m" type="button" onclick="fn_list();" title="<spring:message code="button.list" /> <spring:message code="input.button" />"> + <spring:message code="button.list" /> + </button> + </div> + <div class="bottom_wrap fr"> + <button class="btn_m" type="submit" title="<spring:message code="button.create" /> <spring:message code="input.button" />"> + <spring:message code="button.create" /> + </button> + </div> + </div> + <input name="blogId" type="hidden" value="<c:out value='${searchVO.blogId}'/>"> + <input name="blogAt" type="hidden" value="<c:out value='${searchVO.blogAt}'/>"> + <input name="cmd" type="hidden" value="<c:out value='save'/>"> + </form:form> </body> -</html> + +<script type="text/javascript"> +$(function(){ + /* ******************************************************** + * 첨부파일여부에 따라 첨부파일숫자select onoff, 첨부파일사이즈 onoff + ******************************************************** */ + $('#fileAtchPosblAt').on('change',function(){ + var fileAtchPosblAt = $('#fileAtchPosblAt'); + var atchPosblFileNumber = $('#atchPosblFileNumber'); + var atchPosblFileSize = $('#atchPosblFileSize'); + + if(fileAtchPosblAt.val() == 'Y'){ + //파일첨부가능 + $('#atchPosblFileNumber').attr("disabled",false); + $('#atchPosblFileSize').val("10"); + $('#atchPosblFileSize').attr("disabled",false); + }else{ + //파일첨부불가능 + $('#atchPosblFileNumber').val("0").prop("selected", true); + $('#atchPosblFileNumber').attr("disabled",true); + $('#atchPosblFileSize').val("0"); + $('#atchPosblFileSize').attr("disabled",true); + + } + }); + /* ******************************************************** + * 첨부파일사이즈체크 (최대 1024MB) + ******************************************************** */ + $('#atchPosblFileSize').on('focusout', function(){ + var atchPosblFileSize = parseFloat($('#atchPosblFileSize').val()); + if(atchPosblFileSize > 1024 ){ + alert("최대1024MB(1GB) 까지 입력 가능합니다.\n다시 입력해주세요."); + $('#atchPosblFileSize').val("10"); + } + }); + + var options = { + fileListDivId : 'egovComFileList', + inputFileId : 'egovComFileUploader', + hiddenFileName : 'atchFileId', + txtAreaId : 'bbsForm', + authorType : 'user' + } + $('#bbsForm').initEditor(options); + + /* 추가선택사항 선택 시 댓글등록권한 선택 */ + $('#option').on('change',function(){ + var option = $('#option').val(); + if(option == 'comment'){ + $('[name=answerRegistAuthor]').attr('disabled',false); + }else{ + $('[name=answerRegistAuthor]').attr('checked',false); + $('[name=answerRegistAuthor]').attr('disabled',true); + } + }); +}); + +</script>
Add a comment
List