| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- @model Admin.ViewModels.Forum.Board.Meta.IndexViewModel
- @using Library.Constants
- @{
- ViewData["Title"] = "게시판 관리 - 작성";
- }
- <div class="container">
- <partial name="~/Views/Forum/Board/Meta/_Header.cshtml"/>
- <partial name="_StatusMessage" />
- <partial name="_Editor" />
- <partial name="~/Views/Forum/Board/Meta/_Navbar.cshtml" />
- <form name="f_admin_write" id="fAdminWrite" method="post" accept-charset="utf-8" autocomplete="off" action="/Forum/Board/Meta/Update/Write" enctype="multipart/form-data">
- <input type="hidden" name="BoardMeta.Board.Code" value="@Model.Board.Code" />
- <input type="hidden" asp-for="BoardMeta.ID" />
- <input type="hidden" asp-for="BoardMeta.BoardID" />
- <div class="row mb-3">
- <label for="BoardMeta_Write_ShowHeader" class="col-sm-2 col-form-label">상단 내용</label>
- <div class="col-md-10">
- <div class="form-check">
- <input type="checkbox" asp-for="BoardMeta.Write.ShowHeader" class="form-check-input" />
- <label for="BoardMeta_Write_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="BoardMeta.Write.HeaderContent" class="form-control ck-editor"></textarea>
- <span asp-validation-for="BoardMeta.Write.HeaderContent" class="text-danger"></span>
- <small class="text-muted form-text">작성란 상단에 표시될 내용을 입력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_ShowFooter" class="col-sm-2 col-form-label">하단 내용</label>
- <div class="col-md-10">
- <div class="form-check">
- <input type="checkbox" asp-for="BoardMeta.Write.ShowFooter" class="form-check-input" />
- <label for="BoardMeta_Write_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="BoardMeta.Write.FooterContent" class="form-control ck-editor"></textarea>
- <span asp-validation-for="BoardMeta.Write.FooterContent" class="text-danger"></span>
- <small class="text-muted form-text">작성란 하단에 표시될 내용을 입력합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_DefaultSubject" class="col-md-2 col-form-label">기본 제목</label>
- <div class="col-md-10">
- <input type="text" asp-for="BoardMeta.Write.DefaultSubject" class="form-control" maxlength="@PostConst.MaxAllowedSubjectLength" />
- <span asp-validation-for="BoardMeta.Write.DefaultSubject" class="text-danger"></span>
- <small class="text-muted form-text">글 작성 시 기본으로 표시될 제목입니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_DefaultContent" class="col-md-2 col-form-label">기본 내용</label>
- <div class="col-md-10">
- <textarea asp-for="BoardMeta.Write.DefaultContent" class="form-control @(Model.BoardMeta.Write.AllowEditor ? "ck-editor" : "")" maxlength="@PostConst.MaxAllowedContentLength"></textarea>
- <span asp-validation-for="BoardMeta.Write.DefaultContent" class="text-danger"></span>
- <small class="text-muted form-text">글 작성 시 기본으로 표시될 내용입니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowEditor" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowEditor" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">본문을 웹 기반 에디터로 수정할 수 있도록합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowPrefix" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowPrefix" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">말머리를 사용할 수 있도록 합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.RequiredPrefix" class="form-check-input" />
- <label asp-for="BoardMeta.Write.RequiredPrefix" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">말머리를 필수 선택하도록 합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowSecret" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowSecret" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">비밀글 작성 기능을 활성화합니다. 비밀글은 작성자 본인과 게시판 관리자 이상만 열람 가능합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowTag" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowTag" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">태그 기능을 활성화합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.TagLimit" class="form-control" min="1" max="{@PostConst.MaxAllowedTags}" required />
- <span asp-validation-for="BoardMeta.Write.TagLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">태그의 최대 개수를 설정합니다. 최대 {@PostConst.MaxAllowedTags}개</small>
- </div>
- </div>
- <br />
- <h3>웹 에디터 기능 설정</h3>
- <hr />
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowImage" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowImage" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">이미지 업로드 기능을 활성화합니다. </small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.ImageUploadLimit" class="form-control" min="1" max="{@PostConst.MaxAllowedImages}" required />
- <span asp-validation-for="BoardMeta.Write.ImageUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 이미지의 최대 개수를 설정합니다. 최대 @(PostConst.MaxAllowedImages)개</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.ImageUploadMaxSize" class="form-control" min="0" required />
- <span class="input-group-text">KB</span>
- </div>
- <span asp-validation-for="BoardMeta.Write.ImageUploadMaxSize" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">이미지 하나당 최대 용량을 설정합니다. 최대 @(PostConst.MaxAllowedImageSize)KB</small>
- </div>
- </div>
- <hr />
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowMedia" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowMedia" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">미디어 추가 기능을 활성화합니다. (웹 에디터를 사용해야 가능)</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.MediaUploadLimit" class="form-control" min="1" max="@PostConst.MaxAllowedMedias" required />
- <span asp-validation-for="BoardMeta.Write.MediaUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 동영상의 최대 개수를 설정합니다. 최대 @(PostConst.MaxAllowedMedias)개</small>
- </div>
- </div>
- <hr />
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.AllowFile" class="form-check-input" />
- <label asp-for="BoardMeta.Write.AllowFile" class="form-check-label">사용합니다.</label>
- </div>
- <small class="text-muted form-text">파일 추가 기능을 활성화합니다.</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.FileUploadLimit" class="form-control" min="1" max="@PostConst.MaxAllowedFiles" required />
- <span asp-validation-for="BoardMeta.Write.FileUploadLimit" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">첨부 가능한 파일의 최대 개수를 설정합니다. 최대 @(PostConst.MaxAllowedFiles)개</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_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="BoardMeta.Write.FileUploadMaxSize" class="form-control" min="1" max="@PostConst.MaxAllowedFileSize" required />
- <span class="input-group-text">KB</span>
- </div>
- <span asp-validation-for="BoardMeta.Write.FileUploadMaxSize" class="text-danger"></span>
- </div>
- </div>
- <small class="text-muted form-text">파일 하나당 최대 용량을 설정합니다. 최대 @(PostConst.MaxAllowedFileSize)KB</small>
- </div>
- </div>
- <div class="row mb-3">
- <label for="BoardMeta_Write_FileUploadExtension" class="col-md-2 col-form-label">파일 허용 확장자</label>
- <div class="col-md-10">
- <input type="text" asp-for="BoardMeta.Write.FileUploadExtension" class="form-control" />
- <span asp-validation-for="BoardMeta.Write.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-sm btn-success">저장</button>
- <a href="/Forum/Board/List?@ViewBag.QueryString" class="btn btn-sm btn-secondary">취소</a>
- </div>
- <br />
- </form>
- </div>
- @section Scripts {
- <script>
- $(document).on("change", "#BoardMeta_Write_AllowEditor", function(e) {
- const textareaID = "BoardMeta_Write_DefaultContent";
- if (e.target.checked) { // CKEditor 표시
- initEditor(textareaID);
- } else { // Textarea로 변경
- destroyEditor(textareaID);
- }
- });
- </script>
- }
|