중간저장.

master
강석 최 2021-12-21 11:43:29 +09:00
parent 4432270e4f
commit ef51c429ff
4 changed files with 70 additions and 21 deletions

View File

@ -1,9 +1,7 @@
package com.dbnt.kcgfilemanager.controller; package com.dbnt.kcgfilemanager.controller;
import com.dbnt.kcgfilemanager.config.LogStatus; import com.dbnt.kcgfilemanager.config.LogStatus;
import com.dbnt.kcgfilemanager.model.Board; import com.dbnt.kcgfilemanager.model.*;
import com.dbnt.kcgfilemanager.model.FileInfo;
import com.dbnt.kcgfilemanager.model.UserInfo;
import com.dbnt.kcgfilemanager.service.BoardService; import com.dbnt.kcgfilemanager.service.BoardService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@ -73,6 +71,15 @@ public class BoardController {
return mav; return mav;
} }
@GetMapping("/fullSearchBoardContent")
public ModelAndView fullSearchBoardContent(Board board,
@RequestParam(value = "categorySeq", required = false) List<Integer> categorySeqList,
@RequestParam(value = "tagName", required = false) List<String> tagNameList){
ModelAndView mav = new ModelAndView("board/contentSearchResult");
return mav;
}
@GetMapping("/selectBoardContent") @GetMapping("/selectBoardContent")
public ModelAndView selectBoardContent(Board content, @AuthenticationPrincipal UserInfo loginUser){ public ModelAndView selectBoardContent(Board content, @AuthenticationPrincipal UserInfo loginUser){
ModelAndView mav = new ModelAndView("board/contentDetail"); ModelAndView mav = new ModelAndView("board/contentDetail");

View File

@ -20,8 +20,10 @@ $(document).on('click', '#categoryDownBtn', function (){
if(parentCheck(categorySeq)){ if(parentCheck(categorySeq)){
childCheck(categorySeq); childCheck(categorySeq);
const categoryName = selectedCategory.attr("data-categoryname"); const categoryName = selectedCategory.attr("data-categoryname");
const depth = selectedCategory.attr("data-depth");
let categoryHtml = "<li class='nav-item mx-3 btn btn-secondary btn-sm selectedCategory'" + let categoryHtml = "<li class='nav-item mx-3 btn btn-secondary btn-sm selectedCategory'" +
" id='selectedCategory"+categorySeq+"' data-categoryseq='"+categorySeq+"' data-categoryname='"+categoryName+"'>" + " id='selectedCategory"+categorySeq+"' data-categoryseq='"+categorySeq+"'" +
" data-categoryname='"+categoryName+"' data-depth='"+depth+"'>" +
"<input type='radio' class='categoryRadio' id='categoryRadio"+categorySeq+"' name='categoryRadio'>"+ "<input type='radio' class='categoryRadio' id='categoryRadio"+categorySeq+"' name='categoryRadio'>"+
"<label for='categoryRadio"+categorySeq+"'> "+categoryName+"</label></li>"; "<label for='categoryRadio"+categorySeq+"'> "+categoryName+"</label></li>";
$("#selectedCategoryDiv").append(categoryHtml); $("#selectedCategoryDiv").append(categoryHtml);
@ -34,30 +36,28 @@ $(document).on('click', '#categoryUpBtn', function (){
$(document).on('click', '#categorySelectBtn', function (){ $(document).on('click', '#categorySelectBtn', function (){
const selectedCategory = $(".selectedCategory"); const selectedCategory = $(".selectedCategory");
let categorySeqs = ""; let boardCategory = "";
let categoryNames = ""; let categoryNames = "";
selectedCategory.each(function (idx, el){ selectedCategory.each(function (idx, el){
categorySeqs += $(el).attr("data-categoryseq")+","; boardCategory += $(el).attr("data-categoryseq")+","+$(el).attr("data-depth")+"|";
categoryNames += $(el).attr("data-categoryName")+", "; categoryNames += $(el).attr("data-categoryName")+", ";
}) })
$("#categorySeq").val(categorySeqs.slice(0, -1)); $("#boardCategoryAry").val(boardCategory.slice(0, -1));
$("#categoryName").val(categoryNames.slice(0, -2)); $("#categoryName").val(categoryNames.slice(0, -2));
$("#categorySelectModal").find(".btn-close").click(); $("#categorySelectModal").find(".btn-close").click();
}) })
$(document).on('click', '#searchBtn', function (){ $(document).on('click', '#searchBtn', function (){
const param = getSearchParam();
$.ajax({ $.ajax({
url: '/board/boardContentSearch', url: '/board/fullSearchBoardContent',
data: {contentSeq: contentSeq}, data: param,
type: 'GET', type: 'GET',
processData: false,
contentType: false,
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
$("#contentDiv").empty().append(html) $("#searchResultDiv").empty().append(html)
if($("#contentStatus").val() !== "D"){
const viewCntTd = $(".contentCheckBox:checked").parents("tr").find(".viewCntTd");
viewCntTd.text(Number(viewCntTd.text())+1);
}
}, },
error:function(){ error:function(){
@ -65,6 +65,48 @@ $(document).on('click', '#searchBtn', function (){
}); });
}) })
function getSearchParam(){
const param = {board: {}};
let boardCategoryAry = $("#boardCategoryAry").val();
if(boardCategoryAry){
boardCategoryAry = boardCategoryAry.split('|');
param.boardCategoryList = [];
boardCategoryAry.forEach((value) => {
const boardCategory = value.split(',');
param.boardCategoryList.push({categorySeq: boardCategory[0], depth: boardCategory[1]});
})
}
const title = $("#title").val();
if(title){
param.board.title = title;
}
const createName = $("#createName").val();
if(createName){
param.board.createName = createName;
}
let tagNameAry = $("#tagName").val();
if(tagNameAry){
tagNameAry = tagNameAry.split(',')
param.hasTagList = [];
tagNameAry.forEach((value => {
param.hasTagList.push({tagName: value})
}))
}
const startDate = $("#startDate").val();
if(startDate){
param.board.startDate = startDate;
}
const endDate = $("#endDate").val();
if(endDate){
param.board.endDate = endDate;
}
const originalName = $("#originalName").val();
if(originalName){
param.board.searchFileName = originalName;
}
return param;
}
function parentCheck(categorySeq){ function parentCheck(categorySeq){
const radio = $("#categoryRadio"+categorySeq); const radio = $("#categoryRadio"+categorySeq);
if(radio.length>0){ if(radio.length>0){

View File

@ -21,9 +21,9 @@
<div class="card-body row"> <div class="card-body row">
<div class="col-10"> <div class="col-10">
<div class="row mb-1"> <div class="row mb-1">
<label for="categorySeq" class="col-sm-2 col-form-label">분류</label> <label for="categoryName" class="col-sm-2 col-form-label">분류</label>
<div class="col-sm-8 pe-0"> <div class="col-sm-8 pe-0">
<input type="hidden" id="categorySeq"> <input type="hidden" id="boardCategoryAry">
<input type="text" class="form-control form-control-sm" id="categoryName" placeholder="오른쪽 분류 선택 버튼으로 등록" readonly> <input type="text" class="form-control form-control-sm" id="categoryName" placeholder="오른쪽 분류 선택 버튼으로 등록" readonly>
</div> </div>
<div class="col-sm-2 px-0"> <div class="col-sm-2 px-0">
@ -43,13 +43,13 @@
<div class="row mb-1"> <div class="row mb-1">
<label for="title" class="col-sm-2 col-form-label">해시태그</label> <label for="title" class="col-sm-2 col-form-label">해시태그</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="tagName" placeholder="# 없이 태그 입력"> <input type="text" class="form-control form-control-sm" id="tagName" placeholder="# 없이 ,로 구분하여 태그 입력">
</div> </div>
<label for="startDate" class="col-sm-2 col-form-label">작성일</label> <label for="startDate" class="col-sm-2 col-form-label">작성일</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="col-auto input-group w-auto input-daterange" id="dateSelectorDiv"> <div class="col-auto input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off"> <input type="text" class="form-control form-control-sm" id="startDate" placeholder="시작일" autocomplete="off">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off"> <input type="text" class="form-control form-control-sm" id="endDate" placeholder="종료일" autocomplete="off">
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
</div> </div>
</div> </div>
<div class="d-grid gap-2"> <div class="d-grid gap-2">
<a class="btn btn-outline-info" href="/board/contentSearch"><i class="bi bi-search"></i> 통합 검색</a> <a class="btn btn-primary" href="/board/contentSearch"><i class="bi bi-search"></i> 통합 검색</a>
</div> </div>
<div class="d-grid gap-2 pt-1"> <div class="d-grid gap-2 pt-1">
<a class="btn btn-success" href="/board/contentWrite"><i class="bi bi-file-earmark-plus "></i> 자료 등록</a> <a class="btn btn-success" href="/board/contentWrite"><i class="bi bi-file-earmark-plus "></i> 자료 등록</a>