2026-02-13 contents bbs 수정
This commit is contained in:
@@ -1,17 +1,43 @@
|
||||
// Custom Table Logic
|
||||
let treatmentList = [];
|
||||
|
||||
function renderTreatmentTable() {
|
||||
let tbody = document.getElementById("treatmentListBody");
|
||||
tbody.innerHTML = "";
|
||||
|
||||
treatmentList.forEach((item, index) => {
|
||||
let row = document.createElement("tr");
|
||||
row.innerHTML = `
|
||||
<td><input type="checkbox" name="treatmentCheck" value="${index}"></td>
|
||||
<td style="text-align:left; padding-left:10px;">${item.treatmentProcedureName}</td>
|
||||
<td style="text-align:right;">${num2won(item.price)}</td>
|
||||
<td style="text-align:right;">${num2won(item.discountPrice)}</td>
|
||||
`;
|
||||
tbody.appendChild(row);
|
||||
});
|
||||
}
|
||||
|
||||
function fn_checkAll(source) {
|
||||
let checkboxes = document.getElementsByName('treatmentCheck');
|
||||
for (var i = 0, n = checkboxes.length; i < n; i++) {
|
||||
checkboxes[i].checked = source.checked;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 이벤트 조회
|
||||
****************************************************************************/
|
||||
function fn_selectWebTreatmentPetit(){
|
||||
if(true != fn_emptyCheck(postNo)) {
|
||||
function fn_selectWebTreatmentPetit() {
|
||||
if (true != fn_emptyCheck(postNo)) {
|
||||
modalEvent.warning("수정", "이벤트 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
let formData = new FormData();
|
||||
formData.append("menuClass", menuClass);
|
||||
formData.append("categoryDivCd", categoryDivCd);
|
||||
formData.append("categoryNo", categoryNo);
|
||||
formData.append("postNo", postNo);
|
||||
|
||||
formData.append("categoryDivCd", categoryDivCd);
|
||||
formData.append("categoryNo", categoryNo);
|
||||
formData.append("postNo", postNo);
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/contentsBbs/getContentsBbs.do'),
|
||||
data: formData,
|
||||
@@ -20,163 +46,109 @@ function fn_selectWebTreatmentPetit(){
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(rst){
|
||||
if('0'==rst.msgCode){
|
||||
let data = rst.detail;
|
||||
$("select[name=category]").val(data.categoryNo).prop("selected", true);
|
||||
$("#categoryNo").val(data.categoryNo);
|
||||
success: function (rst) {
|
||||
if ('0' == rst.msgCode) {
|
||||
let data = rst.detail;
|
||||
$("select[name=category]").val(data.categoryNo).prop("selected", true);
|
||||
$("#categoryNo").val(data.categoryNo);
|
||||
$("#title").val(data.title);
|
||||
$("#content").val(data.content);
|
||||
$("#hashtag").val(data.hashtag);
|
||||
$("#thumbnailBottomTxt").val(data.thumbnailBottomTxt);
|
||||
$("#thumbnailImg").attr("src", CDN_URL + data.thumbnailImgPath);
|
||||
$("#contentsImg").attr("src", CDN_URL + data.contentImgPath);
|
||||
$("#oldCrmItemId").val(data.oldCrmItemId);
|
||||
$("#ordNo").val(data.ordNo);
|
||||
$("#content").val(data.content);
|
||||
$("#hashtag").val(data.hashtag);
|
||||
$("#thumbnailBottomTxt").val(data.thumbnailBottomTxt);
|
||||
$("#thumbnailImg").attr("src", CDN_URL + data.thumbnailImgPath);
|
||||
$("#contentsImg").attr("src", CDN_URL + data.contentImgPath);
|
||||
$("#oldCrmItemId").val(data.oldCrmItemId);
|
||||
$("#ordNo").val(data.ordNo);
|
||||
|
||||
var htmlstring = '';
|
||||
rst.treatmentList.forEach((item, i) => {
|
||||
htmlstring += `<div id="treatment${i}">
|
||||
<input type="checkbox" id="${item.muTreatmentProcedureId}" name="treatment">
|
||||
<input type="hidden" name="treatmentprocedurelist" value="${item.muTreatmentProcedureId}">
|
||||
<input type="hidden" name="treatmentlist" value="${item.muTreatmentId}">
|
||||
<label for="${item.muTreatmentProcedureId}">${item.treatmentProcedureName} - ${num2won(item.price)} - ${num2won(item.discountPrice)}</label>
|
||||
</div>`;
|
||||
});
|
||||
|
||||
$('#treatmentlist').append(htmlstring);
|
||||
treatmentList = [];
|
||||
rst.treatmentList.forEach((item, i) => {
|
||||
treatmentList.push({
|
||||
treatmentProcedureName: item.treatmentProcedureName,
|
||||
price: item.price,
|
||||
discountPrice: item.discountPrice,
|
||||
muTreatmentId: item.muTreatmentId,
|
||||
muTreatmentProcedureId: item.muTreatmentProcedureId
|
||||
});
|
||||
});
|
||||
renderTreatmentTable();
|
||||
}
|
||||
else{
|
||||
else {
|
||||
modalEvent.danger("수정 오류", eventData.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
beforeSend: function () {
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
complete: function () {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function num2won(x){
|
||||
if (typeof x === 'undefined' || x === null) return '';
|
||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
function num2won(x) {
|
||||
if (typeof x === 'undefined' || x === null) return '';
|
||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* 이벤트 수정
|
||||
****************************************************************************/
|
||||
function fn_updateWebTreatmentPetit(){
|
||||
if("Y"!=insertUseYn){
|
||||
modalEvent.warning("", "등록 권한이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
function fn_updateWebTreatmentPetit() {
|
||||
if ("Y" != insertUseYn) {
|
||||
modalEvent.warning("", "등록 권한이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
let title = $("#title").val();
|
||||
let content = $("#content").val();
|
||||
let hashtag = $("#hashtag").val();
|
||||
let thumbnailBottomTxt = $("#thumbnailBottomTxt").val();
|
||||
let categoryNo = $("#categoryNo").val();
|
||||
|
||||
var treatmentlen = $("input[name=treatmentlist]").length;
|
||||
var treatmentlist = new Array(treatmentlen);
|
||||
for(var i=0; i<treatmentlen; i++){
|
||||
treatmentlist[i] = $("input[name=treatmentlist]").eq(i).val();
|
||||
}
|
||||
|
||||
var treatmentprocedurelen = $("input[name=treatmentprocedurelist]").length;
|
||||
var treatmentprocedurelist = new Array(treatmentlen);
|
||||
for(var i=0; i<treatmentprocedurelen; i++){
|
||||
treatmentprocedurelist[i] = $("input[name=treatmentprocedurelist]").eq(i).val();
|
||||
}
|
||||
|
||||
//let eventStartDate = $("#eventStartDate").val();
|
||||
//let eventEndDate = $("#eventEndDate").val();
|
||||
let file = $("#file")[0].files[0];
|
||||
let content_file = $("#content_file")[0].files[0];
|
||||
let title = $("#title").val();
|
||||
let content = $("#content").val();
|
||||
let hashtag = $("#hashtag").val();
|
||||
let thumbnailBottomTxt = $("#thumbnailBottomTxt").val();
|
||||
let categoryNo = $("#categoryNo").val();
|
||||
|
||||
if(true != fn_emptyCheck(categoryNo)) {
|
||||
modalEvent.warning("등록", "카테고리를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
if(true != fn_emptyCheck(title)) {
|
||||
modalEvent.warning("등록", "제목을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
/** 20251024 이상우팀장 요청으로 인해 필수입력 validation 삭제
|
||||
if(true != fn_emptyCheck(content)) {
|
||||
modalEvent.warning("등록", "내용을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
if(true != fn_emptyCheck(hashtag)) {
|
||||
modalEvent.warning("등록", "해시태그를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
if(true != fn_emptyCheck(thumbnailBottomTxt)) {
|
||||
modalEvent.warning("등록", "썸네일 하단 내용을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
var treatmentIdList = []; // muTreatmentId
|
||||
var treatmentProcedureIdList = []; // muTreatmentProcedureId
|
||||
|
||||
if(true != fn_emptyCheck(file)) {
|
||||
if($(".img_box > img").length > 0){
|
||||
|
||||
}else{
|
||||
modalEvent.warning("등록", "썸네일 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
}else{
|
||||
for(let i=0; i<file.length; i++){
|
||||
let fileSize = file[i].size;
|
||||
if(fileSize > fn_maxFileSize()){
|
||||
modalEvent.warning("", "파일정보 용량이 50MB를 넘습니다. 업로드가 불가능합니다.");
|
||||
treatmentList.forEach(item => {
|
||||
treatmentIdList.push(item.muTreatmentId);
|
||||
treatmentProcedureIdList.push(item.muTreatmentProcedureId);
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(true != fn_emptyCheck(content_file)) {
|
||||
if($(".file_box").text() != ''){
|
||||
|
||||
}else{
|
||||
modalEvent.warning("등록", "컨텐츠 정보가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
}else{
|
||||
for(let i=0; i<content_file.length; i++){
|
||||
let fileSize = content_file[i].size;
|
||||
if(fileSize > fn_maxFileSize()){
|
||||
modalEvent.warning("", "파일정보 용량이 50MB를 넘습니다. 업로드가 불가능합니다.");
|
||||
//let eventStartDate = $("#eventStartDate").val();
|
||||
//let eventEndDate = $("#eventEndDate").val();
|
||||
let file = $("#file")[0].files[0];
|
||||
let content_file = $("#content_file")[0].files[0];
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
modalEvent.info("수정", categorytitle + " 정보를 수정하시겠습니까?", function(){
|
||||
if (true != fn_emptyCheck(categoryNo)) {
|
||||
modalEvent.warning("등록", "카테고리를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
if (true != fn_emptyCheck(title)) {
|
||||
modalEvent.warning("등록", "제목을 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
modalEvent.info("수정", categorytitle + " 정보를 수정하시겠습니까?", function () {
|
||||
let formData = new FormData();
|
||||
formData.append("menuClass", menuClass);
|
||||
formData.append("categoryDivCd", categoryDivCd);
|
||||
formData.append("categoryNo", categoryNo);
|
||||
formData.append("postNo", postNo);
|
||||
formData.append("title", title);
|
||||
formData.append("categoryDivCd", categoryDivCd);
|
||||
formData.append("categoryNo", categoryNo);
|
||||
formData.append("postNo", postNo);
|
||||
formData.append("title", title);
|
||||
formData.append("content", content);
|
||||
formData.append("hashtag", hashtag);
|
||||
formData.append("thumbnailBottomTxt", thumbnailBottomTxt);
|
||||
formData.append("treatmentlist", treatmentlist);
|
||||
formData.append("treatmentprocedurelist", treatmentprocedurelist);
|
||||
formData.append("hashtag", hashtag);
|
||||
formData.append("thumbnailBottomTxt", thumbnailBottomTxt);
|
||||
formData.append("treatmentlist", treatmentIdList);
|
||||
formData.append("treatmentprocedurelist", treatmentProcedureIdList);
|
||||
//formData.append("eventStartDate", eventStartDate);
|
||||
//formData.append("eventEndDate", eventEndDate);
|
||||
formData.append("file", file);
|
||||
formData.append("content_file", content_file);
|
||||
formData.append("oldCrmItemId", $("#oldCrmItemId").val());
|
||||
formData.append("ordNo", $("#ordNo").val());
|
||||
formData.append("content_file", content_file);
|
||||
formData.append("oldCrmItemId", $("#oldCrmItemId").val());
|
||||
formData.append("ordNo", $("#ordNo").val());
|
||||
|
||||
$.ajax({
|
||||
url: encodeURI('/contentsBbs/modContentsBbs.do'),
|
||||
@@ -186,98 +158,63 @@ function fn_updateWebTreatmentPetit(){
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function(data){
|
||||
if('0'==data.msgCode){
|
||||
modalEvent.success("등록 성공", data.msgDesc, function(){
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
modalEvent.success("등록 성공", data.msgDesc, function () {
|
||||
fn_selectListWebTreatmentPetitIntro();
|
||||
});
|
||||
}
|
||||
else{
|
||||
else {
|
||||
modalEvent.danger("등록 오류", data.msgDesc);
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
|
||||
},
|
||||
beforeSend:function(){
|
||||
beforeSend: function () {
|
||||
|
||||
},
|
||||
complete:function(){
|
||||
complete: function () {
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* html 에디터 이미지 업로드시
|
||||
****************************************************************************/
|
||||
function uploadSummernoteImageFileNoticeInsert(files, editor){
|
||||
Object.values(files).forEach(file => {
|
||||
let formData = new FormData();
|
||||
formData.append('menuClass', menuClass);
|
||||
formData.append('file', file);
|
||||
$.ajax({
|
||||
url: encodeURI('/webtreatmentpetit/uploadFile.do'),
|
||||
data: formData,
|
||||
dataType: "json",
|
||||
processData: false,
|
||||
contentType: false,
|
||||
type: 'POST',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if ('0' == data.msgCode) {
|
||||
$(editor).summernote('insertImage', data.rows.filePath, function ($image) {
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
modalEvent.danger('오류', '이미지 업로드 중 오류가 발생했습니다.');
|
||||
},
|
||||
beforeSend: function () {
|
||||
// 로딩열기
|
||||
$(".loading-image-layer").show();
|
||||
},
|
||||
complete: function () {
|
||||
// 로딩닫기
|
||||
$(".loading-image-layer").hide();
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* 썸네일 이미지 미리보기
|
||||
****************************************************************************/
|
||||
function fn_filePreview(width, height, obj){
|
||||
let file = "";
|
||||
if(obj == '.img_box'){
|
||||
file = $("#file")[0].files[0];
|
||||
} else {
|
||||
file = $("#content_file")[0].files[0];
|
||||
}
|
||||
|
||||
if(file){
|
||||
$(obj).html('');
|
||||
const reader = new FileReader();
|
||||
function fn_filePreview(width, height, obj) {
|
||||
let file = "";
|
||||
if (obj == '.img_box') {
|
||||
file = $("#file")[0].files[0];
|
||||
} else {
|
||||
file = $("#content_file")[0].files[0];
|
||||
}
|
||||
|
||||
reader.onload = function (e) {
|
||||
// 이미지 요소를 생성하고 미리보기 추가
|
||||
const img = document.createElement('img');
|
||||
img.src = e.target.result;
|
||||
img.style.width = width; // 원하는 크기로 조정
|
||||
img.style.height = height;
|
||||
$(obj).append(img);
|
||||
};
|
||||
if (file) {
|
||||
$(obj).html('');
|
||||
const reader = new FileReader();
|
||||
|
||||
// 파일을 읽기 시작
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
reader.onload = function (e) {
|
||||
// 이미지 요소를 생성하고 미리보기 추가
|
||||
const img = document.createElement('img');
|
||||
img.src = e.target.result;
|
||||
img.style.width = width; // 원하는 크기로 조정
|
||||
img.style.height = height;
|
||||
$(obj).append(img);
|
||||
};
|
||||
|
||||
// 파일을 읽기 시작
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
}
|
||||
/****************************************************************************
|
||||
* 배너 이미지 삭제
|
||||
****************************************************************************/
|
||||
function fn_removePreview(){
|
||||
function fn_removePreview() {
|
||||
$("#file").val('');
|
||||
$('.img_box').html('');
|
||||
}
|
||||
@@ -286,16 +223,16 @@ function fn_removePreview(){
|
||||
/****************************************************************************
|
||||
* 배너 이미지 미리보기
|
||||
****************************************************************************/
|
||||
function fn_fileContentPreview(){
|
||||
const file = $("#content_file")[0].files[0];
|
||||
if(file){
|
||||
$('.file_box').html(file.name);
|
||||
}
|
||||
function fn_fileContentPreview() {
|
||||
const file = $("#content_file")[0].files[0];
|
||||
if (file) {
|
||||
$('.file_box').html(file.name);
|
||||
}
|
||||
}
|
||||
/****************************************************************************
|
||||
* 배너 이미지 삭제
|
||||
****************************************************************************/
|
||||
function fn_removeContentPreview(){
|
||||
function fn_removeContentPreview() {
|
||||
$("#content_file").val('');
|
||||
$('.file_box').html('');
|
||||
}
|
||||
@@ -303,12 +240,12 @@ function fn_removeContentPreview(){
|
||||
/****************************************************************************
|
||||
* 리스트 화면으로 이동.
|
||||
****************************************************************************/
|
||||
function fn_selectListWebTreatmentPetitIntro(){
|
||||
if("Y"==selectUseYn){
|
||||
let pagingParam = "?menuClass="+menuClass;
|
||||
pagingParam += "&categoryDivCd="+categoryDivCd;
|
||||
fn_leftFormAction("/contentsBbs/moveContentsBbsList.do"+pagingParam);
|
||||
}else{
|
||||
function fn_selectListWebTreatmentPetitIntro() {
|
||||
if ("Y" == selectUseYn) {
|
||||
let pagingParam = "?menuClass=" + menuClass;
|
||||
pagingParam += "&categoryDivCd=" + categoryDivCd;
|
||||
fn_leftFormAction("/contentsBbs/moveContentsBbsList.do" + pagingParam);
|
||||
} else {
|
||||
modalEvent.warning("", "조회 권한이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
@@ -317,83 +254,117 @@ function fn_selectListWebTreatmentPetitIntro(){
|
||||
/****************************************************************************
|
||||
* 페이지 init
|
||||
****************************************************************************/
|
||||
function fn_pageInit(){
|
||||
function fn_pageInit() {
|
||||
// 날짜 datepicker
|
||||
fn_searchDatePicker("#eventStartDate", "#eventEndDate");
|
||||
|
||||
$('#summernote').summernote({
|
||||
height: 540,
|
||||
callbacks: { //여기 부분이 이미지를 첨부하는 부분
|
||||
onImageUpload : function(files) {
|
||||
uploadSummernoteImageFileNoticeInsert(files, this);
|
||||
}
|
||||
},
|
||||
});
|
||||
fn_selectWebTreatmentPetit();
|
||||
|
||||
fn_selectWebTreatmentPetit();
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 페이지 event
|
||||
****************************************************************************/
|
||||
function fn_pageEvent(){
|
||||
function fn_pageEvent() {
|
||||
// 검색 input
|
||||
$('.btnCancle').on("click", function(){
|
||||
$('.btnCancle').on("click", function () {
|
||||
fn_selectListWebTreatmentPetitIntro();
|
||||
});
|
||||
|
||||
$('.btnSave').on("click", function(){
|
||||
$('.btnSave').on("click", function () {
|
||||
fn_updateWebTreatmentPetit();
|
||||
});
|
||||
$('#delete_btn').on("click", function(){
|
||||
$('#delete_btn').on("click", function () {
|
||||
fn_removePreview();
|
||||
});
|
||||
|
||||
$('#file').on('change', function(e) {
|
||||
fn_filePreview('800px', '450px', '.img_box');
|
||||
|
||||
$('#file').on('change', function (e) {
|
||||
fn_filePreview('800px', '450px', '.img_box');
|
||||
})
|
||||
$('#content_delete_btn').on("click", function(){
|
||||
$('#content_delete_btn').on("click", function () {
|
||||
fn_removeContentPreview();
|
||||
});
|
||||
$('#content_file').on('change', function(e) {
|
||||
$('#content_file').on('change', function (e) {
|
||||
fn_filePreview('100%', '100%', '.file_box');
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* 시술 목록 팝업
|
||||
****************************************************************************/
|
||||
function listOpen(){
|
||||
function listOpen() {
|
||||
let reqParam = {};
|
||||
treatmentSelectModal.popup(function (obj, reqParam) {
|
||||
const childDivCount = $("#treatmentlist > div").length;
|
||||
if($("#" + obj.treatmentProcedureId).length > 0){
|
||||
modalEvent.warning("", "이미 시술정보가 있습니다.");
|
||||
return;
|
||||
}
|
||||
var htmlstring = `<div id="treatment`+childDivCount+`">
|
||||
<input type="checkbox" id="`+obj.treatmentProcedureId+`" name="treatment">
|
||||
<input type="hidden" name="treatmentprocedurelist" value="`+obj.treatmentProcedureId+`">
|
||||
<input type="hidden" name="treatmentlist" value="`+obj.treatmentId+`">
|
||||
<label for="`+obj.treatmentProcedureId+`">`+obj.treatmentNm + `-` + obj.price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + `-` + obj.discountPrice.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") +`</label>
|
||||
</div>`;
|
||||
$('#treatmentlist').append(htmlstring);
|
||||
|
||||
let isDuplicate = false;
|
||||
treatmentList.forEach((item) => {
|
||||
if (item.muTreatmentProcedureId == obj.treatmentProcedureId) {
|
||||
isDuplicate = true;
|
||||
}
|
||||
});
|
||||
|
||||
if (isDuplicate) {
|
||||
modalEvent.warning("", "이미 시술정보가 있습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
let newItem = {
|
||||
treatmentProcedureName: obj.treatmentNm,
|
||||
price: obj.price,
|
||||
discountPrice: obj.discountPrice,
|
||||
muTreatmentId: obj.treatmentId,
|
||||
muTreatmentProcedureId: obj.treatmentProcedureId
|
||||
};
|
||||
treatmentList.push(newItem);
|
||||
renderTreatmentTable();
|
||||
|
||||
}, reqParam);
|
||||
}
|
||||
function fn_removeRow(){
|
||||
$('input:checkbox[name="treatment"]').each(function() {
|
||||
if(this.checked){//checked 처리된 항목의 값
|
||||
$(this).parent().remove();
|
||||
}
|
||||
});
|
||||
|
||||
function fn_removeRow() {
|
||||
let checkboxes = document.getElementsByName('treatmentCheck');
|
||||
let indicesToRemove = [];
|
||||
|
||||
// Collect indices checking from end to start to maintain index validity
|
||||
for (let i = checkboxes.length - 1; i >= 0; i--) {
|
||||
if (checkboxes[i].checked) {
|
||||
indicesToRemove.push(parseInt(checkboxes[i].value));
|
||||
}
|
||||
}
|
||||
|
||||
if (indicesToRemove.length === 0) {
|
||||
modalEvent.warning("", "삭제할 항목을 선택해주세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove items
|
||||
indicesToRemove.forEach(index => {
|
||||
treatmentList.splice(index, 1);
|
||||
});
|
||||
|
||||
// Uncheck "all" checkbox if checked
|
||||
document.getElementById("checkAll").checked = false;
|
||||
|
||||
renderTreatmentTable();
|
||||
}
|
||||
|
||||
|
||||
$(function(){
|
||||
$(function () {
|
||||
// 페이지 init
|
||||
fn_pageInit();
|
||||
|
||||
// 페이지 event
|
||||
fn_pageEvent();
|
||||
});
|
||||
});
|
||||
|
||||
/* =========================================
|
||||
PREVIEW LOGIC
|
||||
========================================= */
|
||||
function fn_openPreview() {
|
||||
let url = "/contentsBbs/contentsBbsPreview.do";
|
||||
window.open(url, "preview", "width=1280,height=900,scrollbars=yes");
|
||||
}
|
||||
|
||||
function getTreatmentListForPreview() {
|
||||
return treatmentList;
|
||||
}
|
||||
Reference in New Issue
Block a user