파라미터 관리 로직 추가

일단 게시판부터 시작
dev
박성영 5 months ago
parent 8360e22a8c
commit d627af75b8

@ -56,7 +56,8 @@ public class BbsManageConfigController {
})
@GetMapping(value="/list.do")
public String configList(BbsConfigVO paramVO, Model model) {
model.addAttribute("paramVO", paramVO);
List<CodeDetailVO> bbsTypeCodeList = commonCodeService.selectCodeDetailListByGroupId("BBS_TYPE_CD");
model.addAttribute("bbsTypeCodeList", bbsTypeCodeList );
return "bbs/manage/config/list"+ TilesConstants.BASE;
}

@ -28,6 +28,8 @@ public class BbsPostSearchVO extends PagingVO {
private String bbsId;
private String searchAnswerStatusCd;
// 검색 조건 - 상단고정여부
private String searchNoticeYn;

@ -76,7 +76,7 @@ public class BbsManageQnaController {
// 모델에 게시판 설정 정보 추가
model.addAttribute("config", config);
model.addAttribute("answerStatusList", commonCodeService.selectCodeDetailListByGroupId("BBS_ANSWER_STATUS"));
model.addAttribute("answerStatusList", commonCodeService.selectCodeDetailListByGroupId("BBS_ANSWER_STATUS_CD"));
return "bbs/manage/qna/list" + TilesConstants.BASE;
}

@ -143,6 +143,9 @@
<if test="searchNoticeYn != null and searchNoticeYn != ''">
AND a.NOTICE_YN = #{searchNoticeYn}
</if>
<if test="searchAnswerStatusCd != null and searchAnswerStatusCd != ''">
AND a.ANSWER_STATUS_CD = #{searchAnswerStatusCd}
</if>
<if test="searchUseYn != null and searchUseYn != ''">
AND a.USE_YN = #{searchUseYn}
</if>
@ -183,6 +186,9 @@
<if test="searchNoticeYn != null and searchNoticeYn != ''">
AND a.NOTICE_YN = #{searchNoticeYn}
</if>
<if test="searchAnswerStatusCd != null and searchAnswerStatusCd != ''">
AND a.ANSWER_STATUS_CD = #{searchAnswerStatusCd}
</if>
<if test="searchUseYn != null and searchUseYn != ''">
AND a.USE_YN = #{searchUseYn}
</if>

@ -14,7 +14,7 @@
<c:if test="${config ne null and config.bbsId ne null}">
<button type="button" id="btnDelete" class="newbtn bg3">삭제</button>
</c:if>
<button type="button" onclick="location.href='<c:url value='/bbs/manage/config/list.do'/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" onclick="BbsConfigForm.goToList();" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -216,6 +216,11 @@
self.deleteConfig();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.listConfig();
});
//
$('input:radio[name="uploadYn"]').on('change', function() {
self.changeUploadYn();
@ -331,7 +336,7 @@
},
goToList: function() {
window.location.href = '<c:url value="/bbs/manage/config/list.do"/>';
window.location.href = removeUrlParam("bbsId", "<c:url value="/bbs/manage/config/list.do"/>");
},
/**

@ -18,29 +18,30 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="bbsId">게시판 ID</option>
<option value="bbsNm">게시판 이름</option>
<option value="bbsDc">게시판 설명</option>
<option value="bbsId" <c:if test="${param.searchCondition eq 'bbsId'}">selected</c:if>>게시판 ID</option>
<option value="bbsNm" <c:if test="${param.searchCondition eq 'bbsNm'}">selected</c:if>>게시판 이름</option>
<option value="bbsDc" <c:if test="${param.searchCondition eq 'bbsDc'}">selected</c:if>>게시판 설명</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li class="th">게시판 종류</li>
<li>
<select id="searchBbsTypeCd" name="searchBbsTypeCd" class="input">
<option value="">전체</option>
<option value="NORMAL">일반</option>
<option value="NOTICE">공지사항</option>
<option value="QNA">질문과답변</option>
<option value="FAQ">자주묻는질문</option>
<c:forEach var="code" items="${bbsTypeCodeList}">
<option value="${code.cdId}" <c:if test="${param.searchBbsTypeCd eq code.cdId}">selected</c:if>>
${code.cdNm}
</option>
</c:forEach>
</select>
</li>
<li class="th">사용여부</li>
<li>
<select id="searchUseYn" name="searchUseYn" class="input">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">미사용</option>
<option value="Y" <c:if test="${param.searchUseYn eq 'Y'}">selected</c:if>>사용</option>
<option value="N" <c:if test="${param.searchUseYn eq 'N'}">selected</c:if>>미사용</option>
</select>
</li>
<li>
@ -50,9 +51,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
<%--<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><sapn id="totalPages"></sapn> Pages</span>--%>
</li>
@ -206,12 +207,10 @@
processData: true
}
},
initialRequest: true,
serializer: function(params) {
var defaultParams = $.param(params);
initialRequest: false,
serializer: function (params) {
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
return $.param(SEARCH_COND);
}
};
},
@ -250,7 +249,13 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.bbsId) {
window.location.href = '<c:url value="/bbs/manage/config/edit.do"/>' + '?bbsId=' + rowData.bbsId;
// client paiging 처리 일경우 페이징 값 얻기
var page = ev.instance.paginationManager.getPagination()._currentPage;
var perPage = ev.instance.paginationManager.getPagination()._options.itemsPerPage;
SEARCH_COND.page = page;
SEARCH_COND.perPage = perPage;
// 새로운 함수를 사용하여 URL 생성 및 페이지 이동
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "bbsId", rowData.bbsId, "<c:url value="/bbs/manage/config/edit.do"/>");
}
}
});
@ -282,7 +287,7 @@
// perPage 변경 이벤트 추가
$('#perPageSelect').on('change', function() {
var perPage = parseInt($(this).val(), 10);
// Grid의 perPage 설정 변경 및 데이터 리로드
// Grid의 perPage 설정 변경
self.grid.instance.setPerPage(perPage);
});
},
@ -296,6 +301,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -20,7 +20,7 @@
<section id="section5">
<div class="sub_title"></div>
<button type="button" id="btnSave" class="newbtn bg4">저장</button>
<button type="button" onclick="location.href='<c:url value="/bbs/manage/post/${config.bbsId}/list.do"/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -208,6 +208,11 @@
$('#btnSave').on('click', function() {
self.savePost();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
// 파일 삭제 버튼 클릭 이벤트 (기존 파일)
$(document).on('click', '.btn_delete_file', function(event) {
@ -498,14 +503,15 @@
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = '<c:url value="/bbs/manage/post/${config.bbsId}/list.do"/>';
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/manage/post/${config.bbsId}/list.do"/>");
},
/**
* 상세 페이지로 이동
*/
goToView: function(postId) {
window.location.href = '<c:url value="/bbs/manage/post/${config.bbsId}/view.do?postId="/>' + postId;
var SEARCH_COND = getUrlParams();
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", postId, "<c:url value="/bbs/manage/post/${config.bbsId}/view.do"/>");
},
/**

@ -18,27 +18,27 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="title">제목</option>
<option value="content">내용</option>
<option value="writerNm">작성자</option>
<option value="title" <c:if test="${param.searchCondition eq 'title'}">selected</c:if>>제목</option>
<option value="content" <c:if test="${param.searchCondition eq 'content'}">selected</c:if>>내용</option>
<option value="writerNm" <c:if test="${param.searchCondition eq 'writerNm'}">selected</c:if>>작성자</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li class="th">상단고정</li>
<li>
<select id="searchNoticeYn" name="searchNoticeYn" class="input">
<option value="">전체</option>
<option value="Y">예</option>
<option value="N">아니오</option>
<option value="Y" <c:if test="${param.searchNoticeYn eq 'Y'}">selected</c:if>>예</option>
<option value="N" <c:if test="${param.searchNoticeYn eq 'N'}">selected</c:if>>아니오</option>
</select>
</li>
<li class="th">사용여부</li>
<li>
<select id="searchUseYn" name="searchUseYn" class="input">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">미사용</option>
<option value="Y" <c:if test="${param.searchUseYn eq 'Y'}">selected</c:if>>사용</option>
<option value="N" <c:if test="${param.searchUseYn eq 'N'}">selected</c:if>>미사용</option>
</select>
</li>
<li>
@ -48,9 +48,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
<%--<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><sapn id="totalPages"></sapn> Pages</span>--%>
</li>
@ -220,12 +220,12 @@
processData: true
}
},
initialRequest: true,
initialRequest: false,
serializer: function(params) {
var defaultParams = $.param(params);
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
SEARCH_COND.perPage = params.perPage;
SEARCH_COND.page = params.page;
return $.param(SEARCH_COND);
}
};
},
@ -264,7 +264,7 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.postId) {
window.location.href = '<c:url value="/bbs/manage/post/${config.bbsId}/view.do"/>' + '?postId=' + rowData.postId;
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", rowData.postId, "<c:url value="/bbs/manage/post/${config.bbsId}/view.do"/>");
}
}
});
@ -310,6 +310,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -20,13 +20,9 @@
<div class="bgs-main">
<section id="section5">
<div class="sub_title"></div>
<%-- Define URLs as variables to avoid quoting issues in onclick --%>
<c:url var="editUrl" value="/bbs/manage/post/${config.bbsId}/edit.do?postId=${post.postId}"/>
<c:url var="listUrl" value="/bbs/manage/post/${config.bbsId}/list.do"/>
<button type="button" onclick="location.href='${editUrl}'" class="newbtn bg1">수정</button>
<button type="button" id="btnEdit" class="newbtn bg1">수정</button>
<button type="button" id="btnDelete" class="newbtn bg2">삭제</button>
<button type="button" onclick="location.href='${listUrl}'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -146,6 +142,16 @@
$('#btnDelete').on('click', function() {
self.deletePost();
});
// 수정 버튼 클릭 이벤트
$('#btnEdit').on('click', function() {
self.editPost();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
},
/**
@ -194,7 +200,14 @@
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = '<c:url value="/bbs/manage/post/${config.bbsId}/list.do"/>';
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/manage/post/${config.bbsId}/list.do"/>");
},
/**
* 게시물 수정 페이지로 이동
*/
editPost: function() {
window.location.href = buildUrlWithCurrentParams(null, null, '<c:url value="/bbs/manage/post/${config.bbsId}/edit.do"/>');
},
/**

@ -18,7 +18,7 @@
<section id="section5">
<div class="sub_title"></div>
<button type="button" id="btnSave" class="newbtn bg4">저장</button>
<button type="button" onclick="location.href='<c:url value="/bbs/manage/qna/${config.bbsId}/view.do?postId=${post.postId}"/>'" class="newbtn bg1">취소</button>
<button type="button" id="btnCancel" class="newbtn bg1">취소</button>
</section>
</div>
</section>
@ -163,6 +163,11 @@
$('#btnSave').on('click', function() {
self.saveAnswer();
});
// 취소 버튼 클릭 이벤트
$('#btnCancel').on('click', function() {
self.goToView();
});
},
/**
@ -225,7 +230,8 @@
* 상세 페이지로 이동
*/
goToView: function() {
window.location.href = '<c:url value="/bbs/manage/qna/${config.bbsId}/view.do?postId=${post.postId}"/>';
var SEARCH_COND = getUrlParams();
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", "${post.postId}", "<c:url value="/bbs/manage/qna/${config.bbsId}/view.do"/>");
},
/**

@ -17,19 +17,19 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="title">제목</option>
<option value="content">내용</option>
<option value="writerNm">작성자</option>
<option value="title" <c:if test="${param.searchCondition eq 'title'}">selected</c:if>>제목</option>
<option value="content" <c:if test="${param.searchCondition eq 'content'}">selected</c:if>>내용</option>
<option value="writerNm" <c:if test="${param.searchCondition eq 'writerNm'}">selected</c:if>>작성자</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li class="th">답변상태</li>
<li>
<select id="searchAnswerStatus" name="searchAnswerStatus" class="input">
<select id="searchAnswerStatusCd" name="searchAnswerStatusCd" class="input">
<option value="">전체</option>
<c:forEach var="status" items="${answerStatusList}">
<option value="${status.cdId}">${status.cdNm}</option>
<option value="${status.cdId}" <c:if test="${param.searchAnswerStatusCd eq status.cdId}">selected</c:if>>${status.cdNm}</option>
</c:forEach>
</select>
</li>
@ -37,8 +37,8 @@
<li>
<select id="searchUseYn" name="searchUseYn" class="input">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">미사용</option>
<option value="Y" <c:if test="${param.searchUseYn eq 'Y'}">selected</c:if>>사용</option>
<option value="N" <c:if test="${param.searchUseYn eq 'N'}">selected</c:if>>미사용</option>
</select>
</li>
<li>
@ -48,9 +48,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
</li>
</ul>
@ -84,12 +84,12 @@
var setSearchCond = function() {
var searchCondition = $.trim(nvl($("#searchCondition").val(), ""));
var searchKeyword = $.trim(nvl($("#searchKeyword").val(), ""));
var searchAnswerStatus = $.trim(nvl($("#searchAnswerStatus").val(), ""));
var searchAnswerStatusCd = $.trim(nvl($("#searchAnswerStatusCd").val(), ""));
var searchUseYn = $.trim(nvl($("#searchUseYn").val(), ""));
SEARCH_COND.searchCondition = searchCondition;
SEARCH_COND.searchKeyword = searchKeyword;
SEARCH_COND.answerStatusCd = searchAnswerStatus;
SEARCH_COND.answerStatusCd = searchAnswerStatusCd;
SEARCH_COND.searchUseYn = searchUseYn;
};
@ -216,12 +216,12 @@
processData: true
}
},
initialRequest: true,
initialRequest: false,
serializer: function(params) {
var defaultParams = $.param(params);
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
SEARCH_COND.perPage = params.perPage;
SEARCH_COND.page = params.page;
return $.param(SEARCH_COND);
}
};
},
@ -260,7 +260,7 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.postId) {
window.location.href = '<c:url value="/bbs/manage/qna/${config.bbsId}/view.do"/>' + '?postId=' + rowData.postId;
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", rowData.postId, "<c:url value="/bbs/manage/qna/${config.bbsId}/view.do"/>");
}
}
});
@ -306,6 +306,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -69,18 +69,15 @@
<div class="bgs-main">
<section id="section5">
<div class="sub_title"></div>
<c:url var="listUrl" value="/bbs/manage/qna/${config.bbsId}/list.do"/>
<c:url var="answerUrl" value="/bbs/manage/qna/${config.bbsId}/answer.do?postId=${post.postId}"/>
<c:if test="${post.answerStatusCd eq 'WAITING'}">
<button type="button" onclick="location.href='${answerUrl}'" class="newbtn bg1">답변 등록</button>
<button type="button" id="btnAnswer" class="newbtn bg1">답변 등록</button>
</c:if>
<c:if test="${post.answerStatusCd eq 'COMPLETED' and not empty answer}">
<button type="button" onclick="location.href='${answerUrl}'" class="newbtn bg1">답변 수정</button>
<button type="button" id="btnEditAnswer" class="newbtn bg1">답변 수정</button>
<button type="button" id="btnDeleteAnswer" class="newbtn bg2">답변 삭제</button>
</c:if>
<button type="button" id="btnDelete" class="newbtn bg2">삭제</button>
<button type="button" onclick="location.href='${listUrl}'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -238,6 +235,21 @@
$('#btnDeleteAnswer').on('click', function() {
self.deleteAnswer();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
// 답변 등록 버튼 클릭 이벤트
$('#btnAnswer').on('click', function() {
self.goToAnswer();
});
// 답변 수정 버튼 클릭 이벤트
$('#btnEditAnswer').on('click', function() {
self.goToAnswer();
});
},
/**
@ -312,7 +324,14 @@
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = '<c:url value="/bbs/manage/qna/${config.bbsId}/list.do"/>';
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/manage/qna/${config.bbsId}/list.do"/>");
},
/**
* 답변 페이지로 이동
*/
goToAnswer: function() {
window.location.href = buildUrlWithCurrentParams(null, null, '<c:url value="/bbs/manage/qna/${config.bbsId}/answer.do"/>');
},
/**

@ -20,13 +20,13 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="title">제목</option>
<option value="content">내용</option>
<option value="writerNm">작성자</option>
<option value="title" <c:if test="${param.searchCondition eq 'title'}">selected</c:if>>제목</option>
<option value="content" <c:if test="${param.searchCondition eq 'content'}">selected</c:if>>내용</option>
<option value="writerNm" <c:if test="${param.searchCondition eq 'writerNm'}">selected</c:if>>작성자</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li>
<button type="button" id="search_btn" class="newbtnss bg1">검색</button>
</li>
@ -34,9 +34,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
<%--<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><sapn id="totalPages"></sapn> Pages</span>--%>
</li>
@ -183,12 +183,12 @@
processData: true
}
},
initialRequest: true,
initialRequest: false,
serializer: function(params) {
var defaultParams = $.param(params);
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
SEARCH_COND.perPage = params.perPage;
SEARCH_COND.page = params.page;
return $.param(SEARCH_COND);
}
};
},
@ -227,7 +227,7 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.postId) {
window.location.href = '<c:url value="/bbs/user/post/${config.bbsId}/view.do"/>' + '?postId=' + rowData.postId;
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", rowData.postId, "<c:url value="/bbs/user/post/${config.bbsId}/view.do"/>");
}
}
});
@ -273,6 +273,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -19,7 +19,7 @@
<div class="bgs-main">
<section id="section5">
<div class="sub_title"></div>
<button type="button" onclick="location.href='<c:url value="/bbs/user/post/${config.bbsId}/list.do"/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -116,6 +116,25 @@
* 게시물 상세 조회 네임스페이스
*/
var BbsPostView = {
/**
* 이벤트 핸들러 설정
*/
eventBindEvents: function() {
var self = this;
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
},
/**
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/user/post/${config.bbsId}/list.do"/>");
},
/**
* TOAST UI Editor Viewer 초기화
*/
@ -136,6 +155,9 @@
* 모듈 초기화
*/
init: function() {
// 이벤트 핸들러 설정
this.eventBindEvents();
// TOAST UI Editor Viewer 초기화
this.initViewer();
}

@ -17,7 +17,7 @@
<section id="section5">
<div class="sub_title"></div>
<button type="button" id="btnSave" class="newbtn bg4">등록</button>
<button type="button" onclick="location.href='<c:url value="/bbs/user/qna/${config.bbsId}/list.do"/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -139,6 +139,11 @@
$('#btnSave').on('click', function() {
self.saveQna();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
// 파일 삭제 버튼 클릭 이벤트 (기존 파일)
$(document).on('click', '.btn_delete_file', function(event) {
@ -411,7 +416,7 @@
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = '<c:url value="/bbs/user/qna/${config.bbsId}/list.do"/>';
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/user/qna/${config.bbsId}/list.do"/>");
},
/**

@ -18,13 +18,13 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="title">제목</option>
<option value="content">내용</option>
<option value="writerNm">작성자</option>
<option value="title" <c:if test="${param.searchCondition eq 'title'}">selected</c:if>>제목</option>
<option value="content" <c:if test="${param.searchCondition eq 'content'}">selected</c:if>>내용</option>
<option value="writerNm" <c:if test="${param.searchCondition eq 'writerNm'}">selected</c:if>>작성자</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li>
<button type="button" id="search_btn" class="newbtnss bg1">검색</button>
</li>
@ -32,9 +32,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><sapn id="totalPages"></sapn> Pages</span>
</li>
@ -183,12 +183,12 @@
processData: true
}
},
initialRequest: true,
initialRequest: false,
serializer: function(params) {
var defaultParams = $.param(params);
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
SEARCH_COND.perPage = params.perPage;
SEARCH_COND.page = params.page;
return $.param(SEARCH_COND);
}
};
},
@ -227,7 +227,7 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.postId) {
window.location.href = '<c:url value="/bbs/user/qna/${config.bbsId}/view.do"/>' + '?postId=' + rowData.postId;
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "postId", rowData.postId, "<c:url value="/bbs/user/qna/${config.bbsId}/view.do"/>");
}
}
});
@ -273,6 +273,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -63,7 +63,7 @@
<div class="bgs-main">
<section id="section5">
<div class="sub_title"></div>
<button type="button" onclick="location.href='<c:url value="/bbs/user/qna/${config.bbsId}/list.do"/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -191,6 +191,25 @@
* Q&A 상세 조회 네임스페이스
*/
var QnaView = {
/**
* 이벤트 핸들러 설정
*/
eventBindEvents: function() {
var self = this;
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.goToList();
});
},
/**
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = removeUrlParam("postId", "<c:url value="/bbs/user/qna/${config.bbsId}/list.do"/>");
},
/**
* TOAST UI Editor Viewer 초기화
*/
@ -211,6 +230,9 @@
* 모듈 초기화
*/
init: function() {
// 이벤트 핸들러 설정
this.eventBindEvents();
// TOAST UI Editor Viewer 초기화
this.initViewer();
}

@ -251,7 +251,7 @@
* 목록 페이지로 이동
*/
goToList: function() {
window.location.href = '<c:url value="/template/noticeSample/list.do"/>';
window.location.href = window.location.href = removeUrlParam("noticeId", "<c:url value="/template/noticeSample/list.do"/>");
},
/**

@ -18,25 +18,25 @@
<li>
<select id="searchCondition" name="searchCondition" class="input">
<option value="">검색구분</option>
<option value="title">제목</option>
<option value="contents">내용</option>
<option value="writer">수정자명</option>
<option value="title" <c:if test="${paramVO.searchCondition eq 'title'}">selected</c:if>>제목</option>
<option value="contents" <c:if test="${paramVO.searchCondition eq 'contents'}">selected</c:if>>내용</option>
<option value="writer" <c:if test="${paramVO.searchCondition eq 'writer'}">selected</c:if>>수정자명</option>
</select>
</li>
<li class="th">검색어</li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input"/></li>
<li><input type="text" id="searchKeyword" name="searchKeyword" class="input" value="${param.searchKeyword}"/></li>
<li class="th">사용여부</li>
<li>
<select id="searchUseYn" name="searchUseYn" class="input">
<option value="">전체</option>
<option value="Y">사용</option>
<option value="N">미사용</option>
<option value="Y" <c:if test="${param.searchUseYn eq 'Y'}">selected</c:if>>사용</option>
<option value="N" <c:if test="${param.searchUseYn eq 'N'}">selected</c:if>>미사용</option>
</select>
</li>
<li class="th">등록일</li>
<li>
<input type="text" id="searchStartDt" name="searchStartDt" class="input calender datepicker" /> ~
<input type="text" id="searchEndDt" name="searchEndDt" class="input calender datepicker" />
<input type="text" id="searchStartDt" name="searchStartDt" class="input calender datepicker" value="${param.searchStartDt}" /> ~
<input type="text" id="searchEndDt" name="searchEndDt" class="input calender datepicker" value="${param.searchEndDt}" />
</li>
<li>
<button type="button" id="search_btn" class="newbtnss bg1">검색</button>
@ -45,9 +45,9 @@
<ul class="rig2">
<li>
<select id="perPageSelect" class="input">
<option value="10">페이지당 10</option>
<option value="20">페이지당 20</option>
<option value="30">페이지당 30</option>
<option value="10" <c:if test="${param.perPage eq '10'}">selected</c:if>>페이지당 10</option>
<option value="20" <c:if test="${param.perPage eq '20'}">selected</c:if>>페이지당 20</option>
<option value="30" <c:if test="${param.perPage eq '30'}">selected</c:if>>페이지당 30</option>
</select>
<span class="page_number"><span id="currentPage"></span><span class="bar">/</span><sapn id="totalPages"></sapn> Pages</span>
</li>
@ -77,7 +77,7 @@
'use strict';
var SEARCH_COND = {};
// 검색정보 셋팅
var setSearchCond = function() {
var searchCondition = $.trim(nvl($("#searchCondition").val(), ""));
@ -197,12 +197,12 @@
processData: true
}
},
initialRequest: true,
serializer: function(params) {
var defaultParams = $.param(params);
initialRequest: false,
serializer: function (params) {
setSearchCond();
var searchParams = $.param(SEARCH_COND);
return defaultParams + '&' + searchParams;
SEARCH_COND.perPage = params.perPage;
SEARCH_COND.page = params.page;
return $.param(SEARCH_COND);
}
};
},
@ -241,7 +241,8 @@
if (ev.rowKey !== undefined && ev.columnName !== '_number') {
var rowData = self.instance.getRow(ev.rowKey);
if (rowData && rowData.noticeId) {
window.location.href = '<c:url value="/template/noticeSample/view.do"/>' + '?noticeId=' + rowData.noticeId;
// 새로운 함수를 사용하여 URL 생성 및 페이지 이동
window.location.href = buildUrlWithParamCondAndId(SEARCH_COND, "noticeId", rowData.noticeId, "<c:url value="/template/noticeSample/view.do"/>");
}
}
});
@ -315,6 +316,8 @@
// 이벤트 핸들러 설정
this.eventBindEvents();
this.grid.instance.readData(${param.page eq null or param.page eq 0 ? 1 : param.page});
}
};

@ -18,7 +18,7 @@
<div class="sub_title"></div>
<button type="button" id="btnEdit" class="newbtn bg1">수정</button>
<button type="button" id="btnDelete" class="newbtn bg2">삭제</button>
<button type="button" onclick="location.href='<c:url value='/template/noticeSample/list.do'/>'" class="newbtn bg1">목록</button>
<button type="button" id="btnList" class="newbtn bg1">목록</button>
</section>
</div>
</section>
@ -126,13 +126,26 @@
$('#btnDelete').on('click', function() {
self.deleteNotice();
});
// 목록 버튼 클릭 이벤트
$('#btnList').on('click', function() {
self.listNotice();
});
},
/**
* 게시물 수정 페이지로 이동
*/
listNotice: function() {
window.location.href = removeUrlParam("noticeId", "<c:url value="/template/noticeSample/list.do"/>");
},
/**
* 게시물 수정 페이지로 이동
*/
editNotice: function() {
window.location.href = '<c:url value="/template/noticeSample/edit.do"/>' + '?noticeId=' + this.noticeId;
window.location.href = buildUrlWithCurrentParams(null, null, '<c:url value="/template/noticeSample/edit.do"/>');
},
/**

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save