사용자

- 카카오 친구톡 템플릿 관리 화면 리스트 페이징 오류 수정

관리자
  - 채널아이디 목록 화면 템플릿 항목 추가 및 알림톡, 친구톡 템블릿 팝업 기능 추가
  - 친구톡 등록 템플릿 리스트 및 상세화면 팝업 추가
  - 기존 알림톡 템플릿 리스트 오류 수정
This commit is contained in:
rosewiper 2024-09-12 17:42:02 +09:00
parent e7e0c04430
commit a32df2c7dc
9 changed files with 1522 additions and 14 deletions

View File

@ -851,6 +851,7 @@ public class MjonKakaoATController {
kakaoVO.setPage(Integer.toString(channelIDVO.getPageIndex()));
kakaoVO.setKeyword(channelIDVO.getSearchKeyword());
kakaoVO.setUserId(channelIDVO.getUserId());
kakaoVO.setYellowId(channelIDVO.getYellowId());
String templateStatus = channelIDVO.getTemplateStatus();
String keyword = channelIDVO.getSearchKeyword();

View File

@ -13,14 +13,21 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.HandlerMapping;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import itn.com.cmm.LoginVO;
import itn.com.cmm.service.FileVO;
import itn.com.cmm.util.StringUtil;
import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO;
import itn.let.kakao.admin.kakaoFt.service.MjonKakaoFTService;
import itn.let.kakao.admin.kakaoFt.service.MjonKakaoFTVO;
import itn.let.kakao.kakaoComm.KakaoVO;
import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService;
import itn.let.mjo.msg.service.MjonMsgResultCodeVO;
import itn.let.mjo.msg.service.MjonMsgService;
import itn.let.mjo.reservmsg.service.MjonReservMsgService;
import itn.let.utl.fcc.service.EgovStringUtil;
/**
*
@ -52,6 +59,12 @@ public class MjonKakaoFTController {
@Resource(name = "MjonReservMsgService")
private MjonReservMsgService mjonReservMsgService;
@Resource(name = "kakaoFriendsTalkTemplateService")
private KakaoFriendsTalkTemplateService kakaoFtTemplateService;
@Resource(name = "kakaoApiService")
private KakaoApiService kakaoApiService;
/*
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@ -501,6 +514,125 @@ public class MjonKakaoFTController {
return "/uss/ion/kakaoft/ReserveKakaoFTModify";
}
/**
* 채널 아이디별 등록 친구톡 템플릿 목록 팝업화면 관리자페이지
* @param ChannelIDVO
* @param request
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do")
public String KakaoFTChannelIDTemplateListPopupAjax(@ModelAttribute("searchVO") ChannelIDVO channelIDVO,
HttpServletRequest request ,
ModelMap model) throws Exception {
try {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(id == "") {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
KakaoVO kakaoVO = new KakaoVO();
//페이징 처리
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(channelIDVO.getPageIndex());
paginationInfo.setRecordCountPerPage(9);
paginationInfo.setPageSize(channelIDVO.getPageSize());
kakaoVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
kakaoVO.setLastIndex(paginationInfo.getLastRecordIndex());
kakaoVO.setRecordCountPerPage(9);
kakaoVO.setSenderKey(channelIDVO.getSenderKey());
kakaoVO.setPage(Integer.toString(channelIDVO.getPageIndex()));
kakaoVO.setSearchKeyword(channelIDVO.getSearchKeyword());
kakaoVO.setUserId(channelIDVO.getUserId());
String templateStatus = channelIDVO.getTemplateStatus();
String keyword = channelIDVO.getSearchKeyword();
/*if(keyword != null && keyword != "") {
kakaoVO.setSearchKeyword(keyword);
}else {
kakaoVO.setSearchKeyword("");
}*/
if("".equals(kakaoVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
kakaoVO.setSearchSortCnd("friendId");
kakaoVO.setSearchSortOrd("desc");
}
//채널 아이디 정보
String yellowId = kakaoVO.getYellowId();
kakaoVO.setCount("9"); //페이지 템플릿 개수 9개로
List<KakaoVO> kakaoTemplateInfoList = new ArrayList<KakaoVO>();
kakaoTemplateInfoList = kakaoFtTemplateService.selectKakaoFriendsTemplateList(kakaoVO);
model.addAttribute("kakaoVO", kakaoVO);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("kakaoTemplateInfoList", kakaoTemplateInfoList); //친구톡 템플릿 리스트
paginationInfo.setTotalRecordCount(kakaoTemplateInfoList.size() > 0 ? ((KakaoVO)kakaoTemplateInfoList.get(0)).getTotCnt() : 0);
} catch (Exception e) {
System.out.println("KakaoFTChannelIDTemplateListPopupAjax Contrller Error ::: " + e);
}
return "uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateListPop";
}
/**
* 채널 아이디별 등록 친구톡 템플릿 상세내용 팝업화면 관리자페이지
* @param ChannelIDVO
* @param request
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/uss/ion/kakaoft/KakaoFTChannelIDTemplateDetailPopupAjax.do")
public String KakaoFTChannelIDTemplateDetailPopupAjax(@ModelAttribute("searchVO") ChannelIDVO channelIDVO,
HttpServletRequest request ,
ModelMap model) throws Exception {
try {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if(id == "") {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
KakaoVO kakaoVO = new KakaoVO();
kakaoVO.setSenderKey(channelIDVO.getSenderKey());
kakaoVO.setFriendId(channelIDVO.getTemplateCode());
kakaoVO.setUserId(channelIDVO.getUserId());
String senderKey = kakaoVO.getSenderKey();
model.addAttribute("senderKey", senderKey);
//친구톡 템플릿 조회하기
KakaoVO resultTemplateVO = kakaoFtTemplateService.selectKakaoFriendsTemplateDetail(kakaoVO);
model.addAttribute("resultTemplateVO", resultTemplateVO);
// 사용자 아이디를 이용한 발신프로필 조회
kakaoVO.setUserId(channelIDVO.getUserId());
List<KakaoVO> selectKakaoProfileList = kakaoApiService.selectKakaoProfileList(kakaoVO);
model.addAttribute("kakaoProfileList", selectKakaoProfileList);
} catch (Exception e) {
System.out.println("KakaoFTChannelIDTemplateDetailPopupAjax Contrller Error ::: " + e);
}
return "uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateDetailPop";
}
/**
* 카톡 전송사 발송 결과 코드 리스트
* @param MjonMsgResultCodeVO

View File

@ -31,9 +31,13 @@ import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService;
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService;
import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService;
import itn.let.mjo.mjocommon.MjonCommon;
import itn.let.mjo.mjocommon.MjonHolidayApi;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.mjo.msgdata.service.MjonMsgDataVO;
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO;
import itn.let.mjo.msgholiday.service.MsgHolidayService;
import itn.let.mjo.msgholiday.service.MsgHolidayVO;
import itn.let.mjo.symbol.service.MjonSymbolService;
import itn.let.mjo.symbol.service.MjonSymbolVO;
import itn.let.sym.site.service.EgovSiteManagerService;
@ -75,6 +79,9 @@ public class KakaoFriendsTalkSendController {
@Resource(name = "egovSiteManagerService")
EgovSiteManagerService egovSiteManagerService;
@Resource(name = "MsgHolidayService")
private MsgHolidayService msgHolidayService;
@Autowired
KakaoSendUtil kakaoSendUtil;
@ -624,12 +631,52 @@ public class KakaoFriendsTalkSendController {
JoinSettingVO joinSettingVO = new JoinSettingVO();
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail();
String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti();
//야간 스미싱의심 알림이 활성화 되어있는 경우 예외 알림 시간대가 아닌경우 슬랙 알림 발송 처리한다.
if(holiSmishingNoti.equals("Y")) {
// SLACK 체크
if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO();
msgAlarmSetVO.setUseYn("Y");
msgAlarmSetVO.setFirstIndex(0);
List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO);
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
MsgHolidayVO msgHolidayVO = new MsgHolidayVO();
msgHolidayVO.setFirstIndex(0);
msgHolidayVO.setRecordCountPerPage(100);
msgHolidayVO.setSearchHoliYear(Integer.toString(year));
List<MsgHolidayVO> resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO);
MjonHolidayApi mjonHolidayApi = new MjonHolidayApi();
boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
MjonCommon comm = new MjonCommon();
comm.getAdminKakaoAtSandSlack(kakaoVO);
}
}
}
// SLACK 체크
/*if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
//Slack으로 메세지 전송 처리
MjonCommon comm = new MjonCommon();
comm.getAdminKakaoAtSandSlack(kakaoVO);
}
}*/
}
} catch (Exception e) {

View File

@ -373,12 +373,12 @@ public class KakaoFriendsTalkTemplateController {
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
paginationInfo.setRecordCountPerPage(9);
paginationInfo.setPageSize(searchVO.getPageSize());
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
searchVO.setRecordCountPerPage(9);
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
searchVO.setSearchSortCnd("FRIEND_ID");

View File

@ -265,7 +265,12 @@ public class MjonCommon {
String smisingSmsTxt = "";
//예약문자를 발송하는 경우 문자 내용 앞에 "[예약]" 표시되도록 처리
if(reserveYn.equals("Y")) {
if(atDelayYn.equals("Y")) {//예약문자 스미싱의심 경우
reservSmsTxt = "[스미싱의심][예약]" + smsTxt;
}else {
reservSmsTxt = "[예약]" + smsTxt;
}
smsTxt = reservSmsTxt;
}else if(atDelayYn.equals("Y")) {
@ -280,7 +285,7 @@ public class MjonCommon {
if(kakaoVO.getMsgType().equals("8")) {
msgType = "[알림톡]";
}else if(kakaoVO.getMsgType().equals("9")){
msgType = "[테스트중][친구톡]";
msgType = "[친구톡]";
}
sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType;

View File

@ -83,13 +83,27 @@ function fnSetCalMonth(val) {
}
//선택 채널 알림톡 템플릿 리스트 불러오기
function fnTemplateListPop(senderKey, userId){
function fnAtTemplateListPop(yellowId, senderKey, userId){
document.popupForm.senderKey.value = senderKey;
document.popupForm.userId.value = userId;
document.popupForm.yellowId.value = yellowId;
window.open("about:blank", 'listPopup', 'width=930, height=860, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes');
document.popupForm.action = "<c:url value='/uss/ion/kakaoat/KakaoATChannelIDTemplateListPopupAjax.do'/>";
document.popupForm.target = "listPopup";
document.popupForm.submit();
}
//선택 채널 친구톡 템플릿 리스트 불러오기
function fnFtTemplateListPop(senderKey, userId){
document.popupForm.senderKey.value = senderKey;
document.popupForm.userId.value = userId;
window.open("about:blank", 'listPopup', 'width=930, height=860, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes');
document.popupForm.action = "<c:url value='/uss/ion/kakaoat/KakaoATChannelIDTemplateListPopupAjax.do'/>";
document.popupForm.action = "<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do'/>";
document.popupForm.target = "listPopup";
document.popupForm.submit();
@ -118,6 +132,7 @@ function fnSelectMber(mberId) {
<input type="hidden" name="mberId"/>
<input type="hidden" id="senderKey" name="senderKey" value=""/>
<input type="hidden" name="userId" value=""/>
<input type="hidden" name="yellowId" value=""/>
</form>
@ -193,6 +208,7 @@ function fnSelectMber(mberId) {
<col style="width: 19%">
<col style="width: 24%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 11%">
<col style="width: 11%">
<col style="width: 10%">
@ -204,6 +220,7 @@ function fnSelectMber(mberId) {
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
<th>채널명<input type="button" class="sort sortBtn" id="sort_yellowId"></th>
<th>등록상태</th>
<th>템플릿</th>
<th>채널생성일</th>
<th>채널등록일<input type="button" class="sort sortBtn" id="sort_lastUpdtPnttm"></th>
<th>삭제여부<input type="button" class="sort sortBtn" id="sort_deleteYn"></th>
@ -226,7 +243,7 @@ function fnSelectMber(mberId) {
<td onClick="fnTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" style="cursor:pointer;">
<c:out value="${result.uuid}"/>
</td>
<td onClick="fnTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" style="cursor:pointer;">
<td>
<c:out value="${result.name}"/>
</td>
<td>
@ -250,6 +267,10 @@ function fnSelectMber(mberId) {
</c:otherwise>
</c:choose>
</td>
<td>
<input type="button" class="btnType1" onClick="fnAtTemplateListPop('<c:out value="${result.uuid}"/>','<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" value="AT"/>
<input type="button" class="btnType1" onClick="fnFtTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" value="FT"/>
</td>
<td>
<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd"/>
@ -342,14 +363,14 @@ function fnSelectMber(mberId) {
</tr>
</c:forEach>
<c:if test="${empty resultChannelList}">
<tr><td colspan="14"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- <div class="btnWrap">
<input type="button" class="btnType2" onclick="javascript:fnSttusYAll(); return false;" value="일괄승인">
</div> -->
<div class="btnWrap">
<!-- <input type="button" class="btnType2" onclick="javascript:fnSttusYAll(); return false;" value="일괄승인"> -->
</div>
<!-- 페이지 네비게이션 시작 -->
<c:if test="${!empty resultChannelList}">
<div class="page">

View File

@ -0,0 +1,190 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<% pageContext.setAttribute("newLineChar", "\r\n"); %>
<% pageContext.setAttribute("newLineChar2", "\n"); %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>친구톡 템플릿 등록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&amp;display=swap"
rel="stylesheet">
<link rel="stylesheet" href="/publish/css/reset.css">
<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
<link rel="stylesheet" href="/publish/css/common.css">
<link rel="stylesheet" href="/publish/css/button.css">
<link rel="stylesheet" href="/publish/css/content.css?date=202301160001">
<link rel="stylesheet" href="/publish/css/mem.css">
<link rel="stylesheet" href="/publish/css/font.css">
<link rel="stylesheet" href="/publish/css/popupLayer.css">
<script src="/publish/js/jquery-3.5.0.js"></script>
<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="/publish/js/common.js"></script>
<script src="/publish/js/content.js?date=202211070003"></script>
<script src="/publish/js/popupLayer.js"></script>
<script>
function linkPage(page){
form = document.listForm;
form.pageIndex.value=page;
form.action="<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do'/>";
form.submit();
}
function fnSearch(){
var templateStatus = $("select[name=selectTemplateStatus]").val();
var searchKeyword = $("input[name=inputSearchKeyword]").val();
if(searchKeyword != ''){
if(searchKeyword.length < 2 || searchKeyword.length > 50){
alert("검색어는 최소 2자 이상 50자 이내로 입력해야 합니다.");
return false;
}
}
var form = document.listForm;
form.searchKeyword.value = searchKeyword;
form.templateStatus.value = templateStatus;
linkPage(1);
}
function fnTemplateDetail(friendId){
var form = document.templateForm;
form.templateCode.value = friendId;
window.open("about:blank", 'popupTemplateDetail', 'width=1240, height=1080, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
form.action = "<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateDetailPopupAjax.do'/>";
form.target = "popupTemplateDetail";
form.submit();
}
</script>
</head>
<body>
<div class="loading_layer">
<div class="loading_container">
<div class="bar"></div>
<div class="text">Loading</div>
</div>
</div>
<div class="top_content kakaotalkset_cont current pay_tab_wrap">
<form id="templateForm" name="templateForm" method="post">
<input type="hidden" name="SenderKey" value="<c:out value="${kakaoVO.senderKey }"/>">
<input type="hidden" id="templateCode" name="templateCode" value="">
<input type="hidden" id="tmpUserId" name="userId" value="<c:out value="${kakaoVO.userId}"/>">
</form>
<form id="listForm" name="listForm" method="post">
<input type="hidden" name="SenderKey" value="<c:out value="${kakaoVO.senderKey }"/>">
<input type="hidden" name="yellowId" value="<c:out value="${kakaoVO.yellowId }"/>">
<input type="hidden" id="page" name="page" value="">
<input type="hidden" id="pageIndex" name="pageIndex" value="">
<input type="hidden" id="searchKeyword" name="searchKeyword" value="">
<input type="hidden" id="templateStatus" name="templateStatus" value="">
<input type="hidden" id="templateCode" name="templateCode" value="">
<input type="hidden" id="listUserId" name="userId" value="<c:out value="${kakaoVO.userId}"/>">
</form>
<div class="info_popup ad_layer template_choice_popup adpopup01" style="width:930px; margin-left:45px;">
<div class="top_content kakaotalkset_cont current pay_tab_wrap" style="width:930px;">
<div class="popup_heading">
<p>친구톡 템플릿 선택</p>
</div>
<div class="layer_in">
<div class="popup_search_wrap type2 grayborder grayfill">
<input type="text" name="inputSearchKeyword" id="inputSearchKeyword" placeholder="템플릿명을 입력해주세요." class="inputType template_name" value="<c:out value='${kakaoVO.keyword}'/>">
<button type="button" class="popup_button_type bluefill" onclick="fnSearch(); return false;">검색</button>
</div>
<div class="template_list">
<ul class="kakao_template_list thumbnail_list">
<c:choose>
<c:when test="${not empty kakaoTemplateInfoList}">
<c:forEach var="templatInfoList" items="${kakaoTemplateInfoList}" varStatus="status">
<li>
<div class="kakao_template_wrap">
<div class="template_cont">
<div class="title">
<div class="check">
</div>
<p title="친구톡 템플릿 내용" onclick="javascript:fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;" style="cursor:pointer;">
<c:if test="${templatInfoList.adFlag eq 'Y'}">(광고)</c:if>
<c:out value="${fn:replace(templatInfoList.yellowId, '@', '')}"/>
</p>
</div>
<div class="allimtalk_content" onclick="javascript:fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;" style="cursor:pointer;">
<!-- 템플릿에 이미지가 있는경우 이미지 표시 -->
<c:if test="${not empty templatInfoList.imageType}">
<div class="img_box">
<img src="<c:url value='${templatInfoList.templateImageUrl}'/>" alt="">
</div>
</c:if>
<p class="template_text"><c:out value="${fn:replace(fn:replace(templatInfoList.templateContent, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/></p>
<!-- 채널 추가형을 선택한 경우 자동으로 버튼이 하나 추가됨, 버튼을 추가한 경우 버튼 정보 표시 -->
<c:forEach var="templatInfoButtonList" items="${templatInfoList.buttonVOList}" varStatus="status">
<button type="button" class="btn_kakao_type"><c:out value="${templatInfoButtonList.name}"/></button>
</c:forEach>
</div>
</div>
<c:if test="${templatInfoList.adFlag eq 'Y'}">
<p class="cf_text">수신거부 홈 > 채널차단</p>
</c:if>
</div>
<div class="kakao_template_info">
<dl>
<dt>템플릿명</dt>
<dd>
<c:out value="${templatInfoList.templateName}"/>
</dd>
</dl>
<dl>
<dt>등록일</dt>
<dd><c:out value="${templatInfoList.frstRegistPnttm}"/>
<%-- <div class="btn_wrap">
<button type="button" class="btn_template_edit" title="템플릿 수정" onclick="javascript:fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;"><img src="/publish/images/content/btn_template_edit.png" alt=""></button>
<button type="button" class="btn_template_delete" title="템플릿 삭제" onclick="javascript:fnTemplateDelBtn('<c:out value="${templatInfoList.friendId}"/>'); return false;"><img src="/publish/images/content/btn_template_delete.png" alt=""></button>
</div> --%>
</dd>
</dl>
</div>
</li>
</c:forEach>
</c:when>
<c:otherwise>
<li class="template_none">등록된 템플릿이 없습니다.</li>
</c:otherwise>
</c:choose>
</ul>
</div>
<!-- pagination -->
<c:if test="${not empty kakaoTemplateInfoList}">
<ul class="pagination">
<ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="linkPage" />
</ul><!-- //pageWrap -->
</c:if>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -41,7 +41,7 @@ function selectTemplateListLoad(page){
//화면 로딩바 보여주기
$('.loading_layer').addClass('active');
$("#templateList").load("/web/mjon/kakao/template/selectKakaoFriendsTemplateListAjax.do", {"senderKey":selectAgentCode, "categoryCode" : selectTemplateSecondCatagory, "templateStatus" : selectTemplateStatus, "searchKeyword" : keyword, "page" : page, "yellowId" : yellowId, "formListType" : formListType} ,function(){
$("#templateList").load("/web/mjon/kakao/template/selectKakaoFriendsTemplateListAjax.do", {"senderKey":selectAgentCode, "categoryCode" : selectTemplateSecondCatagory, "templateStatus" : selectTemplateStatus, "searchKeyword" : keyword, "pageIndex" : page, "yellowId" : yellowId, "formListType" : formListType} ,function(){
//썸네일 박스 스크롤 적용해주기
$(".kakao_template_wrap").mCustomScrollbar({