$(function (){
$("#selectedCategoryDiv").sortable();
})
$(document).on('click', '#categoryName', function (){
$("#categorySelectModalBtn").click();
})
$(document).on('click', '.categoryTr', function (){
const checkBox = $(this).find(".categoryCheckBox");
const depth = Number(checkBox.attr("data-depth"));
const categorySeq = checkBox.attr("data-categoryseq");
$(".depth"+depth+"Tr").find(".categoryCheckBox").prop("checked", false);
checkBox[0].checked = true;
setCategoryTable(depth+1, categorySeq);
})
$(document).on('click', '#categoryDownBtn', function (){
const selectedCategory = getSelectedCategory();
const categorySeq = selectedCategory.attr("data-categoryseq");
if(parentCheck(categorySeq)){
childCheck(categorySeq);
const categoryName = selectedCategory.attr("data-categoryname");
const depth = selectedCategory.attr("data-depth");
let categoryHtml = "
" +
""+
"";
$("#selectedCategoryDiv").append(categoryHtml);
}
})
$(document).on('click', '#categoryUpBtn', function (){
$(".categoryRadio:checked").parent().remove();
})
$(document).on('click', '#categorySelectBtn', function (){
const selectedCategory = $(".selectedCategory");
let categorySeq = "";
let categoryNames = "";
selectedCategory.each(function (idx, el){
categorySeq += $(el).attr("data-categoryseq")+",";
categoryNames += $(el).attr("data-categoryName")+", ";
})
$("#searchCategorySeq").val(categorySeq.slice(0, -1));
$("#categoryName").val(categoryNames.slice(0, -2));
$("#categorySelectModal").find(".btn-close").click();
})
$(document).on('click', '#searchBtn', function (){
if(searchParamCheck()){
const formData = new FormData($("#searchForm")[0])
$.ajax({
type: "POST",
url: '/board/fullSearchBoardContent',
data: formData,
processData: false,
contentType: false,
beforeSend: function (xhr){
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
},
success: function (html) {
$("#searchResultDiv").empty().append(html)
},
error: function () {
}
});
}
})
function searchParamCheck(){
if(!$("#searchCategorySeq").val()){
alert("분류를 하나 이상 선택해주셔야 합니다.")
return false;
}
let emptyCnt = 0;
if(!$("#title").val()){
emptyCnt++;
}
if(!$("#createName").val()){
emptyCnt++;
}
if(!$("#tagName").val()){
emptyCnt++;
}
if(!$("#startDate").val() || !$("#endDate").val()){
emptyCnt++;
}
if(!$("#originalName").val()){
emptyCnt++;
}
if(emptyCnt>4){
alert("분류를 제외한 조건 중 1가지 이상 입력해주세요.")
return false;
}else{
return true;
}
}
function parentCheck(categorySeq){
const radio = $("#categoryRadio"+categorySeq);
if(radio.length>0){
alert("상위 분류 "+radio.parent().attr("data-categoryname")+"이(가) 선택되어 있습니다.")
return false;
}else{
const parentseq = $("[data-categoryseq='"+categorySeq+"']").parents("tr").attr("data-parentseq");
if(!parentseq){
return true;
}else{
return parentCheck(parentseq);
}
}
}
function childCheck(parentSeq){
const childCategorys = $("[data-parentseq='"+parentSeq+"']");
childCategorys.each(function (idx, el){
const categorySeq = $(el).find(".categoryCheckBox").attr("data-categoryseq");
const radio = $("#categoryRadio"+categorySeq)
if(radio.length>0){
alert("하위분류 "+radio.parent().attr("data-categoryname")+"가 삭제되었습니다.");
radio.parent().remove();
}
childCheck(categorySeq);
})
}
function setCategoryTable(depth, parentSeq){
setTableDefault(depth);
let childCategoryIsNull = true;
const nextTr = $(".depth"+depth+"Tr");
nextTr.each(function (idx, el){
const tr = $(el)
if(tr.attr("data-parentseq")===parentSeq){
tr.show();
childCategoryIsNull = false;
}else{
tr.hide();
}
})
if(childCategoryIsNull){
$(nextTr[0]).show();
}
}
function setTableDefault(depth){
for(let i=depth; i<=4; i++){
const nextDepthTr = $(".depth"+i+"Tr");
nextDepthTr.hide();
nextDepthTr.find(".categoryCheckBox").prop("checked", false);
$(nextDepthTr[0]).show();
}
}
function getSelectedCategory(){
for(let i=4; i>0; i--){
const checkBox = $(".depth"+i+"Tr").find(".categoryCheckBox:checked")
if(checkBox.length>0){
return checkBox;
}
}
}