307 lines
16 KiB
Plaintext
307 lines
16 KiB
Plaintext
@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.tyear)년 @(Model.BoardP.tseq)기 @(Model.BoardP.cname) (@Model.BoardP.classno) > @Model.BoardP.bmname > @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)
|
|
{
|
|
<select id="tyear" class="form-control disp-init" style="width: auto">
|
|
<option value="">-년도선택</option>
|
|
@foreach (var y in Model.Terms.Select(s => s.tyear).Distinct())
|
|
{
|
|
<option value="@y" @(Model.Board.tyear == y ? "selected" : "")>@y 년</option>
|
|
}
|
|
</select>
|
|
<select id="tmno" class="form-control disp-init" style="width: auto">
|
|
<option value="">-기수선택</option>
|
|
</select>
|
|
<select id="Board_cmno" name="Board.cmno" class="form-control disp-init" style="width: auto">
|
|
<option value="">-강좌(반)선택</option>
|
|
</select>
|
|
}
|
|
else
|
|
{
|
|
@:@(Model.Board.tyear)년 @(Model.Board.tseq)기 @Model.Board.cname (@(Model.Board.classno))
|
|
}
|
|
</div>
|
|
</div>
|
|
<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)
|
|
{
|
|
<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 value="@bm.bmno">@bm.bmname@(bm.asname == null ? "" : string.Format(" ({0})", bm.asname))</option>
|
|
}*@
|
|
</select>
|
|
}
|
|
else
|
|
{
|
|
@Html.HiddenFor(m => m.Board.bmno)
|
|
@Model.Board.bmname
|
|
}
|
|
</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">제목</label>
|
|
<div class="col-sm-8 col-md-10">
|
|
@Html.TextBoxFor(m => m.Board.subject, new { @class = "form-control ff", @maxlength = "100" })<br />
|
|
@if (Model.Board.bno == Model.Board.issecr)
|
|
{
|
|
<label><input type="checkbox" name="Board.issecr" value="1" @(Model.Board.issecr == 0 ? "checked" : "") /> 비밀글</label>
|
|
}
|
|
else {
|
|
<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 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">내용</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;">
|
|
<textarea id="cmt" class="form-control disp-init cmt"></textarea>
|
|
<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 /><textarea class="form-control disp-init cmt">@c.ctext</textarea> <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>
|
|
<a href="#" class="btn btn-default" onclick="golist();">목록</a>
|
|
</div>
|
|
@Html.HiddenFor(m => m.longval)
|
|
@Html.HiddenFor(m => m.Board.bno)
|
|
@Html.HiddenFor(m => m.Board.pbno)
|
|
</form>
|
|
</div>
|
|
<form id="dform" method="post" action="/cc/rooms">
|
|
<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>
|
|
var terms = '@(string.Join(";", Model.Terms.Select(s=>string.Format("{0}:{1}:{2}", s.tmno, s.tyear, s.tseq))))';
|
|
$(document).ready(function () {
|
|
$('#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("textarea").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");
|
|
});
|
|
$("#tyear").on("change", function () {
|
|
$("#tmno option:gt(0)").remove();
|
|
$("#Board_cmno option:gt(0)").remove();
|
|
var y = $(this).val();
|
|
if (y != "") {
|
|
$.each(terms.split(';'), function (i, t) {
|
|
if (t.split(':')[1] == y) {
|
|
$("#tmno").append("<option value=\"" + t.split(':')[0] + "\">" + t.split(':')[2] + " 기</optoin>");
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$("#tmno").on("change", function () {
|
|
$("#Board_cmno option:gt(0)").remove();
|
|
if ($(this).val() != "") {
|
|
capp("/acommon/cmgetforboard", { tmno: $(this).val() }, "cbget1");
|
|
}
|
|
});
|
|
$("#Board_cmno").on("change", function () {
|
|
$("#Board_bmno option:gt(0)").remove();
|
|
if ($(this).val() != "") {
|
|
capp("/acommon/bmgetforboard", { cmno: $(this).val() }, "cbget2");
|
|
}
|
|
});
|
|
$('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;");
|
|
}
|
|
});
|
|
});
|
|
function cbget1() {
|
|
$.each(capResult.obj, function (i, c) {
|
|
$("#Board_cmno").append("<option value=\"" + c.cmno + "\">" + c.cname + "(" + c.classno + ")</optoin>");
|
|
});
|
|
}
|
|
function cbget2() {
|
|
$.each(capResult.obj, function (i, c) {
|
|
if (c.asname == null) {
|
|
$("#Board_bmno").append("<option value=\"" + c.bmno + "\">" + c.bmname + "</optoin>");
|
|
} else {
|
|
$("#Board_bmno").append("<option value=\"" + c.bmno + "\">" + c.bmname +"("+c.asnme+ ")</optoin>");
|
|
}
|
|
});
|
|
}
|
|
var _cmtdelli;
|
|
function reply() {
|
|
setv("pbno", @Model.Board.bno);
|
|
$("#dform").attr("action", "/cc/roomr");
|
|
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 && @Model.Board.bno < 1 && check("Board_cmno", null, "강좌를 선택해주세요.")) { }
|
|
else if (@(Model.Board.pbno??0) == 0 && check("Board_bmno", 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/roomr");
|
|
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);
|
|
$("#dform").attr("action", "/cc/rooms");
|
|
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 /><textarea class=\"form-control disp-init cmt\">" + val("cmt") + "</textarea> <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>
|
|
}
|