Edit.cshtml 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. @page "{id:int}"
  2. @model Admin.Pages.Forum.Posts.List.EditModel
  3. @{
  4. ViewData["Title"] = "게시글 수정";
  5. }
  6. <div class="container">
  7. <h3 class="mb-3">@ViewData["Title"]</h3>
  8. <hr />
  9. <partial name="_StatusMessage" />
  10. <form method="post" accept-charset="utf-8" autocomplete="off" enctype="multipart/form-data">
  11. <input type="hidden" asp-for="Input.ID" />
  12. <input type="hidden" asp-for="Input.BoardID" />
  13. <input type="hidden" asp-for="Input.ReturnUrl" />
  14. <!-- 제목 -->
  15. <div class="row mb-2">
  16. <label class="col-sm-2 col-form-label"><span class="text-danger">*</span> 제목</label>
  17. <div class="col-sm-10">
  18. <input type="text" asp-for="Input.Subject" class="form-control" maxlength="255" required />
  19. </div>
  20. </div>
  21. <!-- 내용 -->
  22. <div class="row mb-2">
  23. <label class="col-sm-2 col-form-label">내용</label>
  24. <div class="col-sm-10">
  25. <textarea asp-for="Input.Content" class="form-control" rows="10" maxlength="8000"></textarea>
  26. </div>
  27. </div>
  28. <!-- 대표 이미지 -->
  29. <div class="row mb-2">
  30. <label class="col-sm-2 col-form-label">대표 이미지</label>
  31. <div class="col-sm-10">
  32. <div id="thumbPrev" @(string.IsNullOrWhiteSpace(Model.CurrentThumbnail) ? "hidden" : "")>
  33. <img class="img-fluid img-thumbnail" alt="대표 이미지 미리보기" src="@(Model.CurrentThumbnail ?? "")" />
  34. </div>
  35. <input type="file" id="Input_ThumbnailFile" asp-for="Input.ThumbnailFile" class="form-control" accept=".jpg,.jpeg,.png,.gif,.webp,.bmp" />
  36. <span class="form-text text-muted">
  37. 지원 확장자: <code>.jpg</code>, <code>.jpeg</code>, <code>.png</code>, <code>.gif</code>, <code>.webp</code>, <code>.bmp</code><br />
  38. 권장 크기: 가로 300px 이상 (최대 10MB)
  39. </span>
  40. </div>
  41. </div>
  42. <!-- 상태 -->
  43. <div class="row mb-2">
  44. <label class="col-sm-2 col-form-label">상태</label>
  45. <div class="col-sm-10 align-content-center">
  46. <div class="form-check form-check-inline">
  47. <input type="checkbox" class="form-check-input" asp-for="Input.IsNotice" />
  48. <label class="form-check-label" for="Input_IsNotice">공지</label>
  49. </div>
  50. <div class="form-check form-check-inline">
  51. <input type="checkbox" class="form-check-input" asp-for="Input.IsSecret" />
  52. <label class="form-check-label" for="Input_IsSecret">비밀</label>
  53. </div>
  54. <div class="form-check form-check-inline">
  55. <input type="checkbox" class="form-check-input" asp-for="Input.IsAnonymous" />
  56. <label class="form-check-label" for="Input_IsAnonymous">익명</label>
  57. </div>
  58. </div>
  59. </div>
  60. <hr />
  61. <div class="d-grid gap-2 text-center d-md-block">
  62. <button type="submit" class="btn btn-success">저장</button>
  63. <a href="@(Model.ReturnUrl ?? "/Forum/Posts/List")" class="btn btn-secondary">취소</a>
  64. <button type="submit"
  65. class="btn btn-danger"
  66. asp-page-handler="Delete"
  67. formnovalidate
  68. onclick="return confirm('삭제 하시겠습니까? 삭제된 게시물은 복구가 불가능합니다.');">
  69. 삭제
  70. </button>
  71. </div>
  72. <br />
  73. </form>
  74. </div>
  75. @section Scripts {
  76. <script>
  77. setupImagePreview("Input_ThumbnailFile", "thumbPrev");
  78. </script>
  79. }