boardUpdate.html 11.5 KB
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorate="~{layout/default_layout}">

    <!-- index.html 고유 CSS 추가 -->
    <th:block layout:fragment="css">
    </th:block>
    
    <!-- index.html 고유 스크립트 추가 -->
    <th:block layout:fragment="script">
		<script type="text/javascript">
		    
		    $(document).ready(function(){        
		        getBoardDetail();        
		    });
		    
		    /** 게시판 - 목록 페이지 이동 */
		    function goBoardList(){                
		        location.href = "[[@{/}]]board/boardList";
		    }
		    
		    /** 게시판 - 상세 조회  */
		    function getBoardDetail(boardSeq){
		        
		        var boardSeq = $("#board_seq").val();
		 
		        if(boardSeq != ""){
		            
		            $.ajax({    
		                
		                url        : "[[@{/}]]board/getBoardDetail",
		                data    : $("#boardForm").serialize(),
		                dataType: "JSON",
		                cache   : false,
		                async   : true,
		                type    : "POST",    
		                success : function(obj) {
		                    getBoardDetailCallback(obj);                
		                },           
		                error     : function(xhr, status, error) {}
		                
		             });
		            
		        } else {
		            alert("오류가 발생했습니다.\n관리자에게 문의하세요.");
		        }    
		    }
		    
		    /** 게시판 - 상세 조회  콜백 함수 */
		    function getBoardDetailCallback(pobj){
		    	var obj = pobj.BoardDto;
		                
		        if(obj != null){                                
		                            
		            var boardSeq        = obj.board_seq; 
		            var boardReRef         = obj.board_re_ref; 
		            var boardReLev         = obj.board_re_lev; 
		            var boardReSeq         = obj.board_re_seq; 
		            var boardWriter     = obj.board_writer; 
		            var boardSubject     = obj.board_subject; 
		            var boardContent     = obj.board_content; 
		            var boardHits         = obj.board_hits;
                    var boardProcStatus   = obj.proc_status;
                    var boardProcDesc     = obj.proc_desc;
                    var boardProcDate     = obj.proc_date;
                    var boardProcUser     = obj.proc_user;
		            var delYn             = obj.del_yn; 
		            var insUserId         = obj.ins_user_id;
		            var insDate         = obj.ins_date; 
		            var updUserId         = obj.upd_user_id;
		            var updDate         = obj.upd_date;
		            var files            = obj.files;        
		            var filesLen        = files.length;
		            var current_user 	= obj.current_user;
		                                
		            $("#board_subject").val(boardSubject);            
		            $("#board_content").val(boardContent);
		            $("#board_writer").text(boardWriter);
		            $("#proc_desc").val(boardProcDesc);
		            $("#proc_status").val(boardProcStatus);

		            if (current_user != boardWriter) {
		            	$("#board_subject").attr("readonly",true);
		            	$("#board_content").attr("readonly",true);
		            	$("#btn_update").html("진행처리");
			        } else {
				        if (boardProcStatus == "처리중" || boardProcStatus == "처리완료" ) {
				        	$("#btn_update").hide();
					    } else {
			            	$("#tr_proc_desc").hide();
			            	$("#tr_proc_status").hide();
						}
				    }
		            
		            var fileStr = "";
		            
		            if(filesLen > 0){
		                
		                for(var a=0; a<filesLen; a++){
		                    
		                    var boardSeq    = files[a].board_seq;
		                    var fileNo         = files[a].file_no;
		                    var fileNameKey = files[a].file_name_key;
		                    var fileName     = files[a].file_name;
		                    var filePath     = files[a].file_path;
		                    var fileSize     = files[a].file_size;
		                    var remark         = files[a].remark;
		                    var delYn         = files[a].del_yn;
		                    var insUserId     = files[a].ins_user_id;
		                    var insDate     = files[a].ins_date;
		                    var updUserId     = files[a].upd_user_id;
		                    var updDate     = files[a].upd_date;
		                    
		                    fileStr += "<a href='[[@{/}]]board/fileDownload?fileNameKey="+encodeURI(fileNameKey)+"&fileName="+encodeURI(fileName)+"&filePath="+encodeURI(filePath)+"'>" + fileName + "</a>";
		                    fileStr += "<button type='button' class='btn black ml15' style='padding:3px 5px 6px 5px;' onclick='javascript:setDeleteFile("+ boardSeq +", "+ fileNo +")'>X</button>";
		                }            
		                                
		            } else {
		                
		                fileStr = "<input type='file' id='files[0]' name='files[0]' value=''></td>";
		            }
		            
		            $("#file_td").html(fileStr);
		            
		        } else {            
		            alert("등록된 글이 존재하지 않습니다.");
		            return;
		        }        
		    }
		    
		    /** 게시판 - 수정  */
		    function updateBoard(){
		 
		        var boardSubject = $("#board_subject").val();
		        var boardContent = $("#board_content").val();
		            
		        if (boardSubject == ""){            
		            alert("제목을 입력해주세요.");
		            $("#board_subject").focus();
		            return;
		        }
		        
		        if (boardContent == ""){            
		            alert("내용을 입력해주세요.");
		            $("#board_content").focus();
		            return;
		        }
		        
		        var yn = confirm("게시글을 수정하시겠습니까?");        
		        if(yn){
		                
		            var filesChk = $("input[name='files[0]']").val();
		            if(filesChk == ""){
		                $("input[name='files[0]']").remove();
		            }
		            
		            $("#boardForm").ajaxForm({
		            
		                url        : "/board/updateBoard",
		                enctype    : "multipart/form-data",
		                cache   : false,
		                async   : true,
		                type    : "POST",                         
		                success : function(obj) {
		                    updateBoardCallback(obj);                
		                },           
		                error     : function(xhr, status, error) {}
		                
		            }).submit();
		        }
		    }
		    
		    /** 게시판 - 수정 콜백 함수 */
		    function updateBoardCallback(pobj){
		    	var obj = pobj.BoardDto;
		    
		        if(obj != null){        
		            
		            var result = obj.result;
		            
		            if(result == "SUCCESS"){                
		                alert("게시글 수정을 성공하였습니다.");                
		                goBoardList();                 
		            } else {                
		                alert("게시글 수정을 실패하였습니다.");    
		                return;
		            }
		        }
		    }
		    
		    /** 게시판 - 삭제할 첨부파일 정보 */
		    function setDeleteFile(boardSeq, fileSeq){
		        
		        var deleteFile = boardSeq + "!" + fileSeq;        
		        $("#delete_file").val(deleteFile);
		                
		        var fileStr = "<input type='file' id='files[0]' name='files[0]' value=''>";        
		        $("#file_td").html(fileStr);        
		    }
		        
		</script>
    </th:block>

    <th:block layout:fragment="content">
		<div id="wrap">
		    <div id="container">
		        <div class="inner">    
		            <h2>상세내역</h2>
		            <form id="boardForm" name="boardForm" action="/board/updateBoard" enctype="multipart/form-data" method="post" onsubmit="return false;">    
		                <table width="100%" class="table02">
		                <caption><strong><span class="t_red">*</span> 표시는 필수입력 항목입니다.</strong></caption>
		                    <colgroup>
		                         <col width="20%">
		                        <col width="*">
		                    </colgroup>
		                    <tbody id="tbody">
		                       <tr>
		                            <th>제목<span class="t_red">*</span></th>
		                            <td><input id="board_subject" name="board_subject" value="" class="tbox01"/></td>
		                        </tr>
		                         <tr>
		                            <th>작성자</th>
		                            <td id="board_writer"></td>
		                        </tr>
		                        <tr>
		                            <th>내용<span class="t_red">*</span></th>
		                            <td colspan="3"><textarea id="board_content" name="board_content" cols="50" rows="5" class="textarea01"></textarea></td>
		                        </tr>
		                        <tr>
		                            <th>첨부파일</th>
		                            <td colspan="3" id="file_td"><input type="file" id="files[0]" name="files[0]" value=""></td>
		                        </tr>
		                        <tr id="tr_proc_desc">
		                            <th>처리내용<span class="t_red">*</span></th>
		                            <td colspan="3"><textarea id="proc_desc" name="proc_desc" cols="50" rows="5" class="textarea01"></textarea></td>
		                        </tr>
		                        <tr id="tr_proc_status">
		                            <th>처리상태<span class="t_red">*</span></th>
		                            <td colspan="3">
		                            	<select id="proc_status" name="proc_status"class="selbox">
		                            		<option value=""></option>
		                            		<option value="미처리">미처리</option>
		                            		<option value="처리중">처리중</option>
		                            		<option value="처리완료">처리완료</option>
		                            	</select>
		                            </td>
		                        </tr>
		                    </tbody>
		                </table>    
		                <input type="hidden" id="board_seq"        name="board_seq"    th:value="${#request.getParameter('boardSeq')}"/> <!-- 게시글 번호 -->
		                <input type="hidden" id="search_type"    name="search_type"    value="U"/> <!-- 조회 타입 - 상세(S)/수정(U) -->
		                <input type="hidden" id="delete_file"    name="delete_file"    value=""/> <!-- 삭제할 첨부파일 -->
		            </form>
		            <div class="btn_right mt15">
		                <button type="button" class="btn black mr5" onclick="javascript:goBoardList();">목록으로</button>
		                <button type="button" id="btn_update" class="btn black" onclick="javascript:updateBoard();">수정하기</button>
		            </div>
		        </div>
		    </div>
		</div>
	</th:block>
</html>