2022-04-19 16:51:03 +09:00
|
|
|
|
|
|
|
|
|
|
@{
|
|
|
|
|
|
ViewBag.Title = "homer2";
|
|
|
|
|
|
}
|
|
|
|
|
|
@model NP.Model.VMCC
|
|
|
|
|
|
<div class="row mgclear" id="regbox">
|
|
|
|
|
|
<form id="mform" method="post" enctype="multipart/form-data" class="form-horizontal">
|
|
|
|
|
|
<section class="panel panel-default">
|
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
|
@if (Model.Board.pbno != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label">원본글</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
<p class="form-control-static">@Model.BoardP.bmname > @(Model.BoardP.opname ?? "-") > @Model.BoardP.subject</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div>
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label">내용</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
@Html.TextAreaFor(m => m.BoardP.contentstext, new { @class = "form-control", @readonly = "readonly", @style = "resize: none; width: 90%; height: 120px; padding: 3px 5px;" })
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div>
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label req">게시판</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
@if (Model.Board.bno < 1 && Model.Board.pbno == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
@*<select id="Board_bmno" name="Board.bmno" class="form-control disp-init" style="width: auto">
|
|
|
|
|
|
<option value="">-게시판선택</option>
|
|
|
|
|
|
@foreach (var bm in Model.BMs)
|
|
|
|
|
|
{
|
|
|
|
|
|
<option data-bmtype="@bm.bmtype" data-disptype="@bm.disptype" value="@bm.bmno">@bm.bmname@(bm.asname == null ? "" : string.Format(" ({0})", bm.asname)) (@bm.bmcode)</option>
|
|
|
|
|
|
}
|
|
|
|
|
|
</select>*@
|
|
|
|
|
|
<input type="hidden" id="Board_bmno" name="Board.bmno" value="21">
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
@Html.HiddenFor(m => m.Board.bmno)
|
|
|
|
|
|
@Model.Board.bmname
|
|
|
|
|
|
}
|
|
|
|
|
|
@if (Model.Board.bno < 1 || Model.Board.pbno == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
@Html.Partial("./Partial/Select", Model.BMOs, new ViewDataDictionary { { "special", "reg" }, { "name", "Board.opno" }, { "selected", Model.Board.opno }, { "df", ":-말머리선택" }, { "class", "disp-init" } })
|
|
|
|
|
|
}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
}
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label req" id="lbltitle">@(Model.Board.bno > 0 && Model.Board.disptype == 1? "Question" : "제목")</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
@Html.TextBoxFor(m => m.Board.subject, new { @class = "form-control ff", @maxlength = "100" })
|
|
|
|
|
|
<div style="@((Model.Board.bno > 0 && Model.Board.bmtype == 2) ||(Model.Board.pbno != null && Model.BoardP.bmtype == 2) ? "display:none":"")" id="hidebm2">
|
|
|
|
|
|
<label><input type="checkbox" name="Board.issecr" value="1" @(Model.Board.issecr == 1 ? "checked" : "") /> 비밀글</label>
|
|
|
|
|
|
@if (Model.Board.pbno == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
<label><input type="checkbox" name="Board.istop" value="1" @(Model.Board.istop == 1 ? "checked" : "") /> 상단고정</label>
|
|
|
|
|
|
}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
@*<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label">썸네일이미지</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
@Html.Partial("./Partial/File", Model.FileList.Where(w=>w.fgno == Model.Board.fgnothumb).ToList(), new ViewDataDictionary {
|
|
|
|
|
|
{ "name", "Board.fgnothumb" },{"value", Model.Board.fgnothumb },{ "fname", "fgnothumb"},
|
|
|
|
|
|
{"width", null },{"table", "board" },{ "column", "fgnothumb"},{"filecount", 1 },
|
|
|
|
|
|
{"readmode", 0 },{"hidemode", 1 },
|
|
|
|
|
|
{ "isimage", 1 },{ "imageid", "fgnothumb" },{ "dftsrc", "/img/common/profile_sample.jpg" },
|
|
|
|
|
|
{ "fileext", "" }, { "loginfo",Model.Board.bno+"|9"}
|
|
|
|
|
|
})
|
|
|
|
|
|
<br />
|
|
|
|
|
|
<img id="fgnothumb" src="@(Model.FileList.Where(w=>w.fgno == Model.Board.fgnothumb).Count() > 0 && !string.IsNullOrEmpty(Model.FileList.Where(w=>w.fgno == Model.Board.fgnothumb).First().fileurl) ? string.Format("{0}{1}", Model.Files, Model.FileList.Where(w=>w.fgno == Model.Board.fgnothumb).First().fileurl) : "/img/common/profile_sample.jpg")" style="max-width: 100px; max-height: 50px; border-radius: 5px;" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>*@
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label req" id="lblcontents">@(Model.Board.bno > 0 && Model.Board.disptype == 1 ? "Answer" : "내용")</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">@Html.TextAreaFor(m => m.Board.contents, new { @class = "form-control", @style = "resize: none; width: 90%; height: 120px; padding: 3px 5px;" })</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label">첨부파일</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">
|
|
|
|
|
|
@Html.Partial("./Partial/File", Model.FileList.Where(w => w.fgno == Model.Board.fgno).ToList(), new ViewDataDictionary {
|
|
|
|
|
|
{ "name", "Board.fgno" },{"value", Model.Board.fgno },{ "fname", "fgno"},
|
|
|
|
|
|
{"width", null },{"table", "board" },{ "column", "fgno"},{"filecount", 10 },
|
|
|
|
|
|
{"readmode", 0 },{"hidemode", 0 },
|
|
|
|
|
|
{ "isimage", 0 }, { "fileext", "" }})
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line line-dashed line-lg pull-in"></div><div class="form-group">
|
|
|
|
|
|
<label class="col-sm-4 col-md-2 control-label">공개여부</label>
|
|
|
|
|
|
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", Model.Board.isopen }, { "name", "Board.isopen" } })</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<section id="commentsection" class="panel panel-default" style="@(Model.Board.bno < 1 || Model.Board.isreply == 0 || Model.Board.isopen == 0 ? "display: none;":"")">
|
|
|
|
|
|
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 댓글관리<span class=""></span></strong></header>
|
|
|
|
|
|
<div style="padding: 10px;">
|
|
|
|
|
|
<input id="cmt" class="form-control disp-init cmt" />
|
|
|
|
|
|
<a href="#" class="btn btn-select" style="line-height: 50px; vertical-align: top; padding: 0 7px;" onclick="savecmt()"><i class="fa fa-save"></i> 댓글저장</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<ul id="ulcmt">
|
|
|
|
|
|
@foreach (var c in Model.BoardCMTs)
|
|
|
|
|
|
{
|
|
|
|
|
|
<li data-no="@c.bcno">@c.cnoname | @c.cdtymdhm<br /><input class="form-control disp-init cmt cmtinput" value="@c.ctext" /> <a href="#" class="cmtbtn cmtup"><i class="fa fa-save"></i></a> <a class="cmtbtn cmtdel" href="#"><i class="fa fa-trash-o"></i></a></li>
|
|
|
|
|
|
}
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<div class="botfixempty"> </div>
|
|
|
|
|
|
<div class="form-group botfix">
|
|
|
|
|
|
@if (Model.Board.bno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Model.Board.pbno == null && Model.Board.istop == 0 && Model.Board.bmtype > 0 && Model.Board.ccount < 1 && Model.Board.disptype != 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
<a href="#" class="btn btn-info" onclick="reply();">답글</a>
|
|
|
|
|
|
}
|
|
|
|
|
|
<a href="#" class="btn btn-danger" onclick="del();">삭제</a>
|
|
|
|
|
|
}
|
|
|
|
|
|
<a href="#" class="btn btn-primary" onclick="save();">저장</a>
|
2022-05-06 16:40:02 +09:00
|
|
|
|
<a href="#" class="btn btn-default" onclick="golist();">목록</a>
|
2022-04-19 16:51:03 +09:00
|
|
|
|
</div>
|
|
|
|
|
|
@Html.HiddenFor(m => m.longval)
|
|
|
|
|
|
@Html.HiddenFor(m => m.Board.bno)
|
|
|
|
|
|
@Html.HiddenFor(m => m.Board.pbno)
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|
2022-05-06 16:40:02 +09:00
|
|
|
|
<form id="dform" method="post" action="/cc/homesemployess">
|
2022-04-19 16:51:03 +09:00
|
|
|
|
<input type="hidden" id="pbno" name="Board.pbno" />
|
|
|
|
|
|
@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })
|
|
|
|
|
|
</form>
|
|
|
|
|
|
@section styles{
|
|
|
|
|
|
@Html.Partial("./Partial/Summernotestyle")
|
|
|
|
|
|
<style type="text/css">
|
|
|
|
|
|
#ulcmt {
|
|
|
|
|
|
padding: 10px 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#ulcmt li {
|
|
|
|
|
|
border: 1px solid #ddd;
|
|
|
|
|
|
padding: 5px 10px;
|
|
|
|
|
|
margin-bottom: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cmt {
|
|
|
|
|
|
width: 500px;
|
|
|
|
|
|
height: 50px;
|
|
|
|
|
|
resize: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cmtbtn {
|
|
|
|
|
|
font-size: 30px;
|
|
|
|
|
|
line-height: 50px;
|
|
|
|
|
|
margin-top: -30px;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
}
|
|
|
|
|
|
@section scriptsHeader{
|
|
|
|
|
|
@Html.Partial("./Partial/FileScript")
|
|
|
|
|
|
@Html.Partial("./Partial/Summernote")
|
|
|
|
|
|
}
|
|
|
|
|
|
@section scripts{
|
|
|
|
|
|
<script>
|
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
|
|
$("#Board_bmno").on("change", function () {
|
|
|
|
|
|
$("#Board_opno option:gt(0)").remove();
|
|
|
|
|
|
sett("lbltitle", "제목");
|
|
|
|
|
|
sett("lblcontents", "내용");
|
|
|
|
|
|
if ($(this).val() != "") {
|
|
|
|
|
|
if ($('option:selected', this).attr('data-disptype') == "1") {
|
|
|
|
|
|
sett("lbltitle", "Question");
|
|
|
|
|
|
sett("lblcontents", "Answer");
|
|
|
|
|
|
}
|
|
|
|
|
|
_binddataid = "Board_opno";
|
|
|
|
|
|
capp("/acommon/boardmasteropeningget", { bmno: $(this).val() }, "binddata");
|
|
|
|
|
|
}
|
|
|
|
|
|
$("#hidebm2").show();
|
|
|
|
|
|
if ($('option:selected', this).attr('data-bmtype') == "2") {
|
|
|
|
|
|
$("#hidebm2").hide();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
$('#Board_contents').summernote({
|
|
|
|
|
|
height: 150,
|
|
|
|
|
|
tabsize: 2,
|
|
|
|
|
|
callbacks: {
|
|
|
|
|
|
onImageUpload: function (files, editor, welEditable) {
|
|
|
|
|
|
var fdata = new FormData();
|
|
|
|
|
|
fdata.append('img', files[0]);
|
|
|
|
|
|
fdata.append('fd', "Editor");
|
|
|
|
|
|
uploadeditorimage(files, this, fdata, "cbeditorupload()");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
$("body").on("click", "a.cmtup", function () {
|
|
|
|
|
|
capp("/acommon/boardcmtsave", { bcno: $(this).closest("li").attr("data-no"), ctext: $(this).closest("li").find("input").val() }, "cbcmtup");
|
|
|
|
|
|
});
|
|
|
|
|
|
$("body").on("click", "a.cmtdel", function () {
|
|
|
|
|
|
_cmtdelli = $(this).closest("li");
|
|
|
|
|
|
capp("/acommon/boardcmtsave", { bcno: $(this).closest("li").attr("data-no"), isdel: 1 }, "cbcmtdel");
|
|
|
|
|
|
});
|
|
|
|
|
|
$('input[name="Board.isopen"]').change(function () {
|
|
|
|
|
|
if ($("#Board_isopen1").prop("checked")) {
|
|
|
|
|
|
$("#commentsection").attr("style", "");
|
|
|
|
|
|
} else if ($("#Board_isopen0").prop("checked")) {
|
|
|
|
|
|
$("#commentsection").attr("style", "display: none;");
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
var _cmtdelli;
|
|
|
|
|
|
function reply() {
|
|
|
|
|
|
setv("pbno", @Model.Board.bno);
|
|
|
|
|
|
$("#dform").attr("action", "/cc/homer2");
|
|
|
|
|
|
bglayer();
|
|
|
|
|
|
submit("dform");
|
|
|
|
|
|
}
|
|
|
|
|
|
function save() {
|
|
|
|
|
|
var cdata = $('#Board_contents').summernote('code');
|
|
|
|
|
|
cdata = cdata == "<p><br></p>" ? "" : cdata;
|
|
|
|
|
|
$("#Board_contents").val(cdata);
|
|
|
|
|
|
if (@(Model.Board.pbno??0) == 0 && check("Board_bmno", null, "게시판을 선택해주세요.")) { }
|
|
|
|
|
|
else if (@(Model.Board.pbno??0) == 0 && $("#Board_opno option").length > 1 && check("Board_opno", null, "말머리를 선택해주세요.")) { }
|
|
|
|
|
|
else if (check("Board_subject", null, "제목을 입력해주세요.")) { }
|
|
|
|
|
|
else if (getBytes(val("Board_contents")) < 1) { $('#Board_contents').summernote('focus'); alert("내용을 입력하세요."); }
|
|
|
|
|
|
else if (confirm("저장하시겠습니까?")) {
|
|
|
|
|
|
capfileform("/acommon/boardsave", "mform", "cbsave");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function cbsave() {
|
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
|
if ('@(Model.Board.bno)' == '0') {
|
|
|
|
|
|
setv("dform_longval", capResult.obj);
|
|
|
|
|
|
}
|
|
|
|
|
|
msgok(1, null, true);
|
|
|
|
|
|
$("#dform").attr("action", "/cc/homer2");
|
|
|
|
|
|
submit("dform", 500);
|
|
|
|
|
|
}
|
|
|
|
|
|
else { msgdev(); }
|
|
|
|
|
|
}
|
|
|
|
|
|
function del() {
|
|
|
|
|
|
if (confirm("삭제하시겠습니까?")) {
|
|
|
|
|
|
capp("/acommon/boarddel", { bno: @Model.Board.bno}, "cbdel");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function cbdel() {
|
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
|
msgok(0, null, true);
|
2022-05-06 16:40:02 +09:00
|
|
|
|
$("#dform").attr("action", "/cc/homesemployess");
|
2022-04-19 16:51:03 +09:00
|
|
|
|
submit("dform", 500);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function savecmt() {
|
|
|
|
|
|
if (getBytes(val("cmt")) < 1) {
|
|
|
|
|
|
focus("cmt"); msg("댓글을 입력후 저장해주세요.");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
capp("/acommon/boardcmtsave", {bno: @Model.Board.bno, ctext: val("cmt") }, "cbsavecmt");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function cbsavecmt() {
|
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
|
$("#ulcmt").prepend("<li data-no=\"" + capResult.obj + "\">@(Model.SCUserName) | " + capResult.msg + "<br /><input class=\"form-control disp-init cmt cmtinput\" value=\"" + val("cmt") + "\" /> <a href=\"#\" class=\"cmtbtn cmtup\"><i class=\"fa fa-save\"></i></a> <a href=\"#\" class=\"cmtbtn cmtdel\"><i class=\"fa fa-trash-o\"></i></a></li>");
|
|
|
|
|
|
setv("cmt", "");
|
|
|
|
|
|
msg("저장되었습니다.");
|
|
|
|
|
|
} else { msgdev(); }
|
|
|
|
|
|
}
|
|
|
|
|
|
function cbcmtup() {
|
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
|
msg("저장되었습니다.");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function cbcmtdel() {
|
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
|
$(_cmtdelli).remove();
|
|
|
|
|
|
msg("삭제되었습니다.");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
}
|