YNICTE/BO/Views/cm/cts.cshtml

248 lines
13 KiB
Plaintext

@model NP.Model.VMCM
@{
var qdiff = Model.ComCodes.Where(w => w.cgroup == "ccdiff");
var qt1 = Model.ComCodes.Where(w => w.cgroup == "cc1");
var qt2 = Model.ComCodes.Where(w => w.cgroup == "cc2");
var qt3 = Model.ComCodes.Where(w => w.cgroup == "cc3");
var qt4 = Model.ComCodes.Where(w => w.cgroup == "cc4");
var qt5 = Model.ComCodes.Where(w => w.cgroup == "cc5");
var isqdiff = qdiff.Count() > 0;
var isqt1 = qt1.Count() > 0;
var isqt2 = qt2.Count() > 0;
var isqt3 = qt3.Count() > 0;
var isqt4 = qt4.Count() > 0;
var isqt5 = qt5.Count() > 0;
}
<div>
<ul class="pagination pagination-md" style="margin: 0;">
<li class="active"><a href="#" data-toggle="tab">학습콘텐츠</a></li>
@if (!ViewBag.IsSubAdmin96)
{
<li class=""><a href="#" onclick="gotab(2);" data-toggle="tab">문제</a></li>
<li class=""><a href="#" onclick="gotab(0);" data-toggle="tab">그룹코드관리</a></li>
<li class=""><a href="#" onclick="gotab(3);" data-toggle="tab">설문지</a></li>
}
</ul>
</div>
<br />
<form id="mform" method="post">
<section class="panel panel-default clearfix devsearch">
@Html.Partial("./Partial/SearchCaption")
<div class="step-content">
<div class="step-pane active form-inline" style="line-height: 5px;">
@Html.Partial("./Partial/Select", Model.CMs, new ViewDataDictionary { { "name", "stringval" }, { "selected", Model.stringval }, { "cssclass", "searchcon " }, { "df", ":과정명" } })
@if (isqdiff)
{@Html.Partial("./Partial/Select", qdiff, new ViewDataDictionary { { "name", "stringval2" }, { "selected", Model.stringval2 }, { "cssclass", "searchcon " }, { "df", ":" + qdiff.First().cgroupname } })}
@if (isqt1)
{@Html.Partial("./Partial/Select", qt1, new ViewDataDictionary { { "name", "stringval3" }, { "selected", Model.stringval3 }, { "cssclass", "searchcon " }, { "df", ":" + qt1.First().cgroupname } })}
@if (isqt2)
{@Html.Partial("./Partial/Select", qt2, new ViewDataDictionary { { "name", "stringval4" }, { "selected", Model.stringval4 }, { "cssclass", "searchcon " }, { "df", ":" + qt2.First().cgroupname } })}
@if (isqt3)
{@Html.Partial("./Partial/Select", qt3, new ViewDataDictionary { { "name", "stringval5" }, { "selected", Model.stringval5 }, { "cssclass", "searchcon " }, { "df", ":" + qt3.First().cgroupname } })}
@if (isqt4)
{@Html.Partial("./Partial/Select", qt4, new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "cssclass", "searchcon " }, { "df", ":" + qt4.First().cgroupname } })}
@if (isqt5)
{@Html.Partial("./Partial/Select", qt5, new ViewDataDictionary { { "name", "stringval7" }, { "selected", Model.stringval7 }, { "cssclass", "searchcon " }, { "df", ":" + qt5.First().cgroupname } })}
@Html.Partial("./Partial/Select", Model.stringval8, new ViewDataDictionary { { "name", "stringval8" }, { "selected", Model.stringval8 }, { "valuetext", ":사용여부;1:사용;0:미사용" } })
<br /><br />
@Html.Partial("./Partial/Text", Model.searchtext, Helpers.DicText(new NP.Model.TextDic() { PH = "콘텐츠명을 입력하세요.", Name = "searchtext", Value = Model.searchtext }))
@Html.Partial("./Partial/Button", new NP.Model.Button() { Special = "search" })
</div>
</div>
</section>
<div class="tar buttonbox">
<a href="#" onclick="javascript:delme();" class="btn btn-s-xs btn-danger">선택삭제</a>
<a href="#" onclick="javascript:reg(0);" class="btn btn-s-xs btn-info">개별등록</a>
<a href="#" onclick="javascript:reg(-1);" class="btn btn-s-xs btn-info">일괄등록</a>
<a href="~/Content/file/contents.xlsx" class="btn btn-s-xs btn-default">일괄등록양식다운로드</a>
</div>
<section class="panel panel-default">
<header class="panel-heading">문제목록</header>
<div class="table-responsive" id="excel1">
<table class="table table-striped b-t b-light">
<thead>
<tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="80">No</th>
<th>Code</th>
<th>과정명</th>
<th>유형</th>
<th>콘텐츠명</th>
<th>수정일</th>
<th>사용여부</th>
<th>미리보기</th>
</tr>
</thead>
<tbody class="data" id="tbody1">
@foreach (var item in Model.CTs)
{
<tr>
<td>@Html.Raw(Model.addstringval.Contains("," + item.ctno + ",") ? "" : string.Format("<input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" />", item.ctno))</td>
<td>@item.rnorvt (@item.ctno)</td>
<td>@item.ccode</td>
<td class="text-left">@item.cname</td>
<td>@item.ctypename</td>
@if (!ViewBag.IsSubAdmin96)
{
<td class="link" style="max-width: 300px; overflow: hidden;"><a class="link" href="#" onclick="reg(@item.ctno);" style="white-space: nowrap; max-width: 300px; overflow: hidden;">@item.ctname</a></td>
}
else
{
<td class="link" style="max-width: 300px; overflow: hidden;">@item.ctname</td>
}
<td>@item.udtymd2</td>
<td class="text-center">@(item.isuse == 1 ? "Y" : "N")</td>
<td class="link text-center">
<a href="#" class="btn btn-select btn-xxs" style="color: #fff;" onclick="preview(@item.ctno, 0)">PC</a>
<a href="#" class="btn btn-select btn-xxs" style="color: #fff;" onclick="preview(@item.ctno, 1)">모바일</a>
</td>
</tr>
}
</tbody>
</table>
</div>
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
</section>
</form>
<form id="dform" method="post" action="/cm/ctr">
@Html.Partial("./Partial/DForm", Model, new ViewDataDictionary { { "preform", 1 } })
</form>
<div id="thisbox" class="findbox draggable regbox" style="width: 500px; z-index: 1041; left: 50%; margin-left: -250px; top: 60px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">일괄등록</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
<br />
<div style="color: red;">※ URL유형방식만 업로드를 지원합니다.</div>
<div>(VOD, HTML, iFrame방식은 개별등록을 사용해주세요.)</div>
<table class="regtable">
<colgroup><col style="width:200px;" /><col /></colgroup>
<tr id="trisparent">
<th class="req">일괄등록파일</th>
<td style="line-height: 35px;"><input id="uploadfile" type="file" /></td>
</tr>
</table>
<div class="findboxbtnbox">
<a href="~/Content/file/contents.xlsx" class="btn btn-info">양식다운로드</a>
<a href="#" class="btn btn-primary" onclick="save();">일괄등록</a>
</div>
<br /><br />
</div>
@section styles{
<style type="text/css">
.phright{z-index: 2; margin-left: -50px}
</style>
}
@section scripts{
<script>
$(document).ready(function () {
focus("searchtext");
});
var _delcount = 0;
function reg(no) {
if (no < 0) {
//일괄등록
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
}
else {
$("#dform_intval").val(no);
$("#dform").submit();
}
}
function save() {
if ($("#uploadfile").val() == "") {
msg2("파일을 선택해주세요.");
}
else {
var thumbext = $("#uploadfile").val();
thumbext = thumbext.slice(thumbext.indexOf(".") + 1).toLowerCase();
if ("xlsx".indexOf(thumbext) < 0) {
msg("xlsx 확장자만 가능합니다.", 0, true);
}
else if (confirm("일괄등록하시겠습니까?")) {
var formData = new FormData();
formData.append("uploadfile", $("#uploadfile")[0].files[0]);
formData.append("uploadjob", "contentsbatch");
capfile("/acommon/uploadexcel", formData, "cbsave", true, false, true, true);
}
}
}
function cbsave() {
if (capResult.code == 1000) {
msg2("일괄등록을 완료했습니다.", null, true, null, true);
gotab(1, 500);
}
else if (capResult.code == 123) {
var es = capResult.msg.split(';');
msg2("존재하지 않는 문제유형코드가 있습니다. 확인후 다시 업로드해주세요.<br />" +
(es[0] != "" ? ("난이도: " + es[0] + "<br />") : "") +
(es[1] != "" ? ("분류1: " + es[1] + "<br />") : "") +
(es[2] != "" ? ("분류2: " + es[2] + "<br />") : "") +
(es[3] != "" ? ("분류3: " + es[3] + "<br />") : "") +
(es[4] != "" ? ("분류4: " + es[4] + "<br />") : "") +
(es[5] != "" ? ("분류5: " + es[5]) : ""));
}
else {
console.log(capResult.msg);
msg2("업로드가 실패했습니다.<br /><br /><br />" + capResult.msg, null, true);
}
}
function gotab(idx, t) {
bglayer();
t = t || 0;
setTimeout(function () {
if (idx == 0) { location.href = "/cm/cc"; }
else if (idx == 1) { location.href = "/cm/cts"; }
else if (idx == 2) { location.href = "/cm/qs"; }
else if (idx == 3) { location.href = "/cm/rs"; }
}, t);
}
var _dtype = 1;
var _ctno = 0;
var _ismobile;
function preview(ctno, ismobile) {
_ctno = ctno;
_ismobile = ismobile;
capp("/acommon/setauthkey", { dtype: _dtype, intval: _ctno }, "cbauth");
}
function cbauth() {
if (capResult.code == 1000) {
var nWidth = "1080";
var nHeight = screen.availHeight;
var popOption = "";
popOption += "width=" + nWidth + "px,";
popOption += "height=" + nHeight + "px,";
popOption += "toolbar=no,menubar=no,location=yes,";
popOption += "resizable=yes,status=yes,scrollbars=yes";
var pop = window.open("@ViewBag.Front.Replace("https://", "http://")/CDMS/PlayTaste?authtype=" + _dtype + "&authkey=" + capResult.obj + "&ctno=" + _ctno + "&ismobile=" + _ismobile, 'contentsview', popOption);
if (pop == null) {
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
}
}
}
function delme() {
_delcount = $("#tbody1 tr td input.autocheck:checked").length;
if (_delcount < 1) {
msg("삭제할 데이터를 선택해주세요.");
} else {
var ctnos = "";
$.each($("#tbody1 tr td input.autocheck:checked"), function (i, c) {
ctnos += "," + $(c).val();
});
if (confirm("선택한 콘텐츠를 삭제하시겠습니까?")) {
capp("/acommon/ctdel", { ctnos: ctnos.substr(1) }, "cbdelete");
}
}
}
function cbdelete() {
if (capResult.code == 1000) {
if (_delcount == capResult.obj) {
msg("삭제했습니다.", 0, null, null, true);
submit(null, 500, true);
} else {
msg(_delcount + "건 중 " + capResult.obj + "건을 삭제했습니다(연결된 콘텐츠" + (_delcount - capResult.obj) + ")", 0, null, null, true);
submit(null, 500, true);
}
} else {
msg("연결된 과정/강좌가 있습니다. 삭제할 수 없습니다.");
}
}
</script>
}