Comment.cshtml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. @model Admin.ViewModels.Forum.Board.Meta.IndexViewModel
  2. @{
  3. ViewData["Title"] = "게시판 관리 - 댓글";
  4. }
  5. <div class="container">
  6. <partial name="~/Views/Forum/Board/Meta/_Header.cshtml" />
  7. <partial name="_StatusMessage" />
  8. <partial name="~/Views/Forum/Board/Meta/_Navbar.cshtml" />
  9. <form name="f_admin_write" id="fAdminWrite" method="post" accept-charset="utf-8" autocomplete="off" action="/Forum/Board/Meta/Update/Comment" enctype="multipart/form-data">
  10. <input type="hidden" name="BoardMeta.Board.Code" value="@Model.Board.Code" />
  11. <input type="hidden" asp-for="BoardMeta.ID" />
  12. <input type="hidden" asp-for="BoardMeta.BoardID" />
  13. <div class="row mb-3">
  14. <label for="BoardMeta_Comment_EnableComment" class="col-md-3 col-form-label">댓글 사용</label>
  15. <div class="col-md-9">
  16. <div class="form-check">
  17. <input type="checkbox" asp-for="BoardMeta.Comment.EnableComment" class="form-check-input" />
  18. <label asp-for="BoardMeta.Comment.EnableComment" class="form-check-label">사용합니다.</label>
  19. </div>
  20. <small class="text-muted form-text">댓글 목록, 사용을 활성화합니다.</small>
  21. </div>
  22. </div>
  23. <div class="row mb-3">
  24. <label for="BoardMeta_Comment_PerPage" class="col-12 col-md-3 col-form-label">목록 표시</label>
  25. <div class="col-lg-9">
  26. <div class="row">
  27. <div class="col-12 col-lg-auto">
  28. <input type="number" asp-for="BoardMeta.Comment.PerPage" class="form-control" min="10" max="100" required />
  29. <span asp-validation-for="BoardMeta.Comment.PerPage" class="text-danger"></span>
  30. </div>
  31. </div>
  32. <small class="text-muted form-text">한 페이지에 보이는 댓글 수, (최대 100개)</small>
  33. </div>
  34. </div>
  35. <div class="row mb-3">
  36. <label for="BoardMeta_Comment_AllowLike" class="col-md-3">댓글 좋아요</label>
  37. <div class="col-md-9 pt-2 pt-md-0">
  38. <div class="form-check">
  39. <input type="checkbox" asp-for="BoardMeta.Comment.AllowLike" class="form-check-input" />
  40. <label asp-for="BoardMeta.Comment.AllowLike" class="form-check-label">사용합니다.</label>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="row mb-3">
  45. <label for="BoardMeta_Comment_AllowDisLike" class="col-md-3">댓글 싫어요</label>
  46. <div class="col-md-9 pt-2 pt-md-0">
  47. <div class="form-check">
  48. <input type="checkbox" asp-for="BoardMeta.Comment.AllowDisLike" class="form-check-input" />
  49. <label asp-for="BoardMeta.Comment.AllowDisLike" class="form-check-label">사용합니다.</label>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="row mb-3">
  54. <label for="BoardMeta_Comment_ShowMemberPhoto" class="col-md-3">회원 사진 공개</label>
  55. <div class="col-md-9 pt-2 pt-md-0">
  56. <div class="form-check">
  57. <input type="checkbox" asp-for="BoardMeta.Comment.ShowMemberPhoto" class="form-check-input" />
  58. <label asp-for="BoardMeta.Comment.ShowMemberPhoto" class="form-check-label">사용합니다.</label>
  59. </div>
  60. <small class="text-muted form-text">회원이 등록한 사진을 좌측에 보일지를 결정합니다.</small>
  61. </div>
  62. </div>
  63. <div class="row mb-3">
  64. <label for="BoardMeta_Comment_ShowMemberIcon" class="col-md-3">회원 아이콘 공개</label>
  65. <div class="col-md-9 pt-2 pt-md-0">
  66. <div class="form-check">
  67. <input type="checkbox" asp-for="BoardMeta.Comment.ShowMemberIcon" class="form-check-input" />
  68. <label asp-for="BoardMeta.Comment.ShowMemberIcon" class="form-check-label">사용합니다.</label>
  69. </div>
  70. <small class="text-muted form-text">회원의 등급/첨부 아이콘을 글쓴이명 좌측에 보일지를 결정합니다.</small>
  71. </div>
  72. </div>
  73. <div class="row mb-3">
  74. <label for="BoardMeta_Comment_ContentPlaceholder" class="col-md-3 col-form-label">안내 문구</label>
  75. <div class="col-md-9">
  76. <textarea asp-for="BoardMeta.Comment.ContentPlaceholder" class="form-control" rows="3"></textarea>
  77. <span asp-validation-for="BoardMeta.Comment.ContentPlaceholder" class="text-danger"></span>
  78. </div>
  79. </div>
  80. <div class="row mb-3">
  81. <label for="BoardMeta_Comment_MinContentLength" class="col-md-3 col-form-label">최소 입력 글자</label>
  82. <div class="col-lg-9">
  83. <div class="row">
  84. <div class="col-12 col-lg-auto">
  85. <input type="number" asp-for="BoardMeta.Comment.MinContentLength" class="form-control" min="0" required />
  86. <span asp-validation-for="BoardMeta.Comment.MinContentLength" class="text-danger"></span>
  87. </div>
  88. </div>
  89. <small class="text-muted form-text">댓글 최소 입력 길이를 지정합니다. 0 입력시 제한 없음</small>
  90. </div>
  91. </div>
  92. <div class="row mb-3">
  93. <label for="BoardMeta_Comment_MaxContentLength" class="col-md-3 col-form-label">최대 입력 글자</label>
  94. <div class="col-lg-9">
  95. <div class="row">
  96. <div class="col-12 col-lg-auto">
  97. <input type="number" asp-for="BoardMeta.Comment.MaxContentLength" class="form-control" min="0" required />
  98. <span asp-validation-for="BoardMeta.Comment.MaxContentLength" class="text-danger"></span>
  99. </div>
  100. </div>
  101. <small class="text-muted form-text">댓글 최대 입력 길이를 지정합니다. 0 입력시 제한 없음</small>
  102. </div>
  103. </div>
  104. <div class="row mb-3">
  105. <label for="BoardMeta_Comment_EnableEditor" class="col-md-3 col-form-label">웹 에디터 사용</label>
  106. <div class="col-md-9">
  107. <div class="form-check">
  108. <input type="checkbox" asp-for="BoardMeta.Comment.EnableEditor" class="form-check-input" />
  109. <label asp-for="BoardMeta.Comment.EnableEditor" class="form-check-label">사용합니다.</label>
  110. </div>
  111. <small class="text-muted form-text">댓글을 웹 기반 에디터로 수정할 수 있도록합니다.</small>
  112. </div>
  113. </div>
  114. <div class="row mb-3">
  115. <label for="BoardMeta_Comment_AllowSecret" class="col-md-3 col-form-label">비밀글 사용</label>
  116. <div class="col-md-9">
  117. <div class="form-check">
  118. <input type="checkbox" asp-for="BoardMeta.Comment.AllowSecret" class="form-check-input" />
  119. <label asp-for="BoardMeta.Comment.AllowSecret" class="form-check-label">사용합니다.</label>
  120. </div>
  121. <small class="text-muted form-text">비밀글 작성 기능을 활성화합니다. 비밀글은 작성자 본인과 게시판 관리자 이상만 열람 가능합니다.</small>
  122. </div>
  123. </div>
  124. <div class="row mb-3">
  125. <label for="BoardMeta_Comment_BlameHideCount" class="col-md-3 col-form-label">댓글 신고 시 숨김</label>
  126. <div class="col-lg-9">
  127. <div class="row">
  128. <div class="col-12 col-lg-auto">
  129. <input type="number" asp-for="BoardMeta.Comment.BlameHideCount" class="form-control" min="0" required />
  130. <span asp-validation-for="BoardMeta.Comment.BlameHideCount" class="text-danger"></span>
  131. </div>
  132. <small class="text-muted form-text">댓글을 신고할 수 있도록 합니다. 숨김 횟수가 0이면 작동하지 않습니다.</small>
  133. </div>
  134. </div>
  135. </div>
  136. <div class="row mb-3">
  137. <label for="BoardMeta_Comment_AllowUpdateProtection" class="col-md-3 col-form-label">댓글 보호 기능 (수정 시)</label>
  138. <div class="col-md-9">
  139. <div class="form-check">
  140. <input type="checkbox" asp-for="BoardMeta.Comment.AllowUpdateProtection" class="form-check-input" />
  141. <label asp-for="BoardMeta.Comment.AllowUpdateProtection" class="form-check-label">사용합니다.</label>
  142. </div>
  143. <small class="text-muted form-text">수정 시 댓글을 보호하는 기능을 활성화합니다.</small>
  144. </div>
  145. </div>
  146. <div class="row mb-3">
  147. <label for="BoardMeta_Comment_UpdateProtectionDays" class="col-md-3 col-form-label">댓글 수정 금지 기간</label>
  148. <div class="col-lg-9">
  149. <div class="row">
  150. <div class="col-12 col-lg-auto">
  151. <input type="number" asp-for="BoardMeta.Comment.UpdateProtectionDays" class="form-control" min="0" max="365" />
  152. <span asp-validation-for="BoardMeta.Comment.UpdateProtectionDays" class="text-danger"></span>
  153. </div>
  154. <small class="text-muted form-text">댓글이 수정되지 않도록 보호하는 기간을 일 단위로 설정합니다.</small>
  155. </div>
  156. </div>
  157. </div>
  158. <div class="row mb-3">
  159. <label for="BoardMeta_Comment_AllowDeleteProtection" class="col-md-3 col-form-label">댓글 보호 기능 (삭제 시)</label>
  160. <div class="col-md-9">
  161. <div class="form-check">
  162. <input type="checkbox" asp-for="BoardMeta.Comment.AllowDeleteProtection" class="form-check-input" />
  163. <label asp-for="BoardMeta.Comment.AllowDeleteProtection" class="form-check-label">사용합니다.</label>
  164. </div>
  165. <small class="text-muted form-text">삭제 시 댓글을 보호하는 기능을 활성화합니다.</small>
  166. </div>
  167. </div>
  168. <div class="row mb-3">
  169. <label for="BoardMeta_Comment_DeleteProtectionDays" class="col-md-3 col-form-label">댓글 삭제 금지 기간</label>
  170. <div class="col-lg-9">
  171. <div class="row">
  172. <div class="col-12 col-lg-auto">
  173. <input type="number" asp-for="BoardMeta.Comment.DeleteProtectionDays" class="form-control" min="0" max="365" />
  174. <span asp-validation-for="BoardMeta.Comment.DeleteProtectionDays" class="text-danger"></span>
  175. </div>
  176. <small class="text-muted form-text">댓글이 삭제되지 않도록 보호하는 기간을 일 단위로 설정합니다.</small>
  177. </div>
  178. </div>
  179. </div>
  180. <div class="row mb-3">
  181. <label for="BoardMeta_Comment_EnableCommentUpdateLog" class="col-md-3 col-form-label">댓글 변경 기록</label>
  182. <div class="col-md-9">
  183. <div class="form-check">
  184. <input type="checkbox" asp-for="BoardMeta.Comment.EnableCommentUpdateLog" class="form-check-input" />
  185. <label asp-for="BoardMeta.Comment.EnableCommentUpdateLog" class="form-check-label">사용합니다.</label>
  186. </div>
  187. <small class="text-muted form-text">댓글 변경 시 기록을 남깁니다.</small>
  188. </div>
  189. </div>
  190. <hr/>
  191. <div class="d-grid gap-2 text-center d-md-block">
  192. <button type="submit" class="btn btn-sm btn-success">저장</button>
  193. <a href="/Forum/Board/List?@ViewBag.QueryString" class="btn btn-sm btn-secondary">취소</a>
  194. </div>
  195. <br />
  196. </form>
  197. </div>
  198. @section Scripts {
  199. <script>
  200. $("#fAdminWrite").validate({
  201. rules: {
  202. "BoardMeta.Comment.UpdateProtectionDays": {
  203. required: "#BoardMeta_Comment_AllowUpdateProtection:checked",
  204. min: function () {
  205. return $("#BoardMeta_Comment_AllowUpdateProtection").is(":checked") ? 1 : null;
  206. }
  207. },
  208. "BoardMeta.Comment.DeleteProtectionDays": {
  209. required: "#BoardMeta_Comment_AllowDeleteProtection:checked",
  210. min: function () {
  211. return $("#BoardMeta_Comment_AllowDeleteProtection").is(":checked") ? 1 : null;
  212. }
  213. }
  214. },
  215. submitHandler: function(form) {
  216. form.submit();
  217. }
  218. });
  219. </script>
  220. }