게시판 관리 기능 개선
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
var url = '<c:url value="/onl/apim/portalinquiry/portalInquiryMan.json" />';
|
var url = '<c:url value="/onl/apim/portalinquiry/portalInquiryMan.json" />';
|
||||||
var url_view = '<c:url value="/onl/apim/portalinquiry/portalInquiryMan.view" />';
|
var url_view = '<c:url value="/onl/apim/portalinquiry/portalInquiryMan.view" />';
|
||||||
var select_orgId = "";
|
var select_orgId = "";
|
||||||
|
|
||||||
function formatInquiryStatus(cellvalue, options, rowObject) {
|
function formatInquiryStatus(cellvalue, options, rowObject) {
|
||||||
return cellvalue === 'PENDING'
|
return cellvalue === 'PENDING'
|
||||||
? '<span style="color: red;">문의중</span>'
|
? '<span style="color: red;">문의중</span>'
|
||||||
@@ -30,6 +31,37 @@
|
|||||||
return cellvalue + icon;
|
return cellvalue + icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteSelectedRows() {
|
||||||
|
var selectedIds = $("#grid").jqGrid('getGridParam', 'selarrrow');
|
||||||
|
|
||||||
|
if (selectedIds.length === 0) {
|
||||||
|
alert('항목을 선택하세요.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!confirm('선택된 ' + selectedIds.length + '개 항목을 삭제하시겠습니까?')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
cmd: 'DELETE_BULK',
|
||||||
|
ids: selectedIds.join(',')
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
alert('삭제되었습니다.');
|
||||||
|
$("#grid").jqGrid('clearGridData', true);
|
||||||
|
$("#grid").trigger("reloadGrid");
|
||||||
|
},
|
||||||
|
error: function(e) {
|
||||||
|
alert('삭제 중 오류가 발생했습니다.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function init(){
|
function init(){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : "POST",
|
type : "POST",
|
||||||
@@ -60,10 +92,10 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
url: url,
|
url: url,
|
||||||
postData : { cmd : 'LIST' },
|
postData : { cmd : 'LIST' },
|
||||||
colNames:['id', 'No.', '제목', '법인명', '상태', '작성자', '등록일', '답변자','답변일'],
|
colNames:['No.', 'id', '제목', '법인명', '상태', '작성자', '등록일', '답변자','답변일'],
|
||||||
colModel:[
|
colModel:[
|
||||||
{ name : 'id' , align:'center', key:true, hidden:true},
|
|
||||||
{ name : 'rowNum' , align:'center', width:50, sortable:false },
|
{ name : 'rowNum' , align:'center', width:50, sortable:false },
|
||||||
|
{ name : 'id' , align:'center', key:true, hidden:true},
|
||||||
{ name : 'inquirySubject' , align:'left' , width:200 , formatter: formatFile},
|
{ name : 'inquirySubject' , align:'left' , width:200 , formatter: formatFile},
|
||||||
{ name : 'orgName' , align:'center' , width:100 , },
|
{ name : 'orgName' , align:'center' , width:100 , },
|
||||||
{ name : 'inquiryStatus' , align:'center', width:70, formatter: formatInquiryStatus },
|
{ name : 'inquiryStatus' , align:'center', width:70, formatter: formatInquiryStatus },
|
||||||
@@ -83,6 +115,19 @@
|
|||||||
autowidth: true,
|
autowidth: true,
|
||||||
viewrecords: true,
|
viewrecords: true,
|
||||||
rowList : eval('[${rmsDefaultRowList}]'),
|
rowList : eval('[${rmsDefaultRowList}]'),
|
||||||
|
multiselect: true,
|
||||||
|
multiboxonly: true,
|
||||||
|
loadComplete: function() {
|
||||||
|
var records = $(this).getGridParam('records');
|
||||||
|
var page = $(this).getGridParam('page');
|
||||||
|
var rowNum = $(this).getGridParam('rowNum');
|
||||||
|
var rows = $(this).getDataIDs();
|
||||||
|
|
||||||
|
for (var i = 0; i < rows.length; i++) {
|
||||||
|
var number = ((page - 1) * rowNum + i) + 1;
|
||||||
|
$(this).setCell(rows[i], 'rowNum', number);
|
||||||
|
}
|
||||||
|
},
|
||||||
ondblClickRow: function(rowId) {
|
ondblClickRow: function(rowId) {
|
||||||
var rowData = $(this).getRowData(rowId);
|
var rowData = $(this).getRowData(rowId);
|
||||||
var id = rowData['id'];
|
var id = rowData['id'];
|
||||||
@@ -94,19 +139,6 @@
|
|||||||
url2 += '&id='+id;
|
url2 += '&id='+id;
|
||||||
goNav(url2);
|
goNav(url2);
|
||||||
},
|
},
|
||||||
gridComplete: function() {
|
|
||||||
var records = $(this).getGridParam('records');
|
|
||||||
var page = $(this).getGridParam('page');
|
|
||||||
var rowNum = $(this).getGridParam('rowNum');
|
|
||||||
var rows = $(this).getDataIDs();
|
|
||||||
var colModel = $(this).getGridParam("colModel");
|
|
||||||
|
|
||||||
for (var i = 0; i < rows.length; i++) {
|
|
||||||
var number = ((page - 1) * rowNum + i) + 1;
|
|
||||||
// var reverseNumber = records - ((page - 1) * rowNum + i);
|
|
||||||
$(this).setCell(rows[i], 'rowNum', number);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
loadError: function (jqXHR, textStatus, errorThrown) {
|
loadError: function (jqXHR, textStatus, errorThrown) {
|
||||||
var location ='<%=request.getContextPath()%>/';
|
var location ='<%=request.getContextPath()%>/';
|
||||||
comloadError(jqXHR, textStatus, errorThrown ,location);
|
comloadError(jqXHR, textStatus, errorThrown ,location);
|
||||||
@@ -131,6 +163,10 @@
|
|||||||
goNav(url2);
|
goNav(url2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#btn_delete_selected").click(function(){
|
||||||
|
deleteSelectedRows();
|
||||||
|
});
|
||||||
|
|
||||||
$("input[name^=search]").keydown(function(key){
|
$("input[name^=search]").keydown(function(key){
|
||||||
if (key.keyCode == 13){
|
if (key.keyCode == 13){
|
||||||
$("#btn_search").click();
|
$("#btn_search").click();
|
||||||
@@ -151,6 +187,7 @@
|
|||||||
<div class="content_middle" id="content_middle">
|
<div class="content_middle" id="content_middle">
|
||||||
<div class="search_wrap">
|
<div class="search_wrap">
|
||||||
<button type="button" class="cssbtn" id="btn_search" level="R"><i class="material-icons">search</i> <%= localeMessage.getString("button.search") %></button>
|
<button type="button" class="cssbtn" id="btn_search" level="R"><i class="material-icons">search</i> <%= localeMessage.getString("button.search") %></button>
|
||||||
|
<button type="button" class="cssbtn" id="btn_delete_selected" level="W" style="background-color: #dc3545; border-color: #dc3545; color: white;"><i class="material-icons">delete_forever</i> 선택 삭제</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="title">Q&A 목록<span class="tooltip">Q&A를 관리합니다.</span></div>
|
<div class="title">Q&A 목록<span class="tooltip">Q&A를 관리합니다.</span></div>
|
||||||
<form id="ajaxForm" onsubmit="return false;">
|
<form id="ajaxForm" onsubmit="return false;">
|
||||||
@@ -189,4 +226,4 @@
|
|||||||
</div><!-- end content_middle -->
|
</div><!-- end content_middle -->
|
||||||
</div><!-- end right_box -->
|
</div><!-- end right_box -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
+5
@@ -9,6 +9,7 @@ import org.springframework.data.domain.Page;
|
|||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(transactionManager = "transactionManagerForEMS")
|
@Transactional(transactionManager = "transactionManagerForEMS")
|
||||||
@@ -38,4 +39,8 @@ public class PortalInquiryService extends AbstractEMSDataSerivce<Inquiry, String
|
|||||||
|
|
||||||
return repository.findAll(predicate, pageable);
|
return repository.findAll(predicate, pageable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteByIds(List<String> ids) {
|
||||||
|
repository.deleteAllById(ids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+6
@@ -68,4 +68,10 @@ public class PortalInquiryManController extends BaseAnnotationController {
|
|||||||
return ResponseEntity.ok().build();
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping(value = "/onl/apim/portalinquiry/portalInquiryMan.json", params = "cmd=DELETE_BULK")
|
||||||
|
public ResponseEntity<String> deleteBulk(String ids) {
|
||||||
|
portalInquiryManService.deleteBulk(ids);
|
||||||
|
return ResponseEntity.ok().build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(transactionManager = "transactionManagerForEMS")
|
@Transactional(transactionManager = "transactionManagerForEMS")
|
||||||
@@ -151,4 +153,13 @@ public class PortalInquiryManService extends BaseService {
|
|||||||
portalInquiryService.save(inquiry);
|
portalInquiryService.save(inquiry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteBulk(String ids) {
|
||||||
|
if (StringUtils.isBlank(ids)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> idList = Arrays.asList(ids.split(","));
|
||||||
|
portalInquiryService.deleteByIds(idList);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user