From 018cc526eeb3895c91c6767e4cb8d52730dcf7cd Mon Sep 17 00:00:00 2001 From: hide_d Date: Mon, 21 Jan 2019 01:45:32 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EA=B8=80,=20?= =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EC=9E=91=EC=84=B1=20=EC=B4=88=EC=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...dArticles.php => j_get_board_articles.php} | 0 hwe/js/board.js | 156 ++++++++++++++++++ hwe/js/common.js | 23 +++ hwe/js/jsconfig.json | 8 + hwe/t_board.php | 19 ++- js/common.js | 13 ++ 6 files changed, 211 insertions(+), 8 deletions(-) rename hwe/{j_getBoardArticles.php => j_get_board_articles.php} (100%) create mode 100644 hwe/js/jsconfig.json diff --git a/hwe/j_getBoardArticles.php b/hwe/j_get_board_articles.php similarity index 100% rename from hwe/j_getBoardArticles.php rename to hwe/j_get_board_articles.php diff --git a/hwe/js/board.js b/hwe/js/board.js index e69de29b..1a51c8bc 100644 --- a/hwe/js/board.js +++ b/hwe/js/board.js @@ -0,0 +1,156 @@ + + +function submitArticle(){ + var $article = $('#newArticle'); + var $title = $article.find('input.titleInput'); + var $text = $article.find('input.contentInput'); + var title = $.trim($title.val()); + var text = $.trim($text.val()); + + + if(!text && !title){ + return false; + } + + $title.val(''); + $text.val(''); + + $.post({ + url:'j_add_board_article.php', + dataType:'json', + data:{ + title:title, + text:text + } + }).then(function(data){ + if(!data){ + $title.val(title); + $text.val(text); + alert() + return quickReject('글을 올리는데 실패했습니다.'); + } + if(!data.result){ + $title.val(title); + $text.val(text); + return quickReject('글을 올리는데 실패했습니다. : '+data.reason); + } + + return loadArticles().done(drawArticles); + + }, errUnknown) + .fail(function(reason){ + alert(reason); + }); + + return false; +} + +function submitComment(){ + var $this = $(this); + var $article = $this.parents('.article').eq(0); + var articleNo = $article.data('no'); + var $text = $article.find('input.commentText'); + var text = $.trim($text.val()); + + if(!text){ + return false; + } + + $text.val(''); + + $.post({ + url:'j_add_board_comment.php', + dataType:'json', + data:{ + articleNo:articleNo, + text:text + } + }).then(function(data){ + if(!data){ + $text.val(text); + alert() + return quickReject('댓글을 다는데 실패했습니다.'); + } + if(!data.result){ + $text.val(text); + return quickReject('댓글을 다는데 실패했습니다. : '+data.reason); + } + + return loadArticles().done(drawArticles); + + }, errUnknown) + .fail(function(reason){ + alert(reason); + }); + + return false; +} + +function drawArticle(articleObj){ + var $articleFrame = $('#articleTemplate > .articleFrame'); + var $commentFrame = $('#commentTemplate > .comment'); + + var $article = $articleFrame.clone(); + $article.addClass('articleObj') + .data('no', articleObj.no) + .data('author', articleObj.general_no); + + $article.find('.author').text(articleObj.author); + $article.find('.title').text(articleObj.title); + $article.find('.date').text(articleObj.date); + //$article.find('.text').text(articleObj.text); + $article.find('.text').html(nl2br(escapeHtml(articleObj.text))); + //TODO: 바꿀 것 + + var $articleComment = $article.find('ul.commentList'); + + $.each(articleObj.comment, function(commentObj){ + var $comment = $commentFrame.clone(); + $comment.find('.author').text(commentObj.author); + //$comment.find('.text').text(commentObj.text); + $comment.find('.text').html(nl2br(escapeHtml(commentObj.text))); + $comment.find('.date').text(commentObj.date); + $articleComment.append($comment); + }); + + $('#board').append($article); +} + +function drawArticles(articlesObj){ + var deferred = $.Deferred(); + if(!articlesObj){ + return quickReject('받아오는데 실패했습니다.'); + } + if(!articlesObj.result){ + return quickReject('에러가 발생했습니다. : '+articlesObj.reason); + } + + $('.articleObj').detach();//첫 버전이니까 일괄 삭제 일괄 로드 + $.each(articlesObj.articles, drawArticle); + return true; +} + + + +function loadArticles(){ + return $.post({ + url:'j_get_board_articles.php', + dataType:'json', + data:{ + isSecretBoard:isSecretBoard, //첫 버전이니까 전체 다 불러오자 + } + }); +} + +$(function(){ + +$('#submitArticle').click(submitArticle); +$('.submitComment').click(submitComment); + +loadArticles() +.then(drawArticles, errUnknown) +.fail(function(reason){ + alert(reason); +}); + +}); \ No newline at end of file diff --git a/hwe/js/common.js b/hwe/js/common.js index 32cfb77c..52c7d02f 100644 --- a/hwe/js/common.js +++ b/hwe/js/common.js @@ -216,3 +216,26 @@ jQuery(function($){ }); + + +function errUnknown(){ + alert('작업을 실패했습니다.'); +} + +function quickReject(errMsg){ + if(errMsg === undefined){ + errMsg = '작업을 실패했습니다.'; + } + var deferred = $.Deferred(); + deferred.reject(errMsg); + return deferred.promise(); +} + +function nl2br(text){ + return text.replace(/\n/g,"
"); +} +/* +function br2nl (text) { + return text.replace(/<\s*\/?br\s*[\/]?>/gi, '\n'); +} +*/ \ No newline at end of file diff --git a/hwe/js/jsconfig.json b/hwe/js/jsconfig.json new file mode 100644 index 00000000..06b2b0d5 --- /dev/null +++ b/hwe/js/jsconfig.json @@ -0,0 +1,8 @@ +{ + "typeAcquisition": { + "include": [ + "jquery" + ] + } + +} \ No newline at end of file diff --git a/hwe/t_board.php b/hwe/t_board.php index dced9b11..a0dd6d06 100644 --- a/hwe/t_board.php +++ b/hwe/t_board.php @@ -44,19 +44,19 @@ $boardName = $isSecretBoard?'회의실':'기밀실'; - - + + - + - + @@ -64,11 +64,14 @@ var isSecretBoard = ; //
-
제목
+
제목
- +
- + +
+ +