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>
|
|
|
|
|
}
|