초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,314 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<!DOCTYPE html>
<html>
<%--댓글 수--%>
<c:set value="${resultMap.cmList.cmCnt}" var="cmCnt"/>
<%--댓글 목록--%>
<c:set value="${resultMap.cmList.cmList}" var="cmList"/>
<%--작성자 정보 추출--%>
<c:set value="${resultMap.cmList.wrterList}" var="wrterList"/>
<%--작성자 정보 추출--%>
<c:set value="${resultMap.regusrInfo}" var="regusrInfo"/>
<%--게시글 정보 --%>
<c:set value="${cmVO}" var="cmVO"/>
<%--게시판 설정 --%>
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
<%-- 게시글 댓글 목록 START --%>
<p id="comment_container"></p>
<input type="hidden" id="cmCntInfo" value="<c:out value = "${ resultMap.paginationInfo.totalRecordCount }"/>">
<input type="hidden" id="mbrInnb" value="<c:out value = "${ resultMap.user.userInnb}"/>">
<div class="form-control-container mb-10 dtlCmDiv">
<div class="left">
<span class="fs-16 fw-500" id="cmCnt">댓글(<fmt:formatNumber value="${cmCnt}" pattern="#,###"/>)</span>
</div>
<div class="center">
</div>
<div class="right">
<button type="button" class="btn xsm dark"
onclick="fn_delete_cm('', '<c:out value="${cmVO.bbscttInnb}"/>', 'many','<c:out
value="${cmVO.bbsId}"/>')">선택 <spring:message code="button.delete"/></button>
</div>
</div>
<div class="table-wrapper mb-40 dtlCmDiv">
<table class="table vertical tight">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 60px;">
<col style="width: 15%;">
<col style="width: 50%;">
<col style="width: 10%;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all">
<input type="checkbox" value="" id="cmListChkA">
<span class="check"></span>
</label>
</th>
<th>작성자</th>
<th>내용</th>
<th>등록일</th>
<th>관리</th>
</tr>
</thead>
<%-- 댓글 목록 ajax START--%>
<tbody id="cmListDiv">
<c:choose>
<c:when test="${not empty cmList}">
<c:forEach items="${cmList}" var="cmList" varStatus="status">
<tr class="cmTr">
<td>
<c:if test="${cmList.useAt eq 'Y'}">
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="${ cmList.cmInnb }" name="selectedCmRow"
class="cmListChk">
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<span class="comment-id">
<i class="icon icon_comment-user"></i>
<span class="comment-id__name">
<c:choose>
<%--비회원--%>
<c:when test = "${cmList.regusrDvCd eq '99'}">
<c:out value="${cmList.regusrNm}"/>[비회원]
</c:when>
<%--관리자--%>
<c:when test = "${cmList.regusrDvCd eq '02'}">
<c:out value="${ cmList.mngrNm}"/>(<c:out value="${ cmList.aRegusrId}"/>)
</c:when>
<%--회원--%>
<c:when test="${cmList.regusrDvCd eq '01'}">
<button type="button" class="crmBtn" data-info="info01"
onclick = "fn_select_crm_mini_info(this,'<c:out value="${cmList.mbrInnb}"/>',
'<c:out value="${cmList.mbrDvCd}"/>','#modalDiv');">
<span class="gray-12">
<c:out value="${cmList.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${cmList.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${cmList.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${cmList.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i><span class="fw-500 blue-7"><c:out value="${cmList.regusrId}"/></span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out value="${cmList.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${cmList.mbrGradNm}"/></span>)
</button>
</c:when>
</c:choose>
</span>
<c:if test="${ cmList.newAt eq 'Y' }"><i
class="icon icon_new-badge"></i></c:if>
<span class="comment-id__ip"><c:if
test="${ not empty cmList.ip }">(IP:<c:out value="${ cmList.ip}"/>)</c:if></span>
</span>
</td>
<td class="text-left cmListCn">
<div class="comment-write-container reply">
<c:out value="${cmList.cn}"/>
<c:if test="${ cmList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</div>
</td>
<td><c:out value="${ cmList.registDt }"/><br></td>
<c:set var="displaynone" value='style="display:none"'/>
<c:if test="${ cmList.useAt eq 'Y' }">
<c:set var="displaynone" value=""/>
</c:if>
<td>
<div class="manage-btn-container dtlCmBtnDiv">
<c:if test="${cmList.useAt eq 'Y'}">
<button type="button" class="btn xsm dark"
onclick="fn_delete_cm('<c:out value="${ cmList.cmInnb }"/>', '<c:out
value="${ cmList.bbscttInnb }"/>', this,'<c:out
value="${ cmList.bbsId}"/>');">
<spring:message code="button.delete"/>
</button>
<button type="button" class="btn xsm outline primary" secret-at = "<c:out value="${ cmList.secretBbscttAt }"/>" cm-innb = "<c:out value="${ cmList.cmInnb }"/>" onclick="fn_select_update_cm(this, 'u');">
<spring:message code = "button.update"/>
</button>
<button type="button" class="btn xsm primary closeBtn" cm-innb = "<c:out value="${ cmList.cmInnb }"/>" onclick="fn_select_regist_cm_answ(this, 'open');">댓글</button>
</c:if>
</div>
</td>
</tr>
<c:if test="${not empty resultMap.cmList.cmAnswList}">
<c:forEach var="item" items="${resultMap.cmList.cmAnswList}" varStatus="status1">
<c:if test="${cmList.cmInnb eq item.parntsCmInnb}">
<tr class = "cmAnswTr">
<td>
<c:if test="${item.useAt eq 'Y'}">
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="${ item.cmInnb }" name="selectedCmRow"
class="itemChk">
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<span class="comment-id">
<i class="icon icon_comment-user"></i>
<span class="comment-id__name">
<c:choose>
<%--비회원--%>
<c:when test = "${item.regusrDvCd eq '99'}">
<c:out value="${item.regusrNm}"/>[비회원]
</c:when>
<%--관리자--%>
<c:when test = "${item.regusrDvCd eq '02'}">
<c:out value="${ item.mngrNm}"/>(<c:out value="${ item.aRegusrId}"/>)
</c:when>
<%--회원--%>
<c:when test="${item.regusrDvCd eq '01'}">
<button type="button" class="crmBtn" data-info="info01"
onclick="fn_select_crm_mini_info
(this,'<c:out value="${item.mbrInnb}"/>',
'<c:out value="${item.mbrDvCd}"/>','#modalDiv');">
<span class="gray-12">
<c:out value="${item.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${item.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${item.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${item.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i><span class="fw-500 blue-7"><c:out value="${item.regusrId}"/></span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out value="${item.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${item.mbrGradNm}"/></span>)
</button>
</c:when>
</c:choose>
</span>
<c:if test="${ item.newAt eq 'Y' }"><i
class="icon icon_new-badge"></i></c:if>
<span class="comment-id__ip"><c:if
test="${ not empty item.ip }">(IP:<c:out value="${item.ip}"/>)</c:if></span>
</span>
</td>
<td class="text-left cmListCn">
<div class="comment-write-container reply">
<span class="comment-id">
<c:out value="${item.cn}"/>
</span>
<c:if test="${ item.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</div>
</td>
<td><c:out value="${ item.registDt }"/><br></td>
<td>
<div class="manage-btn-container dtlCmBtnDiv">
<c:if test = "${item.useAt eq 'Y'}">
<button type="button" class="btn xsm dark" onclick="fn_delete_cm('<c:out value="${ item.cmInnb }"/>', '<c:out value="${ item.bbscttInnb }"/>', this,'<c:out value="${ item.bbsId}"/>');">
<spring:message code="button.delete"/>
</button>
<button type="button" class="btn xsm outline primary cmAnswUpdt"
secret-at="<c:out value="${ item.secretBbscttAt }"/>"
cm-innb="<c:out value="${ item.cmInnb }"/>"
onclick="fn_select_update_cm_answ(this, 'u');">
<spring:message code="button.update"/></button>
<button type="button" class="btn xsm primary" style="visibility:hidden">버튼</button>
</c:if>
</div>
</td>
</tr>
</c:if>
</c:forEach>
</c:if>
<%--댓글 답변 등록 START--%>
<tr class="cmFormTr" style="display:none;">
<td colspan="5">
<table class="box" style="width:100%">
<colgroup>
<col>
<col width="1">
</colgroup>
<tbody>
<tr>
<td colspan="5" class="">
<div class="comment-write-container reply">
<span class="comment-id">
<i class="icon icon_comment-user"></i>
<span class="comment-id__name"><c:out
value="${regusrInfo.regusrNm}"/></span>
<span class="comment-id__id">( <c:out
value="${regusrInfo.regusrId}"/> )</span>
<span class="comment-id__ip">(IP: <c:out value="${ip}"/>)</span>
</span>
<div class="comment-write">
<input type="hidden" name="bbscttInnb"
value="<c:out value ='${cmList.bbscttInnb}'/>"/>
<input type="hidden" name="bbsId"
value="<c:out value ='${resultMap.bbsInfo.bbsId}'/>"/>
<input type="hidden" name="cmInnb"
value="<c:out value ='${cmList.cmInnb}'/>"/>
<div class="comment-write__textarea-container">
<textarea class="comment-write__textarea" rows="5"
placeholder="댓글을 입력하세요." title="댓글 입력"
name="cn"></textarea>
</div>
<button class="comment-write__button"
onclick="fn_regist_cm('re', this);"><spring:message code = "button.insert"/></button>
</div>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="secretBbscttAt" value="N"
onclick="fn_check_secret_cm(this);">
<span class="check"></span>
<span class="control-label">비밀 댓글</span>
</label>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<%--댓글 답변 등록 END--%>
<%--댓글 목록 ajax END--%>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<input type="hidden" id="cmPageIndex" name="pageIndex" value="${cmVO.pageIndex}"/>
<div class="pagination__container mb-40">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_make_cm" />
</div>
<%-- 게시글 댓글 START --%>
<script src="/mngr/js/script.js" defer=""></script>
<div id = "cm"></div>
</html>

View File

@@ -0,0 +1,214 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : NoticeListRForm.jsp
Description : 공지 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-05 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 삭제</button>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>이벤트 게시글 목록</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: auto;">
<col style="width: 5%;" class = "itm">
<col style="width: 6%">
<col style="width: 11%">
<col style="width: 11%">
<col style="width: 3%">
<col style="width: 11%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class = "itm">분류</th>
<th>온/오프라인</th>
<th>시작/종료일</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<c:out value="${resultList.rnum}" />
</td>
<td>
<c:out value="${ resultList.mngrNm }" />(<c:out value="${ resultList.maskingRegusrId }" />)
</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/><c:if test = "${resultList.cmtCnt > 0}">(<c:out value="${ resultList.cmtCnt}"/>)</c:if>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.<br>[<c:out value="${ resultList.updtDt}"/>]<c:if test = "${resultList.cmtCnt > 0}">(<c:out value="${ resultList.cmtCnt}"/>)</c:if></span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td class = "itm"><c:out value="${resultList.answCn}" /></td>
<td>
<c:choose>
<c:when test = "${resultList.onlineAt eq 'Y' && resultList.oflneAt eq 'N'}">온라인</c:when>
<c:when test = "${resultList.onlineAt eq 'N' && resultList.oflneAt eq 'Y'}">오프라인</c:when>
<c:when test = "${resultList.onlineAt eq 'Y' && resultList.oflneAt eq 'Y'}">온/오프라인</c:when>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 1}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
<span>상시</span>
</c:when>
<c:when test= "${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 2}">
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntceEndDe }"/></span>
</c:when>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 3}">
<c:choose>
<c:when test = " ${resultList.ntcePdSetupAt eq 'N'}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
</c:when>
<c:otherwise>
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
</c:otherwise>
</c:choose>
<span><c:out value="${ resultList.ntceEndDe }"/></span>[종료]
</c:when>
<c:otherwise>
<span>노출 안함</span>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' }">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.update"/></button>
</c:if>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary outline" onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>', '<c:out value="${ resultList.answBbscttInnb}"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.update"/></button>
</c:when>
<c:when test = "${empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary" onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.insert"/></button>
</c:when>
</c:choose>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,216 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<%--
Class Name : NoticeListRForm.jsp
Description : 공지 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-05 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit"
varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>"
<c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>>
<c:out value="${ pageUnit }"/>개씩
</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 삭제</button>
</div>
<div class="center">
</div>
<div class="right">
<button type="button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>이벤트 게시글 목록</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: auto;">
<col style="width: 10%" class="itm">
<col style="width: 11%">
<col style="width: 6%">
<col style="width: 3%">
<col style="width: 11%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all">
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class="itm">분류</th>
<th>노출 기간</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<c:out value="${resultList.rnum}"/>
</td>
<td>
<c:out value="${ resultList.mngrNm }"/>(<c:out
value="${ resultList.maskingRegusrId }"/>)
</td>
<td><c:out value="${ resultList.ip }"/></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb="<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id="<c:out value="${ resultList.bbsId }"/>"
regusr-dv="02">
<c:choose>
<c:when test="${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/><c:if test="${resultList.cmtCnt > 0}">
(<c:out value="${ resultList.cmtCnt}"/>)</c:if>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.<br>
[<c:out value="${ resultList.updtDt}"/>]
<c:if test="${resultList.cmtCnt > 0}">
(<c:out value="${ resultList.cmtCnt}"/>)
</c:if>
</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td class="itm"><c:out value="${resultList.answCn}"/></td>
<td>
<c:choose>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 1}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
<span>상시</span>
</c:when>
<c:when test= "${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 2}">
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntceEndDe }"/></span>
</c:when>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 3}">
<c:choose>
<c:when test = " ${resultList.ntcePdSetupAt eq 'N'}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
</c:when>
<c:otherwise>
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
</c:otherwise>
</c:choose>
<span><c:out value="${ resultList.ntceEndDe }"/></span>[종료]
</c:when>
<c:otherwise>
<span>노출 안함</span>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' }">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');"><spring:message code="button.update"/></button>
</c:if>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary outline" onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>', '<c:out value="${ resultList.answBbscttInnb}"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.update"/></button>
</c:when>
<c:when test = "${empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary" onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.insert"/></button>
</c:when>
</c:choose>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_select_bbsctt_list"/>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,197 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : FaqListR.jsp
Description : Faq 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-20 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택<spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: auto;">
<col style="width: 5%;" class = "itm">
<col style="width: 11%;">
<col style="width: 11%">
<col style="width: 5%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class = "itm">분류</th>
<th>노출</th>
<th>등록일</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<c:out value="${resultList.rnum}" />
</td>
<td>
<c:out value="${ resultList.mngrNm }" />(<c:out value="${ resultList.maskingRegusrId }" />)
</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv="02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td class = "itm"><c:out value="${resultList.answCn}" /></td>
<td>
<label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="Y" name="expsrAt" class = "expsrAt" bbsctt-innb = "<c:out value = '${resultList.bbscttInnb}'/>"
<c:if test ="${ resultList.expsrAt eq 'Y'}">checked</c:if>>
<span class="check"></span>
</label>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' }">
<button type="button" class="btn xsm outline primary"
onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>'
,'<c:out value="${ resultList.bbsId }"/>','');">
<spring:message code="button.update"/>
</button>
<c:if test="${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${ resultList.answAt eq 'Y'}">
<button type="button" class="btn xsm primary outline"
onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>'
,'<c:out value="${ resultList.boardAnswInnb }"/>'
,'<c:out value="${ resultList.bbsId }"/>','');">
답변 <spring:message code="button.update"/>
</button>
</c:when>
<c:when test="${ resultList.answAt eq 'N'}">
<button type="button" class="btn xsm primary"
onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>'
,'<c:out value="${ resultList.bbsId }"/>','');">
답변 <spring:message code="button.insert"/>
</button>
</c:when>
</c:choose>
</c:if>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="14"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,264 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GnrlBbscttAnswRegistPopupC.jsp
Description : 일반 게시글 답변 등록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<script>
$(document).ready(function(){
let mbtlnb = $("#answMbtlnb").text().trim();
mbtlnb= fn_format_mbtlnb(mbtlnb);
console.log(mbtlnb);
$("#answMbtlnb").text(mbtlnb);
/************************************************
자주쓰는 답변 이벤트
*************************************************/
//자주쓰는 답변 적용(수정폼)
$('#rpusAnswReg').on('change', function () {
//자주쓰는 답변 고유번호
const rpuseAnswInnb = $(this).val();
let rpuseList = ${resultMap.map.rpusAnswGson};
let cn = '';
if (!fn_is_empty(rpuseList)) {
cn = rpuseList.find(function (item) {
return item.rpuseAnswInnb == rpuseAnswInnb;
});
}
fn_apply_cn("#cnAnswReg", cn.cn.replace(/\n/g, '<br>'));
});
});
</script>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<div id="board-list-answer-registration" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>일반 답변 등록</h4>
</div>
<div class="modal-content">
<c:set var="bbsctt" value="${ resultMap.map.bbscttInfo }" /> <%--게시글 정보--%>
<c:set var="regusrInfo" value="${ resultMap.regusrInfo }" /><%--작성자 정보--%>
<c:set var="bbsInfo" value="${ resultMap.bbsInfo }" /><%--게시판 설정 정보--%>
<div class="form-control-container mb-10">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<form id="answRegForm">
<%--게시글발송방식코드--%>
<input type="hidden" name="bbscttSndngMthCd" value="<c:out value='${ bbsInfo.bbscttSndngMthCd }'/>"/>
<%--게시판아이디--%>
<input type="hidden" name="bbsId" value="<c:out value= '${ bbsctt.bbsId }'/>"/>
<%--부모게시글고유번호--%>
<input type="hidden" name="parntsBbscttInnb" value="<c:out value= '${bbsctt.bbscttInnb}'/>"/>
<%--부모게시글 제목--%>
<input type="hidden" name="sj" value="<c:out value= '${bbsctt.sj}'/>"/>
<%--부모게시글 작성자 이름--%>
<input type="hidden" name="regusrNm" value="<c:out value= '${bbsctt.maskingRegusrNm}'/>"/>
<%--게시판 명--%>
<input type="hidden" name="bbsNm" value="<c:out value= '${bbsInfo.bbsNm}'/>"/>
<%--게시글 작성자 아이디--%>
<input type="hidden" name="answRegusrId" value="${bbsctt.regusrId}"/>
<%--게시글 작성자 고유번호--%>
<input type="hidden" name="answRegusr" value="${bbsctt.regusr}"/>
<%--게시글 작성자 명--%>
<input type="hidden" name="answRegusrNm" value="${bbsctt.regusrNm}"/>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<tr>
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
<th>상품정보</th>
<td>
<div class="td-inner">
<c:forEach var = "goods" items = "${ resultMap.map.goods}">
<div class="product-search-box__product">
<img src="<c:out value= '${cdnurl}${goods.img}'/>" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'" alt="${goods.img}" width="64" >
<div class="product-search-box__detail">
<p class="product-search-box__detail-name">
<c:out value= '${goods.goodsNm}'/>
</p>
<p class="product-search-box__detail-price">
<fmt:formatNumber var="slepric" value="${goods.slepric}" pattern="#,###.##"/>
<c:out value= '${slepric}'/>
</p>
</div>
</div>
</c:forEach>
</div>
</td>
</c:if>
<th>작성자</th>
<td>
<div class="td-inner">
<c:choose>
<%--회원--%>
<c:when test="${bbsctt.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${bbsctt.regusr}'/>'
,'<c:out value='${bbsctt.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${bbsctt.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${bbsctt.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${bbsctt.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${bbsctt.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${bbsctt.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7">
<c:out value="${bbsctt.regusrId}"/>
</span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${bbsctt.mbrGradNm}"/></span>)
</c:when>
<%--관리자--%>
<c:when test="${bbsctt.regusrDvCd eq '02'}">
<c:out value="${ bbsctt.mngrNm}"/>(<c:out value="${bbsctt.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbsctt.regusrDvCd eq '03'}">
<c:out value="${ bbsctt.regusrNm}"/>
</c:when>
<%--입점사--%>
<c:when test="${bbsctt.regusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbsctt.regusrDvCd eq '99'}">
<c:out value="${bbsctt.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</div>
</td>
</tr>
<tr>
<th>날짜</th>
<td>
<div class="td-inner">
<c:out value= '${ bbsctt.registDt }'/>
</div>
</td>
<th>IP</th>
<td>
<div class="td-inner">
<c:out value= '${ bbsctt.ip }'/>
</div>
</td>
</tr>
<tr>
<th>제목</th>
<td>
<div class="td-inner">
<c:out value= '${bbsctt.sj}'/>
</div>
</td>
<%--답변 sms 수신 여부--%>
<c:if test = "${bbsInfo.bbscttSndngMthCd ne '03'}">
<th>SMS수신 <label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="Y" name="answSmsRecptn"
<c:if test = "${bbsctt.answSmsRecptn eq 'Y'}">checked</c:if> disabled>
<span class="check"></span>
</label></th>
<td>
<div class="td-inner" id="answMbtlnb">
<c:out value="${bbsctt.answMbtlnb}"/>
</div>
</td>
</c:if>
</tr>
<tr>
<th>내용</th>
<td colspan="3">
<div class="td-inner" id="answCnDiv">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container mb-10">
<div class="left">
<span class="fs-16 fw-500">답변</span>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>자주쓰는 답변</th>
<td>
<div class="td-inner">
<div class="select-box">
<select class="md" id="rpusAnswReg">
<option value="">자주 쓰는 답변</option>
<c:forEach var="rpusAnswList" items="${ resultMap.map.rpusAnswList }" varStatus="">
<option value="${ rpusAnswList.rpuseAnswInnb }"><c:out value= '${ rpusAnswList.maskingCn }'/></option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
<tr>
<th>답변 내용</th>
<td>
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" rows="10" id="cnAnswReg"></textarea>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" id="btn_close_modalBC" rel="modal:close" class="btn outline"><spring:message code="button.cancel"/></a>
<button class="btn primary" onclick="fn_regist_answ('<c:out value= '${bbsctt.bbscttInnb}'/>','<c:out value= '${dtlPop}'/>');"><spring:message code="button.insert"/></button>
</div>
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,254 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GnrlBbscttAnswUpdtPopupU.jsp
Description : 일반 게시글 답변 수정 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<c:set var="bbsctt" value="${ resultMap.map.bbsctt }" />
<c:set var="wrter" value="${ resultMap.map.wrter }" />
<c:set var="answ" value="${ resultMap.map.answ }" />
<c:set var="bbsInfo" value="${ resultMap.bbsInfo }" />
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<script>
$(document).ready(function(){
let mbtlnb = $("#answUpdtMbtlnb").text().trim();
mbtlnb = fn_format_mbtlnb(mbtlnb);
$("#answUpdtMbtlnb").text(mbtlnb);
/************************************************
자주쓰는 답변 이벤트
*************************************************/
//자주쓰는 답변 적용(수정폼)
$('#rpusAnswUpdt').on('change', function () {
//자주쓰는 답변 고유번호
const rpuseAnswInnb = $(this).val();
let rpuseList = ${resultMap.map.rpusAnswGson};
let cn = '';
if(!fn_is_empty(rpuseList)){
cn = rpuseList.find(function(item) {
return item.rpuseAnswInnb == rpuseAnswInnb;
});
}
fn_apply_cn("#cnAnswUpdt",cn.cn.replace(/\n/g, '<br>'));
});
});
</script>
<div id="board-list-answer-update" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>일반 답변 수정</h4>
</div>
<div class="modal-content">
<div class="form-control-container mb-10">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<form id="answUpdtForm">
<input type="hidden" name="setupInfoInnb" value="${ bbsInfo.setupInfoInnb }"/>
<input type="hidden" name="slangFlterUseAt" value="${bbsInfo.slangFlterUseAt}"/>
<input type="hidden" name="bbscttInnb" value="${answ.bbscttInnb }"/>
<input type="hidden" name="bbsId" value="${ bbsctt.bbsId }"/>
<input type="hidden" name="parntsBbscttInnb" value="${bbsctt.bbscttInnb }"/>
<input type="hidden" name="sj" value="${answ.sj }"/>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<tr>
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
<th>상품정보</th>
<td>
<div class="td-inner">
<c:forEach var = "goods" items = "${ resultMap.map.goods}">
<div class="product-search-box__product">
<img src="<c:out value="${cdnurl}${goods.img}"/>" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'" alt="${goods.img}" width="64" >
<div class="product-search-box__detail">
<p class="product-search-box__detail-name">
<c:out value="${goods.goodsNm}"/>
</p>
<p class="product-search-box__detail-price">
<fmt:formatNumber var="slepric" value="${goods.slepric}" pattern="#,###.##"/>
<c:out value="${slepric}"/>
</p>
</div>
</div>
</c:forEach>
</div>
</td>
</c:if>
<th>작성자</th>
<td >
<div>
<c:choose>
<%--회원--%>
<c:when test="${bbsctt.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${bbsctt.regusr}'/>'
,'<c:out value='${bbsctt.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${bbsctt.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${bbsctt.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${bbsctt.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${bbsctt.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${bbsctt.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out
value="${bbsctt.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8">
<c:out value="${bbsctt.mbrGradNm}"/>
</span>)
</button>
</c:when>
<%--관리자--%>
<c:when test="${bbsctt.regusrDvCd eq '02'}">
<c:out value="${ bbsctt.mngrNm}"/>(<c:out
value="${bbsctt.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbscttInfo.regusrDvCd eq '03'}">
<c:out value="${ bbsctt.regusrNm}"/>
</c:when>
<%--입점사--%>
<c:when test="${bbsctt.regusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbsctt.regusrDvCd eq '99'}">
<c:out value="${bbsctt.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</div>
</td>
</tr>
<tr>
<th>날짜</th>
<td>
<div class="td-inner">
${ bbsctt.registDt }
</div>
</td>
<th>IP</th>
<td>
<div class="td-inner">
${ bbsctt.ip }
</div>
</td>
</tr>
<tr>
<th>제목</th>
<td>
<div class="td-inner">
${ bbsctt.sj }
</div>
</td>
<%--답변 sms 수신 여부--%>
<c:if test="${bbsInfo.bbscttSndngMthCd ne '03'}">
<th>SMS수신 <label class="b-checkbox checkbox is-medium">
<input type="checkbox" value="Y" name="answSmsRecptn"
<c:if test="${bbsctt.answSmsRecptn eq 'Y'}">checked</c:if> disabled>
<span class="check"></span>
</label></th>
<td>
<div class="td-inner" id="answUpdtMbtlnb">
<c:out value="${bbsctt.answMbtlnb}"/>
</div>
</td>
</c:if>
</tr>
<tr>
<th>내용</th>
<td colspan="3">
<div class="td-inner" id="answCnDivU">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container mb-10">
<div class="left">
<span class="fs-16 fw-500">답변</span>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>자주쓰는 답변</th>
<td>
<div class="td-inner">
<div class="select-box">
<select class="md" id="rpusAnswUpdt" style="white-space: pre-wrap;">
<option value="">자주 쓰는 답변</option>
<c:forEach var="rpusAnswList" items="${ resultMap.map.rpusAnswList }" varStatus="">
<option value="${ rpusAnswList.rpuseAnswInnb}">${rpusAnswList.maskingCn}</option>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
<tr>
<th>답변 내용</th>
<td>
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" rows="10" id="cnAnswUpdt"><c:out value="${answ.cn}"/></textarea>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" id="btn_close_modalBC" rel="modal:close" class="btn outline"><spring:message code="button.cancel"/></a>
<button class="btn primary" onclick="fn_update_answ('<c:out value= '${bbsctt.bbscttInnb}'/>','<c:out value= '${dtlPop}'/>');"><spring:message code="button.update"/></button>
</div>
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,694 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<%@ page import="java.util.Date" %>
<%--
Class Name : GnrlBbscttDtlPopupR.jsp
Description : 일반 게시글 상세 조회 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<head>
<script>
$(document).ready(function () {
console.log('urlval 태그' + $('.urlVal').length);
const pcDomnAdres = document.querySelector('.header__logo').getAttribute('data-pcurl');
let urlVal = '';
const bbscttInnb = document.getElementsByName("script_bbscttInnb")[0]?.value || "";
const bbsId = document.getElementsByName("bbsId")[0]?.value || "";
const bbsTyCd = document.getElementsByName("bbsTyCd")[0]?.value || "";
const sopmalCd = document.getElementsByName("sopmalCd")[0]?.value || "";
const bbsUseAt = document.getElementsByName("bbsUseAt")[0]?.value || "";
const npayBbscttSnb = document.getElementsByName("npayBbscttSnb")[0]?.value || "";
console.log("bbscttInnb:", bbscttInnb);
console.log("bbsId:", bbsId);
console.log("bbsTyCd:", bbsTyCd);
console.log("sopmalCd:", sopmalCd);
if(bbsUseAt == 'Y' && (npayBbscttSnb === null || npayBbscttSnb === undefined || npayBbscttSnb === '')) {
if (bbsTyCd === '03' || bbsId == 'main_event' || bbsId == 'largeLMS_event') {
if (bbsTyCd === '03' || bbsId == 'main_event') {
urlVal = pcDomnAdres + '/sopmal/csc/selectBbscttAuth?authDv=CM&bbsTyCd=03&reqUrl=subPage&bbsId=' + bbsId + '&bbscttInnb=' + bbscttInnb;
} else {
urlVal = '/'+sopmalCd+'/extra/bbs/selectSMSEventPage?bbscttInnb=' + bbscttInnb;
}
}
}
console.log(' urlVal 실행됨: ' + urlVal);
console.log(' pcDomnAdres 실행됨: ' + pcDomnAdres);
$('.urlVal').val(urlVal);
});
</script>
</head>
<div id="board-list-detail" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>게시글 보기</h4>
</div>
<div class="modal-content">
<%--게시글 정보--%>
<c:set value="${resultMap.bbscttInfo.dataMap}" var="bbscttInfo"/>
<%--게시글 vo--%>
<c:set value="${resultMap.bbsctt}" var="bbscttVO"/>
<%--추가문항답변--%>
<c:set value="${resultMap.bbscttInfo.qesitmAnswList}" var="qesitmAnswList"/>
<%--게시글 파일정보--%>
<c:set value="${resultMap.bbscttInfo.fileInfo}" var="fileInfo"/>
<c:set value="${resultMap.bbscttInfo.fileInfoGson}" var="fileInfoGson"/>
<%--게시판 설정 --%>
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
<%--게시글 연관상품--%>
<c:set value="${resultMap.goodsList.goodsList}" var="goodsList"/>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<%--상세에서 작업 후 목록 조회 유무--%>
<input type="hidden" id="${dtlPop}" value="<c:out value='${dtlPop}'/>"/>
<input type="hidden" id="useAt" value="<c:out value="${bbscttInfo.useAt}"/>"/>
<c:out value="${bbscttInfo.cnScript}" escapeXml="false"/>
<input type="hidden" name="script_bbscttInnb" value="${bbscttInfo.bbscttInnb }"/>
<input type="hidden" id="bbsTyCd" name="bbsTyCd" value="<c:out value='${bbsInfo.bbsTyCd}' />" />
<input type="hidden" id="sopmalCd" name="sopmalCd" value="<c:out value='${bbscttVO.sopmalCd}' />" />
<input type="hidden" id="bbsUseAt" name="bbsUseAt" value="<c:out value='${bbscttInfo.useAt}' />" />
<input type="hidden" id="npayBbscttSnb" name="npayBbscttSnb" value="<c:out value='${bbscttInfo.npayBbscttSnb}' />" />
<input type="hidden" id="bbsId" name="bbsId" value="<c:out value='${bbsInfo.bbsId}' />" />
<div class="form-control-container mb-10">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
<c:if test="${bbscttInfo.useAt eq 'Y' && empty bbscttInfo.npayBbscttSnb}">
<c:if test="${(bbsInfo.bbsTyCd eq '03') || (bbsInfo.bbsId eq 'main_event') || (bbsInfo.bbsId eq 'largeLMS_event')}">
<input type="text" id="url" class="urlVal" style="display: none;"/>
<button type="button" class="btn xsm primary" onclick="fn_copy_url();">url복사</button>
</c:if>
<button type="button" class="btn xsm primary outline" onclick="fn_select_bbsctt_update_pop('<c:out
value="${ bbscttInfo.bbscttInnb }"/>','dtlPop');"><spring:message
code="button.update"/></button>
<c:if test="${bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty bbscttInfo.answBbscttInnb}">
<button type="button" id="dtlAnswUpdtBtn" class="btn xsm primary outline"
onclick="fn_select_answ_update_pop('<c:out value="${bbscttInfo.bbscttInnb}"/>','<c:out value="${bbscttInfo.answBbscttInnb}"/>','dtlPop');">
답변 <spring:message code="button.update"/>
</button>
</c:when>
<c:otherwise>
<button type="button" id="dtlAnswRegBtn" class="btn xsm primary"
onclick="fn_select_answ_regist_pop('<c:out value="${bbscttInfo.bbscttInnb}"/>','dtlPop');">
답변 <spring:message code="button.insert"/>
</button>
</c:otherwise>
</c:choose>
</c:if>
<button type="button" class="btn xsm dark"
onclick="fn_delete_bbsctt('<c:out value="${ bbscttInfo.bbscttInnb }"/>'
,''
,''
<c:if test="${bbsInfo.bbsTyCd eq '05'}">
,'Y'
</c:if>);">
<spring:message code="button.delete"/></button>
</c:if>
</div>
</div>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<c:if test="${bbsInfo.goodsChoice eq 'Y' }">
<c:if test="${not empty goodsList}">
<tr>
<th>상품정보</th>
<td colspan="3">
<div class="product-search-box__product parentGoodsContainer">
<c:forEach var="goods" items="${goodsList}">
<div class="product-group__item">
<a onclick = "fn_move_goods_dtl_common(<c:out value="${goods.goodsInnb}"/>,'sopmal');" style="cursor:pointer;">
<img src="<c:out value ="${cdnurl}${goods.img}"/>"
onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"
alt="상품이미지" width="64">
</a>
<a onclick="fn_move_goods_dtl_common(<c:out value="${goods.goodsInnb}"/>,
'sopmal',
<c:out value="${goods.goodsKndCd}"/>);"
style="cursor:pointer;">
</a>
<div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p>
<p class="product-group__description-price"><fmt:formatNumber
value="${goods.slepric}" pattern="#,###"/>원</p>
</div>
<c:if test="${bbsInfo.bbsTyCd eq '05'}">
<input hidden id="goodsInnb" value="${goods.goodsInnb}"/>
</c:if>
</div>
</c:forEach>
</div>
</td>
</tr>
</c:if>
</c:if>
<tr>
<c:if test="${bbsInfo.notice eq 'Y' }">
<th>공지 기간 제한<br><span class="fs-13">(공지글 여부)</span></th>
<td>
<div class="td-inner">
<span id="dtlNtc">
<c:choose>
<c:when test="${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'Y'}">
<c:choose>
<c:when test="${bbscttInfo.ntcPdAt eq 'Y'}">
${ bbscttInfo.ntceBgnDe }~${ bbscttInfo.ntceEndDe }[종료]
</c:when>
<c:otherwise>
${ bbscttInfo.ntceBgnDe }~${ bbscttInfo.ntceEndDe }
</c:otherwise>
</c:choose>
</c:when>
<c:when test="${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'N'}">
상시 공지
</c:when>
<c:when test="${bbscttInfo.ntcAt eq 'N'}">
공지 안함
</c:when>
</c:choose>
</span>
</div>
</td>
</c:if>
<c:choose>
<c:when test="${bbsInfo.bbsTyCd ne '04'}">
<th>노출 기간 제한<br><span>(노출 여부)</span></th>
</c:when>
<c:otherwise>
<th>노출 여부</th>
</c:otherwise>
</c:choose>
<td>
<div class="td-inner">
<span id="dtlNtce">
<c:choose>
<c:when test="${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'Y'}">
<c:choose>
<c:when test="${bbscttInfo.ntcePdAt eq 'Y'}">
${ bbscttInfo.ntceBgnDe }~${ bbscttInfo.ntceEndDe }[종료]
</c:when>
<c:otherwise>
${ bbscttInfo.ntceBgnDe }~${ bbscttInfo.ntceEndDe }
</c:otherwise>
</c:choose>
</c:when>
<c:when test="${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'N'}">
상시 노출
</c:when>
<c:when test="${bbscttInfo.expsrAt eq 'N' && bbscttInfo.ntcePdSetupAt eq 'N'}">
노출 안함
</c:when>
</c:choose>
</span>
</div>
</td>
</tr>
<tr>
<th>등록일</th>
<td>
<div class="td-inner" id="dtlRegistDt">
${ bbscttInfo.registDt }
</div>
</td>
<th>조회수</th>
<td>
<div class="td-inner" id="dtlInqireCnt">
${bbscttInfo.inqireCnt }
</div>
</td>
</tr>
<tr>
<c:if test="${bbsInfo.onoffline eq 'Y' }">
<th>온/오프라인</th>
<td>
<div class="td-inner" id="onoflneAt">
<c:choose>
<c:when test="${bbscttInfo.onlineAt eq 'Y' && bbscttInfo.oflneAt eq 'N'}">온라인</c:when>
<c:when test="${bbscttInfo.onlineAt eq 'N' && bbscttInfo.oflneAt eq 'Y'}">오프라인</c:when>
<c:when test="${bbscttInfo.onlineAt eq 'Y' && bbscttInfo.oflneAt eq 'Y'}">온/오프라인</c:when>
</c:choose>
</div>
</td>
</c:if>
<c:if test="${bbsInfo.reprsntImg eq 'Y' }">
<c:if test="${not empty bbscttInfo.reprsntImgOrginlFilNm}">
<th>대표이미지</th>
<td>
<div class="td-inner">
<ul class="file-list">
<li id="<c:out value = '${bbscttInfo.bbscttInnb}'/>">
<a href="#" class="file-list__item" id = "<c:out value="${bbscttInfo.reprsntImgOrginlFilNm}"/>"
onclick="downloadFile(this,'<c:out value="${bbscttVO.sopmalCd}"/>','BDIG', 1);"><%--TODO::추후 쇼핑몰코드 SET해야함--%>
<i class="icon icon_file-list mr-2"></i>
<span class="file-list__item-title">
<c:out value="${bbscttInfo.reprsntImgOrginlFilNm}"/>
</span>
</a>
</li>
</ul>
</div>
</td>
</c:if>
</c:if>
</tr>
<c:if test="${not empty qesitmAnswList}"> <%--2문항 답변 출력시 다음 tr에 문항 답변 출력--%>
<c:forEach items="${qesitmAnswList}" var="answ" varStatus="status">
<c:choose>
<c:when test="${status.index % 2 == 0}">
<tr>
<th><c:out value="${answ.qesitmNm}"/></th>
<td>
<c:choose>
<c:when test="${not empty answ.answCn}">
<c:out value="${answ.answCn}"/>
</c:when>
<c:otherwise>
(없음)
</c:otherwise>
</c:choose>
</td>
<c:if test="${bbsInfo.mainExpsr eq 'Y'}">
<th>메인노출</th>
<td>
<div class="td-inner">
<c:out value="${bbscttInfo.mainExpsrAt}"/>
</div>
</td>
</c:if>
</c:when>
<c:when test="${status.index % 2 != 0}">
<th><c:out value="${answ.qesitmNm}"/></th>
<td>
<c:choose>
<c:when test="${not empty answ.answCn}">
<c:out value="${answ.answCn}"/>
</c:when>
<c:otherwise>
(없음)
</c:otherwise>
</c:choose>
</td>
<c:if test="${bbsInfo.mainExpsr eq 'Y'}">
<th>메인노출</th>
<td>
<div class="td-inner">
<c:out value="${bbscttInfo.mainExpsrAt}"/>
</div>
</td>
</c:if>
</tr>
</c:when>
</c:choose>
</c:forEach>
</c:if>
<tr>
<th>작성자</th>
<td>
<div>
<c:choose>
<%--회원--%>
<c:when test="${bbscttInfo.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${bbscttInfo.regusr}'/>'
,'<c:out value='${bbscttInfo.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${bbscttInfo.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${bbscttInfo.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${bbscttInfo.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${bbscttInfo.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${bbscttInfo.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out
value="${bbscttInfo.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8">
<c:out value="${bbscttInfo.mbrGradNm}"/>
</span>)
</button>
</c:when>
<%--관리자1--%>
<c:when test="${bbscttInfo.regusrDvCd eq '02'}">
<c:out value="${ bbscttInfo.mngrNm}"/>(<c:out
value="${bbscttInfo.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbscttInfo.regusrDvCd eq '03'}">
<c:out value="${ bbsctt.regusrNm}"/>
</c:when>
<%--입점사--%>
<c:when test="${bbscttInfo.regusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbscttInfo.regusrDvCd eq '99'}">
<c:out value="${bbscttInfo.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</div>
</td>
</tr>
<c:if test="${not empty resultMap.bbscttInfo.fileInfo}">
<c:choose>
<c:when test = "${bbscttInfo.regusrDvCd ne '02'}"><%--상품qna 사진 미리보기--%>
<tr>
<th>등록된 이미지<br></th>
<td colspan="3">
<div class="td-inner">
<c:forEach items="${resultMap.bbscttInfo.fileInfo}" var="file" varStatus="status">
<div class="file-preview__container">
<div class="file-preview">
<span class="file-preview__number"></span>
<div class="file-preview__image" style="max-width: 200px; max-height: 100%; overflow: hidden;">
<a href="<c:out value="${cdnurl}${file.filCours}${file.sysFilNm}"/>" target="_blank">
<img src="<c:out value="${cdnurl}${file.filCours}${file.sysFilNm}"/>" onerror="this.src='/mngr/images/image_placeholder.png'" alt="" style="width: 100%; height:100%;">
</a>
</div>
</div>
</div>
</c:forEach>
</div>
</td>
</tr>
</c:when>
<c:otherwise><%--상품qna제외한 파일 정보(텍스트)--%>
<tr>
<th>파일</th>
<td colspan="3">
<div class="td-inner">
<ul class="file-list">
<c:if test = "${not empty resultMap.bbscttInfo.fileInfo}">
<c:forEach var="file" items="${resultMap.bbscttInfo.fileInfo}">
<li id="<c:out value = '${file.bbscttAtchmnfilInnb}'/>">
<a href="#" class="file-list__item" id = '<c:out value="${file.orginlFilNm}"/>'
onclick="downloadFile(this,'<c:out value="${bbscttVO.sopmalCd}"/>','BDFL', 1);">
<i class="icon icon_file-list mr-2"></i>
<span class="file-list__item-title">
<c:out value="${file.orginlFilNm}"/>
</span>
</a>
</li>
</c:forEach>
</c:if>
</ul>
</div>
</td>
</tr>
</c:otherwise>
</c:choose>
</c:if>
<tr>
<th><c:out value="${bbsInfo.questionSj}"/></th>
<td colspan="3">
<div class="td-inner">
<div>
<c:choose>
<c:when test="${bbscttInfo.useAt eq 'Y'}">
<c:out value="${bbscttInfo.sj}"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.</span>
</c:otherwise>
</c:choose>
</div>
<c:if test="${bbscttInfo.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${bbscttInfo.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ bbscttInfo.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</div>
</td>
</tr>
<tr>
<th><c:out value="${bbsInfo.awswCn}"/></th>
<td colspan="3">
<div id="cnDiv" class="ck-content" style="white-space: pre-wrap">
<c:if test="${bbscttInfo.useAt eq 'N'}">
<span class="stone-6">삭제된 게시글입니다.</span>
</c:if>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<%--게시글 상세내용 END--%>
<%--게시글 답변내용 START--%>
<c:if test="${bbsInfo.answRegist eq 'Y'}">
<c:if test="${not empty bbscttInfo.answBbscttInnb}">
<div class="form-control-container mb-10 dtlAnswDiv">
<div class="left">
<span class="fs-16 fw-500">답변</span>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<div class="table-wrapper mb-40 dtlAnswDiv">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>작성자</th>
<td>
<div class="td-inner">
<span class="comment-id">
<i class="icon icon_comment-user"></i>
<span class="comment-id__name" id="dtlMbrNmRe">
<c:out value="${bbscttInfo.maskingRegusrId}"/><c:out value="${bbscttInfo.mngrNm}"/>
</span>
</span>
</div>
</td>
</tr>
<tr>
<th>제목</th>
<td>
<div class="td-inner" id="dtlSjRe">
<c:out value="${bbscttInfo.answSj}"/>
</div>
</td>
</tr>
<tr>
<th>내용</th>
<td class="ck-content"><c:out value="${bbscttInfo.answCn}" escapeXml="false"/></td>
</tr>
</tbody>
</table>
</div>
</c:if>
</c:if>
<%--게시글 답변내용 END--%>
<%-- 게시글 댓글 START --%>
<c:if test="${bbsInfo.cmRegist eq 'Y' }">
<c:if test="${bbscttInfo.cmUseAt eq 'Y' }">
<div id="cm"></div>
<%-- 게시글 댓글 등록 START --%>
<form class="cmFormTr dtlCmDiv" id="cmInputClass">
<input type="hidden" name="bbscttInnb" value="${bbscttInfo.bbscttInnb }" id="bbscttInnb"/>
<input type="hidden" name="bbsId" value="${ bbsInfo.bbsId }"/>
<input type="hidden" name="cmInnb"/>
<div class="comment-write-container mb-40">
<span class="comment-id">
<i class="icon icon_comment-user"></i>
<span class="comment-id__name"><c:out value="${bbscttVO.regusrNm }"/></span>
<span class="comment-id__id">( <c:out value="${bbscttVO.regusrId}"/> )</span>
<span class="comment-id__ip">(IP: <c:out value="${ip}"/>)</span>
</span>
<div class="comment-write">
<div class="comment-write__textarea-container">
<textarea class="comment-write__textarea" id="cmInputCn" rows="5"
placeholder="댓글을 입력하세요." title="댓글 입력" name="cn"></textarea>
</div>
<button type="button" id="btnCmReg" class="comment-write__button"
onclick="fn_regist_cm('c', this);"><spring:message
code="button.insert"/></button>
</div>
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="secretBbscttAt" value="Y"
onclick="fn_check_secret_cm(this);">
<span class="check"></span>
<span class="control-label">비밀 댓글</span>
</label>
</div>
</div>
</form>
</c:if>
</c:if>
<%-- 게시글 댓글 등록 END --%>
<%-- 게시글 댓글 END --%>
<%-- 이전글/다음글 START --%>
<c:if test="${bbsInfo.prevNext eq 'Y'}">
<div class="prev-next">
<c:if test="${not empty bbscttInfo.beforeInnb}">
<div class="prev-next__item prev">
<div class="prev-next__item-title">이전글</div>
<div class="prev-next__item-content">
<button type="button" class="moveDetil"
regusr-dv="02"
bbs-id="<c:out value ='${bbsInfo.bbsId}'/>"
bbsctt-innb="<c:out value ='${ bbscttInfo.beforeInnb }'/>">
<c:choose>
<c:when test="${bbscttInfo.beforeUseAt eq 'Y'}">
<c:out value="${bbscttInfo.beforeSj}"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.</span>
</c:otherwise>
</c:choose>
</button>
</div>
<div class="prev-next__item-info">
<span class="prev-next__item-info__author"
regusrDv="<c:out value="${ bbscttInfo.beforeRegusrDvCd}"/>">
<c:choose>
<%--회원--%>
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '01'}">
<span class="gray-12">
<c:out value="${bbscttInfo.beforeRegusrNm}"/>
</span><br>
(<span class="fw-500 blue-7"><c:out value="${bbscttInfo.beforeRegusrId}"/></span>/
<span class="fw-500 green-8"><c:out
value="${bbscttInfo.beforeMbrGradNm}"/></span>)
</c:when>
<%--관리자--%>
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '02'}">
<c:out value="${ bbscttInfo.mngrNm}"/>(<c:out
value="${ bbscttInfo.maskingBeforeRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '03'}">
naverpay
</c:when>
<%--입점사--%>
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbscttInfo.beforeRegusrDvCd eq '99'}">
<c:out value="${ bbscttInfo.maskingBeforeRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</span>
<span class="prev-next__item-info__dat e" id="dtlPrevDt">
<c:out value="${ bbscttInfo.beforeRegistDt}"/>
</span>
</div>
</div>
</c:if>
<c:if test="${not empty bbscttInfo.afterInnb}">
<div class="prev-next__item next">
<div class="prev-next__item-title">다음글</div>
<div class="prev-next__item-content">
<button type="button" class="moveDetil"
regusr-dv="02"
bbs-id="<c:out value ='${bbsInfo.bbsId}'/>"
bbsctt-innb="<c:out value ='${ bbscttInfo.afterInnb }'/>">
<c:choose>
<c:when test="${bbscttInfo.afterUseAt eq 'Y'}">
<c:out value="${bbscttInfo.afterSj}"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.</span>
</c:otherwise>
</c:choose>
</button>
</div>
<div class="prev-next__item-info">
<span class="prev-next__item-info__author"
regusrDv="<c:out value="${ bbscttInfo.afterRegusrDvCd}"/>">
<c:choose>
<%--회원--%>
<c:when test="${bbscttInfo.afterRegusrDvCd eq '01'}">
<span class="gray-12">
<c:out value="${bbscttInfo.afterRegusrNm}"/>
</span><br>
(<span class="fw-500 blue-7"><c:out value="${bbscttInfo.afterRegusrId}"/></span>/
<span class="fw-500 green-8"><c:out
value="${bbscttInfo.afterMbrGradNm}"/></span>)
</c:when>
<%--관리자--%>
<c:when test="${bbscttInfo.afterRegusrDvCd eq '02'}">
<c:out value="${ bbscttInfo.mngrNm}"/>(<c:out
value="${ bbscttInfo.maskingAfterRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbscttInfo.afterRegusrDvCd eq '03'}">
naverpay
</c:when>
<%--입점사--%>
<c:when test="${bbscttInfo.afterRegusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbscttInfo.afterRegusrDvCd eq '99'}">
<c:out value="${ bbscttInfo.maskingAfterRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</span>
<span class="prev-next__item-info__date" id="dtlPrevDt">
<c:out value="${ bbscttInfo.afterRegistDt}"/>
</span>
</div>
</div>
</c:if>
</div>
<!-- 이전글/다음글 END -->
</c:if>
</div>
<div class="modal-footer">
<a id="btnCloseModal" rel="modal:close" class="btn primary" style="cursor:pointer">확인</a>
</div>
</div>

View File

@@ -0,0 +1,325 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GnrlBbscttListR.jsp
Description : 일반 게시글 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 <spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
<c:if test="${resultMap.bbsInfo.bbsId ne 'largeLMS_event'}">
<button type="button" class="btn outline sm moveSopBtn">사용자 보기</button>
</c:if>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper" id = "listTb">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: auto;" class = "ntc">
<col style="width: auto;" class = "itm">
<col style="width: auto;">
<col style="width: auto">
<col style="width: auto">
<col style="width: auto;">
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}"><%--게시판 설정 답변사용여부체크--%>
<col style="width: 5%">
</c:if>
<c:choose>
<c:when test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<col style="width: 11%">
</c:when>
<c:otherwise>
<col style="width: 5%">
</c:otherwise>
</c:choose>
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class = "itm">분류</th><%--분류 존재시 노출--%>
<th class = "ntc">공지기간</th><%--공지 존재시 노출--%>
<th>노출 기간</th>
<th>등록일</th>
<th>조회수</th>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}"><%--게시판 설정 답변사용여부체크--%>
<th>답변상태</th>
</c:if>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:set var="rnumAt" value="false"/>
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:choose>
<c:when test="${resultList.rnum eq 0}">
</c:when>
<c:otherwise>
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${resultList.ntcAt eq 'Y'}">
공지
</c:when>
<c:otherwise>
<c:out value="${resultList.rnum}" />
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<%--회원--%>
<c:when test="${resultList.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${resultList.regusr}'/>'
,'<c:out value='${resultList.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${resultList.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${resultList.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${resultList.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out
value="${resultList.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${resultList.mbrGradNm}"/></span>)
</button>
</c:when>
<%--관리자--%>
<c:when test="${resultList.regusrDvCd eq '02'}">
<c:out value="${ resultList.mngrNm}"/>(<c:out value="${ resultList.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${resultList.regusrDvCd eq '03'}">
naverpay
</c:when>
<%--비회원--%>
<c:when test="${resultList.regusrDvCd eq '99'}">
<c:out value="${resultList.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}"><%--첨부파일여부--%>
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}"><%--새로운게시글여부--%>
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}"><%--인기게시글여부--%>
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }"><%--비밀글여부--%>
<i class="icon icon_lock"></i>
</c:if>
<c:if test = "${resultList.cmCnt > 0}"><%--댓글개수--%>
(<c:out value="${resultList.cmCnt}" />)
</c:if>
</td>
<td class = "itm"><c:out value="${resultList.answCn}" /></td>
<td class = "ntc">
<c:choose>
<c:when test= "${resultList.ntcDvn eq '1'}">
<span>상시 공지</span>
</c:when>
<c:when test="${resultList.ntcDvn eq '2'}">
<span><c:out value="${ resultList.ntcBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntcEndDe }"/></span>
</c:when>
<c:when test="${resultList.ntcDvn eq '3'}">
<span>공지 종료</span>
</c:when>
<c:otherwise>
<span class = "ntcAt"></span><%--공지 존재 여부--%>
</c:otherwise>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 1}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
<span>상시</span>
</c:when>
<c:when test= "${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 2}">
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntceEndDe }"/></span>
</c:when>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 3}">
<c:choose>
<c:when test = " ${resultList.ntcePdSetupAt eq 'N'}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
</c:when>
<c:otherwise>
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
</c:otherwise>
</c:choose>
<span><c:out value="${ resultList.ntceEndDe }"/></span>[종료]
</c:when>
<c:otherwise>
<span>노출 안함</span>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}"><%--게시판 설정 답변사용여부체크--%>
<td>
<c:if test = "${not empty resultList.answBbscttInnb}">답변완료</c:if>
<c:if test = "${empty resultList.answBbscttInnb}">답변대기</c:if>
</td>
</c:if>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb }">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');"><spring:message code="button.update"/></button>
</c:if>
<c:if test="${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty resultList.answBbscttInnb}">
<button type="button" class="btn xsm primary outline"
onclick="fn_select_answ_update_pop('<c:out
value="${ resultList.bbscttInnb }"/>', '<c:out
value="${ resultList.answBbscttInnb}"/>','<c:out
value="${ resultList.bbsId }"/>','');">답변
<spring:message code="button.update"/></button>
</c:when>
<c:when test="${empty resultList.answBbscttInnb}">
<button type="button" class="btn xsm primary"
onclick="fn_select_answ_regist_pop('<c:out
value="${ resultList.bbscttInnb }"/>','<c:out
value="${ resultList.bbsId }"/>','');">답변
<spring:message code="button.insert"/></button>
</c:when>
</c:choose>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
<c:if test = "${resultList.rnum > 0}">
<c:set var="rnumAt" value="true" scope="page" />
</c:if>
</c:forEach>
<c:if test = "${not rnumAt}"><%--조회된 데이터 없을 시 데이터 없음 노출--%>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:if>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,507 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld" %>
<%--
Class Name : GnrlBbscttRegistPopupC.jsp
Description : 일반 게시글 등록 팝업
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-08 김혜지 최초 생성
2024-03-22 김혜인 수정
--%>
<div id="board-list-registration" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>게시글 등록</h4>
</div>
<c:set value="${resultMap.regusrInfo}" var="regusrInfo"/>
<c:set value="${resultMap.bbsInfo}" var="bbsInfo"/>
<c:set value="${resultMap.qesitmList.qesitmList}" var="qesitmList"/>
<c:set value="${resultMap.qesitmList.itmCnList}" var="itmCnList"/>
<c:set value="${resultMap.itmList}" var="itmList"/>
<br>
<div class="modal-content">
<div class="form-control-container mb-10">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<form id="bbsRegForm">
<input type="hidden" name="sknTyCd" value="<c:out value="${bbsInfo.sknTyCd}"/>">
<input type="hidden" name="bbsId" value="<c:out value="${bbsInfo.bbsId}"/>"/>
<input type="hidden" name="ip" value="<c:out value="${ip}"/>">
<input type="hidden" name="filPermFilExtsn" value="<c:out value='${bbsInfo.filPermFilExtsn}'/>">
<input type="hidden" name="sopmalCd" value="<c:out value='${resultMap.bbsInfo.sopmalCd}'/>">
<div class=" table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<tr>
<th>작성자</th>
<td colspan="3">
<div class="td-inner">
관리자(IP:<c:out value="${ip}"/>)
</div>
</td>
</tr><!-- tr내 내용 없을 시 tr nonvisible(상품q&a노출,공지없음)1 -->
<tr class="visibleAt">
<c:choose>
<c:when test="${bbsInfo.bbsTyCd ne '04' && bbsInfo.bbsTyCd ne '10'}">
<th>노출 기간 제한<br><span class="fs-13">(노출 여부)</span></th>
</c:when>
<c:otherwise>
<th>노출 여부</th>
</c:otherwise>
</c:choose>
<td>
<div class="td-inner vertical pdDiv">
<div class="input-container">
<div class="b-checkbox-container mr-15">
<label class="b-checkbox checkbox">
<input type="checkbox" name="expsrAt" id="expsrAt" value="Y"
onclick="fn_readOnly_set(this);">
<span class="check"></span>
<span class="control-label">노출여부</span>
</label>
</div>
<c:if test="${bbsInfo.bbsTyCd ne '04'&& bbsInfo.bbsTyCd ne '10'}">
<div class="custom-radio-container pdRadio">
<div class="custom-radio">
<input type="radio" id="ntcePdSetupAtYC" name="ntcePdSetupAt" value="Y"
onclick="fn_readOnly_ntcePd(this);" disabled>
<label for="ntcePdSetupAtYC">기본</label>
</div>
<div class="custom-radio">
<input type="radio" class="pdRadioN" id="ntcePdSetupAtNC"
name="ntcePdSetupAt" value="N"
onclick="fn_readOnly_ntcePd(this);" disabled>
<label for="ntcePdSetupAtNC">상시</label>
</div>
</div>
</c:if>
</div>
<c:if test="${bbsInfo.bbsTyCd ne '04'&& bbsInfo.bbsTyCd ne '10'}">
<div class="input-container pdDate">
<input type="text" name="ntceBgnDe" class="datepicker ntceDate chkDate"
title="시작 날짜 선택" autocomplete="off" value="" disabled>
<span class="tilde">~</span>
<input type="text" name="ntceEndDe" class="datepicker ntceDate chkDate"
title="종료 날짜 선택" autocomplete="off" value="" disabled>
</div>
</c:if>
</div>
</td>
<c:if test="${bbsInfo.notice eq 'Y'}">
<th>공지 기간 제한<br><span class="fs-13">(공지글 여부)</span></th>
<td>
<div class="td-inner vertical pdDiv">
<div class="input-container">
<div class="b-checkbox-container mr-15">
<label class="b-checkbox checkbox">
<input type="checkbox" name="ntcAt" value="Y"
onclick="fn_readOnly_set(this);">
<span class="check"></span>
<span class="control-label">공지글 등록</span>
</label>
</div>
<div class="custom-radio-container pdRadio">
<div class="custom-radio">
<input type="radio" id="ntcPdSetupAtYC" name="ntcPdSetupAt" value="Y"
onclick="fn_readOnly_ntcPd(this)" disabled>
<label for="ntcPdSetupAtYC">기본</label>
</div>
<div class="custom-radio">
<input type="radio" class="pdRadioN" id="ntcPdSetupAtNC"
name="ntcPdSetupAt"
value="N" onclick="fn_readOnly_ntcPd(this)" disabled>
<label for="ntcPdSetupAtNC">상시</label>
</div>
</div>
</div>
<div class="input-container pdDate">
<input type="text" name="ntcBgnDe" id="ntcBgnDe"
class="datepicker ntcDate chkDate"
title="시작 날짜 선택" autocomplete="off" disabled>
<span class="tilde">~</span>
<input type="text" name="ntcEndDe" id="ntcEndDe"
class="datepicker ntcDate chkDate"
title="종료 날짜 선택" autocomplete="off" disabled>
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.secretBbsctt eq 'Y'}">
<th>비밀글 여부</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container mr-10">
<label class="b-checkbox checkbox">
<input type="checkbox" name="secretBbscttAt" value="Y"
onclick="fn_readOnly_secret(this);">
<span class="check"></span>
<span class="control-label">비밀글입니다</span>
</label>
</div>
<input class="input-text md" type="password" name="password" title="비밀번호"
placeholder="비밀번호를 입력해주세요." maxlength="20" disabled>
</div>
</td>
</c:if>
<c:if test="${bbsInfo.reprsntImg eq 'Y'}">
<th>대표 이미지</th>
<td>
<div class="td-inner align-items-start">
<div class="input-file fileInputDiv" id="fileBtn">
<input type="hidden" id="represntFilAt" name="represntFilAt" value = "N">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
<input type="file" id="fileUpload" name="files" title="대표이미지" multiple="multiple" accept="<c:out value='${ acceptFileExtensions }'/>">
<label for="fileUpload">첨부 파일</label>
</div>
<div class="manage-btn-container" id="fileCnBtn">
<ul class="file-list" id="fileList">
</ul>
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.itm eq 'Y'}">
<c:if test="${not empty itmList}">
<th>분류<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="select-box">
<select class="md" id="qesitmNmC" name="itmInnbArr[]">
<option value="">분류 선택</option>
<c:forEach var="itm" items="${itmList}" varStatus="status">
<option value="<c:out value="${itm.itmInnb}"/>"
qesitm-innb="${itm.qesitmInnb}" answ-Cn="${itm.itmCn}">
<c:out
value="${itm.itmCn}"/></option>
</c:forEach>
</select>
</div>
<input type="hidden" name="qesitmEssntlAtArr[]" value="Y">
<input type="hidden" name="qesitmNmArr[]" id="qesitmNm" value="분류"/>
<input type="hidden" name="qesitmInnbArr[]" id="qesitmInnb"/>
<input type="hidden" name="answCnArr[]" id="answCn"/>
<input type="hidden" name="qesitmAtArr[]" id="qesitmAt" value="N">
</div>
</td>
</c:if>
</c:if>
<c:if test="${bbsInfo.mainExpsr eq 'Y'}">
<th>메인노출</th>
<td>
<div class="td-inner">
<div class="input-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="mainExpsrAt" value="Y">
<span class="check"></span>
<span class="control-label">노출</span>
</label>
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.cmSetupUseAt eq 'Y'}">
<th>댓글 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cmUseAtYC" name="cmUseAt" value="Y" checked>
<label for="cmUseAtYC">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cmUseAtNC" name="cmUseAt" value="N">
<label for="cmUseAtNC">사용 안 함</label>
</div>
</div>
</div>
</td>
</c:if>
<th>순서 설정</th>
<td>
<div class="td-inner">
<div class="input-container">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="sortOrdrAt" value="Y"
onclick="fn_readOnly_sortOrdr(this);">
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<input class="input-text number right xsm" type="text" name="sortOrdr" maxlength="2"
disabled>
</div>
</div>
</td>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.onoffline eq 'Y'}">
<th>온/오프라인</th>
<td>
<div class="td-inner">
<div class="input-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="onlineAt" value="Y">
<span class="check"></span>
<span class="control-label">온라인</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" name="oflneAt" value="Y">
<span class="check"></span>
<span class="control-label">오프라인</span>
</label>
</div>
</div>
</td>
</c:if>
</tr>
<tr class="visibleAt">
<c:if test="${bbsInfo.goodsChoice eq 'Y'}">
<th>상품 정보
<button type="button" class="btn xsm primary ml-5"
onclick="fn_open_modal('#modalDiv',
'#product-search',
'/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',
{'goodsKndCd':'01'}); return false;">
검색
</button>
</th>
<td colspan="3">
<div class="td-inner">
<div class="product-search-box__product parentGoodsContainer">
</div>
</div>
</td>
</c:if>
</tr>
<c:if test="${not empty qesitmList}">
<tr>
<th>추가 입력 항목</th>
<td colspan="3">
<div class="td-inner table-wrapper mb-40" id="boardFormItmC">
<table class="table">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<tbody>
<c:forEach items="${ qesitmList }" var="qesitmList" varStatus="status">
<tr>
<td>
<c:out value="${ qesitmList.qesitmNm }"/><c:if
test="${ qesitmList.qesitmEssntlAt eq 'Y'}"><span
class="red-7">*</span></c:if>
</td>
<td>
<c:if test="${ qesitmList.itmTyCd eq '01'}">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt}">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm}">
<input type="hidden" name="qesitmAtArr[]"
class="answRadioAt" value="N">
<input type="hidden" name="qesitmInnbArr[]"
class="answRadio"
value="${ qesitmList.qesitmInnb }"
disabled>
<input type="hidden" name="answCnArr[]"
class="answRadio"
disabled>
<input type="hidden" name="itmInnbArr[]"
class="answRadio"
disabled>
<c:forEach items="${itmCnList}" var="itmCnList1"
varStatus="status">
<c:if test="${itmCnList1.qesitmInnb eq qesitmList.qesitmInnb}">
<input type="radio" id="answCn${ status.index }"
class="answRadioC"
qesitm-innb='${itmCnList1.qesitmInnb}'
name="itmInnbArr${ qesitmList.qesitmInnb}[]"
value="${itmCnList1.itmInnb}"
itm-cn="${itmCnList1.itmCn}">
<label for="answCn${ status.index }">${ itmCnList1.itmCn }</label>
</c:if>
</c:forEach>
</div>
</div>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '02'}">
<div class="select-box">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt }">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm }">
<input type="hidden" name="qesitmAtArr[]"
class="answSelectAt"
value="N">
<input type="hidden" name="qesitmInnbArr[]"
class="answSelect"
value="${ qesitmList.qesitmInnb }" disabled>
<input type="hidden" name="answCnArr[]" class="answSelect"
disabled>
<select class="md answSelectC" name="itmInnbArr[]">
<option value="">전체</option>
<c:forEach items="${itmCnList}" var="itmCnList2">
<c:if test="${itmCnList2.qesitmInnb eq qesitmList.qesitmInnb}">
<option value="${ itmCnList2.itmInnb }"
itm-cn="${ itmCnList2.itmCn}"
qesitm-innb='${itmCnList2.qesitmInnb}'>${ itmCnList2.itmCn }</option>
</c:if>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '03' }">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt }">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm }">
<input type="hidden" name="qesitmAtArr[]" class="answChkAt"
value="N">
<c:forEach items="${itmCnList}" var="itmCnList3">
<c:if test="${itmCnList3.qesitmInnb eq qesitmList.qesitmInnb}">
<div class="input-container">
<label class="b-checkbox checkbox">
<input type="hidden" class="answChk"
name="qesitmInnbArr[]"
value="${ qesitmList.qesitmInnb }"
disabled>
<input type="hidden" class="answChk"
name="answCnArr[]"
value="${ itmCnList3.itmCn }" disabled>
<input type="checkbox" class="answChkC"
name="itmInnbArr[]"
value="${ itmCnList3.itmInnb }">
<span class="check"></span>
<span class="control-label">${ itmCnList3.itmCn }</span>
</label>
</div>
</c:if>
</c:forEach>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '04' }">
<c:forEach items="${itmCnList}" var="itmCnList4">
<c:if test="${itmCnList4.qesitmInnb eq qesitmList.qesitmInnb}">
<div class="input-container">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt }">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm }">
<input type="hidden" name="qesitmAtArr[]"
class="answTxtAt" value="N">
<input type="hidden" class="answTxt"
name="qesitmInnbArr[]"
value="${ qesitmList.qesitmInnb }" disabled>
<input type="text" class="input-text mm answTxtC"
name="answCnArr[]" title="추가문항답변"
placeholder="${ itmCnList4.itmCn }"
maxlength="666">
<input type="hidden" class="answTxt"
name="itmInnbArr[]"
value="${ itmCnList4.itmInnb }" disabled>
</div>
<br>
</c:if>
</c:forEach>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</c:if>
<c:if test="${bbsInfo.bbsTyCd ne '10'}">
<tr>
<th><c:out value="${bbsInfo.questionSj}"/><span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<input class="input-text full" type="text" title="해당 인풋에 대한 설명"
placeholder="제목을 입력해주세요." name="sj" maxlength="50">
</div>
</td>
</tr>
</c:if>
<tr>
<th><c:out value="${bbsInfo.awswCn}"/><span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" rows="10" id="cnBbsReg"></textarea>
</div>
</td>
</tr>
<tr>
<th>스크립트 내용</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" name="cnScript" rows="10"></textarea>
</div>
</td>
</tr>
<c:if test ="${bbsInfo.filAtch eq 'Y'}">
<tr>
<th>파일첨부</th>
<td colspan="3">
<div class="uploadList">
<div class="uploadList__top">
<div>
<button type="button" class="uploadList__removeAll" id = "removeAllBtn" style="display: none">전체 삭제</button>
<button type="button" class="uploadList__uploadFiles" id = "multiFilBtn">파일 첨부</button>
</div>
<span class="uploadList__allSize" id = "allSize">0.00 KB</span>
</div>
<div style="display: none">
<input type="file" id="fileUploadM" name="files" title="파일첨부"
multiple="multiple" accept="<c:out value='${bbsInfo.filPermFilExtsn}'/>"/>
<label for="fileUploadM"></label>
</div>
<div class="uploadList__body" id = "fileUploadMDiv" style="display: none">
<ul class="uploadList__list" id = "fileUploadMUl"><%--ul영역 (li)--%>
</ul>
</div>
</div>
<input type = "hidden" name = "filDvCd" value = "02"/>
</td>
</tr>
</c:if>
</tbody>
</table>
</form>
</div>
<div class="modal-footer">
<a href="#" id="btn_close_modal_bbsC" rel="modal:close" class="btn outline">취소</a>
<button class="btn primary" onclick="fn_regist_bbsctt();"><spring:message code="button.insert"/></button>
</div>
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,901 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GnrlBbscttUpdtPopupU.jsp
Description : 일반 게시글 등록 팝업
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-08 김혜지 최초 생성
--%>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<div id="board-list-update" class="modal" style="max-width: 1400px;">
<div class="modal-header">
<h4>게시글 수정</h4>
</div>
<%--게시판 설정--%>
<c:set value = "${resultMap.bbsInfo}" var = "bbsInfo"/>
<%--게시글 정보--%>
<c:set value = "${resultMap.bbscttInfo.bbscttInfo}" var = "bbscttInfo"/>
<%--게시글 VO--%>
<c:set value = "${resultMap.bbscttVO}" var = "bbscttVO"/>
<%--게시글 추가문항답변--%>
<c:set value = "${resultMap.bbscttInfo.qesitmAnswList}" var = "qesitmAnswList"/>
<%--게시글 첨부파일--%>
<c:set value = "${resultMap.bbscttInfo.fileInfoGson}" var = "fileInfoGson"/><%--드롭존 용--%>
<c:set value = "${resultMap.bbscttInfo.fileInfo}" var = "fileInfo"/><%--일반 파일 첨부 용--%>
<%--게시글 상품--%>
<c:set value = "${resultMap.bbscttInfo.goods}" var = "goods"/>
<%--게시글 분류--%>
<c:set value = "${resultMap.itmList}" var = "itmList"/>
<%--게시글 추가입력항목--%>
<c:set value = "${resultMap.qesitmList.qesitmList}" var = "qesitmList"/>
<%--게시글 추가입력항목 항목--%>
<c:set value = "${resultMap.qesitmList.itmCnList}" var = "itmCnList"/>
<div class="modal-content">
<div class="form-control-container mb-10">
<div class="left">
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<form id="bbsUpdtForm">
<input type="hidden" name="sknTyCd" value="<c:out value="${bbsInfo.sknTyCd}"/>">
<input type="hidden" name="bbsId" value="${bbsInfo.bbsId }"/>
<input type="hidden" id="btInnb" name="bbscttInnb" value="${ bbscttInfo.bbscttInnb }"/>
<input type="hidden" id="extFiles" name="extFiles" value=""/>
<input type="hidden" id="filesInfo" name="filesInfo"/>
<input type = "hidden" name = "sopmalCd" value = "${bbscttVO.sopmalCd}"/>
<div class="table-wrapper mb-40">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 15%;">
<col style="width: 35%;">
<col style="width: 15%;">
<col style="width: 35%;">
</colgroup>
<tbody>
<tr>
<th>작성자</th>
<td colspan="3">
<div>
<c:choose>
<%--회원--%>
<c:when test="${bbscttInfo.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${bbscttInfo.regusr}'/>'
,'<c:out value='${bbscttInfo.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${bbscttInfo.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${bbscttInfo.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${bbscttInfo.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${bbscttInfo.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${bbscttInfo.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out
value="${bbscttInfo.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8">
<c:out value="${bbscttInfo.mbrGradNm}"/>
</span>)
</button>
</c:when>
<%--관리자--%>
<c:when test="${bbscttInfo.regusrDvCd eq '02'}">
<c:out value="${ bbscttInfo.mngrNm}"/>(<c:out
value="${bbscttInfo.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${bbscttInfo.regusrDvCd eq '03'}">
naverpay
</c:when>
<%--입점사--%>
<c:when test="${bbscttInfo.regusrDvCd eq '04'}">
입점사
</c:when>
<%--비회원--%>
<c:when test="${bbscttInfo.regusrDvCd eq '99'}">
<c:out value="${bbscttInfo.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</div>
</td>
</tr>
<tr class = "visibleAt">
<c:choose>
<c:when test = "${bbsInfo.bbsTyCd ne '04' && bbsInfo.bbsTyCd ne '10'}">
<th>노출 기간 제한<br><span class="fs-13">(노출 여부)</span></th>
</c:when>
<c:otherwise>
<th>노출 여부</th>
</c:otherwise>
</c:choose>
<td>
<div class="td-inner vertical pdDiv">
<div class="input-container">
<div class="b-checkbox-container mr-15">
<label class="b-checkbox checkbox">
<input type="checkbox" name="expsrAt" id="expsrAt" value="Y"
onclick="fn_readOnly_set(this);"
<c:if test = "${bbscttInfo.expsrAt eq 'Y'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">노출여부</span>
</label>
</div>
<c:if test="${bbsInfo.bbsTyCd ne '04'&& bbsInfo.bbsTyCd ne '10'}">
<div class="custom-radio-container pdRadio">
<div class="custom-radio">
<input type="radio" id="ntcePdSetupAtYC" name="ntcePdSetupAt" value="Y"
onclick="fn_readOnly_ntcePd(this);"
<c:choose>
<c:when test="${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'Y'}">
checked="checked"
</c:when>
<c:when test="${bbscttInfo.expsrAt eq 'N'}">
disabled="disabled"
</c:when>
</c:choose>>
<label for="ntcePdSetupAtYC">기본</label>
</div>
<div class="custom-radio">
<input type="radio" class="pdRadioN" id="ntcePdSetupAtNC"
name="ntcePdSetupAt" value="N"
onclick="fn_readOnly_ntcePd(this);"
<c:choose>
<c:when test="${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'N'}">
checked="checked"
</c:when>
<c:when test="${bbscttInfo.expsrAt eq 'N'}">
disabled="disabled"
</c:when>
</c:choose>>
<label for="ntcePdSetupAtNC">상시</label>
</div>
</div>
</c:if>
</div>
<c:if test = "${bbsInfo.bbsTyCd ne '04' && bbsInfo.bbsTyCd ne '10'}">
<div class="input-container pdDate">
<input type="text" name="ntceBgnDe" class="datepicker ntceDate chkDate" title="시작 날짜 선택" autocomplete="off"
<c:choose>
<c:when test = "${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'Y'}">
value="<c:out value ='${bbscttInfo.ntceBgnDe}'/>"
</c:when>
<c:when test = "${bbscttInfo.expsrAt eq 'N'|| bbscttInfo.expsrAt eq 'Y'&& bbscttInfo.ntcePdSetupAt eq 'N'}">
disabled= "disabled"
</c:when>
</c:choose> id = "updtDate">
<span class="tilde">~</span>
<input type="text" name="ntceEndDe" class="datepicker ntceDate chkDate" title="종료 날짜 선택" autocomplete="off"
<c:choose>
<c:when test = "${bbscttInfo.expsrAt eq 'Y' && bbscttInfo.ntcePdSetupAt eq 'Y'}">
value="${bbscttInfo.ntceEndDe}"
</c:when>
<c:when test = "${bbscttInfo.expsrAt eq 'N'||bbscttInfo.expsrAt eq 'Y'&& bbscttInfo.ntcePdSetupAt eq 'N'}">
disabled = "disabled"
</c:when>
</c:choose>>
</div>
</c:if>
</div>
</td>
<c:if test = "${bbsInfo.notice eq 'Y'}">
<th>공지 기간 제한<br><span class="fs-13">(공지글 여부)</span></th>
<td>
<div class="td-inner vertical pdDiv">
<div class="input-container">
<div class="b-checkbox-container mr-15">
<label class="b-checkbox checkbox">
<input type="checkbox" name="ntcAt" value="Y" onclick="fn_readOnly_set(this);"
<c:if test = "${bbscttInfo.ntcAt eq 'Y'}">checked = "checked"</c:if>>
<span class="check"></span>
<span class="control-label">공지글 등록</span>
</label>
</div>
<div class="custom-radio-container pdRadio">
<div class="custom-radio">
<input type="radio" id="ntcPdSetupAtYC" name="ntcPdSetupAt" value="Y" onclick="fn_readOnly_ntcPd(this)"
<c:choose>
<c:when test = "${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'Y'}">
checked = "checked"
</c:when>
<c:when test = "${bbscttInfo.ntcAt eq 'N'}">
disabled = "disabled"
</c:when>
</c:choose>>
<label for="ntcPdSetupAtYC">기본</label>
</div>
<div class="custom-radio">
<input type="radio" class="pdRadioN" id="ntcPdSetupAtNC" name="ntcPdSetupAt" value="N" onclick="fn_readOnly_ntcPd(this)"
<c:choose>
<c:when test = "${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'N'}">
checked = "checked"
</c:when>
<c:when test = "${bbscttInfo.ntcAt eq 'N'}">
disabled = "disabled"
</c:when>
</c:choose>>
<label for="ntcPdSetupAtNC">상시</label>
</div>
</div>
</div>
<div class="input-container pdDate">
<input type="text" name="ntcBgnDe" id = "ntcBgnDe" class="datepicker ntcDate chkDate" title="시작 날짜 선택" autocomplete="off"
<c:choose>
<c:when test = "${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'Y'}">
value="${bbscttInfo.ntcBgnDe}"
</c:when>
<c:when test = "${bbscttInfo.ntcAt eq 'N'||bbscttInfo.ntcAt eq 'Y'&& bbscttInfo.ntcPdSetupAt eq 'N'}">
disabled = "disabled"
</c:when>
</c:choose>>
<span class="tilde">~</span>
<input type="text" name="ntcEndDe" id = "ntcEndDe" class="datepicker ntcDate chkDate" title="종료 날짜 선택" autocomplete="off"
<c:choose>
<c:when test = "${bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'Y'}">
value="${bbscttInfo.ntcEndDe}"
</c:when>
<c:when test = "${bbscttInfo.ntcAt eq 'N'||bbscttInfo.ntcAt eq 'Y' && bbscttInfo.ntcPdSetupAt eq 'N'}">
disabled = "disabled"
</c:when>
</c:choose>>
</div>
</div>
</td>
</c:if>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.secretBbsctt eq 'Y'}">
<th>비밀글 여부</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container mr-10">
<label class="b-checkbox checkbox">
<input type="checkbox" name="secretBbscttAt" value="Y" onclick="fn_readOnly_secret(this);"
<c:if test = "${bbscttInfo.secretBbscttAt eq 'Y'}">
checked= "checked"
</c:if>>
<span class="check"></span>
<span class="control-label">비밀글입니다</span>
</label>
</div>
<%--해당 관리자가 쓴 게시글에만 비밀번호 재설정 가능1--%>
<c:choose>
<c:when test = "${bbscttInfo.regusrDvCd eq '02' && bbscttInfo.regusr eq user.userInnb}">
<input class="input-text md password" type="password" name="password" title="비밀번호" value = "<c:out value = "${bbscttInfo.password}"/>"
placeholder="비밀번호를 입력해주세요." maxlength="20" <c:if test = "${bbscttInfo.secretBbscttAt ne 'Y'}">disabled</c:if>>
<input type = "hidden" value = "N" name = "passwordChngAt" id = "passwordChngAt"/>
</c:when>
<c:otherwise>
<input type = "hidden" name = "password" value="<c:out value = "${bbscttInfo.password}"/>"
</c:otherwise>
</c:choose>
</div>
</td>
</c:if>
<c:if test = "${bbsInfo.reprsntImg eq 'Y'}">
<th>대표 이미지</th>
<td>
<div class="td-inner align-items-start">
<div class="input-file" id="fileBtn" <c:if test = "${not empty bbscttInfo.reprsntImgOrginlFilNm }">style="display:none"</c:if>>
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.extensions.images')" var="acceptFileExtensions"/>
<input type="file" id="fileUpload" name="files" title="대표이미지" multiple="multiple" accept="<c:out value="${ acceptFileExtensions }"/>">
<label for="fileUpload">첨부 파일</label>
</div>
<c:choose>
<c:when test="${empty bbscttInfo.reprsntImgOrginlFilNm }">
<div class="manage-btn-container" id="fileCnBtn">
<input type="hidden" id="represntFilAt" name="represntFilAt" value="N">
<input type="hidden" id="represntFilChangeAt" name="represntFilChangeAt" value="N">
<ul class="file-list" id="fileList">
</ul>
</div>
</c:when>
<c:otherwise>
<div class="manage-btn-container" id ="fileCnBtn">
<input type="hidden" id="represntFilAt" name="represntFilAt" value = "Y">
<input type="hidden" id="represntFilChangeAt" name="represntFilChangeAt" value="N">
<ul class="file-list" id="fileList">
<li id="<c:out value="${bbscttInfo.bbscttInnb}"/>">
<a href="#" id="<c:out value="${bbscttInfo.reprsntImgOrginlFilNm}"/>" onclick="downloadFile(this,'<c:out value='${bbscttVO.sopmalCd}'/>','BDIG',1);">
<i class="icon icon_file-list mr-2"></i>
<span class="file-list__item-title">
<c:out value="${bbscttInfo.reprsntImgOrginlFilNm}"/>
</span>
</a>
<button type="button" class="file-list__delete" onclick="deleteFile(this,'<c:out value='${bbscttVO.sopmalCd}'/>','BDIG',1,fn_execute_delete_represntImg);">
<span class="visually-hidden">파일 삭제</span>
</button>
</li>
</ul>
</div>
</c:otherwise>
</c:choose>
</div>
</td>
</c:if>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.itm eq 'Y'}">
<c:if test = "${not empty itmList}">
<th>분류<span class="red-7">*</span></th>
<td>
<div class="td-inner">
<div class="select-box">
<select class="md" id="qesitmNmC" name = "itmInnbArr[]">
<option value="">분류 선택</option>
<c:forEach var="itm" items="${itmList}" varStatus ="status">
<option value="<c:out value="${itm.itmInnb}"/>" qesitm-innb="${itm.qesitmInnb}" answ-Cn="${itm.itmCn}" qesitm-nm="${itm.qesitmNm}"
<%--분류 답변 값 유지--%>
<c:forEach var="itmAnswList" items="${qesitmAnswList}">
<c:if test="${itmAnswList.aditItmDvCd eq '03'}">
<c:if test = "${itm.itmInnb eq itmAnswList.itmInnb }">selected</c:if>
</c:if>
</c:forEach>>
<c:out value ="${itm.itmCn}"/>
</option>
</c:forEach>
</select>
</div>
<%--문항답변필수여부 --%>
<input type="hidden" name="qesitmEssntlAtArr[]" value="Y">
<%--문항명 --%>
<input type="hidden" name="qesitmNmArr[]" id = "qesitmNm" value ="분류"/>
<%--문항고유번호 --%>
<input type="hidden" name="qesitmInnbArr[]" id = "qesitmInnb"
<c:forEach var="itmAnswList" items="${qesitmAnswList}">
<c:if test="${itmAnswList.aditItmDvCd eq '03'}">
value = <c:out value = "${itmAnswList.qesitmInnb}"/>
</c:if>
</c:forEach>/>
<%--답변내용 --%>
<input type="hidden" name="answCnArr[]" id = "answCn"
<c:forEach var="itmAnswList" items="${qesitmAnswList}">
<c:if test="${itmAnswList.aditItmDvCd eq '03'}">
value = <c:out value = "${itmAnswList.answCn}"/>
</c:if>
</c:forEach>/>
<%--답변여부 --%>
<input type="hidden" name="qesitmAtArr[]"
<c:forEach var="itmAnswList" items="${qesitmAnswList}">
<c:if test="${itmAnswList.aditItmDvCd eq '03'}">
<c:choose>
<c:when test = "${empty itmAnswList}">value = "N"</c:when>
<c:otherwise>value = "Y"</c:otherwise>
</c:choose>
</c:if>
</c:forEach>>
</div>
</td>
</c:if>
</c:if>
<c:if test = "${bbsInfo.mainExpsr eq 'Y'}">
<th>메인노출</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="mainExpsrAt" value="Y" <c:if test="${bbscttInfo.mainExpsrAt eq 'Y'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">노출</span>
</label>
</div>
</div>
</td>
</c:if>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.cmSetupUseAt eq 'Y'}">
<th>댓글 사용 여부</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="cmUseAtYC" name="cmUseAt" value="Y"<c:if test = "${bbscttInfo.cmUseAt eq 'Y'}">checked</c:if>>
<label for="cmUseAtYC">사용</label>
</div>
<div class="custom-radio">
<input type="radio" id="cmUseAtNC" name="cmUseAt" value="N"<c:if test = "${bbscttInfo.cmUseAt eq 'N'}">checked</c:if>>
<label for="cmUseAtNC">사용 안 함</label>
</div>
</div>
</div>
</td>
</c:if>
<th>순서 설정</th>
<td>
<div class="td-inner">
<div class="input-container">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="sortOrdrAt" value="Y" onclick="fn_readOnly_sortOrdr(this);" <c:if test = "${not empty bbscttInfo.sortOrdr}">checked</c:if>>
<span class="check"></span>
<span class="control-label"></span>
</label>
</div>
<input class="input-text number right xsm" type="text" name="sortOrdr" maxlength="2" value = "<c:out value = '${bbscttInfo.sortOrdr}'/>"
<c:choose>
<c:when test = "${not empty bbscttInfo.sortOrdr}">checked</c:when>
<c:otherwise>disabled="disabled"</c:otherwise>
</c:choose>>
</div>
</div>
</td>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.onoffline eq 'Y'}">
<th>온/오프라인</th>
<td>
<div class="td-inner">
<div class="input-container">
<label class="b-checkbox checkbox">
<input type="checkbox" name="onlineAt" value="Y" <c:if test = "${bbscttInfo.onlineAt eq 'Y'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">온라인</span>
</label>
<label class="b-checkbox checkbox">
<input type="checkbox" name="oflneAt" value="Y" <c:if test = "${bbscttInfo.oflneAt eq 'Y'}">checked</c:if>>
<span class="check"></span>
<span class="control-label">오프라인</span>
</label>
</div>
</div>
</td>
</c:if>
</tr>
<tr class ="visibleAt">
<c:if test = "${bbsInfo.goodsChoice eq 'Y'}">
<th>상품 정보
<c:choose>
<c:when test = "${not empty goods}">
<button type="button" class="btn xsm primary ml-5"
onclick="fn_open_search_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
검색
</button>
</c:when>
<c:otherwise>
<button type="button" class="btn xsm primary ml-5"
onclick="fn_open_modal('#modalDiv','#product-search','/mngr/goods/goodsmngr/selectGoodsSrchPopupForm',{'goodsKndCd':'01'}); return false;">
검색
</button>
</c:otherwise>
</c:choose>
</th>
<td colspan="3">
<div class="td-inner">
<div class="product-search-box__product parentGoodsContainer">
<c:if test = "${not empty goods}">
<c:forEach var = "goods" items = "${goods}">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<div class="product-group__item">
<input type="hidden" id="relatedGoodsId" name="relatedGoodsId" value="<c:out value="${goods.goodsInnb}"/>">
<input type="hidden" name="relatedGoodsNm" value="<c:out value="${goods.goodsNm}"/>">
<input type="hidden" name="relatedGoodsImg" value="<c:out value="${cdnurl}${goods.img}"/>">
<input type="hidden" name="relatedGoodsPrice" value="<fmt:parseNumber value="${goods.slepric}"/>">
<input type="hidden" name="goodsSttusNm" value="<c:out value="${goods.goodsSttusNm}"/>">
<input type="hidden" name="expsrNm" value="<c:out value="${goods.expsrNm}"/>">
<button type="button" onclick = "fn_move_goods_dtl_common(<c:out value="${goods.goodsInnb}"/>,'sopmal')">
<img src="${cdnurl}${goods.img}"onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'"width="64" alt="상품이미지">
</button>
<div class="product-group__description">
<p><c:out value="${goods.goodsNm}"/></p>
<p class="product-group__description-price"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/>원</p>
</div>
<%--게시글 연관 상품--%>
<input type="hidden" name="goodsInnbArr[]" value="${goods.goodsInnb}"/>
</div>
</c:forEach>
</c:if>
</div>
</div>
</td>
</c:if>
</tr>
<c:if test="${not empty qesitmList}">
<tr>
<th>추가 입력 항목</th>
<td colspan="3">
<div class="td-inner table-wrapper mb-40" id="boardFormItmC">
<table class="table">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<tbody>
<c:forEach items="${ qesitmList }" var="qesitmList" varStatus="status">
<tr>
<td>
<c:out value="${ qesitmList.qesitmNm }"/><c:if
test="${ qesitmList.qesitmEssntlAt eq 'Y'}"><span class="red-7">*</span></c:if>
</td>
<td>
<c:if test="${ qesitmList.itmTyCd eq '01'}">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt}">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm}">
<input type="hidden" name="qesitmAtArr[]"
class="answRadioAt" value="N">
<input type="hidden" name="qesitmInnbArr[]"
class="answRadio"
value="${ qesitmList.qesitmInnb }" disabled>
<input type="hidden" name="answCnArr[]"
class="answRadio" disabled>
<input type="hidden" name="itmInnbArr[]"
class="answRadio" disabled>
<c:forEach items="${itmCnList}" var="itmCnList1"
varStatus="status">
<c:if test="${itmCnList1.qesitmInnb eq qesitmList.qesitmInnb}">
<input type="radio" id="answCn${ status.index }"
class="answRadioC"
qesitm-innb='${itmCnList1.qesitmInnb}'
name="itmInnbArr${ qesitmList.qesitmInnb}[]"
value="${ itmCnList1.itmInnb}"
itm-cn="${ itmCnList1.itmCn }"
<c:forEach var="qesitmAnswList1"
items="${qesitmAnswList}">
<c:if test="${qesitmAnswList1.itmTyCd eq '01'}">
<c:if test="${qesitmAnswList1.itmInnb eq itmCnList1.itmInnb}">checked</c:if>
</c:if>
</c:forEach>>
<label for="answCn${ status.index }">${ itmCnList1.itmCn }</label>
</c:if>
</c:forEach>
</div>
</div>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '02'}">
<div class="select-box">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${qesitmList.qesitmEssntlAt}">
<input type="hidden" name="qesitmNmArr[]"
value="${qesitmList.qesitmNm}">
<input type="hidden" name="qesitmAtArr[]" class="answSelectAt"
value="N">
<input type="hidden" name="qesitmInnbArr[]"
class="answSelect"
value="${qesitmList.qesitmInnb}" disabled>
<input type="hidden" name="answCnArr[]" class="answSelect"
disabled>
<select class="md answSelectC" name="itmInnbArr[]">
<option value="">전체</option>
<c:forEach items="${itmCnList}" var="itmCnList2">
<c:if test="${itmCnList2.qesitmInnb eq qesitmList.qesitmInnb}">
<c:set var="selected" value=""/>
<c:forEach var="qesitmAnswList2"
items="${qesitmAnswList}">
<c:if test="${qesitmAnswList2.itmInnb eq itmCnList2.itmInnb}">
<c:set var="selected" value="selected"/>
</c:if>
</c:forEach>
<option value="${itmCnList2.itmInnb}"
itm-cn="${itmCnList2.itmCn}"
qesitm-innb="${itmCnList2.qesitmInnb}" ${selected}>
${itmCnList2.itmCn}
</option>
</c:if>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '03' }">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt }">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm }">
<input type="hidden" name="qesitmAtArr[]"
class="answChkAt" value="N">
<c:forEach items="${itmCnList}" var="itmCnList3">
<c:if test="${itmCnList3.qesitmInnb eq qesitmList.qesitmInnb}">
<div class="input-container">
<label class="b-checkbox checkbox">
<input type="hidden" class="answChk"
name="qesitmInnbArr[]"
value="${ qesitmList.qesitmInnb }"
disabled>
<input type="hidden" class="answChk"
name="answCnArr[]"
value="${ itmCnList3.itmCn }" disabled>
<input type="checkbox" class="answChkC"
name="itmInnbArr[]"
value="${ itmCnList3.itmInnb }"
itm-cn="${ itmCnList3.itmCn }"
qesitm-innb="${itmCnList3.qesitmInnb}"
<c:forEach var="qesitmAnswList3"
items="${qesitmAnswList}">
<c:if test="${qesitmAnswList3.itmInnb eq itmCnList3.itmInnb}">checked</c:if>
</c:forEach>>
<span class="check"></span>
<span class="control-label">${ itmCnList3.itmCn }</span>
</label>
</div>
</c:if>
</c:forEach>
</c:if>
<c:if test="${ qesitmList.itmTyCd eq '04' }">
<c:forEach items="${itmCnList}" var="itmCnList4">
<c:if test="${itmCnList4.qesitmInnb eq qesitmList.qesitmInnb}">
<div class="input-container">
<input type="hidden" name="qesitmEssntlAtArr[]"
value="${ qesitmList.qesitmEssntlAt }">
<input type="hidden" name="qesitmNmArr[]"
value="${ qesitmList.qesitmNm }">
<input type="hidden" name="qesitmAtArr[]"
class="answTxtAt"
value="N">
<input type="hidden" class="answTxt"
name="qesitmInnbArr[]"
value="${ qesitmList.qesitmInnb }" disabled>
<input type="text" class="input-text mm answTxtC"
name="answCnArr[]"
title="추가문항답변"
placeholder="${ itmCnList4.itmCn }"
maxlength="666"
itm-cn="${ itmCnList4.itmCn }"
qesitm-innb="${itmCnList4.qesitmInnb}"
itm-innb="${itmCnList4.itmInnb}"
<c:forEach var="qesitmAnswList4"
items="${qesitmAnswList}">
<c:if test="${qesitmAnswList4.itmInnb eq itmCnList4.itmInnb}">
value="<c:out value = '${qesitmAnswList4.answCn}'/>"
</c:if>
</c:forEach>>
<input type="hidden" class="answTxt"
name="itmInnbArr[]"
value="${ itmCnList4.itmInnb }" disabled>
</div>
<br>
</c:if>
</c:forEach>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</c:if>
<c:if test="${bbsInfo.bbsTyCd ne '10'}">
<tr>
<th><c:out value ="${bbsInfo.questionSj}"/><span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<input class="input-text full" type="text" title="해당 인풋에 대한 설명" placeholder="제목을 입력해주세요." name="sj" maxlength="50" value = "${bbscttInfo.sj}">
</div>
</td>
</tr>
</c:if>
<tr>
<th><c:out value ="${bbsInfo.awswCn}"/><span class="red-7">*</span></th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" rows="10" id="cnBbsUpdt" ><c:out value="${bbscttInfo.cn}"/></textarea>
</div>
</td>
</tr>
<tr>
<th>스크립트 내용</th>
<td colspan="3">
<div class="td-inner">
<textarea class="textarea" title="에디터 입력" name="cnScript" rows="10"><c:out value="${bbscttInfo.cnScript}"/></textarea>
</div>
</td>
</tr>
<%--게시판설정(파일첨부사용여부)--%>
<c:if test="${bbsInfo.filAtch eq 'Y'}">
<tr>
<th>파일 첨부</th>
<td colspan="03">
<c:choose>
<c:when test="${bbscttInfo.regusrDvCd ne '02'}">
<div class="dropzone-wrapper">
<div class="dropzone" id="my-dropzone-bbsctt">
</div>
<p class="fyi gray-7 mt-15">사용자 게시글 사진 수정은 파일 첨부를 권장합니다.</p>
</div>
<input type = "hidden" name = "dropzoneAt" value="Y"/> <%--드롭존 존재 여부--%>
<input type = "hidden" name = "filDvCd" value="01"/> <%--파일 구분--%>
</c:when>
<c:otherwise>
<div class="uploadList">
<div class="uploadList__top">
<div>
<button type="button" class="uploadList__removeAll" id="removeAllBtn"
<c:if test="${empty fileInfo}">style="display: none"</c:if>>
전체 삭제
</button>
<button type="button" class="uploadList__uploadFiles" id="multiFilBtn">
파일 첨부
</button>
</div>
<span class="uploadList__allSize" id="allSize">0.00 KB</span>
</div>
<div style="display: none">
<input type="file" id="fileUploadM" name="files" title="파일첨부"
multiple="multiple"
accept="<c:out value='${bbsInfo.filPermFilExtsn}'/>"/>
<label for="fileUploadM"></label>
</div>
<div class="uploadList__body" id="fileUploadMDiv" <c:if test="${empty fileInfo}">style="display: none"</c:if>>
<ul class="uploadList__list" id="fileUploadMUl"><%--ul영역 (li)--%>
<c:if test="${not empty fileInfo}">
<c:forEach var="file" items="${fileInfo}">
<li class="uploadList__item" id="<c:out value="${file.bbscttAtchmnfilInnb}"/>">
<button type = "button" class="uploadList__itemText" onclick="deleteFile(this,'<c:out value="${bbscttVO.sopmalCd}"/>','BDFL',1,fn_execute_delete_file);">
<span class="uploadList__itemName">
<c:out value="${file.orginlFilNm}"/></span>
<span class="uploadList__itemSize">
(<c:out value="${file.filMg}"/>KB)</span>
</button>
<input type="hidden" class="filsSize"
value="<c:out value="${file.filMg}"/>"/>
<button type = "button" class="uploadList__removeBtn"
onclick="deleteFile(this,'<c:out value="${bbscttVO.sopmalCd}"/>','BDFL',1,fn_execute_delete_file);">
<span class="visually-hidden">삭제</span></button>
</li>
</c:forEach>
</c:if>
</ul>
</div>
<input type = "hidden" name = "filDvCd" value="02"/> <%--파일 구분--%>
<input type = "hidden" name = "dropzoneAt" value="N"/> <%--드롭존 존재 여부--%>
<input type = "hidden" name = "filPermFilExtsn" value="<c:out value="${bbsInfo.filPermFilExtsn}"/>"/> <%--드롭존 존재 여부--%>
</div>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:if>
</tbody>
</table>
</div>
</form>
</div>
<div class="modal-footer">
<a href="#" id="btn_close_modal_bbsU" rel="modal:close" class="btn outline"><spring:message code="button.cancel"/></a>
<button class="btn primary" onclick="fn_update_bbsctt('<c:out value="${ bbsInfo.bbsId }"/>','<c:out value="${ bbscttInfo.bbscttInnb }"/>','<c:out value="${dtlPop}"/>');"><spring:message code="button.update"/></button>
</div>
<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
</div>
<script>
// Dropzone 파일업로드
if ($("#my-dropzone-bbsctt").length > 0) {
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("#my-dropzone-bbsctt", {
url: "/file-upload",
maxFilesize: 20,
autoProcessQueue: false,
addRemoveLinks: true,
dictDefaultMessage: "클릭하거나 파일을 여기로 드래그하세요",
dictRemoveFile: "삭제",
dictCancelUpload: "취소",
dictCancelUploadConfirmation: "업로드를 취소하시겠습니까?",
dictInvalidFileType: "이 파일은 업로드할 수 없습니다.",
dictFileTooBig: "파일이 너무 큽니다. ({{filesize}}MB). 최대 파일 크기: {{maxFilesize}}MB.",
dictMaxFilesExceeded: "파일을 더 이상 추가할 수 없습니다.",
dictResponseError: "서버에서 응답을 받지 못했습니다.",
acceptedFiles: "${acceptFileExtensions}",
init: function () {
let dropzoneInstance = this;
let imageData = '';
// 클릭 시 삭제 버튼 바인딩
dropzoneInstance.on("thumbnail", function (file) {
bindRemoveButton(file);
});
if (${fileInfoGson}) {
imageData = ${fileInfoGson};
// Dropzone에 이미지 추가
$.each(imageData, function (index, image) {
let mockFile = { name: image.orginlFilNm, size: image.filMg };
// Dropzone에 파일 추가
dropzoneInstance.emit("addedfile", mockFile);
// 이미지 경로 설정
const imagePath = `${cdnurl}${image.filCours}${image.sysFilNm}`;
dropzoneInstance.emit("thumbnail", mockFile, imagePath);
// 이미지 로딩 오류 처리
$(mockFile.previewElement).find("img").on("error", function () {
this.src = '/mngr/images/image_placeholder.png'; // 대체 이미지
});
// 사용자 정의 ID 추가
mockFile.customId = image.bbscttAtchmnfilInnb;
// Dropzone의 files 배열에 파일 추가
dropzoneInstance.files.push(mockFile);
// 삭제 버튼 클릭 시 처리
bindRemoveButton(mockFile);
});
}
// 파일 추가 시 처리
dropzoneInstance.on("addedfile", function (file) {
let fileLength = myDropzone.files.length;
let restoreAt = file.customData ? true : false;
if (restoreAt) {
file.customId = file.customData.customId;
} else {
file.customId = "temp" + fileLength;
}
});
// 파일 개수 초과 시 처리
dropzoneInstance.on("maxfilesexceeded", function (file) {
alert(this.options.dictMaxFilesExceeded);
this.removeFile(file);
});
}
});
// 삭제 버튼 바인딩 함수
function bindRemoveButton(file) {
if (file.previewElement) {
$(file.previewElement).find(".dz-remove").off("click").on("click", function () {
let fileId = ""+file.customId+"";
var result = dropzoneDeleteFiles(fileId, '<c:out value="${bbscttVO.sopmalCd}"/>', "BDFL", 1);
if (result === "N") {
// 파일 복원 처리
file.customData = {restored: true, customId: file.customId,name: file.name, size: file.size};
myDropzone.emit("addedfile", file);
// 이미지 src 추출
var imgElement = file.previewElement.querySelector("img");
if (imgElement) {
var imgSrc = imgElement.src;
if(imgSrc == ''){
imgSrc = '/mngr/images/image_placeholder.png';
}
// 썸네일 업데이트
myDropzone.emit("thumbnail", file, imgSrc);
}
// 삭제 버튼 다시 표시
file.previewElement.querySelector(".dz-remove").style.display = "block";
}
});
}
}
}
// name 및 id 속성을 설정하는 부분
var inputElement = $('input[type="file"].dz-hidden-input');
inputElement.attr('name', 'files');
inputElement.attr('id', 'fileUploadDrop');
</script>

View File

@@ -0,0 +1,251 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GoodsQnaBbscttListR.jsp
Description : 일반 게시글 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 <spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 3%;">
<col style="width: 3%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 5%;">
<col style="width: 18%;">
<col style="width: auto">
<col style="width: 5%">
<col style="width: 6%">
<col style="width: 4%">
<col style="width: 10%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>분류</th>
<th>상품</th>
<th>제목</th>
<th>답변상태</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr <c:if test = "${empty resultList.answBbscttInnb}">class="sendOut-info__reseller"</c:if>>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
<input type = "hidden" value = "<c:out value="${ resultList.goodsInnb}"/>">
</td>
<td>
<c:out value="${resultMap.paginationInfo.totalRecordCount - resultList.rnum+1 }" />
</td>
<td>
<c:choose>
<%--회원--%>
<c:when test="${resultList.regusrDvCd eq '01'}">
<button type="button"
class="crmBtn"
data-info="info01"
onclick="fn_select_crm_mini_info(this,
'<c:out value='${resultList.regusr}'/>'
,'<c:out value='${resultList.mbrDvCd}'/>'
,'#modalDiv');">
<span class="gray-12">
<c:out value="${resultList.regusrNm}"/>
</span><br>
(<c:choose>
<c:when test="${resultList.joinMthCd eq 'kakao'}"><%--kakao--%>
<i class="icon icon_word-badge_kakao"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'naver'}"><%--naver--%>
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${resultList.joinMthCd eq 'pos'}"><%--pos--%>
<i class="icon icon_word-badge_pos"></i>
<span class="fw-500 blue-7">
<c:out value="${resultList.regusrId}"/>
</span>
</c:when>
<c:otherwise>
<span class="fw-500 blue-7"><c:out value="${resultList.regusrId}"/></span>
</c:otherwise>
</c:choose>/
<span class="fw-500 green-8"><c:out value="${resultList.mbrGradNm}"/></span>)
</button>
</c:when>
<%--관리자--%>
<c:when test="${resultList.regusrDvCd eq '02'}">
<c:out value="${ resultList.mngrNm}"/>(<c:out value="${ resultList.maskingRegusrId}"/>)
</c:when>
<%--네이버페이--%>
<c:when test="${resultList.regusrDvCd eq '03'}">
naverpay
</c:when>
<%--비회원--%>
<c:when test="${resultList.regusrDvCd eq '99'}">
<c:out value="${resultList.maskingRegusrNm}"/>[비회원]
</c:when>
</c:choose>
</td>
<td><c:out value="${ resultList.ip}" /></td>
<td><c:out value="${resultList.answCn}" /></td>
<td>
<div class="td-inner">
<div class="product-search-box__product">
<c:if test = "${not empty resultList.img}">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<button type="button" class="moveDetil" bbsctt-innb = <c:out value="${resultList.bbscttInnb}"/>>
<img src="<c:out value="${cdnurl}${resultList.img}"/>"
onerror="this.src='<c:url
value="/mngr/images/image_placeholder.png"/>'" width="64"
alt="상품이미지">
</button>
<a onclick = "fn_move_goods_dtl_common(<c:out value="${resultList.goodsInnb}"/>,'sopmal');" style="cursor:pointer;">
<div class="product-search-box__detail">
<p class="product-search-box__detail-name">
<c:out value="${resultList.goodsNm}"/>
</p>
</div>
</a>
</c:if>
</div>
</div>
</td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td>
<c:if test = "${not empty resultList.answBbscttInnb}">답변완료</c:if>
<c:if test = "${empty resultList.answBbscttInnb}">답변대기</c:if>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb}">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');"><spring:message code="button.update"/></button>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${not empty resultList.answBbscttInnb}">
<button type ="button" class="btn xsm primary outline" onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>', '<c:out value="${ resultList.answBbscttInnb}"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.update"/></button>
</c:when>
<c:otherwise>
<button type ="button" class="btn xsm primary" onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.insert"/></button>
</c:otherwise>
</c:choose>
</c:if>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' && empty resultList.npayBbscttSnb}">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>','','<c:out value="${ resultList.goodsInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_bbsctt_list" />
</div>

View File

@@ -0,0 +1,204 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : GnrlBbscttListR.jsp
Description : 일반 게시글 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2023-12-08 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">검색 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 <spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 11%;">
<col style="width: auto;">
<col style="width: 11%;">
<col style="width: 11%">
<col style="width: 11%">
<col style="width: 3%">
<col style="width: 5%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th>공지기간</th>
<th>노출 기간</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:set var="rnumAt" value="false" scope="page" />
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test = "${resultList.rnum ne '0'}">
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }" name="selectedBbscttRow" class= 'bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</c:if>
</td>
<td>
<c:choose>
<c:when test = "${resultList.rnum eq '0'}">공지</c:when>
<c:otherwise><c:out value="${resultList.rnum}" /></c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.mngrNm }" />(<c:out value="${ resultList.maskingRegusrId }" />)</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td>
<c:choose>
<c:when test= "${resultList.ntcDvn eq '1'}">
<span>상시 공지</span>
</c:when>
<c:when test="${resultList.ntcDvn eq '2'}">
<span><c:out value="${ resultList.ntcBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntcEndDe }"/></span>
</c:when>
<c:when test="${resultList.ntcDvn eq '3'}">
<span>공지 종료</span>
</c:when>
</c:choose>
</td>
<td>
<c:choose>
<c:when test= "${ resultList.expsrAt eq 'Y' && resultList.ntcePdSetupAt eq 'Y'}">
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntceEndDe }"/></span>
</c:when>
<c:when test="${ resultList.expsrAt eq 'Y' && resultList.ntcePdSetupAt eq 'N'}">
<span>상시 노출</span>
</c:when>
<c:otherwise>
<span>노출 안함</span>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','');"><spring:message code="button.update"/></button>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
<c:if test = "${resultList.rnum > 0}">
<c:set var="rnumAt" value="true" scope="page" />
</c:if>
</c:forEach>
<c:if test = "${not rnumAt}"><%--조회된 데이터 없을 시 데이터 없음 노출--%>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:if>
</c:when>
<c:otherwise>
<tr>
<td colspan="14"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,225 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : NoticeListRForm.jsp
Description : 공지 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-05 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택 삭제</button>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: auto;">
<col style="width: 5%;" class = "itm">
<col style="width: 11%;">
<col style="width: 11%">
<col style="width: 11%">
<col style="width: 3%">
<col style="width: 5%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class = "itm">분류</th>
<th>공지기간</th>
<th>노출기간</th>
<th>등록일</th>
<th>조회수</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:set var="rnumAt" value="false" scope="page" />
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test = "${resultList.rnum ne '0'}">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }" name="selectedBbscttRow" class= 'bbscttChk'>
<c:if test="${ resultList.useAt eq 'Y' }">
<span class="check"></span>
</c:if>
</label>
</c:if>
</td>
<td>
<c:choose>
<c:when test = "${resultList.rnum eq '0'}">공지</c:when>
<c:otherwise><c:out value="${resultList.rnum}" /></c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.mngrNm }" />
<c:if test = "${not empty resultList.maskingRegusrId}">
(<c:out value="${ resultList.maskingRegusrId }" />)
</c:if>
</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv = "02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }" escapeXml="false"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.isfiles eq 1}">
<i class="icon icon_image-badge"></i>
</c:if>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
<c:if test="${resultList.popularAt eq 'Y'}">
<i class="icon icon_hot-badge"></i>
</c:if>
<c:if test="${ resultList.secretBbscttAt eq 'Y' }">
<i class="icon icon_lock"></i>
</c:if>
</td>
<td class = "itm"><c:out value="${resultList.answCn}" /></td>
<td>
<c:choose>
<c:when test= "${resultList.ntcDvn eq '1'}">
<span>상시 공지</span>
</c:when>
<c:when test="${resultList.ntcDvn eq '2'}">
<span><c:out value="${ resultList.ntcBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntcEndDe }"/></span>
</c:when>
<c:when test="${resultList.ntcDvn eq '3'}">
<span>공지 종료</span>
</c:when>
</c:choose>
</td>
<td>
<c:choose>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 1}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
<span>상시</span>
</c:when>
<c:when test= "${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 2}">
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
<span><c:out value="${ resultList.ntceEndDe }"/></span>
</c:when>
<c:when test="${resultList.expsrAt eq 'Y' && resultList.ntceDvn eq 3}">
<c:choose>
<c:when test = " ${resultList.ntcePdSetupAt eq 'N'}">
<span><c:out value="${ resultList.aNtceBgnDe }"/></span> ~
</c:when>
<c:otherwise>
<span><c:out value="${ resultList.ntceBgnDe }"/></span> ~
</c:otherwise>
</c:choose>
<span><c:out value="${ resultList.ntceEndDe }"/></span>[종료]
</c:when>
<c:otherwise>
<span>노출 안함</span>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${ resultList.registDt }"/></td>
<td><fmt:formatNumber value="${resultList.inqireCnt}" pattern="#,##0"/></td>
<td>
<div class="manage-btn-container">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','');"><spring:message code="button.update"/></button>
</div>
</td>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
<c:if test = "${resultList.rnum > 0}">
<c:set var="rnumAt" value="true" scope="page" />
</c:if>
</c:forEach>
<c:if test = "${not rnumAt}"><%--조회된 데이터 없을 시 데이터 없음 노출--%>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:if>
</c:when>
<c:otherwise>
<tr>
<td colspan="14"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>

View File

@@ -0,0 +1,164 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : FaqListR.jsp
Description : Faq 목록 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-02-20 김혜지 최초 생성
--%>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><fmt:formatNumber value="${resultMap.paginationInfo.totalRecordCount}" pattern="#,###"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select id="pageUnit" name="pageUnit" title="페이지당 출력될 목록건수" onchange="fn_select_bbsctt_list('1');">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit }">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<form id="listForm">
<hr class="horizontal-line">
<div class="form-control-container">
<div class="left">
<button type="button" class="btn outline sm" onclick="fn_delete_bbsctt('', 'many');">선택<spring:message code="button.delete"/></button>
</div>
<div class="center">
</div>
<div class="right">
<button type = "button" class="btn outline sm moveSopBtn">사용자 보기</button>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table vertical">
<caption>이용안내 게시글 목록</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 4%;">
<col style="width: 3%;">
<col style="width: 8%;">
<col style="width: 12%;">
<col style="width: auto;">
<col style="width: 7%;" class = "itm">
<col style="width: 11%">
<col style="width: 5%">
<col style="width: 5%">
</colgroup>
<thead>
<tr>
<th>
<label class="b-checkbox checkbox is-medium check-all" >
<input type="checkbox" value="" id="listChkA">
<span class="check"></span>
</label>
</th>
<th>번호</th>
<th>작성자</th>
<th>IP</th>
<th>제목</th>
<th class = "itm">분류</th>
<th>등록일</th>
<th>관리</th>
<th>삭제</th>
</tr>
</thead>
<tbody id ="contentSection">
<c:choose>
<c:when test="${ not empty resultMap.resultList.resultList }">
<c:forEach items="${ resultMap.resultList.resultList }" var="resultList" varStatus="status">
<tr>
<td>
<c:if test="${ resultList.useAt eq 'Y' }">
<label class="b-checkbox checkbox is-medium chkLabel">
<input type="checkbox" value="${ resultList.bbscttInnb }"
name="selectedBbscttRow" class='bbscttChk'>
<span class="check"></span>
</label>
</c:if>
</td>
<td>
<c:out value="${resultList.rnum}" />
</td>
<td>
<c:out value="${ resultList.mngrNm }" />(<c:out value="${ resultList.regusrId}" />)
</td>
<td><c:out value="${ resultList.ip }" /></td>
<td class="left">
<a class="under-line moveDetil"
bbsctt-innb = "<c:out value="${ resultList.bbscttInnb }"/>"
bbs-id ="<c:out value="${ resultList.bbsId }"/>"
regusr-dv="02">
<c:choose>
<c:when test = "${resultList.useAt eq 'Y'}">
<c:out value="${ resultList.sj }"/>
</c:when>
<c:otherwise>
<span class="stone-6">삭제된 게시글입니다.[<c:out value="${ resultList.updtDt}"/>]</span>
</c:otherwise>
</c:choose>
</a>
<c:if test="${resultList.newAt eq 'Y'}">
<i class="icon icon_new-badge"></i>
</c:if>
</td>
<td class = "itm"><c:out value="${resultList.answCn}" /></td>
<td><c:out value="${ resultList.registDt }"/></td>
<td>
<div class="manage-btn-container">
<button type ="button" class="btn xsm outline primary" onclick="fn_select_bbsctt_update_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');"><spring:message code="button.update"/></button>
<c:if test = "${resultMap.bbsInfo.answRegist eq 'Y'}">
<c:choose>
<c:when test="${ resultList.answAt eq 'Y'}">
<button type ="button" class="btn xsm primary outline" onclick="fn_select_answ_update_pop('<c:out value="${ resultList.bbscttInnb }"/>', '<c:out value="${ resultList.boardAnswInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.update"/></button>
</c:when>
<c:when test = "${ resultList.answAt eq 'N'}">
<button type ="button" class="btn xsm primary" onclick="fn_select_answ_regist_pop('<c:out value="${ resultList.bbscttInnb }"/>','<c:out value="${ resultList.bbsId }"/>','');">답변 <spring:message code="button.insert"/></button>
</c:when>
</c:choose>
</c:if>
</div>
</td>
<td>
<c:if test="${ resultList.useAt ne 'N' }">
<div class="manage-btn-container">
<button class="btn xsm dark" type="button" onclick="fn_delete_bbsctt('<c:out value="${ resultList.bbscttInnb }"/>');"><spring:message code="button.delete"/></button>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="14"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</form>
</section>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value = '${resultMap.bbsctt.pageIndex}'/>"/>
<div class="pagination__container">
<ui:pagination paginationInfo="${ resultMap.paginationInfo }" type="image" jsFunction="fn_select_bbsctt_list" />
</div>
<script src="/admin/js/script.js" defer=""></script>