339 lines
16 KiB
Plaintext
339 lines
16 KiB
Plaintext
@model NP.Model.VMLect
|
|
@{
|
|
int idx = 1;
|
|
}
|
|
<form id="mform" method="post">
|
|
<section class="panel panel-default">
|
|
<div style="padding: 10px 10px">
|
|
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-응시상태;1:제출;0:미제출" }, { "name", "addstringval2" }, { "selected", Model.addstringval2}, { "onchange", "findme()" } })
|
|
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
|
|
@Html.Partial("./Partial/sembtns", "#tbody1;" + (Model.IsAdmin ? "1;11;" : "0;0;0") + ";1;right;평가안내")
|
|
</div>
|
|
<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="20">No</th>
|
|
<th>운영기수</th>
|
|
<th>교육장</th>
|
|
<th>과정명</th>
|
|
<th>교육생(ID)</th>
|
|
<th>교육시작일</th>
|
|
<th>교육종료일</th>
|
|
<th>상태</th>
|
|
<th>점수</th>
|
|
<th>첨삭</th>
|
|
<th>모사</th>
|
|
<th>최근제출일(IP)</th>
|
|
<th>최근평가일(IP)</th>
|
|
<th>수료여부</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="data" id="tbody1">
|
|
@foreach (var d in Model.LectSDs)
|
|
{
|
|
<tr data-sdno="@d.sdno" data-lectno="@d.lectno">
|
|
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" data-tpoint="@d.tpoint" /></td>
|
|
<td>@d.rnorvt</td>
|
|
@if(d.cshape== 2)
|
|
{
|
|
<td>@d.sseq</td>
|
|
}
|
|
else
|
|
{
|
|
<td>-</td>
|
|
}
|
|
<td>@d.studyplacename</td>
|
|
<td>@d.cname</td>
|
|
<td>@d.usernameid</td>
|
|
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
|
|
@if (d.cshape == 2)
|
|
{
|
|
if (d.iscomplete != 1)
|
|
{
|
|
<td class="link text-center"><a href="#" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.leend.ToShortDateString()</a></td>
|
|
}
|
|
else
|
|
{
|
|
<td>@d.leend.ToShortDateString()</td>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<td>@d.edate.Value.ToShortDateString()</td>
|
|
}
|
|
<td class="estate@(d.sdstate)">@d.sdstatename</td>
|
|
<td><a class="btn btn-xxs btn-select" onclick="viewsd(@d.sdno, @d.lectno,@d.tpoint, @(idx++))" href="#">@d.cpoint2</a></td>
|
|
<td>@d.feedbox</td>
|
|
<td><a class="btn btn-xxs btn-select iscopy@(d.iscopy)" onclick="viewcopy(@d.sdno, @d.lectno)" href="#">@d.copyratename</a></td>
|
|
<td>@Html.Raw(d.submittimeip)</td>
|
|
<td>@Html.Raw(d.checktimeip)</td>
|
|
@if (!ViewBag.IsSubAdmin96)
|
|
{
|
|
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("<a href=\"#\" onclick=\"viewcert({0})\">{1}</a>", d.lectno, "수료") : d.iscompletename)</td>
|
|
}
|
|
else
|
|
{
|
|
<td class="@(d.iscomplete == 1 ? "link text-center" : "")">@Html.Raw(d.iscomplete == 1 ? string.Format("{1}", d.lectno, "수료") : d.iscompletename)</td>
|
|
}
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
|
|
</section>
|
|
</form>
|
|
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; 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>
|
|
<ul id="ulScd"></ul>
|
|
<div class="findboxbtnbox" id="btnsavelect">
|
|
<a href="#" class="btn btn-primary" onclick="updateScd();">선택완료</a>
|
|
</div>
|
|
</div>
|
|
<div id="thisbox" class="findbox draggable regbox" style="height: 850px; width: 800px; z-index: 1041; 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 />
|
|
<input type="hidden" id="tpoint" value="" />
|
|
<table class="regtable" id="exsummary">
|
|
<tr>
|
|
<th>제출자</th>
|
|
<td id="userinfo"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>제출내용</th>
|
|
<td id="atext"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>첨부파일</th>
|
|
<td id="fileinfo"></td>
|
|
</tr>
|
|
<tr>
|
|
<th>점수</th>
|
|
<td><input type="text" class="form-control int disp-init text-center" style="width: 70px;" max="3" id="cpoint" onchange="checkmax(this)" /></td>
|
|
</tr>
|
|
<tr>
|
|
<th>피드백</th>
|
|
<td><textarea class="form-control" id="feedb" style="resize: none; height: 250px;" maxlength="800"></textarea></td>
|
|
</tr>
|
|
</table>
|
|
<br /><br /><br />
|
|
<div class="text-center">
|
|
<a href="#" id="btnpre" class="btn btn-info btn-xs" onclick="save(-1)">◀이전</a>
|
|
<a href="#" class="btn btn-primary btn-xs" onclick="save(0)">저장</a>
|
|
<a href="#" id="btnnext" class="btn btn-info btn-xs" onclick="save(1)">다음▶</a>
|
|
<a href="#" class="btn btn-default btn-xs closethisbox">닫기</a>
|
|
</div>
|
|
<br /><br />
|
|
</div>
|
|
<style type="text/css">
|
|
td.estate0 {
|
|
background-color: #ffd7bb !important;
|
|
color: red;
|
|
}
|
|
|
|
td a.iscopy1 {
|
|
background-color: red !important;
|
|
}
|
|
|
|
.tablea0 {
|
|
word-break: break-all;
|
|
width: 100%;
|
|
}
|
|
|
|
.tablea0 tr td {
|
|
text-align: center;
|
|
}
|
|
|
|
.tablea0 tr td.qi {
|
|
text-align: left;
|
|
}
|
|
|
|
.regtable tr td .tablea0 tr td {
|
|
padding: 6px 5px;
|
|
}
|
|
/*#exsummary tr td{text-align: center;}*/
|
|
td.qi div.imgbox.active {
|
|
position: fixed;
|
|
left: 10%;
|
|
top: 10%;
|
|
height: 80%;
|
|
width: 80%;
|
|
z-index: 3000;
|
|
background-color: #999;
|
|
text-align: center;
|
|
padding-top: 10%;
|
|
}
|
|
|
|
td.qi div.imgbox.active img {
|
|
height: 60%;
|
|
max-width: 60%;
|
|
}
|
|
</style>
|
|
<script>
|
|
var ischange = false;
|
|
$(document).ready(function () {
|
|
$("body").on("click", "td.qi div.imgbox", function () {
|
|
$(this).toggleClass("active");
|
|
});
|
|
$("#cpoint,#feedb,#feedb2").on("propertychange change keyup paste input", function () {
|
|
ischange = true;
|
|
})
|
|
});
|
|
function findme() {
|
|
bglayer(); submit();
|
|
}
|
|
var _isprenext = false;
|
|
function getsds(isprenext) {
|
|
_isprenext = isprenext;
|
|
if (isprenext) {
|
|
$("#tbody1 tr").remove();
|
|
capp("/acommon/lectallsds", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), sdtype: 0, sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectsds", null, null, null, true);
|
|
} else {
|
|
capp("/acommon/lectallsds", { pagenum: @((int)Model.pagenum), pagerowcount:@(Model.pagerowcount), sdstate: valnull("addstringval2"), edate: valnull("stringval"), cshape: valnull("stringval2"), cname: valnull("stringval3"), cnamestr: valnull("stringval3"), iscomplete: valnull("stringval4"), studyplace: valnull("stringval5"), searchtype: valnull("stringval6"), searchtext: valnull("stringval7"), sdtype: 0, sdateall: valnull("stringval8"), edateall: valnull("stringval9"), asname: valnull("stringval10") }, "cblectsds");
|
|
}
|
|
}
|
|
function cblectsds() {
|
|
$.each(capResult.obj, function (i, d) {
|
|
$("#tbody1").append(("<tr data-sdno=\"{8}\" data-lectno=\"{0}\" data-tpoint=\"{22}\">" +
|
|
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
|
|
"<td>{2}</td>" +
|
|
"<td>{16}</td>" +
|
|
"<td>{17}</td>" +
|
|
"<td>{18}</td>" +
|
|
"<td>{5}</td>" +
|
|
"<td>{19}</td>" +
|
|
"{20}"+
|
|
"<td class=\"estate{6}\">{7}</td>" +
|
|
"<td><a class=\"btn btn-xxs btn-select viewsd\" onclick=\"viewsd({8}, {0},{22}, {15})\" href=\"#\">{9}</a></td>" +
|
|
"<td>{10}</td>" +
|
|
"<td><a class=\"btn btn-xxs btn-select iscopy{11}\" onclick=\"viewcopy({8}, {0})\" href=\"#\">{12}</a></td>" +
|
|
"<td>{13}</td>" +
|
|
"<td>{14}</td>"+
|
|
"{21}").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, d.asname
|
|
, d.usernameid, d.sdstate, d.sdstatename, d.sdno, d.cpoint2
|
|
, d.feedbox, d.iscopy, d.copyratename, d.submittimeip, d.checktimeip, (i + 1), d.cshape == 2 ? d.sseq : '-', d.studyplacename
|
|
, d.cname, d.leststr, d.leestr, '@(!ViewBag.IsSubAdmin96)' == 'True' ? d.scomplete : d.scomplete96, d.tpoint));
|
|
});
|
|
if (_isprenext) {
|
|
viewsd($("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-sdno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-lectno"), $("#tbody1 tr:eq(" + (_ridx + _saveidx - 1) + ")").attr("data-tpoint"), _ridx + _saveidx);
|
|
}
|
|
}
|
|
var _sdno = 0;
|
|
var _lectno = 0;
|
|
var _tpoint = 0;
|
|
var _ridx=0;
|
|
function viewsd(sdno, lectno,tpoint, ridx) {
|
|
ischange = false;
|
|
_sdno = sdno;
|
|
_lectno = lectno;
|
|
_tpoint = tpoint;
|
|
_ridx = ridx;
|
|
capp("/acommon/lectsd", { lectno: lectno, sdno: sdno }, "cblectsd");
|
|
}
|
|
function cblectsd() {
|
|
var d = capResult.obj;
|
|
$("#userinfo").text("[{0}]{1} | {2}".format(d.isrebatename, d.asname, d.usernameid));
|
|
if (getdb(d.atext) == "") {
|
|
$("#atext").html("- 미제출");
|
|
} else {
|
|
$("#atext").html(getdb(d.atext).replace(/\n/gi, "<br />"));
|
|
}
|
|
var _html = "- 제출파일 없음<br />";
|
|
if (getdb(d.fileurl) != "") {
|
|
_html = "<a href=\"/aCommon/DownFile?fno={0}&loginfo=&issubject=1\" title=\"다운로드\"><i class=\"fa fa-paperclip\"></i> <span class=\"fileitem\">{1}</span></a><br />".format(d.fileno, d.orgname);
|
|
}
|
|
_html += "(모사율: {0}) ".format(d.copyratename);
|
|
$("#fileinfo").html(_html + ("<label><input id=\"iscopy\" type=\"checkbox\" " + (d.iscopy == 1 ? "checked" : "") + " /> 모사답안신고</label>"));
|
|
setv("cpoint", d.cpoint);
|
|
$("#feedb").val(d.feedb);
|
|
$("#feedb").removeAttr("readonly");
|
|
$("#tpoint").val(_tpoint);
|
|
//if (getdb(d.feedb) != '') {
|
|
// $("#feedb").attr("readonly", "readonly");
|
|
//}
|
|
$("#btnpre,#btnnext").show();
|
|
if (_ridx == 1) {
|
|
$("#btnpre").hide();
|
|
}
|
|
if (_ridx == $("#tbody1 tr").length) {
|
|
$("#btnnext").hide();
|
|
}
|
|
|
|
setTimeout(function () {
|
|
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
|
|
bglayer2(false);
|
|
$("#cpoint").focus();
|
|
}, 10);
|
|
}
|
|
var _saveidx = 0;
|
|
function save(idx) {
|
|
if (idx != 0 && ischange == false) {
|
|
_saveidx = idx;
|
|
hidelayermsg2(true);
|
|
getsds(true);
|
|
} else {
|
|
if (getint($("#cpoint").val()) < 0) {
|
|
$("#cpoint").focus();
|
|
msg2("0점 이상으로 입력해주세요.");
|
|
} else if (getint($("#cpoint").val()) > getint($("#tpoint").val())) {
|
|
$("#cpoint").focus();
|
|
msg2(getint($("#tpoint").val()) + "점 이하으로 입력해주세요.");
|
|
} else if (confirm("저장하시겠습니까?")) {
|
|
_saveidx = idx;
|
|
capp("/acommon/lectsdsave", { lectno: _lectno, sdno: _sdno, iscopy: $("#iscopy").prop("checked") ? 1 : 0, cpoint: val("cpoint"), feedb: val("feedb") }, "cbsave", null, null, null, true);
|
|
}
|
|
}
|
|
}
|
|
function cbsave() {
|
|
if (capResult.code == 1000) {
|
|
if (_saveidx == 0) {
|
|
msg2("저장했습니다.");
|
|
//submit("mform", 500);
|
|
} else {
|
|
//리스트 갱신 후 다음 또는 이전 수강생과제 표시
|
|
msg2("저장했습니다.", null, null, null, true);
|
|
setTimeout(function () {
|
|
hidelayermsg2(true);
|
|
getsds(true);
|
|
}, 300);
|
|
}
|
|
} else {
|
|
msgdev(true);
|
|
}
|
|
}
|
|
function checkmax(p) {
|
|
if (getint($(p).val()) < 0) {
|
|
$(p).focus();
|
|
msg2("0점 이상으로 입력해주세요.");
|
|
} else if (getint($(p).val()) > getint($("#tpoint").val())) {
|
|
$(p).focus();
|
|
msg2(getint($("#tpoint").val())+"점 이하으로 입력해주세요.");
|
|
}
|
|
}
|
|
function viewcopy(sdno,lectno) {
|
|
var winl = (screen.width - 840) / 2;
|
|
var wint = (screen.height - 410) / 2;
|
|
var opt = 'height=410, width=840, top=' + wint + ', left=' + winl + ',location=no, noresizable';
|
|
window.open("http://118.219.255.225:7614/memechecker/score.html?domain=v_lectsd_list&docId="+sdno+"_"+lectno, "iscopyWin", opt);
|
|
}
|
|
|
|
var _authtype = 1;
|
|
var _lectno;
|
|
function viewcert(lectno) {
|
|
_lectno = lectno;
|
|
capp("/acommon/authkey", { authtype: _authtype, jobkey: lectno }, "cbauthkey");
|
|
}
|
|
function cbauthkey() {
|
|
if (capResult.code == 1000) {
|
|
@*var pop = window.open('@ViewBag.fronturl/Open/CertPrint?userno=@ViewBag.SSUserNo&authtype=' + _authtype + '&randkey=' + capResult.obj, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");*@
|
|
var pop = window.open('@ViewBag.reporturl/certification.aspx?lectno='+_lectno, "certprint", "width=" + (screen.availWidth) + ", height=" + (screen.availHeight) + ", scrollbars=yes, resizable=yes, status=no, location=no, left=0, top=0");
|
|
if (pop == null) {
|
|
msg("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<iframe id="ifrthis" style="display: none;"></iframe>
|