Comment.cshtml 12 KB

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