2870 lines
187 KiB
Plaintext
2870 lines
187 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
|
<%--
|
|
Class Name : BbsDtlUpdtU.jsp
|
|
Modification Information
|
|
|
|
수정일 수정자 수정내용
|
|
------- -------- ---------------------------
|
|
2023-12-06 최범식 최초 생성
|
|
2024-04-25 추지훈 수정
|
|
--%>
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
|
|
<head>
|
|
<%@ include file="/WEB-INF/views/comm/mngr/Include.jsp"%>
|
|
</head>
|
|
<script>
|
|
isChkd_Dup = true;
|
|
tempData = {};
|
|
$(document).ready(function(){
|
|
|
|
fn_init_fnunction();
|
|
fn_set_display();
|
|
|
|
});
|
|
|
|
/* ********************************************************
|
|
* 시작 화면 조작 함수
|
|
******************************************************** */
|
|
const fn_init_fnunction = function() {
|
|
//서브밋 방지
|
|
$('input').keydown(function (event) {
|
|
if (event.keyCode === 13) {
|
|
event.preventDefault();
|
|
}
|
|
;
|
|
});
|
|
fn_add_codeList('#udpList', 'select', 'updList-select', '${resultMap.bbsVo.bbsId}', JSON.parse('${resultMap.updBbsList}'), '게시판 생성' );
|
|
$('#updList-select').change(function() {
|
|
let bbsid = $(this).val();
|
|
if (bbsid === '') {
|
|
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsRegistForm"/>');
|
|
$('#backUpData').submit();
|
|
return;
|
|
}
|
|
$('#backUpData').find('[name=bbsId]').val(bbsid);
|
|
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsDtlUpdtForm"/>');
|
|
$('#backUpData').submit();
|
|
});
|
|
|
|
|
|
//권한 컨트롤
|
|
fn_re_click('#readChkBox', 'bbscttRedngAuthorDvCd', '<c:out value="${ resultMap.bbsVo.bbscttRedngAuthorDvCd }"/>', '#redngAuthorDiv');
|
|
fn_re_click('#registChkBox', 'bbscttRegistAuthorDvCd', '<c:out value="${ resultMap.bbsVo.bbscttRegistAuthorDvCd }"/>', '#registAuthorDiv');
|
|
fn_re_click('#cmRegistChkBox', 'cmRegistAuthorDvCd', '<c:out value="${ resultMap.bbsVo.cmRegistAuthorDvCd }"/>', '#cmRegistAuthorDiv');
|
|
|
|
$('input[name="bbscttEvlUseAt"]:checked').click();
|
|
$('input[name="cmEvlUseAt"]:checked').click();
|
|
|
|
//게시글 평가, 댓글 평가 컨트롤
|
|
fn_evl_at_ctrl('bbscttRegistUseAt', 'bbscttEvlUseAt', '.bbscttEvlTyDiv');
|
|
fn_evl_at_ctrl('cmRegistUseAt', 'cmEvlUseAt', '.cmEvlTyDiv');
|
|
|
|
//댓글 쓰기 여부에 따른 게시글 작성 기본 설정 > 댓글 설정 사용여부 노출
|
|
fn_change_cmEvlRecomend();
|
|
|
|
//파일 여부에따른 show hide;
|
|
fn_show_hide_file();
|
|
|
|
// 게시글 기본 문구 trim
|
|
if ($("#dftCn").length > 0) {
|
|
$('#dftCn').val($("#dftCn").val().trim());
|
|
}
|
|
if ($("#mblDftCn").length > 0) {
|
|
$('#mblDftCn').val($("#mblDftCn").val().trim());
|
|
}
|
|
//기본, 모바일 문구 체크에 따른 disable처리
|
|
$("input[name='dftCnUseAt']").on("click", function () {
|
|
let at = $(this).val();
|
|
if (at === 'Y') {
|
|
$("#dftCn").prop("disabled", false);
|
|
} else {
|
|
$("#dftCn").prop("disabled", true);
|
|
}
|
|
});
|
|
$("input[name='mblDftCnUseAt']").on("click", function () {
|
|
let at = $(this).val();
|
|
if (at === 'Y') {
|
|
$("#mblDftCn").prop("disabled", false);
|
|
} else {
|
|
$("#mblDftCn").prop("disabled", true);
|
|
}
|
|
});
|
|
|
|
/*리뷰게시판 관련*/
|
|
//한달리뷰는 파일 첨부 사용으로만
|
|
let bbsTy = '<c:out value="${ resultMap.bbsVo.bbsTyCd }"/>'
|
|
if (bbsTy == '07') {
|
|
$('#filAtchUseAt-y').prop('checked', true);
|
|
}
|
|
fn_on_mlgAllDisabled('${resultMap.bbsVo.goodsRvwMlgPymntAt}');
|
|
|
|
/*메시지 관련*/
|
|
fn_show_text('${resultMap.bbsVo.bbscttSndngMthCd }');
|
|
//해당 발송폼 노출
|
|
$('input[name="bbscttSndngMthCd"]:checked').click();
|
|
//메시지 이벤트 바인딩
|
|
$("[name='smsCnArr']").each(function () {
|
|
$(this).val($(this).val().trim());
|
|
});
|
|
//메시지 바이트 set
|
|
fn_count_byte('#sms01', '#smsByte01');
|
|
fn_count_byte('#sms02', '#smsByte02');
|
|
fn_count_byte_set('#sms01', '#smsByte01');
|
|
fn_count_byte_set('#sms02', '#smsByte02');
|
|
fn_count_byte_set('#kakao01', '#kakaoByte01');
|
|
fn_count_byte_set('#kakao02', '#kakaoByte02');
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 시작 화면 조작 함수
|
|
******************************************************** */
|
|
const fn_set_display = function() {
|
|
|
|
let redngCnt = $('[name=bbscttRedngAuthorDvCd_c]').length - 1;
|
|
let redChkCnt = $('[name=bbscttRedngAuthorDvCd_c]:checked').length;
|
|
let registCnt = $('[name=bbscttRegistAuthorDvCd_c]').length - 1;
|
|
let regChktCnt = $('[name=bbscttRegistAuthorDvCd_c]:checked').length;
|
|
let answCnt = $('[name=answRegistAuthorDvCd_c]').length - 1;
|
|
let answChkCnt = $('[name=answRegistAuthorDvCd_c]:checked').length;
|
|
let cmCnt = $('[name=cmRegistAuthorDvCd_c]').length - 1;
|
|
let cmChkCnt = $('[name=cmRegistAuthorDvCd_c]:checked').length;
|
|
|
|
if (redngCnt === redChkCnt) $('#bbscttRedngAuthorDvCd-c-all').prop('checked', true);
|
|
if (registCnt === regChktCnt) $('#bbscttRegistAuthorDvCd-c-all').prop('checked', true);
|
|
if (answCnt === answChkCnt) $('#answRegistAuthorDvCd-c-all').prop('checked', true);
|
|
if (cmCnt === cmChkCnt) $('#cmRegistAuthorDvCd-c-all').prop('checked', true);
|
|
|
|
let chkSknCh = '${resultMap.bbsVo.sknTyCd}';
|
|
if (chkSknCh != ''){
|
|
fn_change_style('${resultMap.bbsVo.sknTyCd}');
|
|
}
|
|
}
|
|
|
|
|
|
/* ********************************************************
|
|
* 평가 여부 라디오 제어
|
|
******************************************************** */
|
|
const fn_evl_at_ctrl = function(inputName, target, ctrlArea, authDv) {
|
|
const radioValue = $('input[name="' + inputName + '"]:checked').val();
|
|
if (radioValue === 'Y') {
|
|
// $('input[name="' + target + '"][value="Y"]').prop('checked', true);
|
|
$('[name=' + target + ']').attr('onclick', 'return(true);');
|
|
fn_evl_ty_ctrl(target, ctrlArea);
|
|
$(authDv).show();
|
|
} else {
|
|
$('input[name="' + target + '"][value="N"]').prop('checked', true);
|
|
$('[name=' + target + ']').attr('onclick', 'return(false);');
|
|
fn_evl_ty_ctrl(target, ctrlArea);
|
|
$(authDv).hide();
|
|
}
|
|
}
|
|
|
|
|
|
/* ********************************************************
|
|
* 평가 설정 라디오 제어
|
|
******************************************************** */
|
|
const fn_evl_ty_ctrl = function(inputName, target) {
|
|
const radioValue = $('input[name="' + inputName + '"]:checked').val();
|
|
if (radioValue == 'Y') {
|
|
fn_ctrl_disable([], [target]);
|
|
$(target).show();
|
|
} else if (radioValue == 'N') {
|
|
fn_ctrl_disable([target], []);
|
|
$(target).hide();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* ********************************************************
|
|
* 게시글 기능/권한 > 라디오 기능
|
|
******************************************************** */
|
|
function fn_change_event(_target) {
|
|
|
|
let boardRead = $('[name=' + _target + ']:checked').attr('id');
|
|
|
|
if (boardRead === 'read01' || boardRead === 'write01' || boardRead === 'answ01' || boardRead === 'comt01') {
|
|
|
|
$('[name=' + _target + '_c]').prop('checked', false);
|
|
$('[name=' + _target + '_c]').prop('disabled', true);
|
|
|
|
} else if (boardRead === 'read02' || boardRead === 'write02' || boardRead === 'answ02' || boardRead === 'comt02') {
|
|
|
|
$('[name=' + _target + '_c]').prop('checked', true);
|
|
$('[name=' + _target + '_c]').prop('disabled', false);
|
|
|
|
} else if (boardRead === 'read03' || boardRead === 'write03' || boardRead === 'answ03' || boardRead === 'comt03') {
|
|
|
|
$('[name=' + _target + '_c]').prop('checked', false);
|
|
$('[name=' + _target + '_c]').prop('disabled', true);
|
|
|
|
} else if (boardRead === 'write000' || boardRead === 'answ000' || boardRead === 'comt000') {
|
|
|
|
$('[name=' + _target + '_c]').prop('checked', false);
|
|
$('[name=' + _target + '_c]').prop('disabled', true);
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 기능/권한 > 체크박스 기능
|
|
******************************************************** */
|
|
const fn_click_check = function(_target, _arg) {
|
|
if (_arg === 'all') {
|
|
|
|
if ($('#' + _target + '-c-all').is(':checked')){
|
|
$('[name=' + _target + '_c]').prop('checked', true);
|
|
} else {
|
|
$('[name=' + _target + '_c]').prop('checked', false);
|
|
}
|
|
|
|
} else {
|
|
|
|
let chkCnt = $('[name=' + _target + '_c]:checked').length;
|
|
let allCnt = $('[name=' + _target + '_c]').length;
|
|
|
|
if (chkCnt !== allCnt && $('#' + _target + '-c-all').is(':checked')) {
|
|
$('#' + _target + '-c-all').prop('checked', false);
|
|
} else if (chkCnt !== allCnt && !$('#' + _target + '-c-all').is(':checked') && allCnt - chkCnt === 1 ) {
|
|
$('#' + _target + '-c-all').prop('checked', true);
|
|
} else if (chkCnt === allCnt ) {
|
|
$('#' + _target + '-c-all').prop('checked', true);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 보기 > 게시판 리스트 설정 > 게시판 스킨 설정 시 페이지 입력 노출 기능
|
|
******************************************************** */
|
|
const fn_change_style = function(_type) {
|
|
|
|
$('#gallery').hide();
|
|
$('#listUaccordion').hide();
|
|
if (_type === '01' || _type === '03') {
|
|
|
|
$('#listUaccordion').show();
|
|
$('#listUaccordion').find('[name=pgeWthCnt]').prop('disabled', false);
|
|
$('#listUaccordion').find('[name=pgeVtcCnt]').prop('disabled', false);
|
|
$('#gallery').find('[name=pgeWthCnt]').prop('disabled', true).niceSelect('update');
|
|
$('#gallery').find('[name=pgeVtcCnt]').prop('disabled', true);
|
|
} else if (_type === '02') {
|
|
|
|
$('#gallery').show();
|
|
$('#listUaccordion').find('[name=pgeWthCnt]').prop('disabled', true);
|
|
$('#listUaccordion').find('[name=pgeVtcCnt]').prop('disabled', true);
|
|
$('#gallery').find('[name=pgeWthCnt]').prop('disabled', false).niceSelect('update');
|
|
$('#gallery').find('[name=pgeVtcCnt]').prop('disabled', false);
|
|
}
|
|
}
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > 답글 쓰기 클릭 시 자주쓰는 답변 show hide, disable처리
|
|
******************************************************** */
|
|
const fn_toggle_rpuseDv = (_target) => {
|
|
const chkAt = $(_target).is(":checked");
|
|
if (chkAt) {
|
|
$("#rpuseDv").show();
|
|
fn_ctrl_disable('', ["#rpusAnsw"]);
|
|
} else {
|
|
$("#rpuseDv").hide();
|
|
fn_ctrl_disable(["#rpusAnsw"], '');
|
|
}
|
|
}
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > 분류관리 || 자주쓰는 답변
|
|
******************************************************** */
|
|
const fn_add_box = function(_target) {
|
|
|
|
let trClone = '';
|
|
let target = '#' + _target;
|
|
|
|
if (_target === 'classification') {
|
|
$('#rpusAnswNodata').hide();
|
|
trClone = `<tr>
|
|
<td>
|
|
<div class="draggable-icon-container">
|
|
<i class="icon icon_draggable"></i>
|
|
<span class="visually-hidden">순서 바꾸기</span>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<input type="text" class="input-text full" name="qesitmNm_d" title="신규 추가 분류명" placeholder="문항명을 입력하세요."/>
|
|
<input type="hidden" name="qesitmInnb_d" value="0" title="신규 추가" />
|
|
</td>
|
|
<td>
|
|
<button class="circle-btn delete" onclick="fn_remove_box(this);">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>`;
|
|
|
|
} else if (_target === 'rpusAnsw') {
|
|
$('#rpusAnswNodata').hide();
|
|
trClone = `<tr>
|
|
<td>
|
|
<div class="draggable-icon-container" style="text-align: center;">
|
|
<i class="icon icon_draggable"></i>
|
|
<span class="visually-hidden">순서 바꾸기</span>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<div class="td-inner">
|
|
<textarea class="textarea" name="cnArr" title="답변" rows="10"></textarea>
|
|
</div>
|
|
<input type="hidden" name="rpuseAnswInnbArr" title="신규 추가" value="0" />
|
|
</td>
|
|
<td style="text-align: center;">
|
|
<button class="circle-btn delete" onclick="fn_remove_box(this);">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>`;
|
|
}
|
|
|
|
$(target).append(trClone);
|
|
|
|
//행 추가 후, tableDnd 업데이트
|
|
$(target + '-row-add').tableDnDUpdate();
|
|
$(target + 'NoData').hide();
|
|
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > ROW삭제
|
|
******************************************************** */
|
|
const fn_remove_box = function(_tr) {
|
|
|
|
let id = '#' + $(_tr).parents('tbody').attr('id');
|
|
let cnt = $(id).children('tr').length;
|
|
let target = id + 'NoData';
|
|
if (cnt === 2) $(target).show();
|
|
$(_tr).closest('tr').remove();
|
|
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 메세지 발송 여부 > 메세지 발송 > 메시지 사용 여부 > 문자 클릭 > SMS 발송 관리 disabled 기능
|
|
******************************************************** */
|
|
const fn_show_text = function(_target) {
|
|
|
|
if ('01' === _target) {
|
|
|
|
$('#forSms').show();
|
|
$('#forSms').find('textarea').prop('disabled', false);
|
|
$('#forSms').find('input').prop('disabled', false);
|
|
$('#forKakao').hide();
|
|
$('#forKakao').find('textarea').prop('disabled', true);
|
|
$('#forKakao').find('input').prop('disabled', true);
|
|
|
|
} else if ('02' === _target) {
|
|
|
|
$('#forKakao').show();
|
|
$('#forKakao').find('textarea').prop('disabled', false);
|
|
$('#forKakao').find('input').prop('disabled', false);
|
|
$('#forSms').hide();
|
|
$('#forSms').find('textarea').prop('disabled', true);
|
|
$('#forSms').find('input').prop('disabled', true);
|
|
|
|
} else if ('03' === _target) {
|
|
|
|
$('#forSms').hide();
|
|
$('#forSms').find('textarea').prop('disabled', true);
|
|
$('#forSms').find('input').prop('disabled', true);
|
|
$('#forKakao').hide();
|
|
$('#forKakao').find('textarea').prop('disabled', true);
|
|
$('#forKakao').find('input').prop('disabled', true);
|
|
|
|
} else {
|
|
$('#forSms').show();
|
|
$('#forSms').find('textarea').prop('disabled', false);
|
|
$('#forSms').find('input').prop('disabled', false);
|
|
$('#forKakao').hide();
|
|
$('#forKakao').find('textarea').prop('disabled', true);
|
|
$('#forKakao').find('input').prop('disabled', true);
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 댓글쓰기 선택에 따른 댓글 사용 여부
|
|
******************************************************** */
|
|
const fn_change_cmEvlRecomend = function () {
|
|
if ($("#cmRegistChkBox").is(":checked")) {
|
|
$(".cmSetupUseAt").show();
|
|
} else {
|
|
$(".cmSetupUseAt").hide();
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 체크박스 변경 시 value 값 변경
|
|
******************************************************** */
|
|
const fn_change_value_checkBox = function(_target) {
|
|
|
|
if ($(_target).is(':checked')) {
|
|
|
|
$(_target).val('Y');
|
|
$(_target).prev().prop('disabled', true);
|
|
|
|
$(_target).closest('td').prev().find('[name=qesitmEssntlAt_i]').prop('disabled', false);
|
|
} else {
|
|
|
|
$(_target).val('N');
|
|
$(_target).prev().val('N');
|
|
$(_target).prev().prop('disabled', false);
|
|
|
|
$(_target).closest('td').prev().find('[name=qesitmEssntlAt_i]').prop('disabled', true);
|
|
$(_target).closest('td').prev().find('[name=qesitmEssntlAt_i]').prop('checked', false);
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 본화면 -> 모달화면 전송 > 데이터 정리(수정 시)
|
|
******************************************************** */
|
|
const fn_add_item_updPop = function(_trId) {
|
|
|
|
let trId = '#' + _trId;
|
|
let qesitmNm = $(trId).find('[name=qesitmNm_i]').val();
|
|
let qesitmDc = $(trId).find('[name=qesitmDc_i]').val();
|
|
let itmTy = $(trId).find('[name=itmTy_i]').val();
|
|
let itmTyNm = $(trId).find('[name=itmTyNm_i]').val();
|
|
let itmCnArr = $(trId).find('[name=itmCn_i]').val().split('$');
|
|
let itmInnbArr = $(trId).find('[name=itmInnb_i]').val().split('$');
|
|
|
|
let data = {
|
|
'trId' : trId,
|
|
'qesitmNm' : qesitmNm,
|
|
'qesitmDc' : qesitmDc,
|
|
'itmTy' : itmTy,
|
|
'itmTyNm' : itmTyNm,
|
|
'itmCnArr' : itmCnArr,
|
|
'itmInnbArr': itmInnbArr
|
|
}
|
|
tempData = data;
|
|
|
|
$('#itmPopOpen').trigger('click');
|
|
fn_set_madal();
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 본화면 -> 모달화면 전송 > 데이터 바인딩(수정 시)
|
|
******************************************************** */
|
|
const fn_set_madal = function() {
|
|
|
|
if (Object.keys(tempData).length > 0 ){
|
|
|
|
$('#qesitmPopDc').attr('data-idx', tempData.trId);
|
|
$('#qesitmPopDc').val(tempData.qesitmDc);
|
|
$('#qesitmPopNm').val(tempData.qesitmNm);
|
|
$('#event-type-select').val(tempData.itmTy).prop('selected', true);
|
|
|
|
// nice-select 설정
|
|
$('#event-type-select').val(tempData.itmTy).niceSelect('update');
|
|
|
|
$('#event-content').attr('data-eventtype', tempData.itmTy);
|
|
$('#event-fn').attr('onclick', 'fn_add_itmbox(\'' + tempData.itmTy + '\')');
|
|
|
|
let addTag = '';
|
|
let nodata = `<tr id="add-optionNoData" style="display: none;">
|
|
<td>입력 항목이 없습니다.</td>
|
|
</tr>`;
|
|
if (tempData.itmCnArr.length != 0) {
|
|
for (let j = 0; j < tempData.itmCnArr.length; j++) {
|
|
addTag += fn_make_addTag(tempData.itmTy, tempData.itmCnArr[j], tempData.itmInnbArr[j]);
|
|
}
|
|
addTag += nodata;
|
|
} else {
|
|
addTag = nodata;
|
|
}
|
|
|
|
$('#add-option').html(addTag);
|
|
|
|
if (tempData.itmCnArr.length != 0) {
|
|
$('#add-optionNoData').hide();
|
|
} else {
|
|
$('#add-optionNoData').show()
|
|
}
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 모달화면 -> 본화면으로 데이터 전송 > 데이타 정리
|
|
******************************************************** */
|
|
const fn_collect_params = function() {
|
|
|
|
let trId = $('#qesitmPopDc').attr('data-idx');
|
|
let qesitmPopNm = $('[name=qesitmPopNm]').val();
|
|
if (qesitmPopNm === '') {
|
|
alert('항목명을 입력해 주세요.');
|
|
return;
|
|
}
|
|
let qesitmPopDc = $('[name=qesitmPopDc]').val();
|
|
if (qesitmPopDc === '') {
|
|
alert('항목셜명을 입력해 주세요.');
|
|
return;
|
|
}
|
|
let itmPopTy = $('#event-type-select option:selected').val();
|
|
let itmPopTyNm = $('#event-type-select').next().find('.current').text();
|
|
|
|
let itmCnt = $('[name=itmCnPopArr]').length;
|
|
let itmCnPopArr = '';
|
|
|
|
for(let i = 0; i < itmCnt; i++){
|
|
|
|
if ($('[name=itmCnPopArr]').eq(i).val() != '') {
|
|
if($('[name=itmCnPopArr]').eq(i).val() != '') {
|
|
itmCnPopArr += $('[name=itmCnPopArr]').eq(i).val() + '$';
|
|
}
|
|
}
|
|
}
|
|
|
|
itmCnPopArr = itmCnPopArr.slice(0, -1);
|
|
|
|
if(itmCnPopArr === '') {
|
|
alert('항목값을 입력해 주세요.');
|
|
return;
|
|
}
|
|
|
|
let itmInnbCnt = $('[name=itmInnbPopArr]').length;
|
|
let itmInnbPopArr = '';
|
|
|
|
for(let i = 0; i < itmInnbCnt; i++){
|
|
|
|
if ($('[name=itmInnbPopArr]').eq(i).val() != '') {
|
|
|
|
itmInnbPopArr += $('[name=itmInnbPopArr]').eq(i).val() + '$';
|
|
}
|
|
}
|
|
itmInnbPopArr = itmInnbPopArr.slice(0, -1);
|
|
|
|
let data = {
|
|
'trId' : trId,
|
|
'qesitmPopNm' : qesitmPopNm,
|
|
'qesitmPopDc' : qesitmPopDc,
|
|
'itmPopTy' : itmPopTy,
|
|
'itmPopTyNm' : itmPopTyNm,
|
|
'itmCnPopArr' : itmCnPopArr,
|
|
'itmInnbPopArr' : itmInnbPopArr
|
|
}
|
|
|
|
if (qesitmPopNm === '' || qesitmPopDc === '' || itmCnt === 0) return;
|
|
|
|
fn_add_item_pop_after(data);
|
|
}
|
|
|
|
idx = 1;
|
|
|
|
/* ********************************************************
|
|
* 모달화면 -> 본화면으로 데이터 전송 > 데이타 바인딩
|
|
******************************************************** */
|
|
const fn_add_item_pop_after = function(_data) {
|
|
|
|
let trId = _data.trId;
|
|
let qesitmNm = _data.qesitmPopNm;
|
|
let qesitmDc = _data.qesitmPopDc;
|
|
let itmTy = _data.itmPopTy;
|
|
let itmTyNm = _data.itmPopTyNm;
|
|
let itmCnArr = _data.itmCnPopArr;
|
|
let itmInnbArr = _data.itmInnbPopArr;
|
|
|
|
let trClone = '';
|
|
|
|
if (trId === undefined) {
|
|
let cnt = itmInnbArr.split('$').length;
|
|
let oldItmInnbs = '0';
|
|
for (let i = 1; i < cnt; i++) {
|
|
oldItmInnbs += '$0';
|
|
}
|
|
trClone = ''
|
|
+ '<tr id="tr' + idx + '">'
|
|
+ ' <input type="hidden" name="oldItmInnbs" value="' + oldItmInnbs + '"/>'
|
|
+ ' <input type="hidden" name="qesitmNm_i" value="' + qesitmNm + '"/>'
|
|
+ ' <input type="hidden" name="qesitmDc_i" value="' + qesitmDc + '"/>'
|
|
+ ' <input type="hidden" name="itmTy_i" value="' + itmTy + '"/>'
|
|
+ ' <input type="hidden" name="itmTyNm_i" value="' + itmTyNm + '"/>'
|
|
+ ' <input type="hidden" name="itmCn_i" value="' + itmCnArr + '"/>'
|
|
+ ' <input type="hidden" name="itmInnb_i" value="' + itmInnbArr + '"/>'
|
|
+ ' <input type="hidden" name="qesitmInnb_i" value="0"/>'
|
|
+ ' <td>'
|
|
+ ' <div class="draggable-icon-container">'
|
|
+ ' <i class="icon icon_draggable"></i>'
|
|
+ ' <span class="visually-hidden">순서 바꾸기</span>'
|
|
+ ' </div>'
|
|
+ ' </td>'
|
|
+ ' <td class="text-left" data-id="qesitmNm">' + qesitmNm + '</td>'
|
|
+ ' <td class="text-left" data-id="qesitmDc">[' + itmTyNm + ']' + qesitmDc + '</td>'
|
|
+ ' <td>'
|
|
+ ' <label class="b-checkbox checkbox is-medium">'
|
|
+ ' <input type="checkbox" name="qesitmEssntlAt_i" value="N" onchange="fn_change_value_checkBox(this);" disabled>'
|
|
+ ' <span class="check"></span>'
|
|
+ ' </label>'
|
|
+ ' </td>'
|
|
+ ' <td>'
|
|
+ ' <label class="b-checkbox checkbox is-medium">'
|
|
+ ' <input type="checkbox" name="qesitmUseAt_i" value="N" onchange="fn_change_value_checkBox(this);">'
|
|
+ ' <span class="check"></span>'
|
|
+ ' </label>'
|
|
+ ' </td>'
|
|
+ ' <td>'
|
|
+ ' <div class="manage-btn-container">'
|
|
+ ' <button type="button" class="btn xsm primary outline" data-set="fnaddItem" onclick="fn_add_item_updPop(\'tr' + idx + '\');">수정</button>'
|
|
+ ' </div>'
|
|
+ ' </td>'
|
|
+ ' <td>'
|
|
+ ' <button type="button" class="circle-btn delete" onclick="fn_remove_box(this)">'
|
|
+ ' <span class="visually-hidden">삭제</span>'
|
|
+ ' </button>'
|
|
+ ' </td>'
|
|
+ '</tr>';
|
|
$('#addItemPop').append(trClone);
|
|
//행 추가 후, tableDnd 업데이트
|
|
$('#addItemPop-row-add').tableDnDUpdate();
|
|
|
|
} else {
|
|
|
|
$(trId).find('[name=qesitmNm_i]').val(qesitmNm);
|
|
$(trId).find('[name=qesitmDc_i]').val(qesitmDc);
|
|
$(trId).find('[name=itmTy_i]').val(itmTy);
|
|
$(trId).find('[name=itmTyNm_i]').val(itmTyNm);
|
|
$(trId).find('[name=itmCn_i]').val(itmCnArr);
|
|
$(trId).find('[name=itmInnb_i]').val(itmInnbArr);
|
|
$(trId).find('[data-id=qesitmNm]').text(qesitmNm);
|
|
$(trId).find('[data-id=qesitmDc]').text('[' + itmTy + ']' + qesitmDc);
|
|
|
|
}
|
|
|
|
fn_reset_modal();
|
|
$('#addItemPopNoData').hide();
|
|
tempData = {};
|
|
idx += 1;
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 모달 창 초기화
|
|
******************************************************** */
|
|
const fn_reset_modal = function() {
|
|
|
|
$('#event-content').show();
|
|
$('#event-type-select').next().find('li').removeClass('selected');
|
|
$('#event-type-select').val('03').niceSelect('update');
|
|
$('[name=itmCnPopArr]').val('');
|
|
$('#qesitmPopNm').val('');
|
|
$('#qesitmPopDc').val('');
|
|
$('#qesitmPopDc').removeAttr('data-idx');
|
|
$('#event-fn').attr('onclick', 'fn_add_itmbox(\'03\')');
|
|
|
|
let addTag =`<tr>
|
|
<td class="left">
|
|
<div class="b-checkbox-container flex-nowrap" id="checkbox">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" disabled>
|
|
<span class="check"></span>
|
|
<span class="control-label"></span>
|
|
</label>
|
|
<input type="text" class="input-text xl" name="itmCnPopArr" title="항목값" placeholder="항목값을 입력하세요.">
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<button type="button" class="circle-btn delete" onclick="fn_remove_box(this)">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
<tr id="add-optionNoData" style="display: none;">
|
|
<td >입력 항목이 없습니다.</td>
|
|
</tr>`;
|
|
|
|
$('#add-option').html(addTag);
|
|
|
|
$('#itm-add-close').trigger('click');
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > 입력 항목 이벤트 > 선택에 따른 입력창 생성
|
|
******************************************************** */
|
|
const fn_show_itemType = function(_taget) {
|
|
|
|
$('#event-content').show();
|
|
$('#add-option').html('');
|
|
fn_add_itmbox(_taget);
|
|
|
|
$('#event-content').attr('data-eventtype', _taget);
|
|
$('#event-fn').attr('onclick', 'fn_add_itmbox(\'' + _taget + '\')');
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > 입력 항목 이벤트 > 추가
|
|
******************************************************** */
|
|
const fn_add_itmbox = function(_target) {
|
|
|
|
let trClone = fn_make_addTag(_target);
|
|
let nodata = `<tr id="add-optionNoData" style="display: none;">
|
|
<td>입력 항목이 없습니다.</td>
|
|
</tr>`;
|
|
if ($('#add-optionNoData').length ===0) {
|
|
trClone += nodata;
|
|
}
|
|
$('#add-option').append(trClone);
|
|
$('#add-optionNoData').hide();
|
|
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 작성 상세 설정 > 입력 항목 이벤트 > 해당 입력창 태그
|
|
******************************************************** */
|
|
const fn_make_addTag = function(_target, _data, _innb) {
|
|
|
|
let data = _data === undefined ? '' : _data;
|
|
let innb = _innb === undefined ? '0' : _innb;
|
|
|
|
let trClone = ''
|
|
+ '<tr>'
|
|
+ ' <td class="left">'
|
|
|
|
if (_target === '04' || _target === '02') {
|
|
|
|
trClone += ' <div class="input-container w-full" id="' + _target + '">'
|
|
+ ' <input type="text" class="input-text xl ml-10" name="itmCnPopArr" value="' + data + '" title="항목값" placeholder="항목값을 입력하세요.">'
|
|
+ ' <input type="hidden" name="itmInnbPopArr" value="' + innb + '" title="innb">'
|
|
+ ' </div>';
|
|
} else if (_target === '01') {
|
|
trClone += ' <div class="input-container w-full" id="' + _target + '">'
|
|
+ ' <div class="custom-radio-container">'
|
|
+ ' <div class="custom-radio inner-input">'
|
|
+ ' <input type="radio" disabled><label></label>'
|
|
+ ' </div>'
|
|
+ ' </div>'
|
|
+ ' <input type="text" class="input-text xl ml-5" name="itmCnPopArr" value="' + data + '" title="항목값" placeholder="항목값을 입력하세요.">'
|
|
+ ' <input type="hidden" name="itmInnbPopArr" value="' + innb + '" title="innb">'
|
|
+ ' </div>';
|
|
} else if (_target === '03') {
|
|
trClone += ' <div class="b-checkbox-container flex-nowrap" id="' + _target + '">'
|
|
+ ' <label class="b-checkbox checkbox">'
|
|
+ ' <input type="checkbox" disabled>'
|
|
+ ' <span class="check"></span>'
|
|
+ ' <span class="control-label"></span>'
|
|
+ ' </label>'
|
|
+ ' <input type="text" class="input-text xl" name="itmCnPopArr" value="' + data + '" title="항목값" placeholder="항목값을 입력하세요.">'
|
|
+ ' <input type="hidden" name="itmInnbPopArr" value="' + innb + '" title="innb">'
|
|
+ ' </div>';
|
|
}
|
|
trClone += ' </td>'
|
|
+ ' <td>'
|
|
+ ' <button type="button" class="circle-btn delete" onclick="fn_remove_box(this)">'
|
|
+ ' <span class="visually-hidden">삭제</span>'
|
|
+ ' </button>'
|
|
+ ' </td>';
|
|
+ '</tr>';
|
|
|
|
return trClone;
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시글 마일리지 지급 > 마일리지 자동지급 이벤트
|
|
******************************************************** */
|
|
const fn_on_mlgAllDisabled = function(_value) {
|
|
|
|
if (_value === 'N') {
|
|
|
|
$('[name=writngChrCnt]').prop('disabled', true);
|
|
$('[name=photoRvwMlgAccmlmnyAmt]').prop('disabled', true);
|
|
$('[name=photoRvwMlgValidMtCnt]').prop('disabled', true);
|
|
$('[name=gnrlRvwMlgAccmlmnyAmt]').prop('disabled', true);
|
|
$('[name=photoRvwMlgValidMtCnt]').prop('disabled', true);
|
|
$('[name=gnrlRvwMlgAccmlmnyAmt]').prop('disabled', true);
|
|
$('[name=gnrlRvwMlgValidMtCnt]').prop('disabled', true);
|
|
$('[name=aditMlgPymntBgnDe]').prop('disabled', true);
|
|
$('[name=aditMlgPymntEndDe]').prop('disabled', true);
|
|
$('[name=aditPymntMlgAccmlmnyAmt]').prop('disabled', true);
|
|
$('[name=aditPymntMlgValidMtCnt]').prop('disabled', true);
|
|
|
|
} else {
|
|
|
|
$('[name=writngChrCnt]').prop('disabled', false);
|
|
$('[name=photoRvwMlgAccmlmnyAmt]').prop('disabled', false);
|
|
$('[name=photoRvwMlgValidMtCnt]').prop('disabled', false);
|
|
$('[name=gnrlRvwMlgAccmlmnyAmt]').prop('disabled', false);
|
|
$('[name=photoRvwMlgValidMtCnt]').prop('disabled', false);
|
|
$('[name=gnrlRvwMlgAccmlmnyAmt]').prop('disabled', false);
|
|
$('[name=gnrlRvwMlgValidMtCnt]').prop('disabled', false);
|
|
$('[name=aditMlgPymntBgnDe]').prop('disabled', false);
|
|
$('[name=aditMlgPymntEndDe]').prop('disabled', false);
|
|
$('[name=aditPymntMlgAccmlmnyAmt]').prop('disabled', false);
|
|
$('[name=aditPymntMlgValidMtCnt]').prop('disabled', false);
|
|
}
|
|
}
|
|
|
|
/*******************************************************
|
|
* 체크박스 변경시 선택 값 재클릭
|
|
* *****************************************************/
|
|
const fn_re_click = function(thisId, radioName, authorCd, targetDiv) {
|
|
if($(thisId).is(":checked")) {
|
|
if (fn_is_empty(authorCd)) {
|
|
$(targetDiv + " input[name=" + radioName + "]:first").click();
|
|
} else if ( authorCd === '02' ) {
|
|
$("input[name=" + radioName + "]:checked").prop('checked', true);
|
|
} else {
|
|
$("input[name=" + radioName + "]:checked").click();
|
|
}
|
|
} else {
|
|
fn_reset_form(targetDiv.replace("#",""));
|
|
fn_ctrl_disable([targetDiv], []);
|
|
}
|
|
}
|
|
/*치환코드 show hide 처리*/
|
|
const fn_show_hide_subst = (target, sndngDv) => {
|
|
if (sndngDv === 'sms') {
|
|
if (target === '01') {
|
|
$(".smsSubListReg").show();
|
|
$(".smsSubListAnsw").hide();
|
|
} else {
|
|
$(".smsSubListReg").hide();
|
|
$(".smsSubListAnsw").show();
|
|
}
|
|
}
|
|
}
|
|
/*파일 첨부 사용 여부에 따른 show hide*/
|
|
const fn_show_hide_file = (target) => {
|
|
let targetVal = '';
|
|
if(target === undefined || target === ''){
|
|
targetVal = $("input[name='filAtchUseAt']:checked").val();
|
|
}else{
|
|
targetVal = $(target).val();
|
|
}
|
|
|
|
if(targetVal === 'Y'){
|
|
$("#filPermFilExtsn").show();
|
|
fn_ctrl_disable('',['#filPermFilExtsn']);
|
|
}else{
|
|
$("#filPermFilExtsn").hide();
|
|
$("input[name='filPermFilExtsn']").val("");
|
|
fn_ctrl_disable(['#filPermFilExtsn'],'');
|
|
}
|
|
}
|
|
</script>
|
|
<body>
|
|
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp" %>
|
|
<body>
|
|
<main class="main">
|
|
<%@ include file="/WEB-INF/views/comm/mngr/Left.jsp" %>
|
|
<div class="content">
|
|
<div class="content__inner">
|
|
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
|
|
<div class="page-title">
|
|
<h2 class="page-title__title">게시판 수정</h2>
|
|
<div class="page-title__btn-container">
|
|
<button class="btn outline" onclick="fn_backTo_list();"><spring:message
|
|
code="button.list"/></button>
|
|
<div class="select-box" id="udpList"></div>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' }">
|
|
<button type="button" class="btn dark"
|
|
onclick="fn_delete_noticeBoard('${resultMap.bbsVo.bbsId }');"><spring:message
|
|
code="button.delete"/></button>
|
|
<button type="button" class="btn primary outline"
|
|
onclick="fn_copy_detail('${resultMap.bbsVo.bbsId }')"><spring:message
|
|
code="button.copy"/></button>
|
|
</c:if>
|
|
<button type="button" class="btn primary"
|
|
onclick="fn_update_noticeBoard('${resultMap.bbsVo.bbsTyCd }');"><spring:message
|
|
code="button.update"/></button>
|
|
</div>
|
|
</div>
|
|
<section class="content-section content-fold">
|
|
<div class="content-fold__header">
|
|
<h3 class="content-section__title">기본</h3>
|
|
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
|
|
</div>
|
|
<div class="content-fold__content">
|
|
<form name="updForm">
|
|
<input type="hidden" name="sopmalCd" value="${resultMap.bbsVo.sopmalCd }"/>
|
|
<input type="hidden" name="bbsTyCd" value="${resultMap.bbsVo.bbsTyCd }"/>
|
|
<input type="hidden" name="olddvItmInnbs" value="${resultMap.olddvItmInnbs }"/>
|
|
<input type="hidden" name="starDelList" value=""/>
|
|
<input type="hidden" name="oldRpusInnbs" value="${resultMap.oldRpusInnbs }"/>
|
|
<input type="hidden" name="oldIpQesitmInnbs" value="${resultMap.oldIpQesitmInnbs }"/>
|
|
<input type="hidden" name="oldDvQesitmInnbs" value="${resultMap.oldDvQesitmInnbs }"/>
|
|
<h3 class="content-section__inner-title">기본정보</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>기본정보</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>게시판명<span class="red-7">*</span></th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="word-limit-input">
|
|
<input type="text" class="input-text word-limit" name="bbsNm"
|
|
maxlength="30" size="60" title="게시판명"
|
|
placeholder="쌍따옴표(“”)를 제외한 모든문자 사용가능합니다."
|
|
value="<c:out value='${resultMap.bbsVo.bbsNm }'/>">
|
|
<div class="word-limit-input__data">
|
|
<span class="current-words"></span>
|
|
<span>/</span>
|
|
<span class="max-words"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>게시판 아이디<span class="red-7">*</span></th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div>
|
|
<input type="hidden" name="bbsId" value="${resultMap.bbsVo.bbsId }"/>
|
|
<input type="text" class="input-text word-limit"
|
|
value="${resultMap.bbsVo.bbsId }" maxlength="30" size="60"
|
|
title="게시판아이디" readonly/>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<th>노출여부</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<label class="b-checkbox checkbox is-medium">
|
|
<input type="checkbox" name="bbsExpsrAt"
|
|
value="${resultMap.bbsVo.bbsExpsrAt }" ${f:setChecked(resultMap.bbsVo.bbsExpsrAt, 'Y') }
|
|
onclick="fn_change_value_checkBox(this);" title="게시판 노출 여부">
|
|
<span class="check"></span>
|
|
</label>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>게시판 유형</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<c:out value="${resultMap.bbsVo.bbsTyNm }"/>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01'}"><%--일반 게시글 타입만 스킨유형 선택 가능--%>
|
|
<tr>
|
|
<th>게시판 스킨</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<c:if test="${not empty resultMap.codeContent[0]}">
|
|
<c:forEach var="cgo022"
|
|
items="${resultMap.codeContent[0].cgo022 }"
|
|
varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="sknTy${cgo022.cd }"
|
|
name="sknTyCd"
|
|
value="${cgo022.cd }" ${f:setChecked(resultMap.bbsVo.sknTyCd, cgo022.cd) }
|
|
onchange="fn_change_style(this.value);">
|
|
<label for="sknTy${cgo022.cd }"><c:out
|
|
value="${cgo022.cdNm }"/></label>
|
|
</div>
|
|
</c:forEach>
|
|
</c:if>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<h3 class="content-section__inner-title">게시글 기능/권한</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>게시글 기능/권한</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>게시판 읽기
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="readChkBox" name="bbscttRedngUseAt"
|
|
value="Y" ${resultMap.bbsVo.bbscttRedngUseAt eq "Y" ? 'checked="checked"' : '' }
|
|
onchange="fn_ctrl_disable(['#redngAuthorDiv'], ['#redngAuthorDiv'], $(this));
|
|
fn_re_click('#readChkBox', 'bbscttRedngAuthorDvCd', '<c:out value="${ resultMap.bbsVo.bbscttRedngAuthorDvCd }"/>', '#redngAuthorDiv');"/>
|
|
<span class="check"></span>
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<div class="td-inner" id="redngAuthorDiv">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="cgn024" items="${resultMap.codeContent[0].cgn024 }"
|
|
varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="read${cgn024.cd }"
|
|
name="bbscttRedngAuthorDvCd"
|
|
value="${cgn024.cd }" ${f:setChecked(resultMap.bbsVo.bbscttRedngAuthorDvCd, cgn024.cd) }
|
|
onclick="fn_change_event('bbscttRedngAuthorDvCd');">
|
|
<label for="read${cgn024.cd }"><c:out
|
|
value="${cgn024.cdNm }"/></label>
|
|
</div>
|
|
<c:if test="${ cgn024.cd eq '02'}">
|
|
<span class="parentheses">(</span>
|
|
<div class="b-checkbox-container inner">
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="bbscttRedngAuthorDvCd-c-all"
|
|
value="Y" name="bbscttRedngAuthorDvCd_c"
|
|
onclick="fn_click_check('bbscttRedngAuthorDvCd', 'all');"/>
|
|
<span class="check"></span>
|
|
<span class="control-label">전체</span>
|
|
</label>
|
|
<c:set var="redngDisabled" value=""/>
|
|
<c:if test="${resultMap.bbsVo.bbscttlRedngAuthorDvCd eq '01'}">
|
|
<c:set var="redngDisabled" value="disabled"/>
|
|
</c:if>
|
|
<c:forEach var="mbrGrad" items="${resultMap.mbrGradList }"
|
|
varStatus="status">
|
|
<label class="b-checkbox checkbox">
|
|
<c:set var="checked" value=""/>
|
|
<c:set var="pattern" value="[0-9]+"/>
|
|
<c:if test="${not empty resultMap.bbsVo.bbscttRedngAuthorDvCdNm}">
|
|
<c:forEach var="mbrInnb"
|
|
items="${fn:split(resultMap.bbsVo.bbscttRedngAuthorDvCdNm,'][')}">
|
|
<c:choose>
|
|
<c:when test="${ resultMap.bbsVo.bbscttRedngAuthorDvCdNm eq '[memberAll]' }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:if test="${ fn:contains(mbrInnb, mbrGrad.mbrGradInnb) }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:if>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:if>
|
|
<input type="checkbox"
|
|
name="bbscttRedngAuthorDvCd_c"
|
|
value="${mbrGrad.mbrGradInnb }" ${checked } ${redngDisabled }
|
|
onclick="fn_click_check('bbscttRedngAuthorDvCd', 'other');"/>
|
|
<span class="check"></span>
|
|
<span class="control-label"><c:out
|
|
value="${mbrGrad.mbrGradNm }"/></span>
|
|
</label>
|
|
</c:forEach>
|
|
</div>
|
|
<span class="parentheses">)</span>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>게시판 쓰기
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="registChkBox" name="bbscttRegistUseAt"
|
|
value="Y" ${resultMap.bbsVo.bbscttRegistUseAt eq "Y" ? 'checked="checked"' : '' }
|
|
onchange="fn_ctrl_disable(['#registAuthorDiv'], ['#registAuthorDiv'], $(this));
|
|
fn_re_click('#registChkBox', 'bbscttRegistAuthorDvCd', '<c:out value="${ resultMap.bbsVo.bbscttRegistAuthorDvCd }"/>', '#registAuthorDiv');
|
|
fn_evl_at_ctrl('bbscttRegistUseAt', 'bbscttEvlUseAt', '.bbscttEvlTyDiv','#bbscttEvlAt');"/>
|
|
<span class="check"></span>
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<div class="td-inner" id="registAuthorDiv">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="cgn024" items="${resultMap.codeContent[0].cgn024 }"
|
|
varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="write${cgn024.cd }"
|
|
name="bbscttRegistAuthorDvCd"
|
|
value="${cgn024.cd }" ${f:setChecked(resultMap.bbsVo.bbscttRegistAuthorDvCd, cgn024.cd) }
|
|
onclick="fn_change_event('bbscttRegistAuthorDvCd');">
|
|
<label for="write${cgn024.cd }"><c:out
|
|
value="${cgn024.cdNm }"/></label>
|
|
</div>
|
|
<c:if test="${ cgn024.cd eq '02'}">
|
|
<span class="parentheses">(</span>
|
|
<div class="b-checkbox-container inner">
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="bbscttRegistAuthorDvCd-c-all"
|
|
value="Y" name="bbscttRegistAuthorDvCd_c"
|
|
onclick="fn_click_check('bbscttRegistAuthorDvCd', 'all');">
|
|
<span class="check"></span>
|
|
<span class="control-label">전체</span>
|
|
</label>
|
|
<c:set var="registDisabled" value=""/>
|
|
<c:if test="${resultMap.bbsVo.bbscttRegistAuthorDvCd eq '01' || resultMap.bbsVo.bbscttRegistAuthorDvCd eq null}">
|
|
<c:set var="registDisabled" value="disabled"/>
|
|
</c:if>
|
|
<c:forEach var="mbrGrad" items="${resultMap.mbrGradList }"
|
|
varStatus="status">
|
|
<label class="b-checkbox checkbox">
|
|
<c:set var="checked" value=""/>
|
|
<c:set var="pattern" value="[0-9]+"/>
|
|
<c:if test="${not empty resultMap.bbsVo.bbscttRegistAuthorDvCdNm}">
|
|
<c:forEach var="mbrInnb"
|
|
items="${fn:split(resultMap.bbsVo.bbscttRegistAuthorDvCdNm,'][')}">
|
|
<c:choose>
|
|
<c:when test="${ resultMap.bbsVo.bbscttRegistAuthorDvCdNm eq '[memberAll]' }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:if test="${ fn:contains(mbrInnb, mbrGrad.mbrGradInnb) }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:if>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:if>
|
|
<input type="checkbox"
|
|
name="bbscttRegistAuthorDvCd_c"
|
|
value="${mbrGrad.mbrGradInnb }" ${checked } ${registDisabled }
|
|
onclick="fn_click_check('bbscttRegistAuthorDvCd', 'other');"/>
|
|
<span class="check"></span>
|
|
<span class="control-label"><c:out
|
|
value="${mbrGrad.mbrGradNm }"/></span>
|
|
</label>
|
|
</c:forEach>
|
|
</div>
|
|
<span class="parentheses">)</span>
|
|
</c:if>
|
|
</c:forEach>
|
|
<%--
|
|
<div class="custom-radio">
|
|
<input type="radio" id="write000" name="bbscttRegistAuthorDvCd" value="N" ${resultMap.bbsVo.bbscttRegistAuthorDvCd eq null ? 'checked' : '' } onclick="fn_change_event('bbscttRegistAuthorDvCd');">
|
|
<label for="write000">미사용</label>
|
|
</div>
|
|
--%>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd ne '05' && resultMap.bbsVo.bbsTyCd ne '10' && resultMap.bbsVo.bbsTyCd ne '12'}">
|
|
<tr id="bbscttEvlAt"
|
|
<c:if test="${resultMap.bbsVo.bbscttRegistUseAt ne 'Y'}">style="display: none"</c:if>>
|
|
<th>게시글 평가</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container"
|
|
onchange="fn_evl_ty_ctrl('bbscttEvlUseAt', '.bbscttEvlTyDiv');">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="bbsEvlUseAt-y" name="bbscttEvlUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.bbscttEvlUseAt, 'Y') }/>
|
|
<label for="bbsEvlUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="bbsEvlUseAt-n" name="bbscttEvlUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.bbscttEvlUseAt, 'N') }/>
|
|
<label for="bbsEvlUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<c:if test = "${resultMap.bbsVo.bbscttEvlUseAt eq 'N'}">
|
|
<c:set var = "display" value="display:none"/>
|
|
</c:if>
|
|
<th class="bbscttEvlTyDiv" style=${display}>게시글 평가 설정</th>
|
|
<td class="bbscttEvlTyDiv" style=${display}>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="cgo029" items="${resultMap.codeContent[0].cgo029 }"
|
|
varStatus="status">
|
|
<c:if test="${cgo029.cd != '3'}">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="evlRecomendStep-${cgo029.cd }"
|
|
name="bbscttEvlRecomendStep"
|
|
value="${cgo029.cd }"
|
|
<c:choose>
|
|
<c:when test="${empty resultMap.bbsVo.bbscttEvlRecomendStep}">
|
|
${f:setChecked(cgo029.cd, '01') }
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:if test="${ resultMap.bbsVo.bbscttEvlRecomendStep eq cgo029.cd}">
|
|
checked
|
|
</c:if>
|
|
</c:otherwise>
|
|
</c:choose>/>
|
|
<label for="evlRecomendStep-${cgo029.cd }"><c:out
|
|
value="${cgo029.cdNm }"/></label>
|
|
</div>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '11'}">
|
|
<tr>
|
|
<th>댓글 쓰기
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="cmRegistChkBox" name="cmRegistUseAt"
|
|
value="Y" ${resultMap.bbsVo.cmRegistUseAt eq "Y" ? 'checked="checked"' : '' }
|
|
onchange="fn_ctrl_disable(['#cmRegistAuthorDiv'], ['#cmRegistAuthorDiv'], $(this));
|
|
fn_re_click('#cmRegistChkBox', 'cmRegistAuthorDvCd', '<c:out value="${ resultMap.bbsVo.cmRegistAuthorDvCd }"/>', '#cmRegistAuthorDiv');
|
|
fn_evl_at_ctrl('cmRegistUseAt', 'cmEvlUseAt', '.cmEvlTyDiv', '#cmEvlAt');
|
|
fn_change_cmEvlRecomend();"/>
|
|
<span class="check"></span>
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<div class="td-inner" id="cmRegistAuthorDiv">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="cgn024" items="${resultMap.codeContent[0].cgn024 }"
|
|
varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="comt${cgn024.cd }"
|
|
name="cmRegistAuthorDvCd"
|
|
value="${cgn024.cd }" ${f:setChecked(resultMap.bbsVo.cmRegistAuthorDvCd, cgn024.cd) }
|
|
onclick="fn_change_event('cmRegistAuthorDvCd');">
|
|
<label for="comt${cgn024.cd }"><c:out
|
|
value="${cgn024.cdNm }"/></label>
|
|
</div>
|
|
<c:if test="${ cgn024.cd eq '02'}">
|
|
<span class="parentheses">(</span>
|
|
<div class="b-checkbox-container inner">
|
|
<label class="b-checkbox checkbox check-all">
|
|
<input type="checkbox" id="cmRegistAuthorDvCd-c-all"
|
|
value="Y" name="cmRegistAuthorDvCd_c"
|
|
value=""
|
|
onclick="fn_click_check('cmRegistAuthorDvCd', 'all'); "/>
|
|
<span class="check"></span>
|
|
<span class="control-label">전체</span>
|
|
</label>
|
|
<c:set var="cmRegistDisabled" value=""/>
|
|
<c:if test="${resultMap.bbsVo.cmRegistAuthorDvCd eq '01' || resultMap.bbsVo.cmRegistAuthorDvCd eq null}">
|
|
<c:set var="cmRegistDisabled" value="disabled"/>
|
|
</c:if>
|
|
<c:forEach var="mbrGrad"
|
|
items="${resultMap.mbrGradList }"
|
|
varStatus="status">
|
|
<label class="b-checkbox checkbox">
|
|
<c:set var="checked" value=""/>
|
|
<c:set var="pattern" value="[0-9]+"/>
|
|
<c:if test="${not empty resultMap.bbsVo.cmRegistAuthorDvCdNm}">
|
|
<c:forEach var="mbrInnb"
|
|
items="${fn:split(resultMap.bbsVo.cmRegistAuthorDvCdNm,'][')}">
|
|
<c:choose>
|
|
<c:when test="${ resultMap.bbsVo.cmRegistAuthorDvCdNm eq '[memberAll]' }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:if test="${ fn:contains(mbrInnb, mbrGrad.mbrGradInnb) }">
|
|
<c:set var="checked"
|
|
value="checked"/>
|
|
</c:if>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:if>
|
|
<input type="checkbox"
|
|
name="cmRegistAuthorDvCd_c"
|
|
value="${mbrGrad.mbrGradInnb }" ${checked } ${cmRegistDisabled }
|
|
onclick="fn_click_check('cmRegistAuthorDvCd', 'other');"/>
|
|
<span class="check"></span>
|
|
<span class="control-label"><c:out
|
|
value="${mbrGrad.mbrGradNm }"/></span>
|
|
</label>
|
|
</c:forEach>
|
|
</div>
|
|
<span class="parentheses">)</span>
|
|
</c:if>
|
|
</c:forEach>
|
|
<%--
|
|
<div class="custom-radio">
|
|
<input type="radio" id="comt000" name="cmRegistAuthorDvCd" value="N" ${resultMap.bbsVo.cmRegistAuthorDvCd eq null ? 'checked' : '' } onclick="fn_change_event('cmRegistAuthorDvCd'); fn_change_cmEvlRecomend('N');">
|
|
<label for="comt000">미사용</label>
|
|
</div>
|
|
--%>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="cmEvlAt"
|
|
<c:if test="${resultMap.bbsVo.cmRegistUseAt ne 'Y'}">style="display: none"</c:if>>
|
|
<th>댓글 평가</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container"
|
|
onchange="fn_evl_ty_ctrl('cmEvlUseAt', '.cmEvlTyDiv');">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="cmEvlUseAt-y" name="cmEvlUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.cmEvlUseAt, 'Y') }/>
|
|
<label for="cmEvlUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="cmEvlUseAt-n" name="cmEvlUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.cmEvlUseAt, 'N') }/>
|
|
<label for="cmEvlUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<c:if test="${resultMap.bbsVo.cmEvlUseAt eq 'N'}">
|
|
<c:set var="cmDisplay" value="display:none"/>
|
|
</c:if>
|
|
<th class="cmEvlTyDiv" style=${cmDisplay}>댓글 평가 설정</th>
|
|
<td class="cmEvlTyDiv" style=${cmDisplay}>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="cgo030" items="${resultMap.codeContent[0].cgo030 }"
|
|
varStatus="status">
|
|
<c:set var="attrCheck"
|
|
value="${status.index == 0 ? 'checked' : '' }"/>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="cmEvlRecomendStep-${cgo030.cd }"
|
|
name="cmEvlRecomendStep" value="${cgo030.cd }"
|
|
<c:choose>
|
|
<c:when test="${empty resultMap.bbsVo.cmEvlRecomendStep}">
|
|
${f:setChecked(cgo030.cd, '01') }
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:if test="${ resultMap.bbsVo.cmEvlRecomendStep eq cgo030.cd}">
|
|
checked
|
|
</c:if>
|
|
</c:otherwise>
|
|
</c:choose>/>
|
|
<label for="cmEvlRecomendStep-${cgo030.cd }"><c:out
|
|
value="${cgo030.cdNm }"/></label>
|
|
</div>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<tr>
|
|
<th>답글 쓰기
|
|
<label class="b-checkbox checkbox ">
|
|
<input type="checkbox" id="answRegistChkBox" name="answRegistUseAt"
|
|
value="Y"
|
|
onclick="fn_toggle_rpuseDv(this);" ${resultMap.bbsVo.answRegistUseAt eq "Y" ? 'checked="checked"' : '' }/>
|
|
<span class="check"></span>
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
<section class="content-section content-fold">
|
|
<div class="content-fold__header">
|
|
<h3 class="content-section__title">작성</h3>
|
|
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
|
|
</div>
|
|
<div class="content-fold__content">
|
|
<form name="updForm">
|
|
<c:if test="${ resultMap.bbsVo.bbsTyCd ne '10' && resultMap.bbsVo.bbsTyCd ne '11' }">
|
|
<h3 class="content-section__inner-title">게시글 작성 기본 설정</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>게시글 작성 기본 설정</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<%--게시판 타입 일반게시글, 상품q&a, 일반리뷰, 한달리뷰, 대량구매--%>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<tr>
|
|
<th rowspan="2">게시글 기본 문구</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="dftUseAt-y" name="dftCnUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.dftCnUseAt, 'Y') } />
|
|
<label for="dftUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="dftUseAt-n" name="dftCnUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.dftCnUseAt, 'N') }/>
|
|
<label for="dftUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<th rowspan="2">모바일 기본 문구</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="mblUseAt-y" name="mblDftCnUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.mblDftCnUseAt, 'Y') } />
|
|
<label for="mblUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="mblUseAt-n" name="mblDftCnUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.mblDftCnUseAt, 'N') } />
|
|
<label for="mblUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<div class="td-inner"><textarea class="textarea" id="dftCn" name="dftCn" title="기본내용"
|
|
cols="30" rows="10"
|
|
<c:if test="${resultMap.bbsVo.dftCnUseAt eq 'N'}">disabled</c:if>>
|
|
<c:out value="${resultMap.bbsVo.dftCn}"/>
|
|
</textarea></div>
|
|
</td>
|
|
<td><div class="td-inner"><textarea class="textarea" id="mblDftCn" name="mblDftCn"
|
|
title="모바일기본내용" cols="30" rows="10"
|
|
<c:if test="${resultMap.bbsVo.mblDftCnUseAt eq 'N'}">disabled</c:if>>
|
|
<c:out value="${resultMap.bbsVo.mblDftCn}"/>
|
|
</textarea></div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<tr>
|
|
<th>파일 첨부</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="filAtchUseAt-y"
|
|
name="filAtchUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.filAtchUseAt, 'Y') }
|
|
onclick="fn_show_hide_file(this);"/>
|
|
<label for="filAtchUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="filAtchUseAt-n"
|
|
name="filAtchUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.filAtchUseAt, 'N') }
|
|
onclick="fn_show_hide_file(this);">
|
|
<label for="filAtchUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<th>비속어 필터</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="slangUseAt-y"
|
|
name="slangFlterUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.slangFlterUseAt, 'Y') } />
|
|
<label for="slangUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="slangUseAt-n"
|
|
name="slangFlterUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.slangFlterUseAt, 'N') } />
|
|
<label for="slangUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr id = "filPermFilExtsn">
|
|
<th>파일 첨부 허용 파일 확장자</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명" name="filPermFilExtsn"
|
|
placeholder="','구분자 띄어쓰기 없이 나열" value="<c:out value="${resultMap.bbsVo.filPermFilExtsn}"/>">
|
|
<p class="gray-7 ml-4">ex) .gif,.jpg,.jpeg,.png</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '09' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<th>비밀글 여부</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="secretUseAt-y"
|
|
name="secretBbscttUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.secretBbscttUseAt, 'Y') } />
|
|
<label for="secretUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="secretUseAt-n"
|
|
name="secretBbscttUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.secretBbscttUseAt, 'N') } />
|
|
<label for="secretUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:if>
|
|
<%--게시판 타입 이벤트, 매거진 추천 상품 노출--%>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '09'}">
|
|
<th>추천 상품 노출</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="recomendGoodsExpsrAt-y"
|
|
name="recomendGoodsExpsrAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'Y') } />
|
|
<label for="recomendGoodsExpsrAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="recomendGoodsExpsrAt-n"
|
|
name="recomendGoodsExpsrAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'N') } />
|
|
<label for="recomendGoodsExpsrAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:if>
|
|
<%--게시글 타입이 일반게시판,이벤트,당첨자발표 -- 댓글 사용 여부--%>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '11'}">
|
|
<th class="cmSetupUseAt">댓글 사용 여부</th>
|
|
<td class="cmSetupUseAt">
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="cmSetupUseAt-y"
|
|
name="cmSetupUseAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.cmSetupUseAt, 'Y') }/>
|
|
<label for="cmSetupUseAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="cmSetupUseAt-n"
|
|
name="cmSetupUseAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.cmSetupUseAt, 'N') } />
|
|
<label for="cmSetupUseAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:if>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01'}">
|
|
<tr>
|
|
<th>추천 상품 노출</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="recomendGoodsExpsrAt-y"
|
|
name="recomendGoodsExpsrAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'Y') } />
|
|
<label for="recomendGoodsExpsrAt-y">사용</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="recomendGoodsExpsrAt-n"
|
|
name="recomendGoodsExpsrAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.recomendGoodsExpsrAt, 'N') } />
|
|
<label for="recomendGoodsExpsrAt-n">미사용</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<h3 class="content-section__inner-title">게시글 작성 상세 설정</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>게시글 작성 상세 설정</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<c:set var="title" value="분류 관리"/>
|
|
<c:choose>
|
|
<c:when test="${resultMap.bbsVo.bbsTyCd ne '06' && resultMap.bbsVo.bbsTyCd ne '07'}">
|
|
<c:set var="title2" value="입력 항목"/>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:set var="title2" value="추가평가항목"/>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
<c:set var="subTitle" value="분류명"/>
|
|
<c:set var="nodata" value="분류 항목이 없습니다."/>
|
|
<c:choose>
|
|
<c:when test="${resultMap.bbsVo.bbsTyCd ne '06' && resultMap.bbsVo.bbsTyCd ne '07'}">
|
|
<th><c:out value="${title }"/></th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="table-wrapper" style="width: 600px;">
|
|
<table class="table vertical draggable"
|
|
id="classification-row-add">
|
|
<caption><c:out value="${title }"/></caption>
|
|
<colgroup>
|
|
<col style="width: 100px;">
|
|
<col>
|
|
<col style="width:20%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>순서</th>
|
|
<th><c:out value="${subTitle }"/></th>
|
|
<th>
|
|
<button type="button" class="circle-btn add"
|
|
onclick="fn_add_box('classification');">
|
|
<span class="visually-hidden">추가</span>
|
|
</button>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="classification">
|
|
<input type="hidden" name="inputDvInnb"
|
|
value="${resultMap.inputDvInnb }"/>
|
|
<c:if test="${not empty resultMap.inputDvList }">
|
|
<c:forEach var="inputDv"
|
|
items="${resultMap.inputDvList }"
|
|
varStatus="status">
|
|
<tr>
|
|
<td>
|
|
<div class="draggable-icon-container">
|
|
<i class="icon icon_draggable"></i>
|
|
<span class="visually-hidden">순서 바꾸기</span>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<input type="text"
|
|
class="input-text full"
|
|
name="qesitmNm_d" title="분류명"
|
|
value="${inputDv.itmCn }">
|
|
<input type="hidden" name="qesitmInnb_d"
|
|
title="분류번호"
|
|
value="${inputDv.itmInnb }"/>
|
|
</td>
|
|
<td>
|
|
<button type="button"
|
|
class="circle-btn delete"
|
|
onclick="fn_remove_box(this)">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</c:forEach>
|
|
<tr id="classificationNoData" style="display: none">
|
|
<td colspan="3"><c:out value="${nodata }"/></td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${empty resultMap.inputDvList }">
|
|
<tr id="classificationNoData">
|
|
<td colspan="3"><c:out value="${nodata }"/></td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<th>점수 표시</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<input type="hidden" name="qesitmInnb_s"
|
|
value="${resultMap.rvwInputList[0].scoreIndictMthCd }"/>
|
|
<c:forEach var="cgn022"
|
|
items="${resultMap.codeContent[0].cgn022 }"
|
|
varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio"
|
|
id="scoreIndictMthCd-${cgn022.cd }"
|
|
name="scoreIndictMthCd"
|
|
value="${cgn022.cd }" ${f:setChecked(cgn022.cd, resultMap.rvwInputList[0].scoreIndictMthCd) } >
|
|
<label for="scoreIndictMthCd-${cgn022.cd }"><c:out
|
|
value="${cgn022.cdNm }"/></label>
|
|
</div>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07'}">
|
|
<tr>
|
|
<th><c:out value="${title2 }"/></th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="table-wrapper">
|
|
<div class="form-control-container mb-8">
|
|
<div class="left">
|
|
<a href="#item-add" rel="modal:open"
|
|
class="btn xsm primary" id="itmPopOpen"
|
|
onclick="fn_reset_modal();">입력 항목 추가</a>
|
|
</div>
|
|
<div class="center"></div>
|
|
<div class="right"></div>
|
|
</div>
|
|
<table class="table vertical draggable" id="addItemPop-row-add">
|
|
<caption><c:out value="${title2 }"/></caption>
|
|
<colgroup>
|
|
<col style="width: 100px;">
|
|
<col style="width: 240px;">
|
|
<col>
|
|
<col style="width:7%;">
|
|
<col style="width:7%;">
|
|
<col style="width:10%;">
|
|
<col style="width:7%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>순서</th>
|
|
<th>항목명</th>
|
|
<th>항목 설명</th>
|
|
<th>필수</th>
|
|
<th>사용</th>
|
|
<th>관리</th>
|
|
<th>삭제</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="addItemPop">
|
|
<c:if test="${not empty resultMap.inputAdList }">
|
|
<c:forEach var="itms" items="${resultMap.inputAdList }"
|
|
varStatus="status">
|
|
<tr id="dr${status.index}">
|
|
<input type="hidden" name="oldItmInnbs"
|
|
value="${itms.itms[0].itmInnbs}"/>
|
|
<input type="hidden" name="qesitmNm_i"
|
|
value="${itms.qesitmNm}"/>
|
|
<input type="hidden" name="qesitmDc_i"
|
|
value="${itms.qesitmDc}"/>
|
|
<input type="hidden" name="itmTy_i"
|
|
value="${itms.itmTyCd}"/>
|
|
<input type="hidden" name="itmTyNm_i"
|
|
value="${itms.itmTyCdNm}"/>
|
|
<input type="hidden" name="itmCn_i"
|
|
value="${itms.itms[0].itmCns}"/>
|
|
<input type="hidden" name="itmInnb_i"
|
|
value="${itms.itms[0].itmInnbs}"/>
|
|
<input type="hidden" name="qesitmInnb_i"
|
|
value="${itms.qesitmInnb}"/>
|
|
<td>
|
|
<div class="draggable-icon-container">
|
|
<i class="icon icon_draggable"></i>
|
|
<span class="visually-hidden">순서 바꾸기</span>
|
|
</div>
|
|
</td>
|
|
<td class="text-left" data-id="qesitmNm"><c:out
|
|
value="${itms.qesitmNm}"/></td>
|
|
<td class="text-left" data-id="qesitmDc">[<c:out
|
|
value="${itms.itmTyCdNm}"/>]<c:out
|
|
value="${itms.qesitmDc}"/></td>
|
|
<td>
|
|
<label class="b-checkbox checkbox is-medium">
|
|
<input type="checkbox"
|
|
name="qesitmEssntlAt_i"
|
|
value="${itms.qesitmEssntlAt }" ${f:setChecked(itms.qesitmEssntlAt, 'Y')} ${itms.qesitmUseAt eq 'Y' ? '' : 'disabled'}
|
|
onchange="fn_change_value_checkBox(this);">
|
|
<span class="check"></span>
|
|
</label>
|
|
</td>
|
|
<td>
|
|
<label class="b-checkbox checkbox is-medium">
|
|
<input type="checkbox"
|
|
name="qesitmUseAt_i"
|
|
value="${itms.qesitmUseAt }" ${f:setChecked(itms.qesitmUseAt, 'Y') }
|
|
onchange="fn_change_value_checkBox(this);">
|
|
<span class="check"></span>
|
|
</label>
|
|
</td>
|
|
<td>
|
|
<div class="manage-btn-container">
|
|
<button type="button"
|
|
class="btn xsm primary outline"
|
|
onclick="fn_add_item_updPop('dr${status.index}');">
|
|
수정
|
|
</button>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<button type="button"
|
|
class="circle-btn delete"
|
|
onclick="fn_remove_box(this)">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</c:forEach>
|
|
<tr id="addItemPopNoData" style="display: none;">
|
|
<td colspan="7">입력 항목이 없습니다.</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${empty resultMap.inputAdList }">
|
|
<tr id="addItemPopNoData">
|
|
<td colspan="7">입력 항목이 없습니다.</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<tr id="rpuseDv"
|
|
<c:if test="${resultMap.bbsVo.answRegistUseAt ne 'Y'}">style="display:none"</c:if>>
|
|
<th>자주쓰는 답변</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="table-wrapper" style="width: 1000px;">
|
|
<table class="table draggable" id="rpusAnsw-row-add">
|
|
<caption>자주쓰는 답변</caption>
|
|
<colgroup>
|
|
<col style="width: 100px;">
|
|
<col>
|
|
<col style="width:20%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: center;">순서</th>
|
|
<th style="text-align: center;">답변</th>
|
|
<th style="text-align: center;">
|
|
<button type="button" class="circle-btn add"
|
|
name="cnArr"
|
|
onclick="fn_add_box('rpusAnsw');">
|
|
<span class="visually-hidden">추가</span>
|
|
</button>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="rpusAnsw">
|
|
<c:if test="${not empty resultMap.rpusAnswList }">
|
|
<c:forEach var="rpusAnsw"
|
|
items="${resultMap.rpusAnswList }"
|
|
varStatus="status">
|
|
<tr>
|
|
<td>
|
|
<div class="draggable-icon-container" style="text-align: center;">
|
|
<i class="icon icon_draggable"></i>
|
|
<span class="visually-hidden">순서 바꾸기</span>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<div class="td-inner">
|
|
<textarea class="textarea" name="cnArr" title="답변" rows="10"><c:out value="${rpusAnsw.cn }"/></textarea>
|
|
</div>
|
|
<input type="hidden" name="rpuseAnswInnbArr" title="답변 번호" value="${rpusAnsw.rpuseAnswInnb }"/>
|
|
</td>
|
|
<td style="text-align: center;">
|
|
<button class="circle-btn delete"
|
|
onclick="fn_remove_box(this);">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</c:forEach>
|
|
<tr id="rpusAnswNoData" style="display: none;">
|
|
<td colspan="3" style="text-align: center;">자주쓰는 답변이 없습니다.</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${empty resultMap.rpusAnswList }">
|
|
<tr id="rpusAnswNoData" style="text-align: center;">
|
|
<td colspan="3">자주쓰는 답변이 없습니다.</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</c:if>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
<c:if test="${ resultMap.bbsVo.bbsTyCd ne '10' }">
|
|
<section class="content-section content-fold">
|
|
<div class="content-fold__header">
|
|
<h3 class="content-section__title">보기</h3>
|
|
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
|
|
</div>
|
|
<div class="content-fold__content">
|
|
<form name="updForm">
|
|
<h3 class="content-section__inner-title">게시판 리스트 설정</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>게시판 리스트 설정</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 38%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '09'}">
|
|
<tr id="gallery">
|
|
<th>페이지당 노출수</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="select-box">
|
|
<select class="short coupon-discount-select" name="pgeWthCnt"
|
|
title="페이지가로건수">
|
|
<option value="1" ${f:setSelected(resultMap.bbsVo.pgeWthCnt, '1') } >
|
|
1
|
|
</option>
|
|
<option value="2" ${f:setSelected(resultMap.bbsVo.pgeWthCnt, '2') } >
|
|
2
|
|
</option>
|
|
<option value="3" ${f:setSelected(resultMap.bbsVo.pgeWthCnt, '3') } >
|
|
3
|
|
</option>
|
|
<option value="4" ${f:setSelected(resultMap.bbsVo.pgeWthCnt, '4') } >
|
|
4
|
|
</option>
|
|
</select>
|
|
</div>
|
|
<span class="mx-3">X</span>
|
|
<div class="input-container">
|
|
<input type="text" class="input-text xsm right number"
|
|
name="pgeVtcCnt" title="페이지세로건수"
|
|
value="${resultMap.bbsVo.pgeVtcCnt }"/>
|
|
<span class="input-unit-text">개</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '10' || resultMap.bbsVo.bbsTyCd eq '11' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<tr id="listUaccordion">
|
|
<th>페이지당 노출수</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="hidden" name="pgeWthCnt" title="페이지가로건수"
|
|
value="${resultMap.bbsVo.pgeWthCnt }"/>
|
|
<input type="text" class="input-text xsm right number"
|
|
name="pgeVtcCnt" title="페이지세로건수"
|
|
value="${resultMap.bbsVo.pgeVtcCnt }"
|
|
style="margin-right: 7px;"/>
|
|
<span class="input-unit-text">개</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<tr>
|
|
<th>신규게시물 기준 일수</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<span class="input-unit-text">글 등록 후</span>
|
|
<input type="text" class="input-text xsm right number"
|
|
name="newNttStdrDeCnt" title="신규게시물기준일수"
|
|
value="${resultMap.bbsVo.newNttStdrDeCnt }"
|
|
style="margin-left: 7px; margin-right: 7px;"/>
|
|
<span class="input-unit-text">일 내</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '09' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<th>인기게시물 기준 조회 일수</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<span class="input-unit-text">조회 수</span>
|
|
<input type="text" class="input-text xsm right number"
|
|
name="popularNttStdrInqireCnt" title="인기게시물기준조회일수"
|
|
value="${resultMap.bbsVo.popularNttStdrInqireCnt }"
|
|
style="margin-left: 7px; margin-right: 7px;"/>
|
|
<span class="input-unit-text">회 이상</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:if>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01'}">
|
|
<tr>
|
|
<th>운영 사이트 표시항목</th>
|
|
<td colspan="3">
|
|
<div class="td-inner">
|
|
<div class="b-checkbox-container">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="innbYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.innbYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">번호</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="sjYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.sjYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">제목</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="cnYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.cnYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">내용</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="regusrNmYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.regusrNmYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">작성자</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="registDtYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.registDtYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">등록일</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="ntcDeYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.ntcDeYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">공지 기간</span>
|
|
</label>
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" name="inqireCntYn"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.inqireCntYn eq 'Y', true) }>
|
|
<span class="check"></span><span
|
|
class="control-label">조회수</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<c:if test="${ resultMap.bbsVo.bbsTyCd ne '04' && resultMap.bbsVo.bbsTyCd ne '10' }">
|
|
<h3 class="content-section__inner-title">작성자 표시</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>작성자 표시</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col>
|
|
</colgroup>
|
|
<tbody>
|
|
<%-- 일반, 이벤트, 상품Q&A, 일반리뷰, 한달리뷰, 1:1문의 --%>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '12' }">
|
|
<tr>
|
|
<th>사용자</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="select-box">
|
|
<select name="wrterIndictTyCd" title="사용자">
|
|
<c:forEach var="cgo024"
|
|
items="${resultMap.codeContent[0].cgo024 }"
|
|
varStatus="status">
|
|
<option value="${cgo024.cd }" ${f:setSelected(resultMap.bbsVo.wrterIndictTyCd, cgo024.cd) }>
|
|
<c:out value="${cgo024.cdNm }"/></option>
|
|
</c:forEach>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<%-- 일반, 이벤트, 상품Q&A, FAQ, 일반리뷰, 한달리뷰, 1:1문의 --%>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '03' || resultMap.bbsVo.bbsTyCd eq '04' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<tr>
|
|
<th>관리자</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="word-limit-input">
|
|
<input type="text" class="input-text word-limit"
|
|
name="mngrNm" maxlength="15" size="40" title="관리자"
|
|
value="${resultMap.bbsVo.mngrNm }"/>
|
|
<div class="word-limit-input__data">
|
|
<span class="current-words">0</span><span>/</span><span
|
|
class="max-words">15</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '02' || resultMap.bbsVo.bbsTyCd eq '09'}">
|
|
<tr>
|
|
<th>사용자</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="word-limit-input">
|
|
<input type="text" class="input-text word-limit"
|
|
name="mngrNm" maxlength="15" size="40" title="사용자"
|
|
value="${resultMap.bbsVo.mngrNm }"/>
|
|
<div class="word-limit-input__data">
|
|
<span class="current-words">0</span><span>/</span><span
|
|
class="max-words">15</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</c:if>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '01' || resultMap.bbsVo.bbsTyCd eq '05' || resultMap.bbsVo.bbsTyCd eq '08' || resultMap.bbsVo.bbsTyCd eq '12'}">
|
|
<section class="content-section content-fold">
|
|
<div class="content-fold__header">
|
|
<h3 class="content-section__title">메시지 발송</h3>
|
|
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
|
|
</div>
|
|
<div class="content-fold__content">
|
|
<form name="updForm">
|
|
<h3 class="content-section__inner-title">메시지 발송</h3>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>메시지 발송</caption>
|
|
<colgroup>
|
|
<col style="width: 12%;">
|
|
<col>
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>메시지 사용 여부</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<c:forEach var="bbscttSndngMth" items="${resultMap.codeContent[0].cgn035 }" varStatus="status">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="bbsSndng${bbscttSndngMth.cd }"
|
|
name="bbscttSndngMthCd" value="${bbscttSndngMth.cd }"
|
|
${f:setChecked(bbscttSndngMth.cd,resultMap.bbsVo.bbscttSndngMthCd)}
|
|
onclick="fn_show_text('${bbscttSndngMth.cd }');"/>
|
|
<label for="bbsSndng${bbscttSndngMth.cd }"><c:out
|
|
value="${bbscttSndngMth.cdNm }"/></label>
|
|
</div>
|
|
</c:forEach>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="forSms" style="display: none;">
|
|
<th>SMS 발송 관리</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="table-wrapper" style="width: 600px;">
|
|
<table class="table vertical">
|
|
<caption>SMS 발송 관리</caption>
|
|
<colgroup>
|
|
<col style="width: 50%;">
|
|
<col style="width: 50%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>사용자가 글 등록 시</th>
|
|
<th>관리자가 글 답글 시</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<c:forEach var="sndngDv" items="${resultMap.codeContent[0].cgn034 }" varStatus="status"><%--발송 구분 등록 or 답변--%>
|
|
<input type = "hidden" name = "sndngDvCdArr" value = "<c:out value = "${sndngDv.cd}"/>"/>
|
|
<c:choose>
|
|
<c:when test = "${not empty resultMap.smsList}"> <%--게시판 sms 발송 관리가 존재 할 시(수정)--%>
|
|
<td>
|
|
<div class="sms-manage">
|
|
<c:forEach var = "bbsSms" items = "${resultMap.smsList}" varStatus="status">
|
|
<c:if test = "${bbsSms.bbscttSndngDvCd eq sndngDv.cd}">
|
|
<textarea class="textarea" name="smsCnArr" title="sms 내용" maxlength="950" id="sms${bbsSms.bbscttSndngDvCd}">
|
|
<c:out value="${bbsSms.smsCn}"/>
|
|
</textarea>
|
|
<div class="sms-manage__byte">
|
|
<span class="number" id="smsByte${bbsSms.bbscttSndngDvCd}"></span>
|
|
<span class="text">byte</span>
|
|
</div>
|
|
<input type = "hidden" name = "ntcnSndngInnb" value = "<c:out value = "${bbsSms.ntcnSndngInnb}"/>"/>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</td>
|
|
</c:when>
|
|
<c:when test = "${empty resultMap.smsList && not empty resultMap.sms.smsList}"> <%-- 자동 발송 관리가 존재 할 시 (등록)--%>
|
|
<td>
|
|
<div class="sms-manage">
|
|
<c:forEach var="sms" items="${resultMap.sms.smsList}" varStatus="status">
|
|
<c:if test="${sms.formDtlDvCd eq sndngDv.cd}">
|
|
<textarea class="textarea" name="smsCnArr" title="sms 내용" maxlength="950" id="sms${sms.formDtlDvCd}">
|
|
<c:out value="${sms.smsCn}"/>
|
|
</textarea>
|
|
<div class="sms-manage__byte">
|
|
<span class="number" id = "smsByte${sms.formDtlDvCd}"></span>
|
|
<span class="text">byte</span>
|
|
</div>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</td>
|
|
</c:when>
|
|
<c:otherwise> <%--자동 발송, 게시판 보드 설정이 없을 시 (등록)--%>
|
|
<td>
|
|
<div class="sms-manage">
|
|
<textarea class="textarea" name="smsCnArr" title="sms 내용" maxlength="950" id="sms${sndngDv.cd}">
|
|
</textarea>
|
|
<div class="sms-manage__byte">
|
|
<span class="number" id = "smsByte${sndngDv.cd}"></span>
|
|
<span class="text">byte</span>
|
|
</div>
|
|
</div>
|
|
<td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</tr>
|
|
<tr>
|
|
<c:forEach var="sndngDv" items="${resultMap.codeContent[0].cgn034 }" varStatus="status">
|
|
<td>
|
|
<div class="text-right">
|
|
<a href="#sms-alternative-code-modal"
|
|
rel="modal:open" class="btn sm outline"
|
|
onclick="fn_show_hide_subst('<c:out value="${sndngDv.cd}"/>','sms');">
|
|
<i class="icon icon_info"></i>
|
|
치환 코드
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</c:forEach>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr id="forKakao" style="display: none;">
|
|
<th>SMS 발송 관리</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="table-wrapper" style="width: 600px;">
|
|
<table class="table vertical">
|
|
<caption>SMS 발송 관리</caption>
|
|
<colgroup>
|
|
<col style="width: 50%;">
|
|
<col style="width: 50%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>사용자가 글 등록 시</th>
|
|
<th>관리자가 글 답글 시</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<c:forEach var="kakaoSndngDv" items="${resultMap.codeContent[0].cgn034}" varStatus="status"><%--발송 구분 등록 or 답변--%>
|
|
<input type = "hidden" name = "sndngDvCdArr" value = "<c:out value = "${kakaoSndngDv.cd}"/>"/>
|
|
<c:choose>
|
|
<c:when test = "${not empty resultMap.kakao.kakaoList}"> <%--게시판 kakso 발송 관리가 존재 할 시(수정)--%>
|
|
<td>
|
|
<div class="sms-manage">
|
|
<c:forEach var = "kakao" items = "${resultMap.kakao.kakaoList}" varStatus="status" >
|
|
<c:if test = "${kakao.formDtlDvCd eq kakaoSndngDv.cd}">
|
|
<textarea class="textarea" name="smsCnArr" title="sms 내용" maxlength="950" id="kakao${kakao.formDtlDvCd}" readonly>
|
|
<c:out value="${kakao.msg}"/>
|
|
</textarea>
|
|
<div class="sms-manage__byte">
|
|
<span class="number" id="kakaoByte${kakao.formDtlDvCd}"></span>
|
|
<span class="text">byte</span>
|
|
</div>
|
|
<input type = "hidden" name = "ntcntalkSndngFormInnbArr" value = "<c:out value = "${kakao.ntcntalkSndngFormInnb}"/>"/>
|
|
</c:if>
|
|
</c:forEach>
|
|
</div>
|
|
</td>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<td>
|
|
<div class="sms-manage">
|
|
<textarea class="textarea" name="smsCnArr" title="sms 내용" maxlength="950" readonly>
|
|
제공되는 폼 양식이 없습니다.
|
|
</textarea>
|
|
<div class="sms-manage__byte">
|
|
<span class="number">0</span>
|
|
<span class="text">byte</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</tr>
|
|
<tr>
|
|
<c:forEach var="kakaoSndngDv" items="${resultMap.codeContent[0].cgn034}" varStatus="status"><%--발송 구분 등록 or 답변--%>
|
|
<td>
|
|
<div class="text-right">
|
|
<a href="#kakao-alternative-code-modal"
|
|
rel="modal:open" class="btn sm outline"
|
|
onclick="fn_show_hide_subst('<c:out value="${kakaoSndngDv.cd}"/>','kakao');">
|
|
<i class="icon icon_info"></i>
|
|
치환 코드
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</c:forEach>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
</c:if>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '06' || resultMap.bbsVo.bbsTyCd eq '07' }">
|
|
<section class="content-section content-fold">
|
|
<div class="content-fold__header">
|
|
<h3 class="content-section__title">마일리지 지급</h3>
|
|
<button class="content-fold__btn"><span class="visually-hidden">접기</span></button>
|
|
</div>
|
|
<div class="content-fold__content">
|
|
<form name="updForm">
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>해당 테이블에 대한 설명</caption>
|
|
<colgroup>
|
|
<col style="width: 15%;">
|
|
<col style="width: 12%;">
|
|
<col style="width: 76%;">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>마일리지 자동 지급 여부</th>
|
|
<td colspan="2">
|
|
<div class="td-inner">
|
|
<div class="custom-radio-container">
|
|
<div class="custom-radio">
|
|
<input type="radio" id="autoMlgPymnt-y"
|
|
name="goodsRvwMlgPymntAt"
|
|
value="Y" ${f:setChecked(resultMap.bbsVo.goodsRvwMlgPymntAt, 'Y') }
|
|
onclick="fn_on_mlgAllDisabled(this.value)"/>
|
|
<label for="autoMlgPymnt-y">지급</label>
|
|
</div>
|
|
<div class="custom-radio">
|
|
<input type="radio" id="autoMlgPymnt-n"
|
|
name="goodsRvwMlgPymntAt"
|
|
value="N" ${f:setChecked(resultMap.bbsVo.goodsRvwMlgPymntAt, 'N') }
|
|
onclick="fn_on_mlgAllDisabled(this.value)"/>
|
|
<label for="autoMlgPymnt-n">지급 안함</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>지급 조건</th>
|
|
<td colspan="2">
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<span class="mr-10">구매한 상품 후기</span>
|
|
<input type="text" class="input-text sm right number"
|
|
name="writngChrCnt" value="${resultMap.bbsVo.writngChrCnt }"
|
|
title="작성글자수" maxlength="3">
|
|
<span class="input-unit-text mr-8">자</span>
|
|
<span>이상 작성 시</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<c:set var="rowspan" value="2"/>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '07' }">
|
|
<c:set var="rowspan" value="1"/>
|
|
</c:if>
|
|
<tr>
|
|
<th rowspan="${rowspan }">지급 마일리지 설정</th>
|
|
<th class="border-left">포토</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm number right"
|
|
name="photoRvwMlgAccmlmnyAmt"
|
|
value="${resultMap.bbsVo.photoRvwMlgAccmlmnyAmt }"
|
|
title="해당 인풋에 대한 설명" maxlength="10">
|
|
<span class="input-unit-text">점</span>
|
|
</div>
|
|
유효기간:
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm right"
|
|
name="photoRvwMlgValidMtCnt"
|
|
value="${resultMap.bbsVo.photoRvwMlgValidMtCnt }"
|
|
title="해당 인풋에 대한 설명" maxlength="2">
|
|
<span class="input-unit-text">개월</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<c:if test="${resultMap.bbsVo.bbsTyCd eq '06' }">
|
|
<tr>
|
|
<th class="border-left">일반</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm right"
|
|
name="gnrlRvwMlgAccmlmnyAmt"
|
|
value="${resultMap.bbsVo.gnrlRvwMlgAccmlmnyAmt }"
|
|
title="포토후기마일리지적립금액" maxlength="10">
|
|
<span class="input-unit-text">점</span>
|
|
</div>
|
|
유효기간:
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm number right"
|
|
name="gnrlRvwMlgValidMtCnt"
|
|
value="${resultMap.bbsVo.gnrlRvwMlgValidMtCnt }"
|
|
title="포토후기마일리지유효월수" maxlength="2">
|
|
<span class="input-unit-text">개월</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</c:if>
|
|
<tr>
|
|
<th rowspan="2">추가 마일리지 설정</th>
|
|
<th class="border-left">추가 마일리지 지급 기간</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" id="datepicker-1" class="datepicker"
|
|
name="aditMlgPymntBgnDe" title="추가마일리지지급시작일자"
|
|
autocomplete="off"
|
|
value="${resultMap.bbsVo.aditMlgPymntBgnDe}">
|
|
<span class="tilde">~</span>
|
|
<input type="text" id="datepicker-2" class="datepicker"
|
|
name="aditMlgPymntEndDe" title="추가마일리지지급종료일자"
|
|
autocomplete="off"
|
|
value="${resultMap.bbsVo.aditMlgPymntEndDe}">
|
|
<span class="ml-5">동안은</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th class="border-left">마일리지</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm number right"
|
|
name="aditPymntMlgAccmlmnyAmt"
|
|
value="${resultMap.bbsVo.aditPymntMlgAccmlmnyAmt }"
|
|
title="추가지급마일리지적립금액" maxlength="10">
|
|
<span class="input-unit-text">점</span>
|
|
</div>
|
|
유효기간:
|
|
<div class="input-container">
|
|
<input type="text" class="input-text sm number right"
|
|
name="aditPymntMlgValidMtCnt"
|
|
value="${resultMap.bbsVo.aditPymntMlgValidMtCnt }"
|
|
title="추가지급마일리지유효월수" maxlength="2">
|
|
<span class="input-unit-text">개월</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
</c:if>
|
|
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 정보 추가 모달 -->
|
|
<div id="item-add" class="modal" style="max-width: 600px;">
|
|
<div class="modal-header">
|
|
<h4>정보 추가</h4>
|
|
</div>
|
|
|
|
<div class="modal-content" style="height: 400px;">
|
|
<input type="hidden" id="useAt" name="useAt" value=""/>
|
|
<input type="hidden" id="essntlAt" name="essntlAt" value=""/>
|
|
<div class="table-wrapper">
|
|
<table class="table">
|
|
<caption>정보 추가</caption>
|
|
<colgroup>
|
|
<col style="width: 26%;">
|
|
<col>
|
|
</colgroup>
|
|
<tbody>
|
|
<tr>
|
|
<th>항목유형</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<div class="select-box">
|
|
<select title="항목유형" id="event-type-select" name="itmPopTy"
|
|
onchange="fn_show_itemType(this.value);">
|
|
<c:forEach var="cgn019" items="${resultMap.codeContent[0].cgn019 }"
|
|
varStatus="status">
|
|
<option value="${cgn019.cd }"><c:out value="${cgn019.cdNm }"/></option>
|
|
</c:forEach>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>항목명</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<input class="input-text full" type="text" id="qesitmPopNm" name="qesitmPopNm"
|
|
title="항목명" placeholder="항목명을 입력하세요.">
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>항목설명</th>
|
|
<td>
|
|
<div class="td-inner">
|
|
<input class="input-text full" type="text" id="qesitmPopDc" name="qesitmPopDc"
|
|
title="항목설명" placeholder="항목설명을 입력하세요.">
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="event-type-select__content" data-eventtype="checkbox" id="event-content">
|
|
<th>항목값</th>
|
|
<td>
|
|
<div class="td-inner vertical">
|
|
<div class="table-wrapper">
|
|
<table class="table vertical tight">
|
|
<caption>항목값</caption>
|
|
<colgroup>
|
|
<col>
|
|
<col style="width:14%;">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>항목값</th>
|
|
<th>
|
|
<button type="button" class="circle-btn add" id="event-fn"
|
|
onclick="fn_add_itmbox('03');">
|
|
<span class="visually-hidden">추가</span>
|
|
</button>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="add-option">
|
|
<tr>
|
|
<td class="left">
|
|
<!-- 초기값 세팅 -->
|
|
<div class="b-checkbox-container flex-nowrap" id="checkbox">
|
|
<label class="b-checkbox checkbox">
|
|
<input type="checkbox" disabled>
|
|
<span class="check"></span>
|
|
<span class="control-label"></span>
|
|
</label>
|
|
<input type="text" class="input-text xl" name="itmCnPopArr"
|
|
title="항목값" placeholder="항목값을 입력하세요.">
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<button type="button" class="circle-btn delete"
|
|
onclick="fn_remove_box(this)">
|
|
<span class="visually-hidden">삭제</span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
<tr id="add-optionNoData" style="display: none;">
|
|
<td>입력 항목이 없습니다.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a href="#" rel="modal:close" class="btn outline" id="itm-add-close">취소</a>
|
|
<button type="button" class="btn primary" onclick="fn_collect_params();">확인</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- sms 치환코드 팝업 -->
|
|
<div id="sms-alternative-code-modal" class="modal" style="max-width: 450px;">
|
|
<div class="modal-header">
|
|
<h4>사용 가능한 치환코드</h4>
|
|
</div>
|
|
|
|
<div class="modal-content" style="height: 340px;">
|
|
<div class="table-wrapper">
|
|
<h3>사용가능한 치환코드입니다.</h3>
|
|
<table class="table vertical">
|
|
<caption>사용 가능한 치환코드</caption>
|
|
<colgroup>
|
|
<col>
|
|
<col>
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>치환 코드</th>
|
|
<th>설명</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<c:if test="${not empty resultMap.sms.smsSubstList}">
|
|
<c:forEach var="smsSubstList" items="${resultMap.sms.smsSubstList}" varStatus="status">
|
|
<c:choose>
|
|
<c:when test="${smsSubstList.formDtlDvCd eq '01'}">
|
|
<tr class="smsSubListReg">
|
|
<td>${smsSubstList.substCd}</td>
|
|
<td>${smsSubstList.dc }</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr class="smsSubListAnsw">
|
|
<td>${smsSubstList.substCd}</td>
|
|
<td>${smsSubstList.dc }</td>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:if>
|
|
<c:if test="${empty resultMap.sms.smsSubstList}">
|
|
<tr>
|
|
<td colspan="100%">사용할 수 있는 치환코드가 없습니다</td>
|
|
</tr>
|
|
</c:if>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a href="#" rel="modal:close" class="btn outline" id="itm-add-close">확인</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- kakao 치환코드 팝업 -->
|
|
<div id="kakao-alternative-code-modal" class="modal" style="max-width: 450px;">
|
|
<div class="modal-header">
|
|
<h4>사용 가능한 치환코드</h4>
|
|
</div>
|
|
<div class="modal-content" style="height: 340px;">
|
|
<div class="table-wrapper">
|
|
<h3>사용가능한 치환코드입니다.</h3>
|
|
<table class="table vertical">
|
|
<caption>사용 가능한 치환코드</caption>
|
|
<colgroup>
|
|
<col>
|
|
<col>
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>치환 코드</th>
|
|
<th>설명</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<c:choose>
|
|
<c:when test = "${not empty resultMap.kakao.kakaoSubstList}">
|
|
<c:forEach var="kakaoSubstList" items="${resultMap.kakao.kakaoSubstList}" varStatus="status">
|
|
<c:choose>
|
|
<c:when test="${kakaoSubstList.formDtlDvCd eq '01'}">
|
|
<tr class="kakaoSubListReg">
|
|
<td>${kakaoSubstList.substCd}</td>
|
|
<td>${kakaoSubstList.dc }</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr class="kakaoSubListAnsw">
|
|
<td>${kakaoSubstList.substCd}</td>
|
|
<td>${kakaoSubstList.dc }</td>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr>
|
|
<td colspan="100%">사용할 수 있는 치환코드가 없습니다</td>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a href="#" rel="modal:close" class="btn outline" id="itm-add-close">확인</a>
|
|
</div>
|
|
</div>
|
|
|
|
<form id="backUpData" method="post">
|
|
<input type="hidden" name="srchBbsTyCd" value="${resultMap.srchList[0].srchBbsTyCd }"/>
|
|
<input type="hidden" name="srchSknTyCd" value="${resultMap.srchList[0].srchSknTyCd }"/>
|
|
<input type="hidden" name="srchWord" value="${resultMap.srchList[0].srchWord }"/>
|
|
<input type="hidden" name="pageUnit" value="${resultMap.srchList[0].pageUnit}"/>
|
|
<input type="hidden" name="pageIndex" value="${resultMap.srchList[0].pageIndex }"/>
|
|
<input type="hidden" name="bbsId" value="${resultMap.bbsVo.bbsId }"/>
|
|
<input type="hidden" name="pageDv" value=""/>
|
|
</form>
|
|
</main>
|
|
</body>
|
|
<script type="text/javascript">
|
|
/* ********************************************************
|
|
* 리스트 이동
|
|
******************************************************** */
|
|
const fn_backTo_list = function () {
|
|
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsListInqireForm"/>');
|
|
$('#backUpData').submit();
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시판 복사
|
|
******************************************************** */
|
|
const fn_copy_detail = function (_target) {
|
|
$('#backUpData').find('[name=pageDv]').val("C");
|
|
$('#backUpData').find('[name=bbsId]').val(_target);
|
|
$('#backUpData').attr('action', '<c:url value="/mngr/bbs/bbsmngr/selectBbsCopyForm"/>');
|
|
if (!confirm('게시판을 <spring:message code="confirm.common.copy"/>')) return;
|
|
$('#backUpData').submit();
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시판 삭제
|
|
******************************************************** */
|
|
const fn_delete_noticeBoard = function (_arg) {
|
|
|
|
if (!confirm('게시판을 <spring:message code="confirm.common.delete"/>')) return;
|
|
const url = '<c:url value="/mngr/bbs/bbsmngr/deleteBbsDel?bbsId="/>' + _arg;
|
|
|
|
$.ajax({
|
|
type: 'get',
|
|
url: url,
|
|
success: function (data) {
|
|
let result = JSON.parse(data.resBody.result).message;
|
|
if (result === 'ok') {
|
|
location.href = '<c:url value="/mngr/bbs/bbsmngr/selectBbsListInqireForm" />';
|
|
} else {
|
|
alert('<spring:message code="fail.common.delete"/>');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시판 수정
|
|
******************************************************** */
|
|
const fn_update_noticeBoard = function (_target) {
|
|
if (isChkd_Dup === false) {
|
|
alert('아이디 중복 체크해 주세요.');
|
|
$('[name=bbsId]').focus();
|
|
return;
|
|
}
|
|
|
|
// 폼 데이터를 배열로 가져옴
|
|
let paramsArray = $('[name=updForm]').serializeArray();
|
|
|
|
// 특정 name 제거
|
|
paramsArray = paramsArray.filter(function (item) {
|
|
return item.name !== 'qesitmEssntlAt_i';
|
|
});
|
|
|
|
paramsArray = paramsArray.filter(function (item) {
|
|
return item.name !== 'qesitmUseAt_i';
|
|
});
|
|
|
|
//자주쓰는 답변 ,로 인한 배열 나눔 방지
|
|
$.each(paramsArray, function(i, field) {
|
|
if (field.name === 'cnArr') {
|
|
field.value = encodeURIComponent(field.value); // 인코딩 처리
|
|
}
|
|
});
|
|
|
|
// 새로운 값 추가
|
|
$("input[name='qesitmEssntlAt_i']").each(function () {
|
|
let chkVal = 'N';
|
|
if ($(this).is(":checked")) {
|
|
chkVal = 'Y'
|
|
}
|
|
paramsArray.push({name: 'qesitmEssntlAt_i', value: chkVal});
|
|
});
|
|
|
|
// 새로운 값 추가
|
|
$("input[name='qesitmUseAt_i']").each(function () {
|
|
let chkVal = 'N';
|
|
if ($(this).is(":checked")) {
|
|
chkVal = 'Y'
|
|
}
|
|
paramsArray.push({name: 'qesitmUseAt_i', value: chkVal});
|
|
});
|
|
|
|
|
|
// 배열을 URL 인코딩된 문자열로 변환
|
|
let params = $.param(paramsArray);
|
|
|
|
const url = '<c:url value="/mngr/bbs/bbsmngr/updateBbsUpdt"/>';
|
|
if (confirm('게시판을 <spring:message code="confirm.common.update"/>')) {
|
|
$.ajax({
|
|
type: 'post',
|
|
url: url,
|
|
data: params,
|
|
success: function (data) {
|
|
alert('<spring:message code="success.common.update"/>');
|
|
$('#backUpData').find('[name=pageDv]').val("U");
|
|
location.reload();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
/* ********************************************************
|
|
* 게시판 아이디 중복 확인
|
|
******************************************************** */
|
|
const fn_check_bbsId = function () {
|
|
|
|
let bbsId = $('[name=sopmalCd]').val() + $('[name=bbsId]').val();
|
|
const url = '/mngr/bbs/bbsmngr/selectBbsIdDplctCnfirm?bbsId=' + bbsId;
|
|
|
|
$.ajax({
|
|
type: 'get',
|
|
url: url,
|
|
success: function (data) {
|
|
|
|
if (JSON.parse(data.resBody.result).message === 'impossible') {
|
|
alert('\"' + bbsId + '\"는 중복된 아이디 입니다.');
|
|
}
|
|
if (JSON.parse(data.resBody.result).message === 'possible') {
|
|
isChkd_Dup = true;
|
|
alert('\"' + bbsId + '\"는 사용 가능한 아이디 입니다.');
|
|
}
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
|
|
</html>
|