jhleem / egov star

이다솜 이다솜 2022-02-18 @109

[20220218 이다솜] 게시판 코밋
Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java =================================================================== --- base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 108) +++ base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 109) @@ -120,7 +120,12 @@ /** 게시판소개 */ private String bbsIntrcn = ""; - /** + /** + * 대표이미지 링크 + */ + private String rprsAtchFileLink; + + /** * searchBgnDe attribute를 리턴한다. * * @return the searchBgnDe @@ -704,6 +709,14 @@ this.bbsIntrcn = bbsIntrcn; } + public String getRprsAtchFileLink() { + return rprsAtchFileLink; + } + + public void setRprsAtchFileLink(String rprsAtchFileLink) { + this.rprsAtchFileLink = rprsAtchFileLink; + } + } Index: base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovArticle_SQL_postgres.xml =================================================================== --- base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovArticle_SQL_postgres.xml (revision 108) +++ base3.10/src/main/resources/egovframework/mapper/com/cop/bbs/EgovArticle_SQL_postgres.xml (revision 109) @@ -21,6 +21,7 @@ <result property="useAt" column="USE_AT"/> <result property="atchFileId" column="ATCH_FILE_ID"/> <result property="rprsAtchFileId" column="RPRS_ATCH_FILE_ID"/> + <result property="rprsAtchFileLink" column="RPRS_ATCH_FILE_Link"/> <result property="ntceBgnde" column="NTCE_BGNDE"/> <result property="ntceEndde" column="NTCE_ENDDE"/> <result property="sjBoldAt" column="SJ_BOLD_AT"/> @@ -214,8 +215,9 @@ SELECT a.NTT_ID, a.NTT_SJ, a.NTT_CN, a.FRST_REGISTER_ID, COALESCE(b.USER_NM, a.NTCR_NM) as FRST_REGISTER_NM, TO_CHAR(a.FRST_REGIST_PNTTM, 'YYYY-mm-dd') as FRST_REGIST_PNTTM, - a.RDCNT, a.PARNTSCTT_NO, a.ANSWER_AT, a.ANSWER_LC, a.USE_AT, a.ATCH_FILE_ID, - a.BBS_ID, a.NTCE_BGNDE, a.NTCE_ENDDE, a.SJ_BOLD_AT, a.NOTICE_AT, a.SECRET_AT, c.COMMENT_CO + a.RDCNT, a.PARNTSCTT_NO, a.ANSWER_AT, a.ANSWER_LC, a.USE_AT, a.ATCH_FILE_ID, a.RPRS_ATCH_FILE_ID, + a.BBS_ID, a.NTCE_BGNDE, a.NTCE_ENDDE, a.SJ_BOLD_AT, a.NOTICE_AT, a.SECRET_AT, c.COMMENT_CO, + (select link from tnfile where file_id = a.RPRS_ATCH_FILE_ID) as RPRS_ATCH_FILE_LINK FROM COMTNBBS a LEFT OUTER JOIN @@ -232,13 +234,13 @@ a.BBS_ID = #{bbsId} AND a.USE_AT = 'Y' - <if test="searchCnd == 0">AND + <if test="searchCondition == 0">AND a.NTT_SJ LIKE CONCAT ('%', #{searchKeyword},'%') </if> - <if test="searchCnd == 1">AND + <if test="searchCondition == 1">AND a.NTT_CN LIKE CONCAT ('%', #{searchKeyword},'%') </if> - <if test="searchCnd == 2">AND + <if test="searchCondition == 2">AND b.USER_NM LIKE CONCAT ('%', #{searchKeyword},'%') </if> <if test="searchCondition == 99">AND Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 108) +++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 109) @@ -22,6 +22,7 @@ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%pageContext.setAttribute("crlf", "\r\n"); %> <c:set var="reBbsId" value="${fn:replace(boardMasterVO.bbsId, \"BBSMSTR_\", \"\")}"/> <c:set var="pageTitle"><spring:message code="comCopBbs.articleVO.title"/></c:set> @@ -72,7 +73,12 @@ <div class="sorting_wrap"> <div class="total"> 전체 <em class="count">${paginationInfo.totalRecordCount}</em>건</div> <div class="search_wrap"> - <select class="search_select"><option>선택</option></select> + <select class="search_select" name="searchCondition"> + <option value="99" <c:if test="${searchVO.searchCondition == '99'}">selected="selected"</c:if> >선택</option> + <option value="0" <c:if test="${searchVO.searchCondition == '0'}">selected="selected"</c:if> ><spring:message code="comCopBbs.articleVO.list.nttSj" /></option><!-- 글 제목 --> + <option value="1" <c:if test="${searchVO.searchCondition == '1'}">selected="selected"</c:if> ><spring:message code="comCopBbs.articleVO.list.nttCn" /></option><!-- 글 내용 --> + <option value="2" <c:if test="${searchVO.searchCondition == '2'}">selected="selected"</c:if> ><spring:message code="table.reger" /></option><!-- 작성자 --> + </select> <div class="search_box" title="<spring:message code="common.searchCondition.msg" />"> <!-- 검색키워드 및 조회버튼 --> <input class="inputText" name="searchKeyword" type="text" size="35" title="<spring:message code="title.search" /> <spring:message code="input.input" />" value='<c:out value="${searchVO.searchKeyword}"/>' placeholder="제목 또는 내용 또는 작성자를 입력하세요" maxlength="155" > @@ -87,14 +93,16 @@ <!-- 목록영역 --> <div class="board_list"> <ul> - <li class="t_head"> + <c:if test="${boardMasterVO.bbsTyCode ne 'BBST02'}"> + <li class="t_head"> <div class="b_num"><spring:message code="table.num" /></div><!-- 번호 --> <div class="b_tit"><spring:message code="comCopBbs.articleVO.list.nttSj" /></div><!--글 제목 --> -<%-- <div class="b_writer"><spring:message code="table.reger" /></div><!-- 작성자명 --> --%> + <%-- <div class="b_writer"><spring:message code="table.reger" /></div><!-- 작성자명 --> --%> <div class="b_file">첨부파일</div><!-- 첨부파일 --> <div class="b_date"><spring:message code="table.regdate" /></div><!-- 작성시각 --> -<%-- <div class="b_view"><spring:message code="comCopBbs.articleVO.list.inqireCo" /></div><!-- 조회수 --> --%> - </li> + <%-- <div class="b_view"><spring:message code="comCopBbs.articleVO.list.inqireCo" /></div><!-- 조회수 --> --%> + </li> + </c:if> <!-- 공지사항 본문 --> <c:forEach items="${noticeList}" var="noticeInfo" varStatus="status"> <li class="notice"> @@ -121,53 +129,78 @@ </c:forEach> <!-- 게시글 본문 --> <c:forEach items="${resultList}" var="resultInfo" varStatus="status"> - <li> - <div class="b_num"> - <p><c:out value="${paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo-1) * paginationInfo.recordCountPerPage + status.index)}"/></p> - </div> - <c:choose> - <c:when test="${resultInfo.secretAt == 'Y' && sessionUniqId != resultInfo.frstRegisterId}"> - <!-- 비밀글이며 작성자가 본인이 아닌 경우(클릭 불가) --> - <div class="b_tit"> - <c:if test="${resultInfo.replyLc!=0}"> - <c:forEach begin="0" end="${resultInfo.replyLc}" step="1"> - &nbsp; - </c:forEach> - </c:if> - <p class="lock"><span class="icon-lock"><em class="blind">비밀글</em></span><c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/></p> - <c:if test="${resultInfo.commentCo != ''}"> - <div class="count_comment"><span class="icon-say"></span> - <c:out value='${resultInfo.commentCo}'/> - </div> - </c:if> - </div> - </c:when> - <c:otherwise> - <!-- 나머지 경우 --> - <div class="b_tit"> - <a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" title="${resultInfo.nttSj }"> - <c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/> - </a> - <c:if test="${resultInfo.commentCo != ''}"> - <div class="count_comment"> - <span class="icon-say"></span><c:out value='${resultInfo.commentCo}'/> - </div> - </c:if> - </div> - </c:otherwise> - </c:choose> -<%-- <div class="b_writer"><c:out value='${resultInfo.frstRegisterNm}'/></div> --%> - <div class="b_file"> - <c:if test="${!empty resultInfo.atchFileId }"> - <span class="icon-file"></span> - </c:if> + <c:if test="${boardMasterVO.bbsTyCode ne 'BBST02'}"> + <li> + <div class="b_num"> + <p><c:out value="${paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo-1) * paginationInfo.recordCountPerPage + status.index)}"/></p> + </div> + <c:choose> + <c:when test="${resultInfo.secretAt == 'Y' && sessionUniqId != resultInfo.frstRegisterId}"> + <!-- 비밀글이며 작성자가 본인이 아닌 경우(클릭 불가) --> + <div class="b_tit"> + <c:if test="${resultInfo.replyLc!=0}"> + <c:forEach begin="0" end="${resultInfo.replyLc}" step="1"> + &nbsp; + </c:forEach> + </c:if> + <p class="lock"><span class="icon-lock"><em class="blind">비밀글</em></span><c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/></p> + <c:if test="${resultInfo.commentCo != ''}"> + <div class="count_comment"><span class="icon-say"></span> + <c:out value='${resultInfo.commentCo}'/> + </div> + </c:if> + </div> + </c:when> + <c:otherwise> + <!-- 나머지 경우 --> + <div class="b_tit"> + <a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" title="${resultInfo.nttSj }"> + <c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/> + </a> + <c:if test="${resultInfo.commentCo != ''}"> + <div class="count_comment"> + <span class="icon-say"></span><c:out value='${resultInfo.commentCo}'/> + </div> + </c:if> + </div> + </c:otherwise> + </c:choose> + <%-- <div class="b_writer"><c:out value='${resultInfo.frstRegisterNm}'/></div> --%> + <div class="b_file"> + <c:if test="${!empty resultInfo.atchFileId }"> + <span class="icon-file"></span> + </c:if> + </div> + <div class="b_date"><c:out value='${resultInfo.frstRegisterPnttm}'/></div> + <%-- <div class="b_view"><c:out value='${resultInfo.inqireCo}'/></div> --%> + </li> + </c:if> + <c:if test="${boardMasterVO.bbsTyCode eq 'BBST02'}"> + <div class="board_img_list"> + <ul> + <li> + <div class="b_thumb "> + <a href="#!" class="bg_box"> + <img src="${resultInfo.rprsAtchFileLink }" alt="${resultInfo.nttSj } 대표이미지"></a> + </div> + <div class="b_text"> + <a href="#!" class="category">Cross Street</a> + <a href="#!" class="title" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" title="${resultInfo.nttSj }"> + <c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/> + </a> + <p class="by"><a href="/content/common/writer_list.html" title="작가 정보" class="writer"><c:out value='${resultInfo.frstRegisterNm}'/></a><em>국립과천과학관</em></p> + <p class="text"> + <a href="#!" class="textover" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" title="${resultInfo.nttCn }"> + <c:out value="${fn:replace(fn:replace(resultInfo.nttCn, crlf, '<br/>'), ' ', '&nbsp;')}" /> + </a> + </p> + </div> + </li> + </ul> </div> - <div class="b_date"><c:out value='${resultInfo.frstRegisterPnttm}'/></div> - <%-- <div class="b_view"><c:out value='${resultInfo.inqireCo}'/></div> --%> - </li> + </c:if> </c:forEach> - - + <c:if test="${fn:length(resultList) == 0}"> <!-- 글이 없는 경우 --> <li> @@ -176,125 +209,6 @@ </c:if> </ul> </div> - - <div class="space50"></div> - - <div class="board_img_list"> - <ul> - <li> - <div class="b_thumb "> - <a href="#!" class="bg_box"><img src="/images/user/sample1.jpg" alt="우주이미지"></a> - </div> - <div class="b_text"> - <a href="#!" class="category">Cross Street</a> - <a href="#!" class="title" title="허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경">허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경</a> - <p class="by"><a href="/content/common/writer_list.html" title="작가 정보" class="writer">강성주</a><em>국립과천과학관</em></p> - <p class="text"><a href="/content/common/article_view.html" class="textover" title="허블 우주망원경의 업적 그리고 천문학의 새로운 역사의 시작, 제임스 웹 우주망원경">조선 시대 가장 존경받는 정승이 누구인지 물어보면 누구나 이견 없이 황희 정승을 꼽을 것이다. 황희는 현재의 국무총리 역할인 조선 시대 정승이었던 좌의정, 우의정, 영의정을 무려 25년 가까이 수행하였다. 황희는 현재의 국무총리 역할인 조선 시대 정승이었던 좌의정, 우의정, 영의정을 무려 25년 가까이 수행하였다.조선 시대 가장 존경받는 정승이 누구인지 물어보면 누구나 이견 없이 황희 정승을 꼽을 것이다. 황희는 현재의 국무총리 역할인 조선 시대 정승이었던 좌의정, 우의정, 영의정을 무려 25년 가까이 수행하였다. 황희는 현재의 국무총리 역할인 조선 시대 정승이었던 좌의정, 우의정, 영의정을 무려 25년 가까이 수행하였다.</a> </p> - </div> - </li> - </ul> - </div> - - <%-- <table class="board_list"> - <caption>공지사항 - 순서, 제목, 작성일 순으로 나열합니다.</caption> - <colgroup> - <col class="width100"> - <col class="widthauto"> - <col class="width80"> - <col class="width150"> - </colgroup> - <thead> - <tr> - <th><spring:message code="table.num" /></th><!-- 번호 --> - <th class="board_th_link"><spring:message code="comCopBbs.articleVO.list.nttSj" /></th><!--글 제목 --> - <th><spring:message code="table.reger" /></th><!-- 작성자명 --> - <th>첨부파일</th><!-- 첨부파일 --> - <th><spring:message code="table.regdate" /></th><!-- 작성시각 --> - <th><spring:message code="comCopBbs.articleVO.list.inqireCo" /></th><!-- 조회수 --> - </tr> - </thead> - - <tbody> - <!-- 공지사항 본문 --> - <c:forEach items="${noticeList}" var="noticeInfo" varStatus="status"> - <tr class="notice"> - <td class="board_num"><em>공지</em></td> - <td class="bold board_tit"> - <a href="#!" onclick="fn_egov_inquire_articledetail('${noticeInfo.bbsId }', '${noticeInfo.nttId }');"> - <c:out value='${fn:substring(noticeInfo.nttSj, 0, 40)}'/> - </a> - <c:if test="${noticeInfo.commentCo != ''}"> - <div class="count_comment"> - <span class="icon-say"></span><c:out value='${noticeInfo.commentCo}'/> - </div> - </c:if> - </td> - <td><c:out value='${noticeInfo.frstRegisterNm}'/></td> - <td> - <c:if test="${!empty noticeInfo.atchFileId }"> - <span class="icon-file"></span> - </c:if> - </td> - <td><c:out value='${noticeInfo.frstRegisterPnttm}'/></td> - <td><c:out value='${noticeInfo.inqireCo}'/></td> - </tr> - </c:forEach> - <!-- 게시글 본문 --> - <c:forEach items="${resultList}" var="resultInfo" varStatus="status"> - <tr> - <td class="board_num"> - <p><c:out value="${paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo-1) * paginationInfo.recordCountPerPage + status.index)}"/></p> - </td> - <c:choose> - <c:when test="${resultInfo.secretAt == 'Y' && sessionUniqId != resultInfo.frstRegisterId}"> - <!-- 비밀글이며 작성자가 본인이 아닌 경우(클릭 불가) --> - <td class="board_tit"> - <c:if test="${resultInfo.replyLc!=0}"> - <c:forEach begin="0" end="${resultInfo.replyLc}" step="1"> - &nbsp; - </c:forEach> - </c:if> - <p class="lock"><span class="icon-lock"><em class="blind">비밀글</em></span><c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/></p> - <c:if test="${resultInfo.commentCo != ''}"> - <div class="count_comment"><span class="icon-say"></span> - <c:out value='${resultInfo.commentCo}'/> - </div> - </c:if> - </td> - </c:when> - <c:otherwise> - <!-- 나머지 경우 --> - <td class="board_tit"> - <a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" title="${resultInfo.nttSj }"> - <c:out value='${fn:substring(resultInfo.nttSj, 0, 40)}'/> - </a> - <c:if test="${resultInfo.commentCo != ''}"> - <div class="count_comment"> - <span class="icon-say"></span><c:out value='${resultInfo.commentCo}'/> - </div> - </c:if> - </td> - </c:otherwise> - </c:choose> - <td><c:out value='${resultInfo.frstRegisterNm}'/></td> - <td> - <c:if test="${!empty resultInfo.atchFileId }"> - <span class="icon-file"></span> - </c:if> - </td> - <td><c:out value='${resultInfo.frstRegisterPnttm}'/></td> - <td><c:out value='${resultInfo.inqireCo}'/></td> - </tr> - </c:forEach> - - <c:if test="${fn:length(resultList) == 0}"> - <!-- 글이 없는 경우 --> - <tr> - <td colspan="4"><spring:message code="common.nodata.msg" /></td> - </tr> - </c:if> - </tbody> - </table> --%> <!-- paging navigation --> <div class="bottom_wrap right"> Index: base3.10/src/main/webapp/js/com/fileUpload.js =================================================================== --- base3.10/src/main/webapp/js/com/fileUpload.js (revision 108) +++ base3.10/src/main/webapp/js/com/fileUpload.js (revision 109) @@ -274,7 +274,7 @@ // dom += '<a class="btn_sq_s btn_delete mr2"' + display + '" href="javascript:void(0)" title="삭제 버튼"><em class="blind">삭제</em></a>&nbsp;'; dom += '<button type="button" class="btn_sq_s btn_delete mr2"' + display + '" onclick="javascript:void(0)" title="삭제 버튼"><em class="blind">삭제</em></button>&nbsp;'; dom += '<a class="btn_sq_s btn_filedown" href="' + html.link + '" title="파일 다운로드 버튼"><em class="blind">파일 다운로드</em></a></a>'; - dom += '<button type="button" class="btn_sq_s btn_filedown" href="' + html.link + '" onclick="location.replace(' + "'" + html.link + "'" + '); title="파일 다운로드 버튼"><em class="blind">파일 다운로드</em></button>'; + dom += '<button type="button" class="btn_sq_s btn_filedown" href="' + html.link + '" onclick="location.replace(' + "'" + html.link + "'" + ');" title="파일 다운로드 버튼"><em class="blind">파일 다운로드</em></button>'; dom += '</div>'; dom += '</div>'; return dom;
Add a comment
List