YNICTE/BO/Views/cc/roomr.cshtml

301 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 />
<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">&nbsp;</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>
}