YNICTE/BO/Views/cm/qs.cshtml

264 lines
14 KiB
Plaintext
Raw Normal View History

2020-10-12 14:39:23 +09:00
@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>
2025-12-26 23:11:05 +09:00
<ul class="pagination pagination-md" style="margin: 0;">
<li class=""><a href="#" onclick="gotab(1);" data-toggle="tab">학습콘텐츠</a></li>
<li class="active"><a href="#" 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>
2020-10-12 14:39:23 +09:00
</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 } })}
<br /><br />
@Html.Partial("./Partial/Select", Helpers.ValueText(":사용여부;1:사용;0:미사용"), Helpers.DicSelect(new NP.Model.SelectDic() { Name = "stringval8", Selected = Model.stringval8 }))
2025-12-26 23:11:05 +09:00
@Html.Partial("./Partial/Select", Helpers.ValueText("qtextstring:문제명;qno:문제번호;instructors:교강사"), Helpers.DicSelect(new NP.Model.SelectDic() { Name = "searchtype", Selected = Model.searchtype }))
2020-10-12 14:39:23 +09:00
@Html.Partial("./Partial/Text", Model.searchtext, Helpers.DicText(new NP.Model.TextDic() { Name = "searchtext", Value = Model.searchtext }))
@Html.Partial("./Partial/Button", new NP.Model.Button() { Special = "search" })
</div>
</div>
</section>
2025-12-26 23:11:05 +09:00
<div class="tar buttonbox">
<a href="#" onclick="javascript:reg(9);" class="btn btn-s-xs btn-danger">선택삭제</a>
<a href="#" onclick="javascript:reg(8);" class="btn btn-s-xs btn-danger">선택사용</a>
<a href="#" onclick="javascript:reg(7);" class="btn btn-s-xs btn-danger">선택미사용</a>
<a href="~/Content/file/questions.xlsx" class="btn btn-s-xs btn-default">일괄등록양식다운로드</a>
<a href="#" onclick="javascript:reg2(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/questions.xlsx" class="btn btn-info">일괄등록양식 다운로드</a>
</div>
2020-10-12 14:39:23 +09:00
<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>
2025-12-26 23:11:05 +09:00
<tr>
<th><input type="checkbox" onclick="javascript: checkall('excel1', this);" /></th>
<th width="40">No</th>
<th width="40">Code</th>
<th>과정명</th>
@Html.Raw(isqdiff ? string.Format("<th>{0}</th>", qdiff.First().cgroupname) : "")
@Html.Raw(isqt1 ? string.Format("<th>{0}</th>", qt1.First().cgroupname) : "")
@Html.Raw(isqt2 ? string.Format("<th>{0}</th>", qt2.First().cgroupname) : "")
@Html.Raw(isqt3 ? string.Format("<th>{0}</th>", qt3.First().cgroupname) : "")
@Html.Raw(isqt4 ? string.Format("<th>{0}</th>", qt4.First().cgroupname) : "")
@Html.Raw(isqt5 ? string.Format("<th>{0}</th>", qt5.First().cgroupname) : "")
<th>유형</th>
<th>문제명</th>
<th>교강사</th>
<th>수정일</th>
<th>사용여부</th>
</tr>
2020-10-12 14:39:23 +09:00
</thead>
<tbody class="data" id="tbody1">
@foreach (var item in Model.Qs)
{
2025-12-26 23:11:05 +09:00
<tr>
<td><input type="checkbox" class="autocheck" value="@item.qno" /></td>
<td>@item.rnorvt</td>
<td>@item.qno</td>
<td class="text-left">@item.cname</td>
@Html.Raw(isqdiff ? string.Format("<td>{0}</td>", item.qdiffname) : "")
@Html.Raw(isqt1 ? string.Format("<td>{0}</td>", item.ccname1) : "")
@Html.Raw(isqt2 ? string.Format("<td>{0}</td>", item.ccname2) : "")
@Html.Raw(isqt3 ? string.Format("<td>{0}</td>", item.ccname3) : "")
@Html.Raw(isqt4 ? string.Format("<td>{0}</td>", item.ccname4) : "")
@Html.Raw(isqt5 ? string.Format("<td>{0}</td>", item.ccname5) : "")
<td>@item.atypename</td>
<td class="link" style="max-width: 300px; overflow: hidden;"><a class="link" href="#" onclick="reg2(@item.qno);" style="white-space: nowrap; max-width: 300px; overflow: hidden;">@System.Text.RegularExpressions.Regex.Replace((item.qtextstring ?? "").Length < 30 ? (item.qtextstring ?? "") : (item.qtextstring ?? "").Substring(0, 30), @"[<][a-z|A-Z|/](.|)*?[>]", "")</a></td>
<td>@item.instructors_name</td>
<td>@item.udtymd2</td>
<td>@item.isuseyn</td>
</tr>
2020-10-12 14:39:23 +09:00
}
</tbody>
</table>
</div>
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
</section>
</form>
<form id="dform" method="post" action="/cm/qr">
@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>
<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/questions.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 == -1) {
//일괄등록
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
}
else if (no == 9) {
_delcount = $("#tbody1 tr td input.autocheck:checked").length;
if (_delcount < 1) {
msg("삭제할 문제를 선택해주세요.");
}
else {
var qnos = "";
$.each($("#tbody1 tr td input.autocheck:checked"), function (i, c) {
qnos += "," + $(c).val();
});
if (confirm("선택한 문제를 삭제하시겠습니까?")) {
capp("/acommon/questiondel", { qnos: qnos.substr(1) }, "cbdelete");
}
}
}
else if (no == 8 || no == 7) {
_delcount = $("#tbody1 tr td input.autocheck:checked").length;
if (_delcount < 1) {
msg((no==8?"사용":"미사용")+ "으로 변경할 문제를 선택해주세요.");
}
else {
var qnos = "";
$.each($("#tbody1 tr td input.autocheck:checked"), function (i, c) {
qnos += "," + $(c).val();
});
if (confirm("선택한 문제를 " + (no == 8 ? "사용" : "미사용") + "으로 변경하시겠습니까?")) {
capp("/acommon/questionchangeuyn", { qnos: qnos.substr(1), flag: no }, "cbchangeuyn");
}
}
}
else {
$("#dform_longval").val(no);
$("#dform").submit();
}
}
function reg2(no) {
$("#dform_intval").val(no);
$("#dform").submit();
}
function cbchangeuyn() {
if (capResult.code == 1000) {
msg("변경했습니다.");
setTimeout(function () {
bglayer();
$("#mform").submit();
}, 500);
}
}
function cbdelete() {
if (capResult.obj > 0) {
msg("출제되지 않은 문제를 삭제하였습니다. 이미 출제된 문제는 삭제되지 않습니다.");
setTimeout(function () {
bglayer();
$("#mform").submit();
}, 500);
}
else {
msg("이미 출제된 문제는 삭제할 수 없습니다.");
}
}
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", "questionbatch");
capfile("/acommon/uploadexcel", formData, "cbsave", true, false, true, true);
}
}
}
function cbsave() {
2021-01-05 10:57:02 +09:00
$('#uploadfile').val("");
2020-10-12 14:39:23 +09:00
if (capResult.code == 1000) {
msg2("일괄등록을 완료했습니다.", null, true, null, true);
gotab(2, 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 if (capResult.code == 123) {
var es = capResult.msg.split(';');
msg2("존재하지 않는 문제유형코드가 있습니다. 확인후 다시 업로드해주세요.<br />" +
2021-03-08 15:43:20 +09:00
(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]) : ""));
2020-10-12 14:39:23 +09:00
}
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);
}
</script>
}