| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- @page "{id:int}"
- @model Admin.Pages.Forum.Board.Meta.WriteModel
- @using Domain.Entities.Forum.Constants
- @{
- ViewData["Title"] = "게시판 관리 - 작성";
- ViewData["Sector"] = "Write";
- ViewData["BoardID"] = Model.BoardID;
- ViewData["BoardList"] = Model.BoardList;
- ViewData["QueryString"] = Model.QueryString;
- }
- <div class="container">
- <partial name="_Header" />
- <partial name="_StatusMessage" />
- <partial name="_Editor" />
- <partial name="/Pages/Forum/Board/_NavTabs.cshtml" />
- <form name="f_admin_write" id="fAdminWrite" method="post" accept-charset="utf-8" autocomplete="off" enctype="multipart/form-data">
- <input type="hidden" asp-for="Input.ID" />
- <input type="hidden" asp-for="Input.BoardID" />
- <div class="row mb-3">
- <label for="Input_ShowHeader" class="col-sm-2 col-form-label">상단 내용</label>
- <div class="col-md-10">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.ShowHeader" class="form-check-input" />
- <label for="Input_ShowHeader" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">게시판 상단에 내용을 출력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label class="col-md-2 col-form-label"></label>
- <div class="col-md-10">
- <textarea asp-for="Input.HeaderContent" class="form-control ck-editor"></textarea>
- <span asp-validation-for="Input.HeaderContent" class="text-danger"></span>
- <small class="text-muted form-text">작성란 상단에 표시될 내용을 입력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_ShowFooter" class="col-sm-2 col-form-label">하단 내용</label>
- <div class="col-md-10">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.ShowFooter" class="form-check-input" />
- <label for="Input_ShowFooter" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">게시판 하단에 내용을 출력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label class="col-md-2 col-form-label"></label>
- <div class="col-md-10">
- <textarea asp-for="Input.FooterContent" class="form-control ck-editor"></textarea>
- <span asp-validation-for="Input.FooterContent" class="text-danger"></span>
- <small class="text-muted form-text">작성란 하단에 표시될 내용을 입력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_DefaultSubject" class="col-md-2 col-form-label">기본 제목</label>
- <div class="col-md-10">
- <input type="text" asp-for="Input.DefaultSubject" class="form-control" maxlength="@PostConstant.MaxAllowedSubjectLength" />
- <span asp-validation-for="Input.DefaultSubject" class="text-danger"></span>
- <small class="text-muted form-text">글 작성 시 기본으로 표시될 제목입니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_DefaultContent" class="col-md-2 col-form-label">기본 내용</label>
- <div class="col-md-10">
- <textarea asp-for="Input.DefaultContent" class="form-control @(Model.Input.AllowEditor ? "ck-editor" : "")" maxlength="@PostConstant.MaxAllowedContentLength"></textarea>
- <span asp-validation-for="Input.DefaultContent" class="text-danger"></span>
- <small class="text-muted form-text">글 작성 시 기본으로 표시될 내용입니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_AllowEditor" class="col-md-2 col-form-label">웹 에디터 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowEditor" class="form-check-input" />
- <label asp-for="Input.AllowEditor" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">본문을 웹 기반 에디터로 수정할 수 있도록합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_AllowPrefix" class="col-md-2 col-form-label">말머리 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowPrefix" class="form-check-input" />
- <label asp-for="Input.AllowPrefix" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">말머리를 사용할 수 있도록 합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_RequiredPrefix" class="col-md-2 col-form-label">말머리 필수 선택</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.RequiredPrefix" class="form-check-input" />
- <label asp-for="Input.RequiredPrefix" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">말머리를 필수 선택하도록 합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_AllowSecret" class="col-md-2 col-form-label">비밀글 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowSecret" class="form-check-input" />
- <label asp-for="Input.AllowSecret" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">비밀글 작성 기능을 활성화합니다. 비밀글은 작성자 본인과 게시판 관리자 이상만 열람 가능합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_AllowTag" class="col-md-2 col-form-label">태그 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowTag" class="form-check-input" />
- <label asp-for="Input.AllowTag" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">태그 기능을 활성화합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_TagLimit" class="col-12 col-lg-2 col-form-label">태그 개수 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <input type="number" asp-for="Input.TagLimit" class="form-control" min="1" max="@PostConstant.MaxAllowedTags" required />
- <span asp-validation-for="Input.TagLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">태그의 최대 개수를 설정합니다. 최대 @(PostConstant.MaxAllowedTags)개</small>
- </div>
- </div>
- <br />
- <h3>웹 에디터 기능 설정</h3>
- <hr />
- <div class="row mb-3">
- <label for="Input_AllowImage" class="col-md-2 col-form-label">이미지 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowImage" class="form-check-input" />
- <label asp-for="Input.AllowImage" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">이미지 업로드 기능을 활성화합니다. </small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_ImageUploadLimit" class="col-12 col-lg-2 col-form-label">이미지 개수 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <input type="number" asp-for="Input.ImageUploadLimit" class="form-control" min="1" max="@PostConstant.MaxAllowedImages" required />
- <span asp-validation-for="Input.ImageUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 이미지의 최대 개수를 설정합니다. 최대 @(PostConstant.MaxAllowedImages)개</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_ImageUploadMaxSize" class="col-12 col-lg-2 col-form-label">이미지 용량 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <div class="input-group">
- <input type="number" asp-for="Input.ImageUploadMaxSize" class="form-control" min="0" required />
- <span class="input-group-text">KB</span>
- </div>
- <span asp-validation-for="Input.ImageUploadMaxSize" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">이미지 하나당 최대 용량을 설정합니다. 최대 @(PostConstant.MaxAllowedImageSize)KB</small>
- </div>
- </div>
- <hr />
- <div class="row mb-3">
- <label for="Input_AllowMedia" class="col-md-2 col-form-label">미디어 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowMedia" class="form-check-input" />
- <label asp-for="Input.AllowMedia" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">미디어 추가 기능을 활성화합니다. (웹 에디터를 사용해야 가능)</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_MediaUploadLimit" class="col-12 col-lg-2 col-form-label">동영상 개수 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <input type="number" asp-for="Input.MediaUploadLimit" class="form-control" min="1" max="@PostConstant.MaxAllowedMedias" required />
- <span asp-validation-for="Input.MediaUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 동영상의 최대 개수를 설정합니다. 최대 @(PostConstant.MaxAllowedMedias)개</small>
- </div>
- </div>
- <hr />
- <div class="row mb-3">
- <label for="Input_AllowFile" class="col-md-2 col-form-label">파일 사용</label>
- <div class="col-md-10 align-self-center">
- <div class="form-check">
- <input type="checkbox" asp-for="Input.AllowFile" class="form-check-input" />
- <label asp-for="Input.AllowFile" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">파일 추가 기능을 활성화합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_FileUploadLimit" class="col-12 col-lg-2 col-form-label">파일 개수 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <input type="number" asp-for="Input.FileUploadLimit" class="form-control" min="1" max="@PostConstant.MaxAllowedFiles" required />
- <span asp-validation-for="Input.FileUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 파일의 최대 개수를 설정합니다. 최대 @(PostConstant.MaxAllowedFiles)개</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_FileUploadMaxSize" class="col-12 col-lg-2 col-form-label">파일 용량 제한</label>
- <div class="col-lg-10">
- <div class="row">
- <div class="col-12 col-lg-auto">
- <div class="input-group">
- <input type="number" asp-for="Input.FileUploadMaxSize" class="form-control" min="1" max="@PostConstant.MaxAllowedFileSize" required />
- <span class="input-group-text">KB</span>
- </div>
- <span asp-validation-for="Input.FileUploadMaxSize" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">파일 하나당 최대 용량을 설정합니다. 최대 @(PostConstant.MaxAllowedFileSize)KB</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="Input_FileUploadExtension" class="col-md-2 col-form-label">파일 허용 확장자</label>
- <div class="col-md-10">
- <input type="text" asp-for="Input.FileUploadExtension" class="form-control" />
- <span asp-validation-for="Input.FileUploadExtension" class="text-danger"></span>
- <small class="form-text text-muted">
- 허용할 파일 확장자를 입력합니다. (예: jpg,png,gif)<br/>
- HTML5 File 속성 사용, `|` 로 구분하여 입력, 입력하지 않으면 확장자 제한없이 첨부 가능
- <br/><a href="//www.w3schools.com/tags/att_input_accept.asp" target="_blank">[FILE 속성 참고]</a><br/>
- <pre><input accept="<em>file_extension</em>|audio/*|video/*|image/*|<i>media_type</i>"></pre>
- </small>
- </div>
- </div>
- <hr />
- <div class="d-grid gap-2 text-center d-md-block">
- <button type="submit" class="btn btn-success">저장</button>
- <a href="/Forum/Board/List\@Model.QueryString" class="btn btn-secondary">취소</a>
- </div>
- <br />
- </form>
- </div>
- @section Scripts {
- <script>
- $(document).on("change", "#Input_AllowEditor", function(e) {
- const textareaID = "Input_DefaultContent";
- if (e.target.checked) { // CKEditor 표시
- initEditor(textareaID);
- } else { // Textarea로 변경
- destroyEditor(textareaID);
- }
- });
- </script>
- }
|