YNICTE/BO/Views/croom/gradeall4.cshtml

456 lines
21 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 } })
@*<a href="#" onclick="javascript:exceldown('mform', '/croom/gradeall', 'tbody1', '성적처리과제');" class="btn btn-s-xs btn-success" style="margin-left: 5px; float:right;">엑셀다운로드</a>*@
<a href="#" onclick="javascript:callComment('mform', '/croom/gradeall', 'tbody1', '성적처리과제');" class="btn btn-s-xs btn-success" style="margin-left: 5px; float:right;">엑셀다운로드</a>
@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>교육생</th>
<th>ID</th>
<th>핸드폰</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.username</td>
<td>@d.userid</td>
<td>@d.mobile</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, @string.Format("{0:yyyyMMdd}", d.submittime))" 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>
@Html.Partial("./Partial/ExcelCommentBox")
<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;">
<form id="mform2" enctype="multipart/form-data">
<h4><i class="fa fa-bars"></i> <span id="pcap">개별 과제제출 내용</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>@*PMS 6987관련 페이지*@
<br />
<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>
<div id="fileinfoDiv" class="col-sm-8 col-md-10" style="width:100%;display:none">
@Html.Partial("./Partial/File", null, new ViewDataDictionary {
{ "name", "fgno" },{ "fname", "fgno"},
{"width", null },{ "column", "fgno"},{"filecount", 1 },
{"readmode", 0 },{"hidemode", 0 },
{ "isimage", 0 }, { "fileext", "" }})
</div>
<br />
<div id="fileinfo"></div>
</td>
</tr>
<tr>
<th>점수</th>
<td><input type="text" class="form-control int disp-init text-center" style="width: 70px;" max="3" id="cpoint" name="cpoint" onchange="checkmax(this)" /></td>
</tr>
<tr>
<th>피드백</th>
<td><textarea class="form-control" id="feedb" name="feedb" style="resize: none; height: 200px;" maxlength="800"></textarea></td>
</tr>
<tr>
<th>참고사항</th>
<td><textarea class="form-control" id="memo" name="memo" style="resize: none; height: 150px;" 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>
&nbsp;&nbsp;&nbsp;<a href="#" class="btn btn-default btn-xs closethisbox">닫기</a>
</div>
<br /><br />
<input type="hidden" id="sdno" name="sdno" value="">
<input type="hidden" id="lectno" name="lectno" value="">
<input type="hidden" id="tpoint" name="tpoint" value="">
<input type="hidden" id="ridx" name="ridx" value="">
<input type="hidden" id="iscopyVal" name="iscopy" value="">
<input type="hidden" id="cmno" name="cmno" value="">
<input type="hidden" id="userno" name="userno" value="">
</form>
</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%;
}
.file_input_opacity {
width: 400px !important;
}
</style>
@Html.Partial("./Partial/FileScript")
<script>
var ischange = false;
$(document).ready(function () {
$("body").on("click", "td.qi div.imgbox", function () {
$(this).toggleClass("active");
});
$("#cpoint,#feedb,#feedb2,.file_input_opacity").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() {
var submittimeDateVal;
var submittime = "";
$.each(capResult.obj, function (i, d) {
if (capResult.obj[i].submittime != null) {
submittimeDateVal = eval('new ' + capResult.obj[i].submittime.replaceAll('/', ''))
submittime = submittimeDateVal.getFullYear() + ('0' + (submittimeDateVal.getMonth() + 1)).slice(-2) + ('0' + submittimeDateVal.getDate()).slice(-2);
}
else {
submittime = "";
}
$("#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>{24}</td>" +
"<td>{5}</td>" +
"<td>{25}</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},{23})\" href=\"#\">{12}</a></td>" +
"<td>{13}</td>" +
"<td>{14}</td>" +
"{21}").format(d.lectno, d.userno, d.rnorvt, d.isrebatename, d.asname, d.userid
, 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 == null ? "" : d.studyplacename), d.cname, d.leststr, d.leestr
, ('@(!ViewBag.IsSubAdmin96)' == 'True' ? d.scomplete : d.scomplete96), d.tpoint, submittime, d.username, (d.mobile == null ? "" : d.mobile)));
});
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;
$("#sdno").val(sdno);
$("#lectno").val(lectno);
$("#tpoint").val(tpoint);
$("#ridx").val(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 = '<div id="file{0}div"><a href="/aCommon/DownFile?fno={0}&loginfo=&issubject=1" title="다운로드"><i class="fa fa-paperclip"></i> <span class="fileitem">{1}</span></a>'.format(d.fileno, d.orgname);
_html += '<a href="#" style="color:red;margin-left:5px;cursor:point" onclick="fileDel(this)" data-fileno="{0}" data-filename="{1}">X</a>'.format(d.fileno, d.orgname);
_html += '</div><br />'
$("#fileinfoDiv .fgno").val(d.fgno)
$("#fileinfoDiv").css("display", "none")
}
else {
$("#fileinfoDiv").css("display", "")
}
_html += "(모사율: {0})&nbsp;&nbsp;&nbsp;".format(d.copyratename);
$("#fileinfo").html(_html + ("<label><input id=\"iscopy\" type=\"checkbox\" " + (d.iscopy == 1 ? "checked" : "") + " /> 모사답안신고</label>"));
setv("userno", d.userno);
setv("cmno", d.cmno);
setv("cpoint", d.cpoint);
if (d.feedb != null) {
$("#feedb").val(d.feedb);
}
else {
$("#feedb").val("");
}
if (d.memo != null) {
$("#memo").val(d.memo);
}
else {
$("#memo").val("");
}
$("#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"), memo: val("memo") }, "cbsave", null, null, null, true);
$("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0)
capfileform("/acommon/lectsdsave", "mform2", "cbsave");
}
}
}
function cbsave() {
if (capResult.code == 1000) {
//if (_saveidx == 0) {
// msg2("저장했습니다.");
// viewsd(_sdno, _lectno, _tpoint, _ridx);
// //submit("mform", 500);
//} else {
// //리스트 갱신 후 다음 또는 이전 수강생과제 표시
// msg2("저장했습니다.", null, null, null, true);
// setTimeout(function () {
// hidelayermsg2(true);
// getsds(true);
// }, 300);
//}
msg2("저장했습니다.");
$(".file_input_opacity").val("")
$(".file_input_textbox").val("")
if (_saveidx == 0) {
viewsd(_sdno, _lectno, _ridx);
}
else {
ischange = false;
save(_saveidx)
}
} 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, regdateStr) {
if (regdateStr == undefined) {
regdateStr = "";
}
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="+regdateStr + "_" +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("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
}
}
}
var fileDivId = "";
function fileDel(obj) {
let fileno = $(obj).data("fileno")
let filename = $(obj).data("filename")
fileDivId = "file" + fileno + "div";
let data = {"key" : fileno , "fName": filename }
if (confirm("파일을 삭제하시겠습니까?")) {
capp("/acommon/deletefile", data, "fileDelResult");
}
}
function fileDelResult() {
if (capOK) {
let fileDivObj = $("#" + fileDivId)
if (fileDivObj.length == 1) {
fileDivObj.remove();
$("#fileinfoDiv").css("display", "")
viewsd(_sdno, _lectno, _tpoint, _ridx);
}
}
else {
msg("파일을 삭제할 수 없습니다.");
}
}
</script>
<iframe id="ifrthis" style="display: none;"></iframe>