사용자 - 카카오 친구톡 템플릿 관리 화면 리스트 페이징 오류 수정
- 카카오 친구톡 템플릿 관리 화면 리스트 페이징 오류 수정 관리자 - 채널아이디 목록 화면 템플릿 항목 추가 및 알림톡, 친구톡 템블릿 팝업 기능 추가 - 친구톡 등록 템플릿 리스트 및 상세화면 팝업 추가 - 기존 알림톡 템플릿 리스트 오류 수정
@a32df2c7dce6aa560241204c7721f5da02886519
--- 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 @@ |
| 851 | 851 |
kakaoVO.setPage(Integer.toString(channelIDVO.getPageIndex())); |
| 852 | 852 |
kakaoVO.setKeyword(channelIDVO.getSearchKeyword()); |
| 853 | 853 |
kakaoVO.setUserId(channelIDVO.getUserId()); |
| 854 |
+ kakaoVO.setYellowId(channelIDVO.getYellowId()); |
|
| 854 | 855 |
|
| 855 | 856 |
String templateStatus = channelIDVO.getTemplateStatus(); |
| 856 | 857 |
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
... | ... | @@ -13,14 +13,21 @@ |
| 13 | 13 |
import org.springframework.web.bind.annotation.RequestMapping; |
| 14 | 14 |
import org.springframework.web.servlet.HandlerMapping; |
| 15 | 15 |
|
| 16 |
+import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; |
|
| 16 | 17 |
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; |
| 18 |
+import itn.com.cmm.LoginVO; |
|
| 17 | 19 |
import itn.com.cmm.service.FileVO; |
| 18 | 20 |
import itn.com.cmm.util.StringUtil; |
| 21 |
+import itn.let.kakao.admin.kakaoAt.service.ChannelIDVO; |
|
| 19 | 22 |
import itn.let.kakao.admin.kakaoFt.service.MjonKakaoFTService; |
| 20 | 23 |
import itn.let.kakao.admin.kakaoFt.service.MjonKakaoFTVO; |
| 24 |
+import itn.let.kakao.kakaoComm.KakaoVO; |
|
| 25 |
+import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService; |
|
| 26 |
+import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService; |
|
| 21 | 27 |
import itn.let.mjo.msg.service.MjonMsgResultCodeVO; |
| 22 | 28 |
import itn.let.mjo.msg.service.MjonMsgService; |
| 23 | 29 |
import itn.let.mjo.reservmsg.service.MjonReservMsgService; |
| 30 |
+import itn.let.utl.fcc.service.EgovStringUtil; |
|
| 24 | 31 |
|
| 25 | 32 |
/** |
| 26 | 33 |
* |
... | ... | @@ -51,6 +58,12 @@ |
| 51 | 58 |
|
| 52 | 59 |
@Resource(name = "MjonReservMsgService") |
| 53 | 60 |
private MjonReservMsgService mjonReservMsgService; |
| 61 |
+ |
|
| 62 |
+ @Resource(name = "kakaoFriendsTalkTemplateService") |
|
| 63 |
+ private KakaoFriendsTalkTemplateService kakaoFtTemplateService; |
|
| 64 |
+ |
|
| 65 |
+ @Resource(name = "kakaoApiService") |
|
| 66 |
+ private KakaoApiService kakaoApiService; |
|
| 54 | 67 |
|
| 55 | 68 |
/* |
| 56 | 69 |
@Resource(name = "EgovCmmUseService") |
... | ... | @@ -501,6 +514,125 @@ |
| 501 | 514 |
return "/uss/ion/kakaoft/ReserveKakaoFTModify"; |
| 502 | 515 |
} |
| 503 | 516 |
|
| 517 |
+ |
|
| 518 |
+ /** |
|
| 519 |
+ * 채널 아이디별 등록 친구톡 템플릿 목록 팝업화면 관리자페이지 |
|
| 520 |
+ * @param ChannelIDVO |
|
| 521 |
+ * @param request |
|
| 522 |
+ * @param model |
|
| 523 |
+ * @return |
|
| 524 |
+ * @throws Exception |
|
| 525 |
+ */ |
|
| 526 |
+ @RequestMapping("/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do")
|
|
| 527 |
+ public String KakaoFTChannelIDTemplateListPopupAjax(@ModelAttribute("searchVO") ChannelIDVO channelIDVO,
|
|
| 528 |
+ HttpServletRequest request , |
|
| 529 |
+ ModelMap model) throws Exception {
|
|
| 530 |
+ |
|
| 531 |
+ |
|
| 532 |
+ try {
|
|
| 533 |
+ |
|
| 534 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 535 |
+ String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 536 |
+ if(id == "") {
|
|
| 537 |
+ return "redirect:/uat/uia/EgovLoginUsr.do"; |
|
| 538 |
+ } |
|
| 539 |
+ |
|
| 540 |
+ KakaoVO kakaoVO = new KakaoVO(); |
|
| 541 |
+ |
|
| 542 |
+ //페이징 처리 |
|
| 543 |
+ PaginationInfo paginationInfo = new PaginationInfo(); |
|
| 544 |
+ paginationInfo.setCurrentPageNo(channelIDVO.getPageIndex()); |
|
| 545 |
+ paginationInfo.setRecordCountPerPage(9); |
|
| 546 |
+ paginationInfo.setPageSize(channelIDVO.getPageSize()); |
|
| 547 |
+ |
|
| 548 |
+ kakaoVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); |
|
| 549 |
+ kakaoVO.setLastIndex(paginationInfo.getLastRecordIndex()); |
|
| 550 |
+ kakaoVO.setRecordCountPerPage(9); |
|
| 551 |
+ |
|
| 552 |
+ kakaoVO.setSenderKey(channelIDVO.getSenderKey()); |
|
| 553 |
+ kakaoVO.setPage(Integer.toString(channelIDVO.getPageIndex())); |
|
| 554 |
+ kakaoVO.setSearchKeyword(channelIDVO.getSearchKeyword()); |
|
| 555 |
+ kakaoVO.setUserId(channelIDVO.getUserId()); |
|
| 556 |
+ |
|
| 557 |
+ String templateStatus = channelIDVO.getTemplateStatus(); |
|
| 558 |
+ String keyword = channelIDVO.getSearchKeyword(); |
|
| 559 |
+ |
|
| 560 |
+ /*if(keyword != null && keyword != "") {
|
|
| 561 |
+ kakaoVO.setSearchKeyword(keyword); |
|
| 562 |
+ }else {
|
|
| 563 |
+ kakaoVO.setSearchKeyword("");
|
|
| 564 |
+ }*/ |
|
| 565 |
+ |
|
| 566 |
+ if("".equals(kakaoVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 567 |
+ kakaoVO.setSearchSortCnd("friendId");
|
|
| 568 |
+ kakaoVO.setSearchSortOrd("desc");
|
|
| 569 |
+ } |
|
| 570 |
+ |
|
| 571 |
+ //채널 아이디 정보 |
|
| 572 |
+ String yellowId = kakaoVO.getYellowId(); |
|
| 573 |
+ |
|
| 574 |
+ kakaoVO.setCount("9"); //페이지 별 템플릿 개수 9개로
|
|
| 575 |
+ List<KakaoVO> kakaoTemplateInfoList = new ArrayList<KakaoVO>(); |
|
| 576 |
+ kakaoTemplateInfoList = kakaoFtTemplateService.selectKakaoFriendsTemplateList(kakaoVO); |
|
| 577 |
+ |
|
| 578 |
+ model.addAttribute("kakaoVO", kakaoVO);
|
|
| 579 |
+ model.addAttribute("paginationInfo", paginationInfo);
|
|
| 580 |
+ model.addAttribute("kakaoTemplateInfoList", kakaoTemplateInfoList); //친구톡 템플릿 리스트
|
|
| 581 |
+ paginationInfo.setTotalRecordCount(kakaoTemplateInfoList.size() > 0 ? ((KakaoVO)kakaoTemplateInfoList.get(0)).getTotCnt() : 0); |
|
| 582 |
+ |
|
| 583 |
+ } catch (Exception e) {
|
|
| 584 |
+ System.out.println("KakaoFTChannelIDTemplateListPopupAjax Contrller Error ::: " + e);
|
|
| 585 |
+ } |
|
| 586 |
+ |
|
| 587 |
+ return "uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateListPop"; |
|
| 588 |
+ } |
|
| 589 |
+ |
|
| 590 |
+ /** |
|
| 591 |
+ * 채널 아이디별 등록 친구톡 템플릿 상세내용 팝업화면 관리자페이지 |
|
| 592 |
+ * @param ChannelIDVO |
|
| 593 |
+ * @param request |
|
| 594 |
+ * @param model |
|
| 595 |
+ * @return |
|
| 596 |
+ * @throws Exception |
|
| 597 |
+ */ |
|
| 598 |
+ @RequestMapping("/uss/ion/kakaoft/KakaoFTChannelIDTemplateDetailPopupAjax.do")
|
|
| 599 |
+ public String KakaoFTChannelIDTemplateDetailPopupAjax(@ModelAttribute("searchVO") ChannelIDVO channelIDVO,
|
|
| 600 |
+ HttpServletRequest request , |
|
| 601 |
+ ModelMap model) throws Exception {
|
|
| 602 |
+ |
|
| 603 |
+ |
|
| 604 |
+ try {
|
|
| 605 |
+ |
|
| 606 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 607 |
+ String id = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 608 |
+ if(id == "") {
|
|
| 609 |
+ return "redirect:/uat/uia/EgovLoginUsr.do"; |
|
| 610 |
+ } |
|
| 611 |
+ |
|
| 612 |
+ KakaoVO kakaoVO = new KakaoVO(); |
|
| 613 |
+ kakaoVO.setSenderKey(channelIDVO.getSenderKey()); |
|
| 614 |
+ kakaoVO.setFriendId(channelIDVO.getTemplateCode()); |
|
| 615 |
+ kakaoVO.setUserId(channelIDVO.getUserId()); |
|
| 616 |
+ |
|
| 617 |
+ String senderKey = kakaoVO.getSenderKey(); |
|
| 618 |
+ model.addAttribute("senderKey", senderKey);
|
|
| 619 |
+ |
|
| 620 |
+ //친구톡 템플릿 조회하기 |
|
| 621 |
+ KakaoVO resultTemplateVO = kakaoFtTemplateService.selectKakaoFriendsTemplateDetail(kakaoVO); |
|
| 622 |
+ model.addAttribute("resultTemplateVO", resultTemplateVO);
|
|
| 623 |
+ |
|
| 624 |
+ // 사용자 아이디를 이용한 발신프로필 조회 |
|
| 625 |
+ kakaoVO.setUserId(channelIDVO.getUserId()); |
|
| 626 |
+ List<KakaoVO> selectKakaoProfileList = kakaoApiService.selectKakaoProfileList(kakaoVO); |
|
| 627 |
+ model.addAttribute("kakaoProfileList", selectKakaoProfileList);
|
|
| 628 |
+ |
|
| 629 |
+ } catch (Exception e) {
|
|
| 630 |
+ System.out.println("KakaoFTChannelIDTemplateDetailPopupAjax Contrller Error ::: " + e);
|
|
| 631 |
+ } |
|
| 632 |
+ |
|
| 633 |
+ return "uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateDetailPop"; |
|
| 634 |
+ } |
|
| 635 |
+ |
|
| 504 | 636 |
/** |
| 505 | 637 |
* 카톡 전송사 발송 결과 코드 리스트 |
| 506 | 638 |
* @param MjonMsgResultCodeVO |
--- 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 @@ |
| 31 | 31 |
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; |
| 32 | 32 |
import itn.let.kakao.user.kakaoFt.service.KakaoFriendsTalkTemplateService; |
| 33 | 33 |
import itn.let.mjo.mjocommon.MjonCommon; |
| 34 |
+import itn.let.mjo.mjocommon.MjonHolidayApi; |
|
| 34 | 35 |
import itn.let.mjo.msgdata.service.MjonMsgDataService; |
| 35 | 36 |
import itn.let.mjo.msgdata.service.MjonMsgDataVO; |
| 36 | 37 |
import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
| 38 |
+import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; |
|
| 39 |
+import itn.let.mjo.msgholiday.service.MsgHolidayService; |
|
| 40 |
+import itn.let.mjo.msgholiday.service.MsgHolidayVO; |
|
| 37 | 41 |
import itn.let.mjo.symbol.service.MjonSymbolService; |
| 38 | 42 |
import itn.let.mjo.symbol.service.MjonSymbolVO; |
| 39 | 43 |
import itn.let.sym.site.service.EgovSiteManagerService; |
... | ... | @@ -74,6 +78,9 @@ |
| 74 | 78 |
/** 사이트 설정 */ |
| 75 | 79 |
@Resource(name = "egovSiteManagerService") |
| 76 | 80 |
EgovSiteManagerService egovSiteManagerService; |
| 81 |
+ |
|
| 82 |
+ @Resource(name = "MsgHolidayService") |
|
| 83 |
+ private MsgHolidayService msgHolidayService; |
|
| 77 | 84 |
|
| 78 | 85 |
@Autowired |
| 79 | 86 |
KakaoSendUtil kakaoSendUtil; |
... | ... | @@ -624,12 +631,52 @@ |
| 624 | 631 |
JoinSettingVO joinSettingVO = new JoinSettingVO(); |
| 625 | 632 |
joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); |
| 626 | 633 |
|
| 634 |
+ String holiSmishingNoti = joinSettingVO.getHoliSmishingNoti(); |
|
| 635 |
+ |
|
| 636 |
+ //야간 스미싱의심 알림이 활성화 되어있는 경우 예외 알림 시간대가 아닌경우 슬랙 알림 발송 처리한다. |
|
| 637 |
+ if(holiSmishingNoti.equals("Y")) {
|
|
| 638 |
+ |
|
| 639 |
+ // SLACK 체크 |
|
| 640 |
+ if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
| 641 |
+ |
|
| 642 |
+ MsgAlarmSetVO msgAlarmSetVO = new MsgAlarmSetVO(); |
|
| 643 |
+ |
|
| 644 |
+ msgAlarmSetVO.setUseYn("Y");
|
|
| 645 |
+ msgAlarmSetVO.setFirstIndex(0); |
|
| 646 |
+ |
|
| 647 |
+ List<MsgAlarmSetVO> resultAlarmList = msgHolidayService.selectAlarmSettingList(msgAlarmSetVO); |
|
| 648 |
+ |
|
| 649 |
+ Calendar calendar = Calendar.getInstance(); |
|
| 650 |
+ int year = calendar.get(Calendar.YEAR); |
|
| 651 |
+ |
|
| 652 |
+ MsgHolidayVO msgHolidayVO = new MsgHolidayVO(); |
|
| 653 |
+ msgHolidayVO.setFirstIndex(0); |
|
| 654 |
+ msgHolidayVO.setRecordCountPerPage(100); |
|
| 655 |
+ msgHolidayVO.setSearchHoliYear(Integer.toString(year)); |
|
| 656 |
+ |
|
| 657 |
+ List<MsgHolidayVO> resultHolidayList = msgHolidayService.selectMsgHolidayList(msgHolidayVO); |
|
| 658 |
+ |
|
| 659 |
+ MjonHolidayApi mjonHolidayApi = new MjonHolidayApi(); |
|
| 660 |
+ |
|
| 661 |
+ boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList); |
|
| 662 |
+ |
|
| 663 |
+ if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
|
|
| 664 |
+ |
|
| 665 |
+ MjonCommon comm = new MjonCommon(); |
|
| 666 |
+ comm.getAdminKakaoAtSandSlack(kakaoVO); |
|
| 667 |
+ |
|
| 668 |
+ } |
|
| 669 |
+ |
|
| 670 |
+ } |
|
| 671 |
+ |
|
| 672 |
+ } |
|
| 673 |
+ |
|
| 627 | 674 |
// SLACK 체크 |
| 628 |
- if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
| 675 |
+ /*if (joinSettingVO != null && joinSettingVO.getSlackNoti().equals("Y")) {
|
|
| 629 | 676 |
//Slack으로 메세지 전송 처리 |
| 630 | 677 |
MjonCommon comm = new MjonCommon(); |
| 631 | 678 |
comm.getAdminKakaoAtSandSlack(kakaoVO); |
| 632 |
- } |
|
| 679 |
+ }*/ |
|
| 633 | 680 |
} |
| 634 | 681 |
|
| 635 | 682 |
} 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
... | ... | @@ -373,12 +373,12 @@ |
| 373 | 373 |
/** pageing */ |
| 374 | 374 |
PaginationInfo paginationInfo = new PaginationInfo(); |
| 375 | 375 |
paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); |
| 376 |
- paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); |
|
| 376 |
+ paginationInfo.setRecordCountPerPage(9); |
|
| 377 | 377 |
paginationInfo.setPageSize(searchVO.getPageSize()); |
| 378 | 378 |
|
| 379 | 379 |
searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); |
| 380 | 380 |
searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); |
| 381 |
- searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); |
|
| 381 |
+ searchVO.setRecordCountPerPage(9); |
|
| 382 | 382 |
|
| 383 | 383 |
if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
| 384 | 384 |
searchVO.setSearchSortCnd("FRIEND_ID");
|
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
... | ... | @@ -265,7 +265,12 @@ |
| 265 | 265 |
String smisingSmsTxt = ""; |
| 266 | 266 |
//예약문자를 발송하는 경우 문자 내용 앞에 "[예약]" 표시되도록 처리 |
| 267 | 267 |
if(reserveYn.equals("Y")) {
|
| 268 |
- reservSmsTxt = "[예약]" + smsTxt; |
|
| 268 |
+ |
|
| 269 |
+ if(atDelayYn.equals("Y")) {//예약문자 중 스미싱의심 일 경우
|
|
| 270 |
+ reservSmsTxt = "[스미싱의심][예약]" + smsTxt; |
|
| 271 |
+ }else {
|
|
| 272 |
+ reservSmsTxt = "[예약]" + smsTxt; |
|
| 273 |
+ } |
|
| 269 | 274 |
smsTxt = reservSmsTxt; |
| 270 | 275 |
}else if(atDelayYn.equals("Y")) {
|
| 271 | 276 |
|
... | ... | @@ -280,7 +285,7 @@ |
| 280 | 285 |
if(kakaoVO.getMsgType().equals("8")) {
|
| 281 | 286 |
msgType = "[알림톡]"; |
| 282 | 287 |
}else if(kakaoVO.getMsgType().equals("9")){
|
| 283 |
- msgType = "[테스트중][친구톡]"; |
|
| 288 |
+ msgType = "[친구톡]"; |
|
| 284 | 289 |
} |
| 285 | 290 |
sandName = "[" + userId + "]" + "[" + sandName + "]" + msgType; |
| 286 | 291 |
|
--- 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 @@ |
| 83 | 83 |
} |
| 84 | 84 |
|
| 85 | 85 |
//선택 채널 알림톡 템플릿 리스트 불러오기 |
| 86 |
-function fnTemplateListPop(senderKey, userId){
|
|
| 86 |
+function fnAtTemplateListPop(yellowId, senderKey, userId){
|
|
| 87 |
+ |
|
| 88 |
+ document.popupForm.senderKey.value = senderKey; |
|
| 89 |
+ document.popupForm.userId.value = userId; |
|
| 90 |
+ document.popupForm.yellowId.value = yellowId; |
|
| 91 |
+ |
|
| 92 |
+ 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');
|
|
| 93 |
+ document.popupForm.action = "<c:url value='/uss/ion/kakaoat/KakaoATChannelIDTemplateListPopupAjax.do'/>"; |
|
| 94 |
+ document.popupForm.target = "listPopup"; |
|
| 95 |
+ document.popupForm.submit(); |
|
| 96 |
+ |
|
| 97 |
+} |
|
| 98 |
+ |
|
| 99 |
+//선택 채널 친구톡 템플릿 리스트 불러오기 |
|
| 100 |
+function fnFtTemplateListPop(senderKey, userId){
|
|
| 87 | 101 |
|
| 88 | 102 |
document.popupForm.senderKey.value = senderKey; |
| 89 | 103 |
document.popupForm.userId.value = userId; |
| 90 | 104 |
|
| 91 | 105 |
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');
|
| 92 |
- document.popupForm.action = "<c:url value='/uss/ion/kakaoat/KakaoATChannelIDTemplateListPopupAjax.do'/>"; |
|
| 106 |
+ document.popupForm.action = "<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do'/>"; |
|
| 93 | 107 |
document.popupForm.target = "listPopup"; |
| 94 | 108 |
document.popupForm.submit(); |
| 95 | 109 |
|
... | ... | @@ -118,6 +132,7 @@ |
| 118 | 132 |
<input type="hidden" name="mberId"/> |
| 119 | 133 |
<input type="hidden" id="senderKey" name="senderKey" value=""/> |
| 120 | 134 |
<input type="hidden" name="userId" value=""/> |
| 135 |
+ <input type="hidden" name="yellowId" value=""/> |
|
| 121 | 136 |
</form> |
| 122 | 137 |
|
| 123 | 138 |
|
... | ... | @@ -193,6 +208,7 @@ |
| 193 | 208 |
<col style="width: 19%"> |
| 194 | 209 |
<col style="width: 24%"> |
| 195 | 210 |
<col style="width: 10%"> |
| 211 |
+ <col style="width: 10%"> |
|
| 196 | 212 |
<col style="width: 11%"> |
| 197 | 213 |
<col style="width: 11%"> |
| 198 | 214 |
<col style="width: 10%"> |
... | ... | @@ -204,6 +220,7 @@ |
| 204 | 220 |
<th>채널ID<input type="button" class="sort sortBtn" id="sort_yellowId"></th> |
| 205 | 221 |
<th>채널명<input type="button" class="sort sortBtn" id="sort_yellowId"></th> |
| 206 | 222 |
<th>등록상태</th> |
| 223 |
+ <th>템플릿</th> |
|
| 207 | 224 |
<th>채널생성일</th> |
| 208 | 225 |
<th>채널등록일<input type="button" class="sort sortBtn" id="sort_lastUpdtPnttm"></th> |
| 209 | 226 |
<th>삭제여부<input type="button" class="sort sortBtn" id="sort_deleteYn"></th> |
... | ... | @@ -226,7 +243,7 @@ |
| 226 | 243 |
<td onClick="fnTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" style="cursor:pointer;">
|
| 227 | 244 |
<c:out value="${result.uuid}"/>
|
| 228 | 245 |
</td> |
| 229 |
- <td onClick="fnTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" style="cursor:pointer;">
|
|
| 246 |
+ <td> |
|
| 230 | 247 |
<c:out value="${result.name}"/>
|
| 231 | 248 |
</td> |
| 232 | 249 |
<td> |
... | ... | @@ -249,6 +266,10 @@ |
| 249 | 266 |
<c:otherwise> |
| 250 | 267 |
</c:otherwise> |
| 251 | 268 |
</c:choose> |
| 269 |
+ </td> |
|
| 270 |
+ <td> |
|
| 271 |
+ <input type="button" class="btnType1" onClick="fnAtTemplateListPop('<c:out value="${result.uuid}"/>','<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" value="AT"/>
|
|
| 272 |
+ <input type="button" class="btnType1" onClick="fnFtTemplateListPop('<c:out value="${result.senderKey}"/>', '<c:out value="${result.userId}"/>');" value="FT"/>
|
|
| 252 | 273 |
</td> |
| 253 | 274 |
<td> |
| 254 | 275 |
<fmt:parseDate value="${result.createdAt}" var="dateValue" pattern="yyyy-MM-dd HH:mm:ss"/>
|
... | ... | @@ -342,14 +363,14 @@ |
| 342 | 363 |
</tr> |
| 343 | 364 |
</c:forEach> |
| 344 | 365 |
<c:if test="${empty resultChannelList}">
|
| 345 |
- <tr><td colspan="14"><spring:message code="common.nodata.msg" /></td></tr> |
|
| 366 |
+ <tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr> |
|
| 346 | 367 |
</c:if> |
| 347 | 368 |
</tbody> |
| 348 | 369 |
</table> |
| 349 | 370 |
</div> |
| 350 |
- <!-- <div class="btnWrap"> |
|
| 351 |
- <input type="button" class="btnType2" onclick="javascript:fnSttusYAll(); return false;" value="일괄승인"> |
|
| 352 |
- </div> --> |
|
| 371 |
+ <div class="btnWrap"> |
|
| 372 |
+ <!-- <input type="button" class="btnType2" onclick="javascript:fnSttusYAll(); return false;" value="일괄승인"> --> |
|
| 373 |
+ </div> |
|
| 353 | 374 |
<!-- 페이지 네비게이션 시작 --> |
| 354 | 375 |
<c:if test="${!empty resultChannelList}">
|
| 355 | 376 |
<div class="page"> |
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateDetailPop.jsp
... | ... | @@ -0,0 +1,1112 @@ |
| 1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
| 3 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 4 | +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> | |
| 5 | +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> | |
| 6 | +<!DOCTYPE html> | |
| 7 | +<html lang="ko"> | |
| 8 | +<head> | |
| 9 | +<title> 친구톡 템플릿 상세보기</title> | |
| 10 | +<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet"> | |
| 11 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 12 | + <link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css"> | |
| 13 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 14 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 15 | + <link rel="stylesheet" href="/publish/css/content.css"> | |
| 16 | + <link rel="stylesheet" href="/publish/css/adrbook.css"> | |
| 17 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 18 | + <link rel="stylesheet" href="/publish/css/popupLayer.css"> | |
| 19 | + <link rel="stylesheet" href="/publish/js/datepicker/classic.css"> | |
| 20 | + <link rel="stylesheet" href="/publish/js/datepicker/classic.date.css"> | |
| 21 | + | |
| 22 | + | |
| 23 | + <script src="/publish/js/jquery-3.5.0.js"></script> | |
| 24 | + <script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script> | |
| 25 | + <script src="/publish/js/common.js"></script> | |
| 26 | + <script src="/publish/js/content.js"></script> | |
| 27 | + <script src="/publish/js/popupLayer.js"></script> | |
| 28 | + <script type="text/javascript" src="/publish/js/datepicker/picker.js"></script> | |
| 29 | + <script type="text/javascript" src="/publish/js/datepicker/picker.date.js"></script> | |
| 30 | + <script type="text/javascript" src="/publish/js/datepicker/ko_KR.js"></script> | |
| 31 | + | |
| 32 | + <script src="/js/MJUtill.js"></script> | |
| 33 | + <script src="/js/kakao/templateComm.js"></script> | |
| 34 | + | |
| 35 | +<script type="text/javascript"> | |
| 36 | + | |
| 37 | +/* 파일등록 */ | |
| 38 | +var _fileIdx = 0; | |
| 39 | +var _fileForm2 = new Array(); | |
| 40 | +var fileExt = ""; // 첨부파일 확장자 | |
| 41 | + | |
| 42 | +$(document).ready(function (){ | |
| 43 | + | |
| 44 | + initFormChk(); | |
| 45 | + | |
| 46 | + //첫로딩시 우측 미리보기 화면 숨김처리 | |
| 47 | + //$('.emphasis_title_text').hide(); //강조유형 타이틀 | |
| 48 | + //$('.emphasis_side_text').hide(); //강조유형 보조문구 | |
| 49 | + //$('.template_text').hide(); //내용 미리보기 | |
| 50 | + //$('.side_info_text').hide(); //부가정보 내용 | |
| 51 | + //$('.channel_info_text').hide(); //채널추가 텍스트 내용 | |
| 52 | + //$('.btnAd').hide(); //샘플 채널추가 버튼 | |
| 53 | + //$('.btnEmpty').hide(); //샘플 버튼 | |
| 54 | + | |
| 55 | + $("#selectTemplateFirstCatagory").on("change", function(){ | |
| 56 | + $("#selectTemplateSecondCatagory option").remove(); | |
| 57 | + templateCatagoryChange("2", $(this).val(), "insert"); | |
| 58 | + }); | |
| 59 | + | |
| 60 | + $("#selectTemplateFirstCatagory_select").on("change", function(){ | |
| 61 | + $("#selectTemplateSecondCatagory_select option").remove(); | |
| 62 | + templateCatagoryChange("2", $(this).val(), "select"); | |
| 63 | + }); | |
| 64 | + | |
| 65 | + //메시지 유형에 따른 화면 변경 기능 추가 | |
| 66 | + $("#selectTemplateType").on("change", function(){ | |
| 67 | + if($(this).val() == 'BA'){ | |
| 68 | + $("#ExTr").hide(); | |
| 69 | + $("#AdTr").hide(); | |
| 70 | + $("#buttonChannelAdd").hide(); | |
| 71 | + }else if($(this).val() == 'EX'){ | |
| 72 | + $("#ExTr").show(); | |
| 73 | + $("#AdTr").hide(); | |
| 74 | + $("#buttonChannelAdd").hide(); | |
| 75 | + }else if($(this).val() == 'AD'){ | |
| 76 | + $("#ExTr").hide(); | |
| 77 | + $("#AdTr").show(); | |
| 78 | + $("#buttonChannelAdd").show(); | |
| 79 | + | |
| 80 | + }else{ | |
| 81 | + | |
| 82 | + } | |
| 83 | + }); | |
| 84 | + | |
| 85 | + //템플릿 강조유형에 따른 화면 변경 기능 추가 | |
| 86 | + $("#selectTemplateEmphasizeType").on("change", function(){ | |
| 87 | + if($(this).val() == 'NONE'){ | |
| 88 | + $("#imageNameTr").hide(); | |
| 89 | + $("#imageUrlTr").hide(); | |
| 90 | + $("#titleTr").hide(); | |
| 91 | + $("#subTitleTr").hide(); | |
| 92 | + }else if($(this).val() == 'IMAGE'){ | |
| 93 | + $("#imageNameTr").show(); | |
| 94 | + $("#imageUrlTr").show(); | |
| 95 | + $("#titleTr").hide(); | |
| 96 | + $("#subTitleTr").hide(); | |
| 97 | + }else if($(this).val() == 'TEXT'){ | |
| 98 | + $("#imageNameTr").hide(); | |
| 99 | + $("#imageUrlTr").hide(); | |
| 100 | + $("#titleTr").show(); | |
| 101 | + $("#subTitleTr").show(); | |
| 102 | + } | |
| 103 | + }); | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + //템플릿명 입력 글자수 체크 해주기 | |
| 108 | + $("#inputTemplateName").keyup(function(e){ | |
| 109 | + | |
| 110 | + var contents = $('#inputTemplateName').val(); | |
| 111 | + var conLeng = strMaxCharacterCnt(contents); | |
| 112 | + | |
| 113 | + if(conLeng > 100){ | |
| 114 | + | |
| 115 | + alert("템플릿명은 100자를 넘을 수 없습니다."); | |
| 116 | + var splicecon = strMaxLengthSubstring(contents, 99); | |
| 117 | + $('#inputTemplateName').val(splicecon); | |
| 118 | + return false; | |
| 119 | + | |
| 120 | + } | |
| 121 | + | |
| 122 | + }); | |
| 123 | + | |
| 124 | + //템플릿 내용 입력 글자수 체크 해주기 | |
| 125 | + $("#inputTemplateContent").keyup(function(e){ | |
| 126 | + | |
| 127 | + var contents = $('#inputTemplateContent').val(); | |
| 128 | + setContentsLeng(contents); | |
| 129 | + | |
| 130 | + }); | |
| 131 | + | |
| 132 | + | |
| 133 | + //강조표기 타이틀 입력시 우측 미리보기 화면에 표시해주기 | |
| 134 | + $("#inputTemplateTitle").keyup(function(e){ | |
| 135 | + | |
| 136 | + var title = $('#inputTemplateTitle').val(); | |
| 137 | + $('.emphasis_title_text').show(); | |
| 138 | + $('.emphasis_title_text').text(title); | |
| 139 | + | |
| 140 | + }); | |
| 141 | + | |
| 142 | + //강조표기 타이틀 입력시 우측 미리보기 화면에 표시해주기 | |
| 143 | + $("#inputTemplateSubTitle").keyup(function(e){ | |
| 144 | + | |
| 145 | + var subTitle = $('#inputTemplateSubTitle').val(); | |
| 146 | + $('.emphasis_side_text').show(); | |
| 147 | + $('.emphasis_side_text').text(subTitle); | |
| 148 | + | |
| 149 | + }); | |
| 150 | + | |
| 151 | + //부가정보 내용 입력시 우측 미리보기 화면에 표시해주기 | |
| 152 | + $("#inputTemplateExtra").keyup(function(e){ | |
| 153 | + | |
| 154 | + var extraCon = $('#inputTemplateExtra').val(); | |
| 155 | + $('.side_info_text').show(); | |
| 156 | + $('.side_info_text').text(extraCon); | |
| 157 | + | |
| 158 | + }); | |
| 159 | + | |
| 160 | + //채널추가형 내용 입력시 우측 미리보기 화면에 표시해주기 | |
| 161 | + $("#inputTemplateAd").keyup(function(e){ | |
| 162 | + | |
| 163 | + var contentsAd = $('#inputTemplateAd').val(); | |
| 164 | + $('.channel_info_text').show(); | |
| 165 | + $('.channel_info_text').text(contentsAd); | |
| 166 | + | |
| 167 | + }); | |
| 168 | + | |
| 169 | + //메세지 유형이 채널추가인경우 미리보기에 채널 추가 버튼 표시해주기 | |
| 170 | + var msgTypeVal = $('#selectTemplateType option:selected').val(); | |
| 171 | + if(msgTypeVal == 'AD'){ | |
| 172 | + | |
| 173 | + $(".btnAd").css("display", "block"); | |
| 174 | + | |
| 175 | + }else if(msgTypeVal == 'MI'){//복합형인경우 부가정보 및 채널추가 버튼 모두 표시 | |
| 176 | + | |
| 177 | + $(".side_info_text").css("display", "block"); | |
| 178 | + $(".btnAd").css("display", "block"); | |
| 179 | + | |
| 180 | + } | |
| 181 | + | |
| 182 | +}); | |
| 183 | + | |
| 184 | +//화면 초기 로딩시 셀렉트 박스 등 처리 해주기 | |
| 185 | +function initFormChk(){ | |
| 186 | + | |
| 187 | + //첫로딩시 우측 미리보기 화면 숨김처리 | |
| 188 | + $('.emphasis_title_text').hide(); //강조유형 타이틀 | |
| 189 | + $('.emphasis_side_text').hide(); //강조유형 보조문구 | |
| 190 | + //$('.template_text').hide(); //내용 미리보기 | |
| 191 | + $('.side_info_text').hide(); //부가정보 내용 | |
| 192 | + $('.channel_info_text').hide(); //채널추가 텍스트 내용 | |
| 193 | + $('.btnAd').hide(); //샘플 채널추가 버튼 | |
| 194 | + $('.btnEmpty').hide(); //샘플 버튼 | |
| 195 | + | |
| 196 | + //채널ID 정보 미리보기에 표시해주기 | |
| 197 | + fnAgentCodeChg(); | |
| 198 | + | |
| 199 | + //템플릿 등록 이미지가 있는 경우 이미지 정보 표시해 주기 | |
| 200 | + var imgType = $("input[name=img_file_add]:checked").val(); | |
| 201 | + | |
| 202 | + if(!imgType == ''){ | |
| 203 | + | |
| 204 | + if($("input[name='img_file_add']:checked").attr("id")=="img_file_1"){ | |
| 205 | + $(".basic_img_add_wrap").show().siblings(".img_add_info_wrap").hide(); | |
| 206 | + $(".img_file_add_wrap").show(); | |
| 207 | + }else if($("input[name='img_file_add']:checked").attr("id")=="img_file_2"){ | |
| 208 | + $(".wide_img_add_wrap").show().siblings(".img_add_info_wrap").hide(); | |
| 209 | + $(".img_file_add_wrap").show(); | |
| 210 | + } else{ | |
| 211 | + $(".img_add_info_wrap, .img_file_add_wrap").hide(); | |
| 212 | + } | |
| 213 | + | |
| 214 | + } | |
| 215 | + var imageFileName = '${resultTemplateVO.imageFileName}'; | |
| 216 | + $("#imgNm").text(imageFileName); | |
| 217 | + | |
| 218 | + //미리보기에 이미지 표시해주기 | |
| 219 | + var imgUrl = '${resultTemplateVO.templateImageUrl}'; | |
| 220 | + $('.kakao_image').css("display", "block"); | |
| 221 | + $("#kakaoImg").attr("src", imgUrl); | |
| 222 | + | |
| 223 | + | |
| 224 | + //초기 템플릿 내용 글자수 처리해주기 | |
| 225 | + var tmpContents = $('#inputTemplateContent').val(); | |
| 226 | + setContentsLengForFriends(tmpContents); | |
| 227 | + | |
| 228 | + //초기 광고포함 여부 처리 | |
| 229 | + var adFlagVal = $("input[name=ad_flag]:checked").val(); | |
| 230 | + advTextChange(adFlagVal); | |
| 231 | + | |
| 232 | +} | |
| 233 | + | |
| 234 | +// 카테고리 선택 조회 | |
| 235 | +function templateCatagoryChange(depth, code, type){ | |
| 236 | + var categoryDepth = depth; | |
| 237 | + var categoryCode = code; | |
| 238 | + | |
| 239 | + $.ajax({ | |
| 240 | + type: "POST" | |
| 241 | + , url: "/web/mjon/test/selectKakaoTemplateCategoryAjax.do" | |
| 242 | + , data:{ "categoryDepth":categoryDepth, "categoryCode" : categoryCode} | |
| 243 | + , dataType:'json' | |
| 244 | + , cache: false | |
| 245 | + , async: false | |
| 246 | + , timeout: 600000 | |
| 247 | + , success: function (returnData, status) { | |
| 248 | + if(status == 'success'){ | |
| 249 | + if(categoryDepth == '2'){ | |
| 250 | + | |
| 251 | + if(type == "insert"){ | |
| 252 | + var list = returnData.selectCatagoryList; | |
| 253 | + $("#selectTemplateSecondCatagory").append("<option value=''>카테고리 선택</option>"); | |
| 254 | + for(var i=0; i < list.length; i++){ | |
| 255 | + $("#selectTemplateSecondCatagory").append("<option value='"+list[i].categoryCode+"'>"+list[i].categoryGroupName+"</option>"); | |
| 256 | + } | |
| 257 | + }else if(type == "select"){ | |
| 258 | + var list = returnData.selectCatagoryList; | |
| 259 | + $("#selectTemplateSecondCatagory_select").append("<option value=''>카테고리 선택</option>"); | |
| 260 | + for(var i=0; i < list.length; i++){ | |
| 261 | + $("#selectTemplateSecondCatagory_select").append("<option value='"+list[i].categoryCode+"'>"+list[i].categoryGroupName+"</option>"); | |
| 262 | + } | |
| 263 | + } | |
| 264 | + } | |
| 265 | + } else if(status== 'fail'){ | |
| 266 | + alert("저장에 실패하였습니다. !!"); | |
| 267 | + } | |
| 268 | + } | |
| 269 | + ,error: function (e) { | |
| 270 | + console.log("ERROR : ", e); | |
| 271 | + alert("삭제처리에 실패하였습니다."); | |
| 272 | + } | |
| 273 | + }); | |
| 274 | + | |
| 275 | + | |
| 276 | +} | |
| 277 | + | |
| 278 | +//--------------첨부파일 처리 함수 시작-------------------------- | |
| 279 | + | |
| 280 | +/* 파일사이즈 가져오기 */ | |
| 281 | +function getStrFileSize(filesize){ | |
| 282 | + var sizeStr=""; | |
| 283 | + var sizeKB = filesize/1024; | |
| 284 | + if(parseInt(sizeKB) > 1024){ | |
| 285 | + var sizeMB = sizeKB/1024; | |
| 286 | + sizeStr = sizeMB.toFixed(2)+" MB"; | |
| 287 | + }else{ | |
| 288 | + sizeStr = sizeKB.toFixed(2)+" KB"; | |
| 289 | + } | |
| 290 | + return sizeStr; | |
| 291 | +} | |
| 292 | + | |
| 293 | +//첨부 이미지 정보 확인 처리 해주기(이미지 리사이징 전단계) | |
| 294 | +function imgResizeInfo(event){ | |
| 295 | + | |
| 296 | + var fileValue = $("#imgFile").val().split("\\"); | |
| 297 | + var fileName = fileValue[fileValue.length-1]; | |
| 298 | + | |
| 299 | + var fileExt = fileName.split('.').pop().toLowerCase(); | |
| 300 | + | |
| 301 | + if(fileExt.length > 0){ | |
| 302 | + if($.inArray(fileExt, ['jpg','jpeg','png']) == -1) { | |
| 303 | + alert('jpg, jpeg, png 파일만 업로드 할수 있습니다.'); | |
| 304 | + return false; | |
| 305 | + } | |
| 306 | + | |
| 307 | + $("#imgNm").val(fileName); | |
| 308 | + } | |
| 309 | + | |
| 310 | + //알림톡 이미지 등록 요청하기 | |
| 311 | + getTemplateImagUrl(); | |
| 312 | +} | |
| 313 | + | |
| 314 | +function getTemplateImagUrl(){ | |
| 315 | + | |
| 316 | + var bizForm = document.bizForm; | |
| 317 | + var data = new FormData(bizForm); | |
| 318 | + var atchFileSts = true; //첨부파일 갯수 상태 값 | |
| 319 | + | |
| 320 | + data.append("file0", $('#imgFile').prop('files')[0]); | |
| 321 | + | |
| 322 | + var fileValue = $("#imgFile").val().split("\\"); | |
| 323 | + var fileName = fileValue[fileValue.length-1]; | |
| 324 | + | |
| 325 | + var fileExt = fileName.split('.').pop().toLowerCase(); | |
| 326 | + | |
| 327 | + if($.inArray(fileExt, ['jpg','jpeg', 'png']) == -1) { | |
| 328 | + | |
| 329 | + alert('jpg, jpeg 파일만 업로드 할수 있습니다.'); | |
| 330 | + return false; | |
| 331 | + | |
| 332 | + } | |
| 333 | + | |
| 334 | + var url = ""; | |
| 335 | + | |
| 336 | + if(fileExt == "jpg" || fileExt == "jpeg" || fileExt == "png"){ | |
| 337 | + | |
| 338 | + url = "/web/mjon/kakao/template/sendKakaoTemplateImageUploadAjax.do"; | |
| 339 | + | |
| 340 | + }else{ | |
| 341 | + | |
| 342 | + alert('jpg, jpeg 파일만 업로드 할수 있습니다.'); | |
| 343 | + return; | |
| 344 | + | |
| 345 | + } | |
| 346 | + | |
| 347 | + $.ajax({ | |
| 348 | + type : 'POST' | |
| 349 | + , enctype : 'multipart/form-data' | |
| 350 | + , url : url | |
| 351 | + , data : data | |
| 352 | + , dataType:'json' | |
| 353 | + , async:false | |
| 354 | + , processData: false | |
| 355 | + , contentType: false | |
| 356 | + , cache : false | |
| 357 | + , success : function(returnData, status){ | |
| 358 | + if(returnData.result == "success") { | |
| 359 | + | |
| 360 | + var code = returnData.code; | |
| 361 | + var msg = returnData.msg; | |
| 362 | + var imgUrl = returnData.imgUrl; | |
| 363 | + | |
| 364 | + if(code == "200"){//등록 성공시 메시지 및 이미지 표시 처리 | |
| 365 | + alert("이미지 등록이 완료 되었습니다."); | |
| 366 | + $("#templateImageName").val(fileName); | |
| 367 | + $("#templateImageUrl").val(imgUrl); | |
| 368 | + | |
| 369 | + $('.kakao_image').css("display", "block"); | |
| 370 | + $("#kakaoImg").attr("src", imgUrl); | |
| 371 | + | |
| 372 | + }else if(code == "2002"){//일반 이미지 가로 세로 크기 오류 발생 | |
| 373 | + | |
| 374 | + alert("권장 이미지 사이즈는 가로 800px 세로 400px(가로:세로 비율이 2:1 아닐 경우, 가로 500px, 세로 250px 이하일 경우 업로드 불가)입니다."); | |
| 375 | + $("#imgNm").val(""); | |
| 376 | + return false; | |
| 377 | + | |
| 378 | + }else{//기타 실패 | |
| 379 | + | |
| 380 | + alert(msg); | |
| 381 | + $("#imgNm").val(""); | |
| 382 | + return false; | |
| 383 | + } | |
| 384 | + | |
| 385 | + }else if(returnData.result == "loginFail"){ | |
| 386 | + location.href="/web/user/login/login.do"; | |
| 387 | + }else{ | |
| 388 | + alert("이미지 등록 중 오류가 발생하였습니다.!!!"); | |
| 389 | + return false; | |
| 390 | + } | |
| 391 | + } | |
| 392 | + ,error : function(request , status, error){ | |
| 393 | + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); | |
| 394 | + } | |
| 395 | + }); | |
| 396 | + | |
| 397 | + //첨부파일 이름 및 데이터 지워주기 - 완료 후 팝업이 자동으로 닫힘. | |
| 398 | + $("#imgFile").val(""); | |
| 399 | + //$("#imgNm").val(""); | |
| 400 | + | |
| 401 | +} | |
| 402 | + | |
| 403 | +//파일첨부 버튼 클릭시 파일 첨부 실행 | |
| 404 | +function upImgClick(){ | |
| 405 | + | |
| 406 | + $("#imgFile").click(); | |
| 407 | + | |
| 408 | +} | |
| 409 | + | |
| 410 | + | |
| 411 | +//발신 템플릿 등록 | |
| 412 | +function updateTemplate(){ | |
| 413 | + | |
| 414 | + var selectAgentCode = $("select[name='selectAgentCode']").val(); // 선택 채널ID | |
| 415 | + var inputTemplateName = $("#inputTemplateName").val(); // 입력 템플릿 이름 | |
| 416 | + | |
| 417 | + var selectTemplateType = $("select[name='selectTemplateType']").val(); // 선택 템플릿 메시지 유형 | |
| 418 | + var inputTemplateContent = $("#inputTemplateContent").val(); // 템플릿 내용 | |
| 419 | + var inputTemplateExtra = $("#inputTemplateExtra").val(); // 부가정보 내용 | |
| 420 | + var inputTemplateAd = $("#inputTemplateAd").val(); // 광고성메시지 | |
| 421 | + | |
| 422 | + var selectTemplateEmphasizeType = $("select[name='selectTemplateEmphasizeType']").val(); // 선택 템플릿 강조 유형 | |
| 423 | + var inputTemplateImageName = $("#templateImageName").val(); // 템플릿 이미지 파일명 | |
| 424 | + var inputTemplateImageUrl = $("#templateImageUrl").val(); // 템플릿 이미지 링크 | |
| 425 | + var inputTemplateTitle = $("#inputTemplateTitle").val(); // 템플릿 타이틀 | |
| 426 | + var inputTemplateSubTitle = $("#inputTemplateSubTitle").val(); // 템플릿 서브 타이틀 | |
| 427 | + | |
| 428 | + var selectTemplateSecondCatagory = $("select[name='selectTemplateSecondCatagory']").val(); // 선택 템플릿 카테고리 | |
| 429 | + | |
| 430 | + // 공통 유효성 검사 조회 | |
| 431 | + if(selectAgentCode == null || selectAgentCode == ""){ | |
| 432 | + alert("채널ID를 선택해 주세요"); | |
| 433 | + return; | |
| 434 | + }; | |
| 435 | + | |
| 436 | + if(inputTemplateName == null || inputTemplateName == ""){ | |
| 437 | + alert("템플릿 이름을 입력해 주세요"); | |
| 438 | + $("#inputTemplateName").focus(); | |
| 439 | + return; | |
| 440 | + }; | |
| 441 | + | |
| 442 | + if(selectTemplateSecondCatagory == null || selectTemplateSecondCatagory == ""){ | |
| 443 | + alert("템플릿 카테고리를 선택해 주세요"); | |
| 444 | + return; | |
| 445 | + }; | |
| 446 | + | |
| 447 | + if(inputTemplateContent == null || inputTemplateContent == ""){ | |
| 448 | + alert("템플릿 내용을 입력해 주세요."); | |
| 449 | + return; | |
| 450 | + }; | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + // 메시지 유형 선택여부에 따른 필수값 체크 | |
| 455 | + if(selectTemplateType == "EX"){ | |
| 456 | + if(inputTemplateExtra == null || inputTemplateExtra == ""){ | |
| 457 | + alert("템플릿 내용을 입력해 주세요"); | |
| 458 | + $("#inputTemplateExtra").focus(); | |
| 459 | + return; | |
| 460 | + }; | |
| 461 | + }else if(selectTemplateType == "AD"){ | |
| 462 | + if(inputTemplateAd == null || inputTemplateAd == ""){ | |
| 463 | + alert("광고성 메시지 내용을 입력해 주세요"); | |
| 464 | + $("#inputTemplateAd").focus(); | |
| 465 | + return; | |
| 466 | + }; | |
| 467 | + } | |
| 468 | + | |
| 469 | + // 템플릿 강조유형에 따른 필수값 체크 | |
| 470 | + if(selectTemplateEmphasizeType == "TEXT"){ | |
| 471 | + if(inputTemplateTitle == null || inputTemplateTitle == ""){ | |
| 472 | + alert("템플릿 타이틀을 입력해 주세요"); | |
| 473 | + $("#inputTemplateTitle").focus(); | |
| 474 | + return; | |
| 475 | + }else{ | |
| 476 | + | |
| 477 | + var returnMatch = inputTemplateContent.match(inputTemplateTitle); | |
| 478 | + if(returnMatch == null){ | |
| 479 | + | |
| 480 | + alert("강조표기타이틀은 템플릿 본문에 있는 내용/변수만 입력 가능합니다."); | |
| 481 | + return false; | |
| 482 | + } | |
| 483 | + | |
| 484 | + }; | |
| 485 | + if(inputTemplateSubTitle == null || inputTemplateSubTitle == ""){ | |
| 486 | + alert("템플릿 서브타이틀을 입력해 주세요"); | |
| 487 | + $("#inputTemplateSubTitle").focus(); | |
| 488 | + return; | |
| 489 | + }else{ | |
| 490 | + | |
| 491 | + var returnMatch = inputTemplateContent.match(inputTemplateSubTitle); | |
| 492 | + | |
| 493 | + if(returnMatch == null){ | |
| 494 | + | |
| 495 | + alert("강조표기보조문구는 템플릿 본문에 있는 내용만 입력 가능합니다."); | |
| 496 | + return false; | |
| 497 | + } | |
| 498 | + | |
| 499 | + //보조문구에 변수를 입력했는지 체크 | |
| 500 | + var varValue = inputTemplateSubTitle.match(/#\{([^}]+)\}/g); | |
| 501 | + | |
| 502 | + if(varValue != null){ | |
| 503 | + | |
| 504 | + alert("강조 표기 보조 문구에 변수를 입력할 수 없습니다."); | |
| 505 | + return false; | |
| 506 | + | |
| 507 | + } | |
| 508 | + | |
| 509 | + }; | |
| 510 | + }else if(selectTemplateEmphasizeType == "IMAGE"){ | |
| 511 | + if(inputTemplateImageName == null || inputTemplateImageName == ""){ | |
| 512 | + alert("템플릿 이미지 파일명을 입력해 주세요"); | |
| 513 | + $("#inputTemplateImageName").focus(); | |
| 514 | + return; | |
| 515 | + }; | |
| 516 | + if(inputTemplateImageUrl == null || inputTemplateImageUrl == ""){ | |
| 517 | + alert("탬플릿 이미지 링크를 입력해주세요"); | |
| 518 | + $("#inputTemplateImageUrl").focus(); | |
| 519 | + return; | |
| 520 | + }; | |
| 521 | + }else if(selectTemplateEmphasizeType == "ITEM_LIST"){ | |
| 522 | + | |
| 523 | + } | |
| 524 | + | |
| 525 | + var bizForm = document.bizForm; | |
| 526 | + bizForm.senderKey.value = selectAgentCode; | |
| 527 | + bizForm.templateName.value = inputTemplateName; | |
| 528 | + bizForm.templateMessageType.value = selectTemplateType; | |
| 529 | + bizForm.templateEmphasizeType.value = selectTemplateEmphasizeType; | |
| 530 | + bizForm.templateContent.value = inputTemplateContent; | |
| 531 | + bizForm.categoryCode.value = selectTemplateSecondCatagory; | |
| 532 | + | |
| 533 | + // 메시지 유형 선택여부에 따른 필수값 체크 | |
| 534 | + if(selectTemplateType == "EX"){ | |
| 535 | + bizForm.templateExtra.value = inputTemplateExtra; | |
| 536 | + }else if(selectTemplateType == "AD"){ | |
| 537 | + bizForm.tamplateAd.value = inputTemplateAd; | |
| 538 | + } | |
| 539 | + | |
| 540 | + // 템플릿 강조유형에 따른 필수값 체크 | |
| 541 | + if(selectTemplateEmphasizeType == "TEXT"){ | |
| 542 | + bizForm.templateTitle.value = inputTemplateTitle; | |
| 543 | + bizForm.templateSubtitle.value = inputTemplateSubTitle; | |
| 544 | + }else if(selectTemplateEmphasizeType == "IMAGE"){ | |
| 545 | + bizForm.templateImageName.value = inputTemplateImageName; | |
| 546 | + bizForm.templateImageUrl.value = inputTemplateImageUrl; | |
| 547 | + }else if(selectTemplateEmphasizeType == "ITEM_LIST"){ | |
| 548 | + | |
| 549 | + } | |
| 550 | + | |
| 551 | + | |
| 552 | + var data = new FormData(bizForm); | |
| 553 | + | |
| 554 | + if(confirm("템플릿을 수정하시겠습니까?")){ | |
| 555 | + | |
| 556 | + $.ajax({ | |
| 557 | + type: "POST" | |
| 558 | + , url: "/web/mjon/kakao/template/updateKakaoApiTemplateAjax.do" | |
| 559 | + , data: data | |
| 560 | + , dataType: 'json' | |
| 561 | + , async: false | |
| 562 | + , processData: false | |
| 563 | + , contentType: false | |
| 564 | + , cache: false | |
| 565 | + , success: function (returnData, status) { | |
| 566 | + | |
| 567 | + var result = returnData.result; | |
| 568 | + var code = returnData.code; | |
| 569 | + var msg = returnData.msg; | |
| 570 | + | |
| 571 | + if(result == "notLogin") {//차단 발신번호인 경우 등록 불가 | |
| 572 | + alert("로그인후 진행이 가능합니다."); | |
| 573 | + }else if(returnData.result == "success") { | |
| 574 | + if(code == "200"){ | |
| 575 | + alert("템플릿 수정이 완료되었습니다."); | |
| 576 | + location.href="/web/mjon/kakao/template/selectKaKaoTemplateList.do"; | |
| 577 | + }else{ | |
| 578 | + alert(msg); | |
| 579 | + return false; | |
| 580 | + } | |
| 581 | + }else{ | |
| 582 | + | |
| 583 | + if(msg != 'msg'){ | |
| 584 | + alert(msg); | |
| 585 | + return false; | |
| 586 | + }else{ | |
| 587 | + | |
| 588 | + alert("알림톡 템플릿 수정에 오류가 발생하였습니다."); | |
| 589 | + return false; | |
| 590 | + | |
| 591 | + } | |
| 592 | + | |
| 593 | + console.log(); | |
| 594 | + return false; | |
| 595 | + | |
| 596 | + } | |
| 597 | + } | |
| 598 | + ,error: function (e) { | |
| 599 | + console.log("ERROR : ", e); | |
| 600 | + alert("알림톡 템플릿 수정에 오류가 발생하였습니다."); | |
| 601 | + } | |
| 602 | + }); | |
| 603 | + | |
| 604 | + } | |
| 605 | + | |
| 606 | +} | |
| 607 | + | |
| 608 | + | |
| 609 | +//알림톡 내용 초기화 해주기 | |
| 610 | +function fnContentsReset(){ | |
| 611 | + | |
| 612 | + $("#inputTemplateContent").val(""); | |
| 613 | + $('.nowChar').text("0 /"); | |
| 614 | + | |
| 615 | +} | |
| 616 | + | |
| 617 | +//우측 미리보기 화면 채널 아이디 정보 변경해 주기 | |
| 618 | +function fnAgentCodeChg(){ | |
| 619 | + | |
| 620 | + var yellowId = $("#selectAgentCode option:checked").text(); | |
| 621 | + if(yellowId != ''){ | |
| 622 | + | |
| 623 | + $('#spnYellowid').text(yellowId); | |
| 624 | + } | |
| 625 | + | |
| 626 | +} | |
| 627 | + | |
| 628 | +$(document).on('click', '.symbolButton, .changeWord', function (){ | |
| 629 | + var templateContents = $('#inputTemplateContent').val(); | |
| 630 | + $('#inputTemplateContent').val(templateContents + $(this).attr("value")); | |
| 631 | + | |
| 632 | + setContentsLeng($('#inputTemplateContent').val()); | |
| 633 | +}); | |
| 634 | + | |
| 635 | +</script> | |
| 636 | +</head> | |
| 637 | +<body> | |
| 638 | + | |
| 639 | + | |
| 640 | +<form id="templateForm" name="templateForm" method="post"> | |
| 641 | + | |
| 642 | + <input type="hidden" id="inputSenderKey" name="senderKey" value=""/> | |
| 643 | + <input type="hidden" id="inputTemplateCode" name="templateCode" value=""/> | |
| 644 | + | |
| 645 | +</form> | |
| 646 | + | |
| 647 | +<div id="container" class="adminCont sub"> | |
| 648 | +<!-- content 영역 --> | |
| 649 | +<div class="inner"> | |
| 650 | + <!-- send top --> | |
| 651 | + <div class="send_top"> | |
| 652 | + <!-- tab button --> | |
| 653 | + <%-- <%@include file="/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp" %> --%> | |
| 654 | + <!--// tab button --> | |
| 655 | + <!-- 카카오톡 설정 - 알림톡 템플릿 등록/관리 - 내템플릿 --> | |
| 656 | + <div class="top_content kakaotalkset_cont current pay_tab_wrap"> | |
| 657 | + <div class="heading"> | |
| 658 | + <h2>카카오 친구톡 템플릿 상세보기</h2> | |
| 659 | + <!-- <button type="button" class="button info" | |
| 660 | + 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> --> | |
| 661 | + </div> | |
| 662 | + <div class="list_tab_wrap2 type2 "> | |
| 663 | + <!-- tab button --> | |
| 664 | + <%-- <%@include file="/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkSubMenuTap.jsp" %> --%> | |
| 665 | + <!--// tab button --> | |
| 666 | + </div> | |
| 667 | + | |
| 668 | + <form id="bizForm" name="bizForm" method="post"> | |
| 669 | + <input type="hidden" id="menuTopTab" name="menuTopTab" value="tabConf"> | |
| 670 | + <input type="hidden" id="menuSubTab" name="menuSubTab" value="tabTemplate"> | |
| 671 | + <input type="hidden" id="templateCode" name="templateCode" value="<c:out value='${kakaoReturnVO.templateCode}'/>"> | |
| 672 | + <input type="hidden" id="senderKey" name="senderKey" value="<c:out value='${senderKey}'/>"> | |
| 673 | + <input type="hidden" id="templateName" name="templateName" value=""> | |
| 674 | + <input type="hidden" id="templateMessageType" name="templateMessageType" value=""> | |
| 675 | + <input type="hidden" id="templateEmphasizeType" name="templateEmphasizeType" value=""> | |
| 676 | + <input type="hidden" id="templateContent" name="templateContent" value=""> | |
| 677 | + <input type="hidden" id="categoryCode" name="categoryCode" value=""> | |
| 678 | + | |
| 679 | + <input type="hidden" id="templateExtra" name="templateExtra" value=""> | |
| 680 | + <input type="hidden" id="tamplateAd" name="tamplateAd" value=""> | |
| 681 | + | |
| 682 | + <input type="hidden" id="templateTitle" name="templateTitle" value=""> | |
| 683 | + <input type="hidden" id="templateSubtitle" name="templateSubtitle" value=""> | |
| 684 | + <input type="hidden" id="templateImageName" name="templateImageName" value="<c:out value='${kakaoReturnVO.templateImageName}'/>"> | |
| 685 | + <input type="hidden" id="templateImageUrl" name="templateImageUrl" value="<c:out value='${kakaoReturnVO.templateImageUrl}'/>"> | |
| 686 | + | |
| 687 | + | |
| 688 | + <div class="send_general friend_talk_wrap kakao_wrap"> | |
| 689 | + <div class="send_left"> | |
| 690 | + <!-- <p class="tType1_title">알림톡 템플릿 수정</p> --> | |
| 691 | + <table class="tType1"> | |
| 692 | + <colgroup> | |
| 693 | + <col style="width: 190px;"> | |
| 694 | + <col style="width: auto;"> | |
| 695 | + </colgroup> | |
| 696 | + <tbody> | |
| 697 | + <tr> | |
| 698 | + <th>채널ID</th> | |
| 699 | + <td> | |
| 700 | + <select class="select_gray_type" name="selectAgentCode" id="selectAgentCode" onchange="javascript:fnAgentCodeChg();"> | |
| 701 | + <option value="">채널ID 선택</option> | |
| 702 | + <c:forEach var="kakaoProfileInfo" items="${kakaoProfileList}" varStatus="status"> | |
| 703 | + <option value="${kakaoProfileInfo.senderKey}" <c:if test="${senderKey eq kakaoProfileInfo.senderKey}">selected</c:if> ><c:out value='${kakaoProfileInfo.yellowId}'/></option> | |
| 704 | + </c:forEach> | |
| 705 | + </select> | |
| 706 | + </td> | |
| 707 | + </tr> | |
| 708 | + <tr> | |
| 709 | + <th>템플릿명</th> | |
| 710 | + <td> | |
| 711 | + <input type="text" class="template_name" id="inputTemplateName" name="inputTemplateName" value="<c:out value='${resultTemplateVO.templateName}'/>" placeholder="템플릿 명을 입력해주세요" maxlength="100"> | |
| 712 | + <p class="template_name_cf">최대 50자, 템플릿 관리용</p> | |
| 713 | + </td> | |
| 714 | + </tr> | |
| 715 | + <tr> | |
| 716 | + <th>이미지 첨부</th> | |
| 717 | + <td class="img_file_add_td"> | |
| 718 | + <div class="img_sort_wrap"> | |
| 719 | + <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> | |
| 720 | + <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> | |
| 721 | + <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> | |
| 722 | + <div class="img_add_info_wrap basic_img_add_wrap"> | |
| 723 | + <p class="info_title_text"><span class="c_e40000">*</span> 이미지 첨부 안내</p> | |
| 724 | + <ul class="info_text"> | |
| 725 | + <li>- 권장사이즈 : 720px * 720px</li> | |
| 726 | + <li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li> | |
| 727 | + <li>- 파일형식 : jpg, png (최대 500kb)</li> | |
| 728 | + <li>- 이미지 첨부시 메시지 내용은 최대 400자까지 입력할 수 있습니다.</li> | |
| 729 | + </ul> | |
| 730 | + </div> | |
| 731 | + <div class="img_add_info_wrap wide_img_add_wrap"> | |
| 732 | + <p class="info_title_text"><span class="c_e40000">*</span> 와이드 이미지 첨부 안내</p> | |
| 733 | + <ul class="info_text"> | |
| 734 | + <li>- 권장사이즈 : 800px * 600px</li> | |
| 735 | + <!-- <li>- 제한사이즈 : 가로 500px 미만, 가로:세로 비율이 2:1 미만 또는 3:4 초과시 업로드 불가</li> --> | |
| 736 | + <li>- 파일형식 : jpg, png (최대 2mb)</li> | |
| 737 | + <li>- 와이드 이미지 첨부시 메시지 내용은 최대 76자, 버튼 1개까지 입력할 수 있습니다.</li> | |
| 738 | + </ul> | |
| 739 | + </div> | |
| 740 | + </div> | |
| 741 | + <div class="img_file_add_wrap"> | |
| 742 | + <ul class="img_file_info_wrap"> | |
| 743 | + <li> | |
| 744 | + <p>이미지 제목</p> | |
| 745 | + <input type="text" id="imgTitle" name="imgTitle" value="<c:out value='${resultTemplateVO.imgTitle}'/>" class="img_url" maxLength="50"> | |
| 746 | + </li> | |
| 747 | + <li> | |
| 748 | + <p>이미지 클릭시 이동할 URL</p> | |
| 749 | + <input type="text" id="imgLink" name="imgLink" value="<c:out value='${resultTemplateVO.imgLink}'/>" placeholder="http://" class="img_url" maxLength="1000"> | |
| 750 | + </li> | |
| 751 | + <li> | |
| 752 | + <p class="file_name" id="imgNm" name="imgNm">첨부파일 이미지</p> | |
| 753 | + <input type="file" id="imgFile" accept=".jpg, .jpeg, .png" onchange="imgResizeInfo(event); return false;" style="display:none"/> | |
| 754 | + <!-- <button type="button" class="btn_del btnImgDel" onclick="buttonTypeDel(this);"> | |
| 755 | + <img src="/publish/images/btn_delete.png" id="imgDel" alt="이미지 삭제" onclick="fnImageDel();"> | |
| 756 | + </button> --> | |
| 757 | + </li> | |
| 758 | + </ul> | |
| 759 | + <!-- <button type="button" class="btnType btnType8 btn_img_upload" title="이미지 불러오기" onclick="javascript:upImgClick(); return false;">이미지 불러오기</button> --> | |
| 760 | + </div> | |
| 761 | + </td> | |
| 762 | + </tr> | |
| 763 | + <tr> | |
| 764 | + <th>광고포함 여부</th> | |
| 765 | + <td> | |
| 766 | + <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> | |
| 767 | + <%-- <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> --%> | |
| 768 | + </td> | |
| 769 | + </tr> | |
| 770 | + <tr> | |
| 771 | + <th>내용</th> | |
| 772 | + <td class="kakao_template_text"> | |
| 773 | + <div class="put_left short"> | |
| 774 | + <!-- <input type="text" class="template_name"> --> | |
| 775 | + <div class="put_text_wrap"> | |
| 776 | + <div class="ad_txt"> | |
| 777 | + <p><span id="adFlagFront">(광고)</span> <span id="yellowIdCon" >채널ID</span></p> | |
| 778 | + </div> | |
| 779 | + <label for="inputTemplateContent" class="label"></label> | |
| 780 | + <textarea id="inputTemplateContent" name="inputTemplateContent" class="put_text" placeholder="내용을 입력해주세요."><c:out value="${resultTemplateVO.templateContent}"/></textarea> | |
| 781 | + <div class="text_length"> | |
| 782 | + <div> | |
| 783 | + <p class="adFlagAfter">수신거부 : 홈 > 채널차단</p> | |
| 784 | + </div> | |
| 785 | + <div> | |
| 786 | + <p><span class="fwMd nowChar">0 /</span><span class="c_002c9a fwMd totChar">1000</span>자</p> | |
| 787 | + </div> | |
| 788 | + </div> | |
| 789 | + </div> | |
| 790 | + </div> | |
| 791 | + <div class="put_right"> | |
| 792 | + <div class="btn_popup_wrap"> | |
| 793 | + <button type="button" class="btnType btnType7" | |
| 794 | + onclick="miniPopup(this)">특수문자</button> | |
| 795 | + <div class="send_miniPop spc_character"> | |
| 796 | + <div class="tab_character"> | |
| 797 | + <a href="#none" class="on">특수문자</a> | |
| 798 | + <a href="#none">웃음</a> | |
| 799 | + <a href="#none">슬픔</a> | |
| 800 | + <a href="#none">분노</a> | |
| 801 | + <a href="#none">사랑</a> | |
| 802 | + <a href="#none">그외</a> | |
| 803 | + </div> | |
| 804 | + <!-- 특수문자 --> | |
| 805 | + <div class="cnt_character on"> | |
| 806 | + <div class="box_character"> | |
| 807 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 808 | + <c:if test="${symbolList.symbolType == 'D'}"> | |
| 809 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}"><c:out value="${symbolList.symbol}"/></a> | |
| 810 | + </c:if> | |
| 811 | + </c:forEach> | |
| 812 | + </div> | |
| 813 | + </div> | |
| 814 | + <!-- //특수문자 --> | |
| 815 | + | |
| 816 | + <!-- 웃음 --> | |
| 817 | + <div class="cnt_character emt_character"> | |
| 818 | + <div class="box_character"> | |
| 819 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 820 | + <c:if test="${symbolList.symbolType == 'S'}"> | |
| 821 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a> | |
| 822 | + </c:if> | |
| 823 | + </c:forEach> | |
| 824 | + </div> | |
| 825 | + </div> | |
| 826 | + <!-- //웃음 --> | |
| 827 | + | |
| 828 | + <!-- 슬픔 --> | |
| 829 | + <div class="cnt_character emt_character"> | |
| 830 | + <div class="box_character"> | |
| 831 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 832 | + <c:if test="${symbolList.symbolType == 'C'}"> | |
| 833 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a> | |
| 834 | + </c:if> | |
| 835 | + </c:forEach> | |
| 836 | + </div> | |
| 837 | + </div> | |
| 838 | + <!-- //슬픔 --> | |
| 839 | + | |
| 840 | + <!-- 분노 --> | |
| 841 | + <div class="cnt_character emt_character"> | |
| 842 | + <div class="box_character"> | |
| 843 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 844 | + <c:if test="${symbolList.symbolType == 'A'}"> | |
| 845 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a> | |
| 846 | + </c:if> | |
| 847 | + </c:forEach> | |
| 848 | + </div> | |
| 849 | + </div> | |
| 850 | + <!-- //분노 --> | |
| 851 | + | |
| 852 | + <!-- 사랑 --> | |
| 853 | + <div class="cnt_character emt_character"> | |
| 854 | + <div class="box_character"> | |
| 855 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 856 | + <c:if test="${symbolList.symbolType == 'L'}"> | |
| 857 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a> | |
| 858 | + </c:if> | |
| 859 | + </c:forEach> | |
| 860 | + </div> | |
| 861 | + </div> | |
| 862 | + <!-- //사랑 --> | |
| 863 | + | |
| 864 | + <!-- 그외 --> | |
| 865 | + <div class="cnt_character emt_character emt_etc "> | |
| 866 | + <div class="box_character"> | |
| 867 | + <c:forEach var="symbolList" items="${symbolList}" varStatus="status"> | |
| 868 | + <c:if test="${symbolList.symbolType == 'E'}"> | |
| 869 | + <a href="javascript:void(0)" class="symbolButton" value="${symbolList.symbol}">${symbolList.symbol}</a> | |
| 870 | + </c:if> | |
| 871 | + </c:forEach> | |
| 872 | + </div> | |
| 873 | + </div> | |
| 874 | + <!-- //그외 --> | |
| 875 | + <button type="button" class="btn_close" | |
| 876 | + onclick="miniPopup(this)">닫기</button> | |
| 877 | + </div> | |
| 878 | + </div> | |
| 879 | + <div class="btn_popup_wrap convers_wrap"> | |
| 880 | + <button type="button" class="btnType btnType7" | |
| 881 | + onclick="miniPopup(this)">특정문구 일괄변환<i | |
| 882 | + class="qmMark"></i></button> | |
| 883 | + <div class="send_miniPop convers"> | |
| 884 | + <div> | |
| 885 | + <div class="convers_top"> | |
| 886 | + <span>특정문구 일괄변환이란?</span> | |
| 887 | + <p>주소록, 엑셀에 입력된 내용을 이용해 수신자마다 다른 내용의 메시지를 발송하는 기능</p> | |
| 888 | + </div> | |
| 889 | + <div class="convers_middle"> | |
| 890 | + <a href="javascript:void(0)" class="changeWord" value="\#{이름}"><c:out value="\#{이름}"/></a> | |
| 891 | + </div> | |
| 892 | + <div class="convers_bottom"> | |
| 893 | + <a href="javascript:void(0)" class="changeWord" value="\#{1}"><c:out value="\#{1}"/></a> | |
| 894 | + <a href="javascript:void(0)" class="changeWord" value="\#{2}"><c:out value="\#{2}"/></a> | |
| 895 | + <a href="javascript:void(0)" class="changeWord" value="\#{3}"><c:out value="\#{3}"/></a> | |
| 896 | + <a href="javascript:void(0)" class="changeWord" value="\#{4}"><c:out value="\#{4}"/></a> | |
| 897 | + </div> | |
| 898 | + </div> | |
| 899 | + <button type="button" class="btn_close" | |
| 900 | + onclick="miniPopup(this)">닫기</button> | |
| 901 | + </div> | |
| 902 | + </div> | |
| 903 | + <div class="btn_popup_wrap spc_wrap"> | |
| 904 | + <button type="button" class="btnType btnType7" | |
| 905 | + onclick="miniPopup(this)">이모티콘</button> | |
| 906 | + <div class="send_miniPop spc_character kakao_emoticon"> | |
| 907 | + <%@include file="/WEB-INF/jsp/web/kakao/include/KakaoSentImoticonInfo.jsp" %> | |
| 908 | + <button type="button" class="btn_close" onclick="miniPopup(this)">닫기</button> | |
| 909 | + </div> | |
| 910 | + </div> | |
| 911 | + <div class="btn_popup_wrap template_call_wrap"> | |
| 912 | + <!-- <button type="button" class="btnType btnType8">템플릿 불러오기</button> --> | |
| 913 | + </div> | |
| 914 | + <div class="send_btnWrap"> | |
| 915 | + <!-- <button type="button" class="btnType btn_text_save">내용 저장하기</button> --> | |
| 916 | + <!-- <button type="button" class="btnType btnType9" onclick="javascript:fnContentsReset();">초기화</button> --> | |
| 917 | + </div> | |
| 918 | + </div> | |
| 919 | + </td> | |
| 920 | + </tr> | |
| 921 | + <tr> | |
| 922 | + <th>버튼</th> | |
| 923 | + <td class="template_button"> | |
| 924 | + <%-- <select name="" id="" class="select_gray_type template_button_select"> | |
| 925 | + <option value="button_type_0">버튼타입 선택</option> | |
| 926 | + <option value="button_type_1">배송조회</option> | |
| 927 | + <option value="button_type_2">웹링크</option> | |
| 928 | + <option value="button_type_3">앱링크</option> | |
| 929 | + <option value="button_type_5">메시지전달</option> | |
| 930 | + <option value="button_type_4">봇키워드</option> | |
| 931 | + <option value="button_type_6">상담톡전환</option> | |
| 932 | + <option value="button_type_7">챗봇전환</option> | |
| 933 | + </select> | |
| 934 | + <button type="button" class="btnType btnType6" onclick="friendTemplateButtonAdd();">추가</button> --%> | |
| 935 | + <div class="button_add_wrap"> | |
| 936 | + <c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status"> | |
| 937 | + <c:if test="${buttonList.linkType eq 'DS'}"> | |
| 938 | + <!-- 배송조회 버튼 --> | |
| 939 | + <dl class="button_type_wrap type1"> | |
| 940 | + <dt>배송조회</dt> | |
| 941 | + <dd class="button_type_input"> | |
| 942 | + <input type="hidden" id="buttonLikeTypeDeliv" name="buttonVOList[${status.index}].linkType" value="DS"/> | |
| 943 | + <input type="text" id="btnNmDeliv" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 944 | + <p class="cf_text">*이용가능 택배사 : KG로지스, 우체국택배,일양로지스, GTX로지스, FedEx, 경동택배, 합동택배, 롯데택배</p> | |
| 945 | + </dd> | |
| 946 | + <dd> | |
| 947 | + <button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button> | |
| 948 | + </dd> | |
| 949 | + </dl> | |
| 950 | + </c:if> | |
| 951 | + | |
| 952 | + <c:if test="${buttonList.linkType eq 'WL'}"> | |
| 953 | + <!-- 웹링크 버튼 --> | |
| 954 | + <dl class="button_type_wrap type2"> | |
| 955 | + <dt>웹링크</dt> | |
| 956 | + <dd class="button_type_input"> | |
| 957 | + <ul> | |
| 958 | + <li> | |
| 959 | + <input type="hidden" id="buttonLikeTypeWeb" name="buttonVOList[${status.index}].linkType" value="WL"/> | |
| 960 | + <input type="text" id="btnNmWeb" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 961 | + </li> | |
| 962 | + <li> | |
| 963 | + <input type="text" id="buttonLinkMo" name="buttonVOList[${status.index}].linkMo" value="<c:out value='${buttonList.linkMo}'/>" placeholder="모바일 링크 입력"> | |
| 964 | + </li> | |
| 965 | + <li> | |
| 966 | + <input type="text" id="buttonLinkPc" name="buttonVOList[${status.index}].linkPc" value="<c:out value='${buttonList.linkPc}'/>" placeholder="PC 링크 입력"> | |
| 967 | + </li> | |
| 968 | + </ul> | |
| 969 | + </dd> | |
| 970 | + <dd> | |
| 971 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button> --> | |
| 972 | + </dd> | |
| 973 | + </dl> | |
| 974 | + </c:if> | |
| 975 | + | |
| 976 | + <c:if test="${buttonList.linkType eq 'AL'}"> | |
| 977 | + <!-- 앱링크 버튼 --> | |
| 978 | + <dl class="button_type_wrap type3"> | |
| 979 | + <dt>앱링크</dt> | |
| 980 | + <dd class="button_type_input"> | |
| 981 | + <ul> | |
| 982 | + <li> | |
| 983 | + <input type="hidden" id="buttonLikeTypeApp" name="buttonVOList[${status.index}].linkType" value="AL"/> | |
| 984 | + <input type="text" id="btnNmApp" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 985 | + </li> | |
| 986 | + <li> | |
| 987 | + <input type="text" id="buttonLinkAnd" name="buttonVOList[${status.index}].linkAnd" value="<c:out value='${buttonList.linkAnd}'/>" placeholder="Android 링크 입력"> | |
| 988 | + </li> | |
| 989 | + <li> | |
| 990 | + <input type="text" id="buttonLinkIos" name="buttonVOList[${status.index}].linkIos" value="<c:out value='${buttonList.linkIos}'/>" placeholder="IOS 링크 입력"> | |
| 991 | + </li> | |
| 992 | + </ul> | |
| 993 | + </dd> | |
| 994 | + <dd> | |
| 995 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"><img src="/publish/images/btn_delete.png" alt=""></button> --> | |
| 996 | + </dd> | |
| 997 | + </dl> | |
| 998 | + </c:if> | |
| 999 | + | |
| 1000 | + <c:if test="${buttonList.linkType eq 'BK'}"> | |
| 1001 | + <!-- 봇키워드 --> | |
| 1002 | + <dl class="button_type_wrap type4"> | |
| 1003 | + <dt>봇키워드</dt> | |
| 1004 | + <dd class="button_type_input"> | |
| 1005 | + <input type="hidden" id="buttonLikeTypeBot" name="buttonVOList[${status.index}].linkType" value="BK"/> | |
| 1006 | + <input type="text" id="btnNmBot" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 1007 | + </dd> | |
| 1008 | + <dd> | |
| 1009 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"> | |
| 1010 | + <img src="/publish/images/btn_delete.png" alt=""> | |
| 1011 | + </button> --> | |
| 1012 | + </dd> | |
| 1013 | + </dl> | |
| 1014 | + </c:if> | |
| 1015 | + | |
| 1016 | + <c:if test="${buttonList.linkType eq 'MD'}"> | |
| 1017 | + <!-- 메시지 전달 --> | |
| 1018 | + <dl class="button_type_wrap type5"> | |
| 1019 | + <dt>메시지전달</dt> | |
| 1020 | + <dd class="button_type_input"> | |
| 1021 | + <input type="hidden" id="buttonLikeTypeMsg" name="buttonVOList[${status.index}].linkType" value="MD" /> | |
| 1022 | + <input type="text" id="btnNmMsg" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 1023 | + </dd> | |
| 1024 | + <dd> | |
| 1025 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"> | |
| 1026 | + <img src="/publish/images/btn_delete.png" alt=""> | |
| 1027 | + </button> --> | |
| 1028 | + </dd> | |
| 1029 | + </dl> | |
| 1030 | + </c:if> | |
| 1031 | + | |
| 1032 | + <c:if test="${buttonList.linkType eq 'BC'}"> | |
| 1033 | + <!-- 상담톡 전환 --> | |
| 1034 | + <dl class="button_type_wrap type6"> | |
| 1035 | + <dt>상담톡전환</dt> | |
| 1036 | + <dd class="button_type_input"> | |
| 1037 | + <input type="hidden" id="buttonLikeTypeCons" name="buttonVOList[${status.index}].linkType" value="BC" /> | |
| 1038 | + <input type="text" id="btnNmCons" name="buttonVOList[${status.index}].name" value="<c:out value='${buttonList.name}'/>" placeholder="버튼명 입력(최대 14자)"> | |
| 1039 | + </dd> | |
| 1040 | + <dd> | |
| 1041 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"> | |
| 1042 | + <img src="/publish/images/btn_delete.png" alt=""> | |
| 1043 | + </button> --> | |
| 1044 | + </dd> | |
| 1045 | + </dl> | |
| 1046 | + </c:if> | |
| 1047 | + | |
| 1048 | + <c:if test="${buttonList.linkType eq 'BT'}"> | |
| 1049 | + <!-- 챗봇전환 --> | |
| 1050 | + <dl class="button_type_wrap type7"> | |
| 1051 | + <dt>챗봇전환</dt> | |
| 1052 | + <dd class="button_type_input"> | |
| 1053 | + <input type="hidden" id="buttonLikeTypeBotChg" name="buttonVOList[${status.index}].linkType" value="BT" /> | |
| 1054 | + <input type="text" id="btnNmBotChg" name="buttonVOList[${status.index}].name" value="" placeholder="버튼명 입력(최대 14자)"> | |
| 1055 | + </dd> | |
| 1056 | + <dd> | |
| 1057 | + <!-- <button type="button" class="btn_del" onclick="buttonTypeDel(this);"> | |
| 1058 | + <img src="/publish/images/btn_delete.png" alt=""> | |
| 1059 | + </button> --> | |
| 1060 | + </dd> | |
| 1061 | + </dl> | |
| 1062 | + </c:if> | |
| 1063 | + </c:forEach> | |
| 1064 | + </div> | |
| 1065 | + </td> | |
| 1066 | + </tr> | |
| 1067 | + </tbody> | |
| 1068 | + </table> | |
| 1069 | + </div> | |
| 1070 | + <div class="send_right"> | |
| 1071 | + <div class="phone"> | |
| 1072 | + <div class="phoneIn"> | |
| 1073 | + <p class="prev_p"><img src="/publish/images/content/kakao_prev_icon.png" alt=""> | |
| 1074 | + <span id="spnYellowid">@채널ID</span> | |
| 1075 | + </p> | |
| 1076 | + <!-- 텍스트 미리보기 --> | |
| 1077 | + <div class="text_preview"> | |
| 1078 | + <p class="friend_talk_title"><span class="adFlag">(광고)</span> <span id="spnYellowidAt">채널ID</span></p> | |
| 1079 | + <div class="allimtalk_content"> | |
| 1080 | + <div class="kakao_image" style="display:none;"> | |
| 1081 | + <img src="" id="kakaoImg" alt=""> | |
| 1082 | + </div> | |
| 1083 | + <p class="template_text">내용 미리보기</p> | |
| 1084 | + <div class="btnViewArea"> | |
| 1085 | + <c:forEach var="buttonList" items="${resultTemplateVO.buttonVOList}" varStatus="status"> | |
| 1086 | + <button type="button" class="btn_kakao_type" style="display:block;"><c:out value="${buttonList.name}"/></button> | |
| 1087 | + </c:forEach> | |
| 1088 | + </div> | |
| 1089 | + </div> | |
| 1090 | + <p class="kakao_block_text">수신거부 : 홈 > 채널차단</p> | |
| 1091 | + | |
| 1092 | + </div> | |
| 1093 | + <!-- //텍스트 미리보기 --> | |
| 1094 | + </div> | |
| 1095 | + <p class="addText">※ 단말기 설정에 따라 다르게 보일 수 있습니다<p> | |
| 1096 | + <div class="phone_bottom"> | |
| 1097 | + <div class="send_btn"> | |
| 1098 | + <button type="button" class="btnType btnType11" onclick="self.close();">닫기</button> | |
| 1099 | + <!-- <button type="button" class="btnType btnType10"onclick="location.href='/web/mjon/kakao/template/selectKakaoFriendsTemplateList.do';">취소</button> --> | |
| 1100 | + </div> | |
| 1101 | + </div> | |
| 1102 | + </div> | |
| 1103 | + </div> | |
| 1104 | + </div> | |
| 1105 | + </form> | |
| 1106 | + </div> | |
| 1107 | + </div> | |
| 1108 | +</div> | |
| 1109 | +<!--// send top --> | |
| 1110 | +</div> | |
| 1111 | +</body> | |
| 1112 | +</html>(No newline at end of file) |
+++ src/main/webapp/WEB-INF/jsp/uss/ion/kakaoft/popup/KakaoFTChannelIDTemplateListPop.jsp
... | ... | @@ -0,0 +1,190 @@ |
| 1 | +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
| 3 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 4 | +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> | |
| 5 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 6 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> | |
| 7 | +<% pageContext.setAttribute("newLineChar", "\r\n"); %> | |
| 8 | +<% pageContext.setAttribute("newLineChar2", "\n"); %> | |
| 9 | + | |
| 10 | +<!DOCTYPE html> | |
| 11 | +<html lang="ko"> | |
| 12 | +<head> | |
| 13 | +<title>친구톡 템플릿 등록</title> | |
| 14 | +<meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
| 15 | + <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" | |
| 16 | + rel="stylesheet"> | |
| 17 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 18 | + <link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css"> | |
| 19 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 20 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 21 | + <link rel="stylesheet" href="/publish/css/content.css?date=202301160001"> | |
| 22 | + <link rel="stylesheet" href="/publish/css/mem.css"> | |
| 23 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 24 | + <link rel="stylesheet" href="/publish/css/popupLayer.css"> | |
| 25 | + | |
| 26 | + <script src="/publish/js/jquery-3.5.0.js"></script> | |
| 27 | + <script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script> | |
| 28 | + <script src="/publish/js/common.js"></script> | |
| 29 | + <script src="/publish/js/content.js?date=202211070003"></script> | |
| 30 | + <script src="/publish/js/popupLayer.js"></script> | |
| 31 | + | |
| 32 | +<script> | |
| 33 | + | |
| 34 | +function linkPage(page){ | |
| 35 | + | |
| 36 | + form = document.listForm; | |
| 37 | + | |
| 38 | + form.pageIndex.value=page; | |
| 39 | + form.action="<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateListPopupAjax.do'/>"; | |
| 40 | + form.submit(); | |
| 41 | + | |
| 42 | +} | |
| 43 | + | |
| 44 | +function fnSearch(){ | |
| 45 | + | |
| 46 | + var templateStatus = $("select[name=selectTemplateStatus]").val(); | |
| 47 | + var searchKeyword = $("input[name=inputSearchKeyword]").val(); | |
| 48 | + | |
| 49 | + if(searchKeyword != ''){ | |
| 50 | + | |
| 51 | + if(searchKeyword.length < 2 || searchKeyword.length > 50){ | |
| 52 | + | |
| 53 | + alert("검색어는 최소 2자 이상 50자 이내로 입력해야 합니다."); | |
| 54 | + return false; | |
| 55 | + | |
| 56 | + } | |
| 57 | + | |
| 58 | + } | |
| 59 | + | |
| 60 | + var form = document.listForm; | |
| 61 | + | |
| 62 | + form.searchKeyword.value = searchKeyword; | |
| 63 | + form.templateStatus.value = templateStatus; | |
| 64 | + | |
| 65 | + linkPage(1); | |
| 66 | + | |
| 67 | +} | |
| 68 | + | |
| 69 | +function fnTemplateDetail(friendId){ | |
| 70 | + | |
| 71 | + var form = document.templateForm; | |
| 72 | + | |
| 73 | + form.templateCode.value = friendId; | |
| 74 | + | |
| 75 | + 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'); | |
| 76 | + form.action = "<c:url value='/uss/ion/kakaoft/KakaoFTChannelIDTemplateDetailPopupAjax.do'/>"; | |
| 77 | + form.target = "popupTemplateDetail"; | |
| 78 | + form.submit(); | |
| 79 | + | |
| 80 | +} | |
| 81 | + | |
| 82 | +</script> | |
| 83 | + | |
| 84 | +</head> | |
| 85 | +<body> | |
| 86 | +<div class="loading_layer"> | |
| 87 | + <div class="loading_container"> | |
| 88 | + <div class="bar"></div> | |
| 89 | + <div class="text">Loading</div> | |
| 90 | + </div> | |
| 91 | +</div> | |
| 92 | +<div class="top_content kakaotalkset_cont current pay_tab_wrap"> | |
| 93 | + <form id="templateForm" name="templateForm" method="post"> | |
| 94 | + <input type="hidden" name="SenderKey" value="<c:out value="${kakaoVO.senderKey }"/>"> | |
| 95 | + <input type="hidden" id="templateCode" name="templateCode" value=""> | |
| 96 | + <input type="hidden" id="tmpUserId" name="userId" value="<c:out value="${kakaoVO.userId}"/>"> | |
| 97 | + </form> | |
| 98 | + <form id="listForm" name="listForm" method="post"> | |
| 99 | + <input type="hidden" name="SenderKey" value="<c:out value="${kakaoVO.senderKey }"/>"> | |
| 100 | + <input type="hidden" name="yellowId" value="<c:out value="${kakaoVO.yellowId }"/>"> | |
| 101 | + <input type="hidden" id="page" name="page" value=""> | |
| 102 | + <input type="hidden" id="pageIndex" name="pageIndex" value=""> | |
| 103 | + <input type="hidden" id="searchKeyword" name="searchKeyword" value=""> | |
| 104 | + <input type="hidden" id="templateStatus" name="templateStatus" value=""> | |
| 105 | + <input type="hidden" id="templateCode" name="templateCode" value=""> | |
| 106 | + <input type="hidden" id="listUserId" name="userId" value="<c:out value="${kakaoVO.userId}"/>"> | |
| 107 | + </form> | |
| 108 | + <div class="info_popup ad_layer template_choice_popup adpopup01" style="width:930px; margin-left:45px;"> | |
| 109 | + <div class="top_content kakaotalkset_cont current pay_tab_wrap" style="width:930px;"> | |
| 110 | + <div class="popup_heading"> | |
| 111 | + <p>친구톡 템플릿 선택</p> | |
| 112 | + </div> | |
| 113 | + <div class="layer_in"> | |
| 114 | + <div class="popup_search_wrap type2 grayborder grayfill"> | |
| 115 | + <input type="text" name="inputSearchKeyword" id="inputSearchKeyword" placeholder="템플릿명을 입력해주세요." class="inputType template_name" value="<c:out value='${kakaoVO.keyword}'/>"> | |
| 116 | + <button type="button" class="popup_button_type bluefill" onclick="fnSearch(); return false;">검색</button> | |
| 117 | + </div> | |
| 118 | + <div class="template_list"> | |
| 119 | + <ul class="kakao_template_list thumbnail_list"> | |
| 120 | + <c:choose> | |
| 121 | + <c:when test="${not empty kakaoTemplateInfoList}"> | |
| 122 | + <c:forEach var="templatInfoList" items="${kakaoTemplateInfoList}" varStatus="status"> | |
| 123 | + <li> | |
| 124 | + <div class="kakao_template_wrap"> | |
| 125 | + <div class="template_cont"> | |
| 126 | + <div class="title"> | |
| 127 | + <div class="check"> | |
| 128 | + </div> | |
| 129 | + <p title="친구톡 템플릿 내용" onclick="javascript:fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;" style="cursor:pointer;"> | |
| 130 | + <c:if test="${templatInfoList.adFlag eq 'Y'}">(광고)</c:if> | |
| 131 | + <c:out value="${fn:replace(templatInfoList.yellowId, '@', '')}"/> | |
| 132 | + </p> | |
| 133 | + </div> | |
| 134 | + <div class="allimtalk_content" onclick="javascript:fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;" style="cursor:pointer;"> | |
| 135 | + <!-- 템플릿에 이미지가 있는경우 이미지 표시 --> | |
| 136 | + <c:if test="${not empty templatInfoList.imageType}"> | |
| 137 | + <div class="img_box"> | |
| 138 | + <img src="<c:url value='${templatInfoList.templateImageUrl}'/>" alt=""> | |
| 139 | + </div> | |
| 140 | + </c:if> | |
| 141 | + | |
| 142 | + <p class="template_text"><c:out value="${fn:replace(fn:replace(templatInfoList.templateContent, newLineChar, '<br/>'), newLineChar2, '<br/>')}" escapeXml="false"/></p> | |
| 143 | + <!-- 채널 추가형을 선택한 경우 자동으로 버튼이 하나 추가됨, 버튼을 추가한 경우 버튼 정보 표시 --> | |
| 144 | + <c:forEach var="templatInfoButtonList" items="${templatInfoList.buttonVOList}" varStatus="status"> | |
| 145 | + <button type="button" class="btn_kakao_type"><c:out value="${templatInfoButtonList.name}"/></button> | |
| 146 | + </c:forEach> | |
| 147 | + </div> | |
| 148 | + </div> | |
| 149 | + <c:if test="${templatInfoList.adFlag eq 'Y'}"> | |
| 150 | + <p class="cf_text">수신거부 | 홈 > 채널차단</p> | |
| 151 | + </c:if> | |
| 152 | + </div> | |
| 153 | + <div class="kakao_template_info"> | |
| 154 | + <dl> | |
| 155 | + <dt>템플릿명</dt> | |
| 156 | + <dd> | |
| 157 | + <c:out value="${templatInfoList.templateName}"/> | |
| 158 | + </dd> | |
| 159 | + </dl> | |
| 160 | + <dl> | |
| 161 | + <dt>등록일</dt> | |
| 162 | + <dd><c:out value="${templatInfoList.frstRegistPnttm}"/> | |
| 163 | + <%-- <div class="btn_wrap"> | |
| 164 | + <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> | |
| 165 | + <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> | |
| 166 | + </div> --%> | |
| 167 | + </dd> | |
| 168 | + </dl> | |
| 169 | + </div> | |
| 170 | + </li> | |
| 171 | + </c:forEach> | |
| 172 | + </c:when> | |
| 173 | + <c:otherwise> | |
| 174 | + <li class="template_none">등록된 템플릿이 없습니다.</li> | |
| 175 | + </c:otherwise> | |
| 176 | + </c:choose> | |
| 177 | + </ul> | |
| 178 | + </div> | |
| 179 | + <!-- pagination --> | |
| 180 | + <c:if test="${not empty kakaoTemplateInfoList}"> | |
| 181 | + <ul class="pagination"> | |
| 182 | + <ui:pagination paginationInfo = "${paginationInfo}" type="imageWeb" jsFunction="linkPage" /> | |
| 183 | + </ul><!-- //pageWrap --> | |
| 184 | + </c:if> | |
| 185 | + </div> | |
| 186 | + </div> | |
| 187 | + </div> | |
| 188 | + </div> | |
| 189 | +</body> | |
| 190 | +</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
... | ... | @@ -41,7 +41,7 @@ |
| 41 | 41 |
|
| 42 | 42 |
//화면 로딩바 보여주기 |
| 43 | 43 |
$('.loading_layer').addClass('active');
|
| 44 |
- $("#templateList").load("/web/mjon/kakao/template/selectKakaoFriendsTemplateListAjax.do", {"senderKey":selectAgentCode, "categoryCode" : selectTemplateSecondCatagory, "templateStatus" : selectTemplateStatus, "searchKeyword" : keyword, "page" : page, "yellowId" : yellowId, "formListType" : formListType} ,function(){
|
|
| 44 |
+ $("#templateList").load("/web/mjon/kakao/template/selectKakaoFriendsTemplateListAjax.do", {"senderKey":selectAgentCode, "categoryCode" : selectTemplateSecondCatagory, "templateStatus" : selectTemplateStatus, "searchKeyword" : keyword, "pageIndex" : page, "yellowId" : yellowId, "formListType" : formListType} ,function(){
|
|
| 45 | 45 |
|
| 46 | 46 |
//썸네일 박스 스크롤 적용해주기 |
| 47 | 47 |
$(".kakao_template_wrap").mCustomScrollbar({
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?