$(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");
let categoryHtml = "
" +
""+
"";
$("#selectedCategoryDiv").append(categoryHtml);
}
})
$(document).on('click', '#categoryUpBtn', function (){
$(".categoryRadio:checked").parent().remove();
})
$(document).on('click', '#categorySelectBtn', function (){
const selectedCategory = $(".selectedCategory");
let categorySeqs = "";
let categoryNames = "";
selectedCategory.each(function (idx, el){
categorySeqs += $(el).attr("data-categoryseq")+",";
categoryNames += $(el).attr("data-categoryName")+", ";
})
$("#categorySeq").val(categorySeqs.slice(0, -1));
$("#categoryName").val(categoryNames.slice(0, -2));
$("#categorySelectModal").find(".btn-close").click();
})
$(document).on('click', '#searchBtn', function (){
$.ajax({
url: '/board/boardContentSearch',
data: {contentSeq: contentSeq},
type: 'GET',
dataType:"html",
success: function(html){
$("#contentDiv").empty().append(html)
if($("#contentStatus").val() !== "D"){
const viewCntTd = $(".contentCheckBox:checked").parents("tr").find(".viewCntTd");
viewCntTd.text(Number(viewCntTd.text())+1);
}
},
error:function(){
}
});
})
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;
}
}
}