rosewiper 2024-09-12
사용자 - 카카오 친구톡 템플릿 관리 화면 리스트 페이징 오류 수정
  - 카카오 친구톡 템플릿 관리 화면 리스트 페이징 오류 수정

관리자
  - 채널아이디 목록 화면 템플릿 항목 추가 및 알림톡, 친구톡 템블릿 팝업 기능 추가
  - 친구톡 등록 템플릿 리스트 및 상세화면 팝업 추가
  - 기존 알림톡 템플릿 리스트 오류 수정
@a32df2c7dce6aa560241204c7721f5da02886519
src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
--- src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
+++ src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java
@@ -851,6 +851,7 @@
 			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();
src/main/java/itn/let/kakao/admin/kakaoFt/web/MjonKakaoFTController.java
--- src/main/java/itn/let/kakao/admin/kakaoFt/web/MjonKakaoFTController.java
+++ src/main/java/itn/let/kakao/admin/kakaoFt/web/MjonKakaoFTController.java
@@ -13,14 +13,21 @@
 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;
 
 /**
 *
@@ -51,6 +58,12 @@
 
 	@Resource(name = "MjonReservMsgService")
     private MjonReservMsgService mjonReservMsgService;
+	
+	@Resource(name = "kakaoFriendsTalkTemplateService")
+	private KakaoFriendsTalkTemplateService kakaoFtTemplateService;
+	
+	@Resource(name = "kakaoApiService")
+	private KakaoApiService kakaoApiService;
 	
 	/*
 	@Resource(name = "EgovCmmUseService")
@@ -501,6 +514,125 @@
         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
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
@@ -31,9 +31,13 @@
 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;
@@ -74,6 +78,9 @@
 	/** 사이트 설정 */ 
 	@Resource(name = "egovSiteManagerService")
 	EgovSiteManagerService egovSiteManagerService;	
+	
+	@Resource(name = "MsgHolidayService")
+    private MsgHolidayService msgHolidayService;
 	
 	@Autowired
 	KakaoSendUtil kakaoSendUtil;
@@ -624,12 +631,52 @@
 				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")) {
+				/*if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
 					//Slack으로 메세지 전송 처리
 					MjonCommon comm = new MjonCommon();
 					comm.getAdminKakaoAtSandSlack(kakaoVO);
-				}
+				}*/
 			}
 			
 		} catch (Exception e) {
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
@@ -373,12 +373,12 @@
 			/** 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");
src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
@@ -265,7 +265,12 @@
 			String smisingSmsTxt = "";
 			//예약문자를 발송하는 경우 문자 내용 앞에 "[예약]" 표시되도록 처리
 			if(reserveYn.equals("Y")) {
-				reservSmsTxt = "[예약]" + smsTxt;
+				
+				if(atDelayYn.equals("Y")) {//예약문자 중 스미싱의심 일 경우
+					reservSmsTxt = "[스미싱의심][예약]" + smsTxt;
+				}else {
+					reservSmsTxt = "[예약]" + smsTxt;
+				}
 				smsTxt = reservSmsTxt;
 			}else if(atDelayYn.equals("Y")) {
 				
@@ -280,7 +285,7 @@
 			if(kakaoVO.getMsgType().equals("8")) {
 				msgType = "[알림톡]";
 			}else if(kakaoVO.getMsgType().equals("9")){
-				msgType = "[테스트중][친구톡]";
+				msgType = "[친구톡]";
 			}
 			sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType;
 			
src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoat/KakaoATChannelIDList.jsp
@@ -83,13 +83,27 @@
 }
 
 //선택 채널 알림톡 템플릿 리스트 불러오기
-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 @@
 	<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 @@
 						<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 @@
 							<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 @@
 							<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>
@@ -249,6 +266,10 @@
                             		<c:otherwise>
                             		</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"/>
@@ -342,14 +363,14 @@
 						</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">
 
src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateDetailPop.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateDetailPop.jsp
@@ -0,0 +1,1112 @@
+<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<!DOCTYPE html>
+<html lang="ko">
+<head>
+<title> 친구톡 템플릿 상세보기</title>
+<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&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">
+    <link rel="stylesheet" href="/publish/css/adrbook.css">
+    <link rel="stylesheet" href="/publish/css/font.css">
+    <link rel="stylesheet" href="/publish/css/popupLayer.css">
+    <link rel="stylesheet" href="/publish/js/datepicker/classic.css">
+    <link rel="stylesheet" href="/publish/js/datepicker/classic.date.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"></script>
+    <script src="/publish/js/popupLayer.js"></script>
+    <script type="text/javascript" src="/publish/js/datepicker/picker.js"></script>
+    <script type="text/javascript" src="/publish/js/datepicker/picker.date.js"></script>
+    <script type="text/javascript" src="/publish/js/datepicker/ko_KR.js"></script>
+
+	<script src="/js/MJUtill.js"></script>
+	<script src="/js/kakao/templateComm.js"></script>
+
+<script type="text/javascript">
+
+/* 파일등록 */
+var _fileIdx = 0;
+var _fileForm2 = new Array();
+var fileExt = ""; // 첨부파일 확장자
+
+$(document).ready(function (){
+	
+	initFormChk();
+	
+	//첫로딩시 우측 미리보기 화면 숨김처리
+	//$('.emphasis_title_text').hide();	//강조유형 타이틀
+	//$('.emphasis_side_text').hide();	//강조유형 보조문구
+	//$('.template_text').hide();			//내용 미리보기
+	//$('.side_info_text').hide();		//부가정보 내용
+	//$('.channel_info_text').hide();		//채널추가 텍스트 내용
+	//$('.btnAd').hide();					//샘플 채널추가 버튼
+	//$('.btnEmpty').hide();				//샘플 버튼
+	
+	$("#selectTemplateFirstCatagory").on("change", function(){
+		$("#selectTemplateSecondCatagory option").remove();
+		templateCatagoryChange("2", $(this).val(), "insert");
+	});
+	
+	$("#selectTemplateFirstCatagory_select").on("change", function(){
+		$("#selectTemplateSecondCatagory_select option").remove();
+		templateCatagoryChange("2", $(this).val(), "select");
+	});
+	
+	//메시지 유형에 따른 화면 변경 기능 추가
+	$("#selectTemplateType").on("change", function(){
+		if($(this).val() == 'BA'){
+			$("#ExTr").hide();
+			$("#AdTr").hide();
+			$("#buttonChannelAdd").hide();
+		}else if($(this).val() == 'EX'){
+			$("#ExTr").show();
+			$("#AdTr").hide();
+			$("#buttonChannelAdd").hide();
+		}else if($(this).val() == 'AD'){
+			$("#ExTr").hide();
+			$("#AdTr").show();
+			$("#buttonChannelAdd").show();
+			
+		}else{
+			
+		}
+	});
+	
+	//템플릿 강조유형에 따른 화면 변경 기능 추가
+	$("#selectTemplateEmphasizeType").on("change", function(){
+		if($(this).val() == 'NONE'){
+			$("#imageNameTr").hide();
+			$("#imageUrlTr").hide();
+			$("#titleTr").hide();
+			$("#subTitleTr").hide();
+		}else if($(this).val() == 'IMAGE'){
+			$("#imageNameTr").show();
+			$("#imageUrlTr").show();
+			$("#titleTr").hide();
+			$("#subTitleTr").hide();
+		}else if($(this).val() == 'TEXT'){
+			$("#imageNameTr").hide();
+			$("#imageUrlTr").hide();
+			$("#titleTr").show();
+			$("#subTitleTr").show();
+		}
+	});
+	
+	
+	
+	//템플릿명 입력 글자수 체크 해주기
+	$("#inputTemplateName").keyup(function(e){
+		
+		var contents = $('#inputTemplateName').val();
+		var conLeng = strMaxCharacterCnt(contents);
+		
+		if(conLeng > 100){
+			
+			alert("템플릿명은 100자를 넘을 수 없습니다.");
+			var splicecon = strMaxLengthSubstring(contents, 99);
+			 $('#inputTemplateName').val(splicecon);
+			return false;
+			
+		}
+		
+	});
+	
+	//템플릿 내용 입력 글자수 체크 해주기
+	$("#inputTemplateContent").keyup(function(e){
+		
+		var contents = $('#inputTemplateContent').val();
+		setContentsLeng(contents);
+		
+	});
+	
+	
+	//강조표기 타이틀 입력시 우측 미리보기 화면에 표시해주기
+	$("#inputTemplateTitle").keyup(function(e){
+		
+		var title = $('#inputTemplateTitle').val();
+		$('.emphasis_title_text').show();
+		$('.emphasis_title_text').text(title);
+		
+	});
+	
+	//강조표기 타이틀 입력시 우측 미리보기 화면에 표시해주기
+	$("#inputTemplateSubTitle").keyup(function(e){
+		
+		var subTitle = $('#inputTemplateSubTitle').val();
+		$('.emphasis_side_text').show();
+		$('.emphasis_side_text').text(subTitle);
+		
+	});
+	
+	//부가정보 내용 입력시 우측 미리보기 화면에 표시해주기
+	$("#inputTemplateExtra").keyup(function(e){
+		
+		var extraCon = $('#inputTemplateExtra').val();
+		$('.side_info_text').show();
+		$('.side_info_text').text(extraCon);
+		
+	});
+	
+	//채널추가형 내용 입력시 우측 미리보기 화면에 표시해주기
+	$("#inputTemplateAd").keyup(function(e){
+		
+		var contentsAd = $('#inputTemplateAd').val();
+		$('.channel_info_text').show();
+		$('.channel_info_text').text(contentsAd);
+		
+	});
+	
+	//메세지 유형이 채널추가인경우 미리보기에 채널 추가 버튼 표시해주기
+	var msgTypeVal = $('#selectTemplateType option:selected').val();
+	if(msgTypeVal == 'AD'){
+		
+		$(".btnAd").css("display", "block");
+		
+	}else if(msgTypeVal == 'MI'){//복합형인경우 부가정보 및 채널추가 버튼 모두 표시
+		
+		$(".side_info_text").css("display", "block");
+		$(".btnAd").css("display", "block");
+		
+	}
+	
+});
+
+//화면 초기 로딩시 셀렉트 박스 등 처리 해주기
+function initFormChk(){
+	
+	//첫로딩시 우측 미리보기 화면 숨김처리
+	$('.emphasis_title_text').hide();	//강조유형 타이틀
+	$('.emphasis_side_text').hide();	//강조유형 보조문구
+	//$('.template_text').hide();			//내용 미리보기
+	$('.side_info_text').hide();		//부가정보 내용
+	$('.channel_info_text').hide();		//채널추가 텍스트 내용
+	$('.btnAd').hide();					//샘플 채널추가 버튼
+	$('.btnEmpty').hide();				//샘플 버튼
+	
+	//채널ID 정보 미리보기에 표시해주기
+	fnAgentCodeChg();
+	
+	//템플릿 등록 이미지가 있는 경우 이미지 정보 표시해 주기
+	var imgType = $("input[name=img_file_add]:checked").val();
+	
+	if(!imgType == ''){
+		
+		if($("input[name='img_file_add']:checked").attr("id")=="img_file_1"){
+			$(".basic_img_add_wrap").show().siblings(".img_add_info_wrap").hide();
+			$(".img_file_add_wrap").show();
+		}else if($("input[name='img_file_add']:checked").attr("id")=="img_file_2"){
+			$(".wide_img_add_wrap").show().siblings(".img_add_info_wrap").hide();
+			$(".img_file_add_wrap").show();
+		} else{
+			$(".img_add_info_wrap, .img_file_add_wrap").hide();
+		}
+		
+	}
+	var imageFileName = '${resultTemplateVO.imageFileName}';
+	$("#imgNm").text(imageFileName);
+	
+	//미리보기에 이미지 표시해주기
+	var imgUrl = '${resultTemplateVO.templateImageUrl}';
+	$('.kakao_image').css("display", "block");
+	$("#kakaoImg").attr("src", imgUrl);
+	
+	
+	//초기 템플릿 내용 글자수 처리해주기
+	var tmpContents = $('#inputTemplateContent').val();
+	setContentsLengForFriends(tmpContents);
+	
+	//초기 광고포함 여부 처리
+	var adFlagVal = $("input[name=ad_flag]:checked").val();
+	advTextChange(adFlagVal);
+	
+}
+
+// 카테고리 선택 조회
+function templateCatagoryChange(depth, code, type){
+	var categoryDepth = depth;
+	var categoryCode = code;
+	
+	$.ajax({
+		type: "POST"
+		, url: "/web/mjon/test/selectKakaoTemplateCategoryAjax.do"
+		, data:{ "categoryDepth":categoryDepth, "categoryCode" : categoryCode}
+		, dataType:'json'
+		, cache: false
+		, async: false
+		, timeout: 600000
+		, success: function (returnData, status) {
+			if(status == 'success'){
+				if(categoryDepth == '2'){
+					
+					if(type == "insert"){
+						var list = returnData.selectCatagoryList;
+						$("#selectTemplateSecondCatagory").append("<option value=''>카테고리 선택</option>");
+						for(var i=0; i < list.length; i++){
+							$("#selectTemplateSecondCatagory").append("<option value='"+list[i].categoryCode+"'>"+list[i].categoryGroupName+"</option>");
+						}
+					}else if(type == "select"){
+						var list = returnData.selectCatagoryList;
+						$("#selectTemplateSecondCatagory_select").append("<option value=''>카테고리 선택</option>");
+						for(var i=0; i < list.length; i++){
+							$("#selectTemplateSecondCatagory_select").append("<option value='"+list[i].categoryCode+"'>"+list[i].categoryGroupName+"</option>");
+						}
+					}
+				}
+			} else if(status== 'fail'){
+				alert("저장에 실패하였습니다. !!");
+			}
+		}
+		,error: function (e) {
+			console.log("ERROR : ", e);
+			alert("삭제처리에 실패하였습니다.");
+		}
+	});
+	
+	
+}
+
+//--------------첨부파일 처리 함수 시작--------------------------
+
+/* 파일사이즈 가져오기 */
+function getStrFileSize(filesize){
+	var sizeStr="";
+	var sizeKB = filesize/1024;
+	if(parseInt(sizeKB) > 1024){
+	    var sizeMB = sizeKB/1024;
+	    sizeStr = sizeMB.toFixed(2)+" MB";
+	}else{
+	    sizeStr = sizeKB.toFixed(2)+" KB";
+	}
+	return sizeStr;
+}
+
+//첨부 이미지 정보 확인 처리 해주기(이미지 리사이징 전단계)
+function imgResizeInfo(event){
+	
+	var fileValue = $("#imgFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+
+	if(fileExt.length > 0){
+		if($.inArray(fileExt, ['jpg','jpeg','png']) == -1) {
+			alert('jpg, jpeg, png 파일만 업로드 할수 있습니다.');
+			return false;
+	   	}
+	   
+		$("#imgNm").val(fileName); 
+	}
+	
+	//알림톡 이미지 등록 요청하기
+	getTemplateImagUrl();
+}
+
+function getTemplateImagUrl(){
+	
+	var bizForm = document.bizForm;
+	var data = new FormData(bizForm);
+	var atchFileSts = true;	//첨부파일 갯수 상태 값
+	
+	data.append("file0", $('#imgFile').prop('files')[0]);
+	
+	var fileValue = $("#imgFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+	
+	if($.inArray(fileExt, ['jpg','jpeg', 'png']) == -1) {
+
+		alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+		return false;
+
+   	}
+	
+	var url = "";
+	
+	if(fileExt == "jpg" || fileExt == "jpeg" || fileExt == "png"){
+		
+		url = "/web/mjon/kakao/template/sendKakaoTemplateImageUploadAjax.do";
+		
+	}else{
+		
+		alert('jpg, jpeg 파일만 업로드 할수 있습니다.');
+		return;
+		
+	}
+	
+	$.ajax({
+		type : 'POST'
+		, enctype : 'multipart/form-data'
+		, url : url
+		, data : data
+		, dataType:'json'
+		, async:false
+		, processData: false
+		, contentType: false
+		, cache : false
+		, success : function(returnData, status){
+			if(returnData.result == "success") {
+				
+				var code = returnData.code;
+				var msg = returnData.msg;
+				var imgUrl = returnData.imgUrl;
+				
+				if(code == "200"){//등록 성공시 메시지 및 이미지 표시 처리
+					alert("이미지 등록이 완료 되었습니다.");
+					$("#templateImageName").val(fileName);
+					$("#templateImageUrl").val(imgUrl);
+				
+					$('.kakao_image').css("display", "block");
+					$("#kakaoImg").attr("src", imgUrl);
+					
+				}else if(code == "2002"){//일반 이미지 가로 세로 크기 오류 발생
+					
+					alert("권장 이미지 사이즈는  가로 800px 세로 400px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가)입니다.");
+					$("#imgNm").val("");
+					return false;
+					
+				}else{//기타 실패
+					
+					alert(msg);
+					$("#imgNm").val("");
+					return false;
+				}
+				
+			}else if(returnData.result == "loginFail"){
+				location.href="/web/user/login/login.do";
+			}else{
+				alert("이미지 등록 중 오류가 발생하였습니다.!!!");
+				return false;
+			}
+		}
+		,error : function(request , status, error){
+			alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
+		}
+	});
+	
+	//첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘.
+	$("#imgFile").val("");
+    //$("#imgNm").val(""); 
+	
+}
+
+//파일첨부 버튼 클릭시 파일 첨부 실행
+function upImgClick(){
+	
+	$("#imgFile").click();
+	
+}
+
+
+//발신 템플릿 등록
+function updateTemplate(){
+	
+	var selectAgentCode = $("select[name='selectAgentCode']").val();	// 선택 채널ID
+	var inputTemplateName = $("#inputTemplateName").val();				// 입력 템플릿 이름
+	
+	var selectTemplateType = $("select[name='selectTemplateType']").val();			// 선택 템플릿 메시지 유형
+	var inputTemplateContent = $("#inputTemplateContent").val();	// 템플릿 내용
+	var inputTemplateExtra = $("#inputTemplateExtra").val();		// 부가정보 내용
+	var inputTemplateAd = $("#inputTemplateAd").val();				// 광고성메시지
+	
+	var selectTemplateEmphasizeType = $("select[name='selectTemplateEmphasizeType']").val();	// 선택 템플릿 강조 유형
+	var inputTemplateImageName = $("#templateImageName").val();	// 템플릿 이미지 파일명
+	var inputTemplateImageUrl = $("#templateImageUrl").val();		// 템플릿 이미지 링크
+	var inputTemplateTitle = $("#inputTemplateTitle").val();			// 템플릿 타이틀
+	var inputTemplateSubTitle = $("#inputTemplateSubTitle").val();		// 템플릿 서브 타이틀
+	
+	var selectTemplateSecondCatagory = $("select[name='selectTemplateSecondCatagory']").val();	// 선택 템플릿 카테고리
+	
+	// 공통 유효성 검사 조회
+	if(selectAgentCode == null || selectAgentCode == ""){
+		alert("채널ID를 선택해 주세요");
+		return;
+	};
+	
+	if(inputTemplateName == null || inputTemplateName == ""){
+		alert("템플릿 이름을 입력해 주세요");
+		$("#inputTemplateName").focus();
+		return;
+	};
+	
+	if(selectTemplateSecondCatagory == null || selectTemplateSecondCatagory == ""){
+		alert("템플릿 카테고리를 선택해 주세요");
+		return;
+	};
+	
+	if(inputTemplateContent == null || inputTemplateContent == ""){
+		alert("템플릿 내용을 입력해 주세요.");
+		return;
+	};
+	
+	
+	
+	// 메시지 유형 선택여부에 따른 필수값 체크
+	if(selectTemplateType == "EX"){
+		if(inputTemplateExtra == null || inputTemplateExtra == ""){
+			alert("템플릿 내용을 입력해 주세요");
+			$("#inputTemplateExtra").focus();
+			return;
+		};
+	}else if(selectTemplateType == "AD"){
+		if(inputTemplateAd == null || inputTemplateAd == ""){
+			alert("광고성 메시지 내용을 입력해 주세요");
+			$("#inputTemplateAd").focus();
+			return;
+		};
+	}
+	
+	// 템플릿 강조유형에 따른 필수값 체크
+	if(selectTemplateEmphasizeType == "TEXT"){
+		if(inputTemplateTitle == null || inputTemplateTitle == ""){
+			alert("템플릿 타이틀을 입력해 주세요");
+			$("#inputTemplateTitle").focus();
+			return;
+		}else{
+			
+			var returnMatch = inputTemplateContent.match(inputTemplateTitle);
+			if(returnMatch == null){
+				
+				alert("강조표기타이틀은 템플릿 본문에 있는 내용/변수만 입력 가능합니다.");
+				return false;
+			}
+			
+		};
+		if(inputTemplateSubTitle == null || inputTemplateSubTitle == ""){
+			alert("템플릿 서브타이틀을 입력해 주세요");
+			$("#inputTemplateSubTitle").focus();
+			return;
+		}else{
+			
+			var returnMatch = inputTemplateContent.match(inputTemplateSubTitle);
+			
+			if(returnMatch == null){
+				
+				alert("강조표기보조문구는 템플릿 본문에 있는 내용만 입력 가능합니다.");
+				return false;
+			}
+			
+			//보조문구에 변수를 입력했는지 체크
+			var varValue = inputTemplateSubTitle.match(/#\{([^}]+)\}/g);
+			
+			if(varValue != null){
+				
+				alert("강조 표기 보조 문구에 변수를 입력할 수 없습니다.");
+				return false;
+				
+			}
+			
+		};
+	}else if(selectTemplateEmphasizeType == "IMAGE"){
+		if(inputTemplateImageName == null || inputTemplateImageName == ""){
+			alert("템플릿 이미지 파일명을 입력해 주세요");
+			$("#inputTemplateImageName").focus();
+			return;
+		};
+		if(inputTemplateImageUrl == null || inputTemplateImageUrl == ""){
+			alert("탬플릿 이미지 링크를 입력해주세요");
+			$("#inputTemplateImageUrl").focus();
+			return;
+		};
+	}else if(selectTemplateEmphasizeType == "ITEM_LIST"){
+		
+	}
+	
+	var bizForm = document.bizForm;
+	bizForm.senderKey.value = selectAgentCode;
+	bizForm.templateName.value = inputTemplateName;
+	bizForm.templateMessageType.value = selectTemplateType;
+	bizForm.templateEmphasizeType.value = selectTemplateEmphasizeType;
+	bizForm.templateContent.value = inputTemplateContent;
+	bizForm.categoryCode.value = selectTemplateSecondCatagory;
+	
+	// 메시지 유형 선택여부에 따른 필수값 체크
+	if(selectTemplateType == "EX"){
+		bizForm.templateExtra.value = inputTemplateExtra;
+	}else if(selectTemplateType == "AD"){
+		bizForm.tamplateAd.value = inputTemplateAd;
+	}
+	
+	// 템플릿 강조유형에 따른 필수값 체크
+	if(selectTemplateEmphasizeType == "TEXT"){
+		bizForm.templateTitle.value = inputTemplateTitle;
+		bizForm.templateSubtitle.value = inputTemplateSubTitle;
+	}else if(selectTemplateEmphasizeType == "IMAGE"){
+		bizForm.templateImageName.value = inputTemplateImageName;
+		bizForm.templateImageUrl.value = inputTemplateImageUrl;
+	}else if(selectTemplateEmphasizeType == "ITEM_LIST"){
+		
+	}
+	
+	
+	var data = new FormData(bizForm);
+	
+	if(confirm("템플릿을 수정하시겠습니까?")){
+		
+		$.ajax({
+			type: "POST"
+			, url: "/web/mjon/kakao/template/updateKakaoApiTemplateAjax.do"
+			, data: data
+			, dataType: 'json'
+			, async: false
+			, processData: false
+			, contentType: false
+			, cache: false
+			, success: function (returnData, status) {
+				
+				var result = returnData.result;
+				var code = returnData.code;
+				var msg = returnData.msg;
+				
+				if(result == "notLogin") {//차단 발신번호인 경우 등록 불가
+					alert("로그인후 진행이 가능합니다.");
+				}else if(returnData.result == "success") {
+					if(code == "200"){
+						alert("템플릿 수정이 완료되었습니다.");
+						location.href="/web/mjon/kakao/template/selectKaKaoTemplateList.do";
+					}else{
+						alert(msg);
+						return false;
+					}
+				}else{
+					
+					if(msg != 'msg'){
+						alert(msg);	
+						return false;
+					}else{
+						
+						alert("알림톡 템플릿 수정에 오류가 발생하였습니다.");
+						return false;
+						
+					}
+					
+					console.log();
+					return false;
+					
+				}
+			}
+			,error: function (e) {
+				console.log("ERROR : ", e);
+				alert("알림톡 템플릿 수정에 오류가 발생하였습니다.");
+			}
+		});
+		
+	}
+	
+}
+
+
+//알림톡 내용 초기화 해주기
+function fnContentsReset(){
+
+	$("#inputTemplateContent").val("");
+	$('.nowChar').text("0 /");
+	
+}
+
+//우측 미리보기 화면 채널 아이디 정보 변경해 주기
+function fnAgentCodeChg(){
+	
+	var yellowId = $("#selectAgentCode option:checked").text();
+	if(yellowId != ''){
+		
+		$('#spnYellowid').text(yellowId);	
+	}
+	
+}
+
+$(document).on('click', '.symbolButton, .changeWord', function (){
+	var templateContents = $('#inputTemplateContent').val();
+	$('#inputTemplateContent').val(templateContents + $(this).attr("value"));
+
+	setContentsLeng($('#inputTemplateContent').val());
+});
+
+</script>
+</head>
+<body>
+
+
+<form id="templateForm" name="templateForm" method="post">
+
+	<input type="hidden" id="inputSenderKey" name="senderKey" value=""/>
+	<input type="hidden" id="inputTemplateCode" name="templateCode" value=""/>
+
+</form>
+
+<div id="container" class="adminCont sub">
+<!-- content 영역 -->
+<div class="inner">
+    <!-- send top -->
+    <div class="send_top">
+        <!-- tab button -->
+        <%-- <%@include file="/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp" %> --%>
+        <!--// tab button -->
+        <!-- 카카오톡 설정 - 알림톡 템플릿 등록/관리 - 내템플릿 -->
+        <div class="top_content kakaotalkset_cont current pay_tab_wrap">
+            <div class="heading">
+                <h2>카카오 친구톡 템플릿 상세보기</h2>
+                <!-- <button type="button" class="button info"
+                    onclick="window.open('popup_kakaoset_template.html','_blank','width=790, height=300, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes')">사용안내</button> -->
+            </div>
+            <div class="list_tab_wrap2 type2 ">
+                <!-- tab button -->
+                <%-- <%@include file="/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkSubMenuTap.jsp" %> --%>
+                <!--// tab button -->
+            </div>
+            
+            <form id="bizForm" name="bizForm" method="post">
+            	<input type="hidden" id="menuTopTab" name="menuTopTab" value="tabConf">
+				<input type="hidden" id="menuSubTab" name="menuSubTab" value="tabTemplate">
+            	<input type="hidden" id="templateCode" name="templateCode" value="<c:out value='${kakaoReturnVO.templateCode}'/>">
+				<input type="hidden" id="senderKey" name="senderKey" value="<c:out value='${senderKey}'/>">
+				<input type="hidden" id="templateName" name="templateName" value="">
+				<input type="hidden" id="templateMessageType" name="templateMessageType" value="">
+				<input type="hidden" id="templateEmphasizeType" name="templateEmphasizeType" value="">
+				<input type="hidden" id="templateContent" name="templateContent" value="">
+				<input type="hidden" id="categoryCode" name="categoryCode" value="">
+				
+				<input type="hidden" id="templateExtra" name="templateExtra" value="">
+				<input type="hidden" id="tamplateAd" name="tamplateAd" value="">
+				
+				<input type="hidden" id="templateTitle" name="templateTitle" value="">
+				<input type="hidden" id="templateSubtitle" name="templateSubtitle" value="">
+				<input type="hidden" id="templateImageName" name="templateImageName" value="<c:out value='${kakaoReturnVO.templateImageName}'/>">
+				<input type="hidden" id="templateImageUrl" name="templateImageUrl" value="<c:out value='${kakaoReturnVO.templateImageUrl}'/>">
+			
+            
+	            <div class="send_general friend_talk_wrap kakao_wrap">
+	                <div class="send_left">
+	                    <!-- <p class="tType1_title">알림톡 템플릿 수정</p> -->
+	                    <table class="tType1">
+	                        <colgroup>
+	                            <col style="width: 190px;">
+	                            <col style="width: auto;">
+	                        </colgroup>
+	                        <tbody>
+	                            <tr>
+	                                <th>채널ID</th>
+	                                <td>
+	                                    <select class="select_gray_type" name="selectAgentCode" id="selectAgentCode" onchange="javascript:fnAgentCodeChg();">
+	                                        <option value="">채널ID 선택</option>
+	                                        <c:forEach var="kakaoProfileInfo" items="${kakaoProfileList}" varStatus="status">
+												<option value="${kakaoProfileInfo.senderKey}" <c:if test="${senderKey eq kakaoProfileInfo.senderKey}">selected</c:if> ><c:out value='${kakaoProfileInfo.yellowId}'/></option>
+											</c:forEach>
+	                                    </select>
+	                                </td>
+	                            </tr>
+	                            <tr>
+	                                <th>템플릿명</th>
+	                                <td>
+	                                    <input type="text" class="template_name" id="inputTemplateName" name="inputTemplateName" value="<c:out value='${resultTemplateVO.templateName}'/>" placeholder="템플릿 명을 입력해주세요" maxlength="100">
+	                                    <p class="template_name_cf">최대 50자, 템플릿 관리용</p>
+	                                </td>
+	                            </tr>
+	                            <tr>
+	                                <th>이미지 첨부</th>
+	                                <td class="img_file_add_td">
+										<div class="img_sort_wrap">
+		                                    <input type="radio" name="img_file_add" id="img_file_0" value="" <c:if test="${resultTemplateVO.imageType eq ''}">checked</c:if> ><label for="img_file_0">첨부 안함</label>
+		                                    <input type="radio" name="img_file_add" id="img_file_1" value="I" <c:if test="${resultTemplateVO.imageType eq 'I'}">checked</c:if> ><label for="img_file_1">이미지 첨부</label>
+		                                    <input type="radio" name="img_file_add" id="img_file_2" value="W" <c:if test="${resultTemplateVO.imageType eq 'W'}">checked</c:if>><label for="img_file_2">와이드 이미지 첨부</label>
+		                                    <div class="img_add_info_wrap basic_img_add_wrap">
+		                                        <p class="info_title_text"><span class="c_e40000">*</span> 이미지 첨부 안내</p>
+		                                        <ul class="info_text">
+		                                            <li>- 권장사이즈 : 720px * 720px</li>
+		                                            <li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li>
+		                                            <li>- 파일형식 : jpg, png (최대 500kb)</li>
+		                                            <li>- 이미지 첨부시 메시지 내용은 최대 400자까지 입력할 수 있습니다.</li>
+		                                        </ul>
+		                                    </div>
+		                                    <div class="img_add_info_wrap wide_img_add_wrap">
+		                                        <p class="info_title_text"><span class="c_e40000">*</span> 와이드 이미지 첨부 안내</p>
+		                                        <ul class="info_text">
+		                                            <li>- 권장사이즈 : 800px * 600px</li>
+		                                            <!-- <li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li> -->
+		                                            <li>- 파일형식 : jpg, png (최대 2mb)</li>
+		                                            <li>- 와이드 이미지 첨부시 메시지 내용은 최대 76자, 버튼 1개까지 입력할 수 있습니다.</li>
+		                                        </ul>
+		                                    </div>
+	                                    </div>
+	                                    <div class="img_file_add_wrap">
+	                                        <ul class="img_file_info_wrap">
+	                                            <li>
+	                                                <p>이미지 제목</p>
+	                                                <input type="text" id="imgTitle" name="imgTitle" value="<c:out value='${resultTemplateVO.imgTitle}'/>" class="img_url" maxLength="50">
+	                                            </li>
+	                                            <li>
+	                                                <p>이미지 클릭시 이동할 URL</p>
+	                                                <input type="text" id="imgLink" name="imgLink" value="<c:out value='${resultTemplateVO.imgLink}'/>" placeholder="http://" class="img_url" maxLength="1000">
+	                                            </li>
+	                                            <li>
+	                                                <p class="file_name"  id="imgNm" name="imgNm">첨부파일 이미지</p>
+	                                                <input type="file" id="imgFile"  accept=".jpg, .jpeg, .png" onchange="imgResizeInfo(event); return false;" style="display:none"/>
+	                                                <!-- <button type="button" class="btn_del btnImgDel" onclick="buttonTypeDel(this);">
+	                                                	<img src="/publish/images/btn_delete.png" id="imgDel" alt="이미지 삭제" onclick="fnImageDel();">
+	                                               	</button> -->
+	                                            </li>
+	                                        </ul>
+	                                        <!-- <button type="button" class="btnType btnType8 btn_img_upload" title="이미지 불러오기" onclick="javascript:upImgClick(); return false;">이미지 불러오기</button> -->
+                                        </div>
+	                                </td>
+	                            </tr>
+	                            <tr>
+	                                <th>광고포함 여부</th>
+	                                <td>
+	                                    <input type="radio" class="inputAdFlag" name="ad_flag" id="ad_Y" value="Y" <c:if test="${resultTemplateVO.adFlag eq 'Y'}">checked</c:if> ><label for="ad_Y">광고성 정보 포함</label>
+	                                    <%-- <input type="radio" class="inputAdFlag" name="ad_flag" id="ad_N" value="N" <c:if test="${resultTemplateVO.adFlag eq 'N'}">checked</c:if> ><label for="ad_N">포함 안함</label> --%>
+	                                </td>
+	                            </tr>
+	                            <tr>
+	                                <th>내용</th>
+	                                <td class="kakao_template_text">
+	                                    <div class="put_left short">
+	                                        <!-- <input type="text" class="template_name"> -->
+	                                        <div class="put_text_wrap">
+	                                            <div class="ad_txt">
+	                                                <p><span id="adFlagFront">(광고)</span> <span id="yellowIdCon" >채널ID</span></p>
+	                                            </div>
+	                                            <label for="inputTemplateContent" class="label"></label>
+	                                            <textarea id="inputTemplateContent" name="inputTemplateContent" class="put_text" placeholder="내용을 입력해주세요."><c:out value="${resultTemplateVO.templateContent}"/></textarea>
+	                                            <div class="text_length">
+	                                                <div>
+	                                                    <p class="adFlagAfter">수신거부 : 홈 > 채널차단</p>
+	                                                </div>
+	                                                <div>
+	                                                    <p><span class="fwMd nowChar">0 /</span><span class="c_002c9a fwMd totChar">1000</span>자</p>
+	                                                </div>
+	                                            </div>
+	                                        </div>
+	                                    </div>
+	                                    <div class="put_right">
+	                                        <div class="btn_popup_wrap">
+	                                            <button type="button" class="btnType btnType7"
+	                                                onclick="miniPopup(this)">특수문자</button>
+	                                            <div class="send_miniPop spc_character">
+	                                                <div class="tab_character">
+	                                                    <a href="#none" class="on">특수문자</a>
+	                                                    <a href="#none">웃음</a>
+	                                                    <a href="#none">슬픔</a>
+	                                                    <a href="#none">분노</a>
+	                                                    <a href="#none">사랑</a>
+	                                                    <a href="#none">그외</a>
+	                                                </div>
+	                                                <!-- 특수문자 -->
+	                                                <div class="cnt_character on">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'D'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}"><c:out value="${symbolList.symbol}"/></a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //특수문자 -->
+	
+	                                                <!-- 웃음 -->
+	                                                <div class="cnt_character emt_character">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'S'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //웃음 -->
+	
+	                                                <!-- 슬픔 -->
+	                                                <div class="cnt_character emt_character">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'C'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //슬픔 -->
+	
+	                                                <!-- 분노 -->
+	                                                <div class="cnt_character emt_character">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'A'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //분노 -->
+	
+	                                                <!-- 사랑 -->
+	                                                <div class="cnt_character emt_character">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'L'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //사랑 -->
+	
+	                                                <!-- 그외 -->
+	                                                <div class="cnt_character emt_character emt_etc ">
+	                                                    <div class="box_character">
+	                                                        <c:forEach var="symbolList" items="${symbolList}" varStatus="status">
+																<c:if test="${symbolList.symbolType == 'E'}">
+																	<a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a>
+																</c:if>
+															</c:forEach>
+	                                                    </div>
+	                                                </div>
+	                                                <!-- //그외 -->
+	                                                <button type="button" class="btn_close"
+	                                                    onclick="miniPopup(this)">닫기</button>
+	                                            </div>
+	                                        </div>
+	                                        <div class="btn_popup_wrap convers_wrap">
+	                                            <button type="button" class="btnType btnType7"
+	                                                onclick="miniPopup(this)">특정문구 일괄변환<i
+	                                                    class="qmMark"></i></button>
+	                                            <div class="send_miniPop convers">
+	                                                <div>
+	                                                    <div class="convers_top">
+	                                                        <span>특정문구 일괄변환이란?</span>
+	                                                        <p>주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의 메시지를 발송하는 기능</p>
+	                                                    </div>
+	                                                    <div class="convers_middle">
+	                                                    	<a href="javascript:void(0)" class="changeWord" value="\#{이름}"><c:out value="\#{이름}"/></a>
+                                                    	</div>
+	                                                    <div class="convers_bottom">
+	                                                        <a href="javascript:void(0)" class="changeWord" value="\#{1}"><c:out value="\#{1}"/></a>
+	                                                        <a href="javascript:void(0)" class="changeWord" value="\#{2}"><c:out value="\#{2}"/></a>
+	                                                        <a href="javascript:void(0)" class="changeWord" value="\#{3}"><c:out value="\#{3}"/></a>
+	                                                        <a href="javascript:void(0)" class="changeWord" value="\#{4}"><c:out value="\#{4}"/></a>
+	                                                    </div>
+	                                                </div>
+	                                                <button type="button" class="btn_close"
+	                                                    onclick="miniPopup(this)">닫기</button>
+	                                            </div>
+	                                        </div>
+	                                        <div class="btn_popup_wrap spc_wrap">
+	                                            <button type="button" class="btnType btnType7"
+	                                                onclick="miniPopup(this)">이모티콘</button>
+	                                            <div class="send_miniPop spc_character kakao_emoticon">
+	                                                <%@include file="/WEB-INF/jsp/web/kakao/include/KakaoSentImoticonInfo.jsp" %>
+	                                                <button type="button" class="btn_close" onclick="miniPopup(this)">닫기</button>
+	                                            </div>
+	                                        </div>
+	                                        <div class="btn_popup_wrap template_call_wrap">
+	                                            <!-- <button type="button" class="btnType btnType8">템플릿 불러오기</button> -->
+	                                        </div>
+	                                        <div class="send_btnWrap">
+	                                            <!-- <button type="button" class="btnType btn_text_save">내용 저장하기</button> -->
+	                                            <!-- <button type="button" class="btnType btnType9" onclick="javascript:fnContentsReset();">초기화</button> -->
+	                                        </div>
+	                                    </div>
+	                                </td>
+	                            </tr>
+	                            <tr>
+	                                <th>버튼</th>
+	                                <td class="template_button">
+	                                    <%-- <select name="" id="" class="select_gray_type template_button_select">
+	                                        <option value="button_type_0">버튼타입 선택</option>
+	                                        <option value="button_type_1">배송조회</option>
+	                                        <option value="button_type_2">웹링크</option>
+	                                        <option value="button_type_3">앱링크</option>
+	                                        <option value="button_type_5">메시지전달</option>
+	                                        <option value="button_type_4">봇키워드</option>
+	                                        <option value="button_type_6">상담톡전환</option>
+	                                        <option value="button_type_7">챗봇전환</option>
+	                                    </select>
+	                                    <button type="button" class="btnType btnType6" onclick="friendTemplateButtonAdd();">추가</button> --%>
+	                                    <div class="button_add_wrap">
+	                                    	<c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status">
+	                                    		<c:if test="${buttonList.linkType eq 'DS'}">
+	                                    			<!-- 배송조회 버튼  -->
+			                                    	<dl class="button_type_wrap type1">
+				                                    	<dt>배송조회</dt>
+				                                    	<dd class="button_type_input">
+				                                    		<input type="hidden" id="buttonLikeTypeDeliv" name="buttonVOList[${status.index}].linkType" value="DS"/>
+				                                    		<input type="text" id="btnNmDeliv" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+				                                    		<p class="cf_text">*이용가능 택배사 : KG로지스, 우체국택배,일양로지스, GTX로지스, FedEx, 경동택배, 합동택배, 롯데택배</p>
+				                                    	</dd>
+				                                    	<dd>
+				                                    		<button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button>
+				                                    	</dd>
+			                                    	</dl>
+	                                    		</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'WL'}">
+			                                    	<!-- 웹링크 버튼 -->
+			                                    	<dl class="button_type_wrap type2">
+			                                    		<dt>웹링크</dt>
+			                                    		<dd class="button_type_input">
+			                                    			<ul>
+			                                    				<li>
+			                                    					<input type="hidden" id="buttonLikeTypeWeb" name="buttonVOList[${status.index}].linkType" value="WL"/>
+			                                    					<input type="text" id="btnNmWeb" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkMo" name="buttonVOList[${status.index}].linkMo" value="<c:out value='${buttonList.linkMo}'/>" placeholder="모바일 링크 입력">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkPc" name="buttonVOList[${status.index}].linkPc" value="<c:out value='${buttonList.linkPc}'/>" placeholder="PC 링크 입력">
+			                                    				</li>
+			                                    			</ul>
+			                                    		</dd>
+			                                    		<dd>
+			                                    			<!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button> -->
+			                                    		</dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'AL'}">
+			                                    	<!-- 앱링크 버튼 -->
+			                                    	<dl class="button_type_wrap type3">
+			                                    		<dt>앱링크</dt>
+			                                    		<dd class="button_type_input">
+			                                    			<ul>
+			                                    				<li>
+			                                    					<input type="hidden" id="buttonLikeTypeApp" name="buttonVOList[${status.index}].linkType" value="AL"/>
+			                                    					<input type="text" id="btnNmApp" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkAnd" name="buttonVOList[${status.index}].linkAnd" value="<c:out value='${buttonList.linkAnd}'/>" placeholder="Android 링크 입력">
+			                                    				</li>
+			                                    				<li>
+			                                    					<input type="text" id="buttonLinkIos" name="buttonVOList[${status.index}].linkIos" value="<c:out value='${buttonList.linkIos}'/>" placeholder="IOS 링크 입력">
+			                                    				</li>
+			                                    			</ul>
+			                                    		</dd>
+			                                    		<dd>
+			                                    			<!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button> -->
+			                                    		</dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'BK'}">
+			                                    	<!-- 봇키워드 -->
+			                                    	<dl class="button_type_wrap type4">
+			                                    		<dt>봇키워드</dt>
+		                                    			<dd class="button_type_input">
+		                                    				<input type="hidden" id="buttonLikeTypeBot" name="buttonVOList[${status.index}].linkType" value="BK"/>
+		                                    				<input type="text" id="btnNmBot" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+		                                    			</dd>
+		                                    			<dd>
+			                                    			<!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+			                                    				<img src="/publish/images/btn_delete.png" alt="">
+			                                    			</button> -->
+		                                    			</dd>
+			                                    	</dl>
+		                                    	</c:if>
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'MD'}">
+			                                    	<!-- 메시지 전달 -->
+			                                    	<dl class="button_type_wrap type5">
+													   <dt>메시지전달</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeMsg" name="buttonVOList[${status.index}].linkType" value="MD" />
+													      <input type="text" id="btnNmMsg" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button> -->
+													   </dd>
+													</dl>
+												</c:if>	                                    	
+		                                    	
+		                                    	<c:if test="${buttonList.linkType eq 'BC'}">
+			                                    	<!-- 상담톡 전환 -->
+													<dl class="button_type_wrap type6">
+													   <dt>상담톡전환</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeCons" name="buttonVOList[${status.index}].linkType" value="BC" />
+													      <input type="text" id="btnNmCons" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button> -->
+													   </dd>
+													</dl>
+												</c:if>
+												
+												<c:if test="${buttonList.linkType eq 'BT'}">
+													<!-- 챗봇전환 -->
+													<dl class="button_type_wrap type7">
+													   <dt>챗봇전환</dt>
+													   <dd class="button_type_input">
+													      <input type="hidden" id="buttonLikeTypeBotChg" name="buttonVOList[${status.index}].linkType" value="BT" />
+													      <input type="text" id="btnNmBotChg" name="buttonVOList[${status.index}].name" value="" placeholder="버튼명 입력(최대 14자)">
+													   </dd>
+													   <dd>
+													      <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);">
+													         <img src="/publish/images/btn_delete.png" alt="">
+													      </button> -->
+													   </dd>
+													</dl>
+												</c:if>
+											</c:forEach>
+	                                    </div>
+	                                </td>
+	                            </tr>
+	                        </tbody>
+	                    </table>
+	                </div>
+	                <div class="send_right">
+	                    <div class="phone">
+	                        <div class="phoneIn">
+	                            <p class="prev_p"><img src="/publish/images/content/kakao_prev_icon.png" alt="">
+	                            	<span id="spnYellowid">@채널ID</span>
+	                            </p>
+	                            <!-- 텍스트 미리보기 -->
+	                            <div class="text_preview">
+	                                <p class="friend_talk_title"><span class="adFlag">(광고)</span> <span id="spnYellowidAt">채널ID</span></p>
+	                                <div class="allimtalk_content">
+	                                    <div class="kakao_image"  style="display:none;">
+	                                    	<img src="" id="kakaoImg" alt="">
+	                                    </div>
+	                                    <p class="template_text">내용 미리보기</p>
+	                                    <div class="btnViewArea">
+	                                    	<c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status">
+	                                    		<button type="button" class="btn_kakao_type"  style="display:block;"><c:out value="${buttonList.name}"/></button>
+	                                    	</c:forEach>
+	                                	</div>
+	                                </div>
+	                                <p class="kakao_block_text">수신거부 : 홈 > 채널차단</p>
+	                                
+	                            </div>
+	                            <!-- //텍스트 미리보기 -->
+	                        </div>
+	                        <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p>
+                            <div class="phone_bottom">
+                                <div class="send_btn">
+                                    <button type="button" class="btnType btnType11" onclick="self.close();">닫기</button>
+                                    <!-- <button type="button" class="btnType btnType10"onclick="location.href='/web/mjon/kakao/template/selectKakaoFriendsTemplateList.do';">취소</button> -->
+                                </div>
+                            </div>
+	                    </div>
+	                </div>
+	            </div>
+            </form>
+        </div>
+    </div>
+</div>
+<!--// send top -->
+</div>
+</body>
+</html>(No newline at end of file)
 
src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateListPop.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateListPop.jsp
@@ -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>(No newline at end of file)
src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
@@ -41,7 +41,7 @@
 	
 	//화면 로딩바 보여주기
 	$('.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({
Add a comment
List