name 2023-09-05
베스트문자샘플 (메인)화면 기능 추가
@baa9ee61430218e5ae328ea41d1d5ae4a4437aaf
src/main/java/itn/let/lett/service/LetterService.java
--- src/main/java/itn/let/lett/service/LetterService.java
+++ src/main/java/itn/let/lett/service/LetterService.java
@@ -175,4 +175,18 @@
 	public List<LetterVO> selectMainTagWebList(LetterVO letterVO)  throws Exception ;	
 	// 첫번째 키워드 조회
 	public LetterVO selectFrsKeyword(LetterVO letterVO) throws Exception ;
+	
+	
+	
+	// 메인베스트 태그 관리
+	public List<LetterVO> selectBastMsgTagList(LetterVO letterVO)  throws Exception ;
+	
+	// 메인베스트 태그 상세
+	public LetterVO selectBastMsgTagInfo(LetterVO letterVO) throws Exception ;
+
+	// 메인베스트 태그 등록
+	public void insertBastMsgTag(LetterVO letterVO)  throws Exception ;
+	
+	// 메인베스트 태그 수정
+	public void updateBastMsgTag(LetterVO letterVO)  throws Exception ;	
 }
src/main/java/itn/let/lett/service/LetterVO.java
--- src/main/java/itn/let/lett/service/LetterVO.java
+++ src/main/java/itn/let/lett/service/LetterVO.java
@@ -46,6 +46,7 @@
 	private int chkIdsSize;
 
 	// 메인태그관리
+	private String mainSearchTagNo;
 	private String mainTagNo;
 	private String tagNm;
 	private String tagType;
@@ -380,7 +381,10 @@
 	public void setLetterAlt(String letterAlt) {
 		this.letterAlt = letterAlt;
 	}
-	
-	
-	
+	public String getMainSearchTagNo() {
+		return mainSearchTagNo;
+	}
+	public void setMainSearchTagNo(String mainSearchTagNo) {
+		this.mainSearchTagNo = mainSearchTagNo;
+	}
 }
src/main/java/itn/let/lett/service/impl/LetterDAO.java
--- src/main/java/itn/let/lett/service/impl/LetterDAO.java
+++ src/main/java/itn/let/lett/service/impl/LetterDAO.java
@@ -324,4 +324,25 @@
 		return (LetterVO) select("LetterDAO.selectFrsKeyword", letterVO);
 	}	
 	
+	
+	// 메인 베스트 태그 관리
+	@SuppressWarnings("unchecked")
+	public List<LetterVO> selectBastMsgTagList(LetterVO letterVO) throws Exception {
+		return (List<LetterVO>) list("LetterDAO.selectBastMsgTagList", letterVO);
+	}
+
+	// 메인 베스트 태그 상세
+	public LetterVO selectBastMsgTagInfo(LetterVO letterVO) throws Exception {
+		return (LetterVO) select("LetterDAO.selectBastMsgTagInfo", letterVO);
+	}
+
+	// 메인 베스트 태그 등록
+	public void insertBastMsgTag(LetterVO letterVO) throws Exception {
+		insert("LetterDAO.insertBastMsgTag", letterVO);
+	}
+
+	// 메인 베스트 태그 수정
+	public void updateBastMsgTag(LetterVO letterVO) throws Exception {
+		update("LetterDAO.updateBastMsgTag", letterVO);
+	}
 }
src/main/java/itn/let/lett/service/impl/LetterServiceImpl.java
--- src/main/java/itn/let/lett/service/impl/LetterServiceImpl.java
+++ src/main/java/itn/let/lett/service/impl/LetterServiceImpl.java
@@ -404,5 +404,25 @@
 	@Override
 	public LetterVO selectFrsKeyword(LetterVO letterVO) throws Exception {
 		return letterDAO.selectFrsKeyword(letterVO);
-	}	
+	}
+
+	@Override
+	public List<LetterVO> selectBastMsgTagList(LetterVO letterVO) throws Exception {
+		return letterDAO.selectBastMsgTagList(letterVO);
+	}
+
+	@Override
+	public LetterVO selectBastMsgTagInfo(LetterVO letterVO) throws Exception {
+		return letterDAO.selectBastMsgTagInfo(letterVO);
+	}
+
+	@Override
+	public void insertBastMsgTag(LetterVO letterVO) throws Exception {
+		letterDAO.insertBastMsgTag(letterVO);
+	}
+
+	@Override
+	public void updateBastMsgTag(LetterVO letterVO) throws Exception {
+		letterDAO.updateBastMsgTag(letterVO);
+	}
 }
src/main/java/itn/let/lett/web/LetterController.java
--- src/main/java/itn/let/lett/web/LetterController.java
+++ src/main/java/itn/let/lett/web/LetterController.java
@@ -2436,7 +2436,7 @@
         model.addAttribute("paginationInfo", paginationInfo);
         
         return "letter/messages/MainTagList";
-    }    
+    }
     
     /**
      * 메인태그 등록화면
@@ -2528,7 +2528,118 @@
 		modelAndView.addObject("msg", msg);
 		
 		return modelAndView;
-	}	    
+	}
+	
+	
+	
+	/*-------------------------------------------*/
+	
+	
+	/**
+	  * @Method Name	: selectBastMsgTagList
+	  * @작성일 			: 2023. 9. 5.
+	  * @작성자			: WYH
+	  * @변경이력			: 
+	  * @Method 설명 		: 배스트 문자샘플 매인화면
+	  */
+	@RequestMapping(value="/letter/messages/selectBastMsgTagList.do")
+	public String selectBastMsgTagList(@ModelAttribute("searchVO") LetterVO searchVO, 
+		ModelMap model) throws Exception {
+		
+		if(searchVO.getPageUnit() != 10) {
+			searchVO.setPageUnit(searchVO.getPageUnit());
+		}
+		
+		/** pageing */
+		PaginationInfo paginationInfo = new PaginationInfo();
+		paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
+		paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
+		paginationInfo.setPageSize(searchVO.getPageSize());
+		
+		if("".equals(searchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
+		searchVO.setSearchSortCnd("mainSearchTagNo");
+		searchVO.setSearchSortOrd("desc");
+		}
+		
+		searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
+		searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
+		searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
+		List<LetterVO> mainTagList = letterService.selectBastMsgTagList(searchVO);
+		
+		model.addAttribute("resultList", mainTagList);
+		paginationInfo.setTotalRecordCount(mainTagList.size() > 0 ? ((LetterVO)mainTagList.get(0)).getTotCnt() : 0);
+		model.addAttribute("paginationInfo", paginationInfo);
+		
+		return "letter/messages/BastMsgTagList";
+	}
+	
+	/**
+	  * @Method Name	: insertBastMsgTagView
+	  * @작성일 			: 2023. 9. 5.
+	  * @작성자			: WYH
+	  * @변경이력			: 
+	  * @Method 설명 		: 베스트 문자샘플 등록화면
+	  */
+	@RequestMapping("/letter/messages/insertBastMsgTagView.do")
+	public String insertBastMsgTagView(
+		@ModelAttribute("searchVO") LetterVO searchVO
+		, Model model) throws Exception {
+	
+		LetterVO letterVO = new LetterVO(); 
+		if(null != searchVO.getMainSearchTagNo() && !"".equals(searchVO.getMainSearchTagNo())) { 
+			//수정
+			letterVO  = letterService.selectBastMsgTagInfo(searchVO); //이전 로그인한 IP 까지 조회
+		}
+		model.addAttribute("letterVO", letterVO);
+		
+		return "letter/messages/BastMsgTagInfo";
+	}
+	
+	/**
+	  * @Method Name	: saveBastMsgTagAjax
+	  * @작성일 			: 2023. 9. 5.
+	  * @작성자			: WYH
+	  * @변경이력			: 
+	  * @Method 설명 		: 베스트 문자샘플 등록 / 수정
+	  */
+	@RequestMapping(value = "/letter/messages/saveBastMsgTagAjax.do")
+	public ModelAndView saveBastMsgTagAjax(
+			@ModelAttribute("letterVO") LetterVO letterVO) throws Exception {
+
+		ModelAndView modelAndView = new ModelAndView();
+		modelAndView.setViewName("jsonView");
+
+		boolean isSuccess = true;
+		String msg = "";
+		
+		// 로그인VO에서  사용자 정보 가져오기
+		LoginVO	loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
+		String frstRegisterId = loginVO == null ? "" : loginVO.getId();
+		letterVO.setRegId(frstRegisterId);		// 최초등록자ID
+
+		
+		try{
+			if(null != letterVO.getMainSearchTagNo() && !"".equals(letterVO.getMainSearchTagNo())) { 
+				//수정
+				letterService.updateBastMsgTag(letterVO);
+			}
+			else {
+				// 등록
+				letterService.insertBastMsgTag(letterVO);
+			}
+			
+		}
+		catch(Exception e) {
+			isSuccess = false;
+			msg = e.getMessage();
+		}		
+
+		modelAndView.addObject("isSuccess", isSuccess);
+		modelAndView.addObject("msg", msg);
+		
+		return modelAndView;
+	}
+	
 	
 	@RequestMapping(value={"/letter/photo/updateMultiMjonMsgAgentStsDataAjax.do"})
 	public ModelAndView updateMultiMjonMsgAgentStsDataAjax(@ModelAttribute("mjonMsgAgentStsVO") MjonMsgAgentStsVO mjonMsgAgentStsVO) throws Exception {
src/main/resources/egovframework/sqlmap/let/letter/LetterMessages_SQL_Mysql.xml
--- src/main/resources/egovframework/sqlmap/let/letter/LetterMessages_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/letter/LetterMessages_SQL_Mysql.xml
@@ -1043,7 +1043,7 @@
 		WHERE LETTER_ID = #letterId#
 	</update>		
 		
-		
+	<!-- 베스트 문자샘플 리스트 조회 -->
 	<select id="LetterDAO.selectMainTagList" parameterClass="letterVO" resultClass="letterVO">
 		SELECT
 			COUNT(A.MAIN_TAG_NO) OVER() AS totCnt, 
@@ -1097,14 +1097,15 @@
 			DATE_FORMAT(A.REG_DT,'%Y-%m-%d %H:%i:%S')		AS	 regDt,
 			A.MOD_ID										AS	 modId,
 			DATE_FORMAT(A.MOD_DT,'%Y-%m-%d %H:%i:%S')		AS	 modDt
-		FROM	mj_main_tag	A
+		FROM	
+			MJ_MAIN_TAG	A
 		WHERE	1=1
 			AND A.MAIN_TAG_NO = #mainTagNo#
 		LIMIT 1 
 	</select>	
 
 	<insert id="LetterDAO.insertMainTag" parameterClass="letterVO">	
-		INSERT INTO mj_main_tag (
+		INSERT INTO MJ_MAIN_TAG (
 			TAG_NM,
 			TAG_TYPE,
 			TAG_Div,
@@ -1186,4 +1187,108 @@
 			ORDER BY sort asc
 		LIMIT 1 
 	</select>		
+
+	<!-- 메인 베스트 태그관리 리스트 -->
+	<select id="LetterDAO.selectBastMsgTagList" parameterClass="letterVO" resultClass="letterVO">
+		SELECT
+			COUNT(A.MAIN_SEARCH_TAG_NO) OVER()				AS	 totCnt
+			, A.MAIN_SEARCH_TAG_NO							AS	 mainSearchTagNo
+			, A.TAG_NM										AS	 tagNm
+			, A.TAG_TYPE									AS	 tagType
+			, A.TAG_Div										AS	 tagDiv
+			, A.URL											AS	 url
+			, A.SORT										AS	 sort
+			, A.USE_YN										AS	 useYn
+			, A.REG_ID										AS	 regId
+			, DATE_FORMAT(A.REG_DT,'%Y-%m-%d %H:%i')		AS	 regDt
+			, A.MOD_ID										AS	 modId
+			, DATE_FORMAT(A.MOD_DT,'%Y-%m-%d %H:%i')		AS	 modDt
+		FROM
+			mj_main_search_tag	A
+		WHERE 1=1
+		<isNotEmpty property="searchTagDiv">
+			AND A.TAG_DIV = #searchTagDiv#
+		</isNotEmpty>
+		<isNotEmpty property="searchTagType">
+			AND A.TAG_TYPE = #searchTagType#
+		</isNotEmpty>		
+		<isNotEmpty property="searchUseYn">
+			AND A.USE_YN = #searchUseYn#
+		</isNotEmpty>			
+		<isNotEmpty property="searchKeyword">
+			AND A.TAG_NM LIKE CONCAT('%',#searchKeyword#,'%')
+		</isNotEmpty>					
+		
+		ORDER BY 1=1
+		<isNotEmpty property="searchSortCnd">
+			,$searchSortCnd$
+		</isNotEmpty>
+		<isNotEmpty property="searchSortOrd">
+		 	$searchSortOrd$
+		</isNotEmpty>
+		LIMIT  #recordCountPerPage# OFFSET #firstIndex#	
+	</select>
+	
+	<select id="LetterDAO.selectBastMsgTagInfo" parameterClass="letterVO" resultClass="letterVO">
+		SELECT
+			COUNT(A.MAIN_SEARCH_TAG_NO) OVER() AS totCnt, 
+			A.MAIN_SEARCH_TAG_NO				AS	 mainTagNo,
+			A.TAG_NM					AS	 tagNm,
+			A.TAG_TYPE					AS	 tagType,
+			A.TAG_Div					AS	 tagDiv,
+			A.URL						AS	 url,
+			A.SORT						AS	 sort,
+			A.USE_YN					AS	 useYn,
+			A.REG_ID										AS	 regId,
+			DATE_FORMAT(A.REG_DT,'%Y-%m-%d %H:%i:%S')		AS	 regDt,
+			A.MOD_ID										AS	 modId,
+			DATE_FORMAT(A.MOD_DT,'%Y-%m-%d %H:%i:%S')		AS	 modDt
+		FROM	
+			MJ_MAIN_SEARCH_TAG	A
+		WHERE	1=1
+			AND A.MAIN_SEARCH_TAG_NO = #mainSearchTagNo#
+		LIMIT 1 
+	</select>
+	
+	<insert id="LetterDAO.insertBastMsgTag" parameterClass="letterVO">	
+		INSERT INTO MJ_MAIN_SEARCH_TAG (
+			TAG_NM
+			, TAG_TYPE
+			, TAG_Div
+			, URL
+			, SORT
+			, USE_YN
+			, REG_ID
+			, REG_DT
+			, MOD_ID
+			, MOD_DT
+		)
+		VALUES (
+			#tagNm#
+			, #tagType#
+			, #tagDiv#
+			, #url#
+			, #sort#
+			, #useYn#
+			, #regId#
+			, now()
+			, #regId#
+			, now()
+		)
+	</insert>
+	<update id="LetterDAO.updateBastMsgTag" parameterClass="letterVO">	
+		UPDATE
+			MJ_MAIN_SEARCH_TAG
+		SET 
+			TAG_NM		= #tagNm#
+			, TAG_TYPE	= #tagType#
+			, TAG_Div	= #tagDiv#
+			, URL		= #url#
+			, SORT		= #sort#
+			, USE_YN	= #useYn#
+			, MOD_ID	= #modId#
+			, MOD_DT	= now()
+		WHERE 1=1
+		 AND MAIN_SEARCH_TAG_NO = #mainSearchTagNo#
+	</update>
 </sqlMap>
 
src/main/webapp/WEB-INF/jsp/letter/messages/BastMsgTagInfo.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/letter/messages/BastMsgTagInfo.jsp
@@ -0,0 +1,222 @@
+<%
+ /**
+  * @Class Name : EgovHpcmRegist.jsp
+  * @Description : EgovHpcmRegist 화면
+  * @Modification Information
+  * @
+  * @  수정일             수정자                   수정내용
+  * @ -------    --------    ---------------------------
+  * @ 2009.02.01   박정규              최초 생성
+  *   2016.06.13   김연호              표준프레임워크 v3.6 개선
+  *
+  *  @author 공통서비스팀 
+  *  @since 2009.02.01
+  *  @version 1.0
+  *  @see
+  *  
+  */
+%>
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<!DOCTYPE html>
+<html lang="ko">
+<head>
+<title>베스트 문자샘플 등록</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
+<script type="text/javaScript" language="javascript">
+var crudMode = "${searchVO.crudMode}";
+var mainTagNo = "${searchVO.mainTagNo}";
+var tagDiv = "1";
+$( document ).ready(function(){
+	// Start
+	init();
+	
+	
+	// change 함수
+	$("input[name='tagDiv']:radio").change(function () {
+		tagDiv = $(this).val();
+		
+		if (tagDiv == "1") {
+			$("#tagTypeTr").show();
+			$("#urlTr").hide();
+
+		}		
+		else if (tagDiv == "2") {
+			$("#urlTr").show();
+			$("#tagTypeTr").hide();	
+		}				
+		
+	});	
+
+});
+
+// Start
+function init() {
+	tagDiv = $('input[name="tagDiv"]:checked').val();
+	
+	if (tagDiv == "1") {
+		$("#tagTypeTr").show();
+		$("#urlTr").hide();
+	}		
+	else if (tagDiv == "2") {
+		$("#urlTr").show();
+		$("#tagTypeTr").hide();	
+	}
+	else {
+		$('#tagDiv1').prop('checked', true);
+		$("#tagTypeTr").show();
+		$("#urlTr").hide();		
+	}
+}
+
+
+// 등록, 수정
+function setDataSave(tagNo) {
+	var frm = document.writeForm;
+	tagDiv = $('input[name="tagDiv"]:checked').val();
+	
+	if (tagDiv == "1") {
+		// 검색
+		if(frm.tagType.value.trim() == ""){
+			alert("문자구분은 필수값입니다.");
+			return false;
+		}	
+		else if(frm.tagNm.value.trim() == ""){
+			alert("문자키워드는 필수값입니다.");
+			return false;
+		}
+		else if(frm.sort.value.trim() == ""){
+			alert("정렬순서는 필수값입니다.");
+			return false;
+		}		
+	}		
+	else if (tagDiv == "2") {
+		// 소개
+		if(frm.tagNm.value.trim() == ""){
+			alert("문자키워드는 필수값입니다.");
+			return false;
+		}
+		else if(frm.url.value.trim() == ""){
+			alert("URL은 필수값입니다.");
+			return false;
+		}
+		else if(frm.sort.value.trim() == ""){
+			alert("정렬순서는 필수값입니다.");
+			return false;
+		}
+	}
+	
+	if(!confirm("저장 하시겠습니까?")) {
+		return;
+	}
+	
+	$.ajax({
+		type: "POST"
+		, url: "/letter/messages/saveBastMsgTagAjax.do"
+		, data: $("#writeForm").serialize()
+		, dataType:'json'
+		, async: false
+		, success: function (data) {
+			if (data.isSuccess) {
+				alert("저장 완료했습니다.");
+				location.href = "/letter/messages/selectBastMsgTagList.do";
+			} 
+			else {
+				alert("Msg : " + data.msg);
+			}
+		}
+		, error: function (e) { 
+			alert("ERROR : " + JSON.stringify(e)); 
+		}
+	});
+	
+}
+
+</script>
+
+</head>
+<body>
+<form name="writeForm" id="writeForm"  method="post">
+	<input type="hidden" id="mainSearchTagNo" name="mainSearchTagNo" value="${searchVO.mainSearchTagNo}" />
+
+	<div class="contWrap">
+		<div class="pageTitle">
+			<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
+			<h2 class="titType1 c_222222 fwBold">베스트 문자샘플 등록</h2>
+			<p class="tType6 c_999999"></p>
+		</div>
+		<div class="pageCont">
+			<table class="tbType2">
+				<colgroup>
+					<col style="width: 20%">
+					<col style="width: 80%">
+				</colgroup>
+				<tbody>
+					<tr>
+						<th><span class="reqArea">메뉴 분류</span></th>
+						<td colspan="3">
+							<input type="radio" name="tagDiv" id="tagDiv1" value='1' <c:if test="${letterVO.tagDiv eq '1'}"> checked="checked"</c:if> />
+							<label for="refundCheckF">검색</label>
+							&nbsp;&nbsp;
+							<input type="radio" name="tagDiv" id="tagDiv2" value='2' <c:if test="${letterVO.tagDiv eq '2'}"> checked="checked"</c:if> />
+							<label for="refundCheckF">소개</label>
+							</select>
+						</td>
+					</tr>
+					<tr id="tagTypeTr">
+						<th><span class="reqArea">문자 구분</span></th>
+						<td colspan="3">
+							<select id="tagType" name="tagType">
+							<option value="">선택</option>
+							<option value="S" <c:if test="${letterVO.tagType eq 'S'}">selected="selected"</c:if>>단문</option>
+							<option value="L" <c:if test="${letterVO.tagType eq 'L'}">selected="selected"</c:if>>장문</option>
+							<option value="P" <c:if test="${letterVO.tagType eq 'P'}">selected="selected"</c:if>>그림</option>
+							</select>
+						</td>
+					</tr>					
+					<tr id="urlTr">
+						<th><span class="reqArea">URL</span></th>
+						<td colspan="3">
+							<input type="text" name="url" id="url" title="URL" maxlength="500" value="${letterVO.url}"/>
+						</td>
+					</tr>
+					<tr>
+						<th><span class="reqArea">문자 키워드</span></th>
+						<td colspan="3">
+							<input type="text" name="tagNm" id="tagNm" title="문자 키워드" maxlength="50" value="${letterVO.tagNm}"/>
+						</td>
+					</tr>
+					<tr>
+						<th><span class="reqArea">정렬순서</span></th>
+						<td colspan="3">
+							<input type="text" name="sort" id="sort" title="도움말정의" maxlength="100" value="1" value="${letterVO.sort}"/>
+						</td>
+					</tr>
+					<tr>
+						<th><span class="reqArea">사용여부</span></th>
+						<td colspan="3">
+							<select id="useYn" name="useYn">
+							<option value="Y" <c:if test="${letterVO.useYn eq 'Y'}">selected="selected"</c:if>>사용</option>
+							<option value="N" <c:if test="${letterVO.useYn eq 'N'}">selected="selected"</c:if>>미사용</option>
+							</select>
+							
+						</td>
+					</tr>															
+				</tbody>
+			</table>
+			<div class="btnWrap">
+				<input type="button" class="btnType1 bg_888888" value="목 록" onclick="location.href='/letter/messages/selectBastMsgTagList.do'">
+				<input type="button" class="btnType1" value="저 장" onclick="setDataSave('${searchVO.getMainSearchTagNo()}'); return false;">
+			</div>
+	 	</div>
+	</div>
+</form>
+</body>
+</html>
 
src/main/webapp/WEB-INF/jsp/letter/messages/BastMsgTagList.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/letter/messages/BastMsgTagList.jsp
@@ -0,0 +1,271 @@
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+
+<% pageContext.setAttribute("newLineChar", "\r\n"); %>
+<% pageContext.setAttribute("newLineChar2", "\n"); %>
+
+<%   
+	response.setHeader("Cache-Control","no-store");   
+	response.setHeader("Pragma","no-cache");   
+	response.setDateHeader("Expires",0);   
+	if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); 
+%> 
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
+<script type="text/javaScript" language="javascript">
+
+// 검색
+function fn_search(){
+	linkPage(1);
+}
+// 페이지 이동
+function linkPage(pageNo){
+	var listForm = document.listForm ;
+	listForm.pageIndex.value = pageNo ;
+	listForm.submit();
+}
+
+function infoPage(mainSearchTagNo){
+	var listForm = document.listForm ;
+	if(mainSearchTagNo != '' && mainSearchTagNo != null){
+		listForm.mainSearchTagNo.value = mainSearchTagNo ;
+	}
+	listForm.action = "/letter/messages/insertBastMsgTagView.do";
+	listForm.submit();
+}
+
+// 전체 체크 버튼
+function fnCheckAll(){
+	var checkField = document.listForm.checkField;
+	if(document.listForm.checkAll.checked) {
+		if(checkField.length > 1) {
+			for(var i=0; i < checkField.length; i++) {
+				checkField[i].checked = true;
+			}
+		} else {
+			checkField.checked = true;
+		}
+	} else {
+		if(checkField.length > 1) {
+			for(var j=0; j < checkField.length; j++) {
+				checkField[j].checked = false;
+			}
+		} else {
+			checkField.checked = false;
+		}
+	}
+}
+
+//우선순위 변경 기능
+function fnSortChange(){
+	if($("input:checkbox[name='checkField']").is(":checked")==false){
+		alert("선택된 항목이 없습니다.");
+		return;
+	}
+	var checkField = document.listForm.checkField;
+	var id = document.listForm.checkId;
+	var checkedIds = "";
+	var checkedCount = 0;
+	var chkIds = new Array();
+	if(checkField) {
+		if(checkField.length > 1) {
+			for(var i=0; i < checkField.length; i++) {
+				if(checkField[i].checked) {
+					chkIds.push(id[i].value);
+					checkedCount++;
+				}
+			}
+		} else {
+			if(checkField.checked) {
+				chkIds.push(id.value);
+			}
+		}
+	}
+	var url = "/letter/messages/updateMainTagSortChangeAjax.do";
+	
+	//배열 직렬화
+	jQuery.ajaxSettings.traditional = true;
+	
+	$.ajax({
+		type:"post"
+		, async:false
+		, url: url
+		, data: {
+			"chkIds" : chkIds,
+			"sort" : document.listForm.chgNum.value,
+		}
+		, dataType : "json"
+		, success: function (returnData, status) {
+			if(returnData.result == 'success'){
+				alert("우선순위 변경에 성공하였습니다.");
+				location.reload(true);
+			} else if(returnData.result == 'fail'){
+				alert("우선순위 변경에 실패하였습니다.");
+			} else if(returnData.result == 'auth_fail'){
+				alert("권한이 없습니다.");
+				location.reload(true);
+			} else{
+				alert("실패");
+			}
+		},
+		error: function (e) { alert("실패"); console.log("ERROR : ", e); }
+	});
+}
+</script>
+<form name="listForm" action="<c:url value='/letter/messages/selectMainTagList.do'/>" method="post">
+	<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
+	<input type="hidden" name="mainSearchTagNo" />	
+	<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
+	<input type="hidden" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
+	
+	<div class="contWrap">
+		<div class="pageTitle">
+			<div class="pageIcon"><img src="/pb/img/pageTitIcon4.png" alt=""></div>
+			<h2 class="titType1 c_222222 fwBold">베스트 문자샘플(메인)</h2>
+			<p class="tType6 c_999999"></p>
+		</div>
+		<div class="pageCont">
+			<div class="listSerch">
+				
+				<select id="searchTagDiv" name="searchTagDiv">
+				<option value="" <c:if test="${empty searchVO.searchTagDiv}">selected="selected"</c:if>>분류(전체)</option>
+				<option value="1" <c:if test="${searchVO.searchTagDiv == '1'}">selected="selected"</c:if>>검색</option>
+				<option value="2" <c:if test="${searchVO.searchTagDiv == '2'}">selected="selected"</c:if>>소개</option>
+				</select>
+								
+				<select id="searchTagType" name="searchTagType">
+				<option value="" <c:if test="${empty searchVO.searchTagType}">selected="selected"</c:if>>문자구분(전체)</option>
+				<option value="S" <c:if test="${searchVO.searchTagType == 'S'}">selected="selected"</c:if>>단문</option>
+				<option value="L" <c:if test="${searchVO.searchTagType == 'L'}">selected="selected"</c:if>>장문</option>
+				<option value="P" <c:if test="${searchVO.searchTagType == 'P'}">selected="selected"</c:if>>그림</option>
+				</select>
+				
+				<select id="searchUseYn" name="searchUseYn">
+				<option value="" <c:if test="${empty searchVO.searchUseYn}">selected="selected"</c:if>>사용여부(전체)</option>
+				<option value="Y" <c:if test="${searchVO.searchUseYn == 'Y'}">selected="selected"</c:if>>사용</option>
+				<option value="N" <c:if test="${searchVO.searchUseYn == 'N'}">selected="selected"</c:if>>미사용</option>
+				</select>				
+				
+				<input id="searchKeyword" name="searchKeyword" class="recentSearch" type="text" value="<c:out value='${searchVO.searchKeyword}'/>" size="25" title="검색" maxlength="100" />
+				<input type="button" class="btnType1" value="검색" onclick="fn_search(); return false;">
+				
+			</div>
+			<div class="listTop">
+				<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건</p>
+				<div class="rightWrap">
+					<!-- <input type="button" class="printBtn"> -->
+					<select name="pageUnit" id="pageUnit" class="select" title="검색조건선택" onchange="linkPage(1);">
+						<option value='10' <c:if test="${searchVO.pageUnit == '10' or searchVO.pageUnit == ''}">selected</c:if>>10줄</option>
+						<option value='20' <c:if test="${searchVO.pageUnit == '20'}">selected</c:if>>20줄</option>
+						<option value='30' <c:if test="${searchVO.pageUnit == '30'}">selected</c:if>>30줄</option>
+					</select>
+				</div>
+			</div>
+			<div class="tableWrap">
+				<table class="tbType1">
+					<colgroup>
+						<col style="width: 5%">
+						<col style="width: 5%">
+						<col style="width: 5%">
+						<col style="width: 5%">
+						<col style="width: 14%">
+						<col style="width: auto;">
+						<col style="width: 6%">
+						<col style="width: 5%">
+						<col style="width: 9%">
+						<col style="width: 8%">
+					</colgroup>
+					<thead>
+						<tr>
+							<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
+							<th>번호<input type="button" class="sort sortBtn" id="sort_mainSearchTagNo"></th>
+							<th>분류<input type="button" class="sort sortBtn" id="sort_tagDiv"></th>
+							<th>구분<input type="button" class="sort sortBtn" id="sort_tagType"></th>
+							<th>키워드<input type="button" class="sort sortBtn" id="sort_tagNm"></th>
+							<th>URL</th>
+							<th>순서<input type="button" class="sort sortBtn" id="sort_sort"></th>
+							<th>사용<input type="button" class="sort sortBtn" id="sort_useYn"></th>
+							<th>등록자</th>
+							<th>등록일자<input type="button" class="sort sortBtn" id="sort_regDt"></th>
+						</tr>
+					</thead>
+					<tbody>
+						<c:forEach var="result" items="${resultList}" varStatus="status">
+						<tr>
+							<td>
+								<input type="checkbox" name="checkField" id="<c:out value='${result.mainSearchTagNo }'/>"/>
+								<input name="checkId" type="hidden" value="<c:out value='${result.mainSearchTagNo}'/>"/>
+							</td>
+							<td>
+								<c:if test="${searchVO.searchSortOrd eq 'desc' }">
+		                			<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
+			                	</c:if>
+			                	<c:if test="${searchVO.searchSortOrd eq 'asc' }">
+									<c:out value="${(paginationInfo.currentPageNo - 1) * paginationInfo.recordCountPerPage + status.count}"/>                   		
+			                	</c:if>
+							</td>
+							<td>
+								<c:choose>
+									<c:when test="${result.tagDiv == '1'}">검색</c:when>
+									<c:when test="${result.tagDiv == '2'}">소개</c:when>
+								</c:choose>
+							</td>							
+							<td>
+								<c:choose>
+									<c:when test="${result.tagType == 'S'}">단문</c:when>
+									<c:when test="${result.tagType == 'L'}">장문</c:when>
+									<c:when test="${result.tagType == 'P'}">그림</c:when>
+									<c:otherwise>-</c:otherwise>
+								</c:choose>
+							</td>
+							<td>
+								<a href="#" onclick="infoPage('${result.mainSearchTagNo}'); return false;"><c:out value="${result.tagNm}"/></a>
+							</td>
+							<td style="text-align: left;">
+								<a href="#" onclick="infoPage('${result.mainSearchTagNo}'); return false;"><c:out value="${result.url}"/></a>
+							</td>
+							<td>
+								<c:out value="${result.sort}"/>
+							</td>
+							<td>
+								<c:choose>
+									<c:when test="${result.useYn == 'Y'}">사용</c:when>
+									<c:when test="${result.useYn == 'N'}">미사용</c:when>
+								</c:choose>							
+							</td>
+							<td><c:out value="${result.regId}"/></td>
+							<td title="<c:out value="${result.regDt}"/>">
+								<fmt:parseDate value="${result.regDt}" var="regDateValue" pattern="yyyy-MM-dd HH:mm"/>
+								<fmt:formatDate value="${regDateValue}" pattern="MM-dd HH:mm"/>																													
+		                    </td>							
+						</tr>
+						</c:forEach>
+						<c:if test="${empty resultList}">
+		         			<tr><td colspan="10"><spring:message code="common.nodata.msg" /></td></tr>
+		         		</c:if>     
+					</tbody>
+				</table>
+			</div>
+			<div>
+				선택한 그림문자의 우선순위를 <input type="text" id="chgNum" name="chgNum" value="" maxlength="9">번으로 <button type="button" onclick="fnSortChange();" class="btnType1">변경</button>
+			</div>
+			<div class="btnWrap">
+				<input type="button" class="btnType1" value="등록" onclick="infoPage(''); return false;" value="등록" >
+			</div>
+			<!-- 페이지 네비게이션 시작 -->
+			<c:if test="${!empty resultList}">
+		 		<div class="page">
+		    		<ul class="inline">
+		    			<ui:pagination paginationInfo = "${paginationInfo}"  type="image" jsFunction="linkPage" />
+		    		</ul>	
+		    	</div>  
+		  	</c:if>                      
+		    <!-- //페이지 네비게이션 끝 --> 
+		</div>
+	</div>
+</form>
Add a comment
List