2021-11-03 15:19:08 +09:00
|
|
|
@model NP.Model.VMLect
|
|
|
|
|
@{
|
|
|
|
|
int idx = 1;
|
|
|
|
|
}
|
|
|
|
|
<form id="mform" method="post">
|
|
|
|
|
<section class="panel panel-default">
|
|
|
|
|
<div style="padding: 10px 10px">
|
2023-06-12 15:09:20 +09:00
|
|
|
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-응시상태;1:제출;0:미제출" }, { "name", "addstringval2" }, { "selected", Model.addstringval2 }, { "onchange", "findme()" }, { "style", "vertical-align: middle;" } })
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2023-06-12 15:09:20 +09:00
|
|
|
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-채점상태;1:채점완료;0:미채점" }, { "name", "addstringval3" }, { "selected", Model.addstringval3 }, { "onchange", "findme()" }, { "style", "vertical-align: middle;" } })
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2023-07-11 13:41:12 +09:00
|
|
|
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":-모사;9950:100%" }, { "name", "addstringval4" }, { "selected", Model.addstringval4 }, { "onchange", "findme()" }, { "style", "vertical-align: middle;" } })
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
@Html.Partial("./Partial/pagerow", new ViewDataDictionary { { "tbodyid", "tbody1" }, { "searchmethod", "submit()" }, { "pagesize", Model.pagerowcount } })
|
2025-08-08 10:24:53 +09:00
|
|
|
<a href="javascript:;" onclick="javascript:callComment('mform', '/croom/gradeall', 'tbody1', '성적처리과제');" class="btn btn-s-xs btn-success" style="margin-left: 5px; float:right;">엑셀다운로드</a>
|
2021-11-03 15:19:08 +09:00
|
|
|
@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>
|
2021-11-17 09:36:41 +09:00
|
|
|
<th>교육생</th>
|
|
|
|
|
<th>ID</th>
|
|
|
|
|
<th>핸드폰</th>
|
2021-11-03 15:19:08 +09:00
|
|
|
<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">
|
2021-11-10 08:49:31 +09:00
|
|
|
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" data-tpoint="@d.tpoint" /></td>
|
2021-11-03 15:19:08 +09:00
|
|
|
<td>@d.rnorvt</td>
|
2022-04-28 14:05:09 +09:00
|
|
|
@if (d.cshape == 2)
|
2021-11-03 15:19:08 +09:00
|
|
|
{
|
|
|
|
|
<td>@d.sseq</td>
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
<td>-</td>
|
|
|
|
|
}
|
|
|
|
|
<td>@d.studyplacename</td>
|
|
|
|
|
<td>@d.cname</td>
|
2021-11-17 09:36:41 +09:00
|
|
|
<td>@d.username</td>
|
|
|
|
|
<td>@d.userid</td>
|
|
|
|
|
<td>@d.mobile</td>
|
2021-11-03 15:19:08 +09:00
|
|
|
<td>@((d.cshape == 0 && d.isrebate == 0 ? d.payoktime : d.sdate).Value.ToShortDateString())</td>
|
|
|
|
|
@if (d.cshape == 2)
|
|
|
|
|
{
|
2021-11-10 10:11:16 +09:00
|
|
|
if (d.iscomplete != 1)
|
2021-11-03 15:19:08 +09:00
|
|
|
{
|
2025-08-08 10:24:53 +09:00
|
|
|
<td class="link text-center"><a href="javascript:;" onclick="javascript: openScd(@d.cmno,@d.lectno,@d.cmisno);">@d.leend.ToShortDateString()</a></td>
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
<td>@d.leend.ToShortDateString()</td>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
<td>@d.edate.Value.ToShortDateString()</td>
|
|
|
|
|
}
|
|
|
|
|
<td class="estate@(d.sdstate)">@d.sdstatename</td>
|
2025-08-08 10:24:53 +09:00
|
|
|
<td>
|
|
|
|
|
<a class="btn btn-xxs btn-select" onclick="viewsd(@d.sdno, @d.lectno,@d.tpoint, @(idx++))" href="javascript:;">@d.cpoint2</a>
|
|
|
|
|
</td>
|
2021-11-03 15:19:08 +09:00
|
|
|
<td>@d.feedbox</td>
|
2025-08-08 10:24:53 +09:00
|
|
|
<td>
|
|
|
|
|
<a class="btn btn-xxs btn-select iscopy@(d.iscopy)" onclick="viewcopy(@d.sdno, @d.lectno, @string.Format("{0:yyyyMMdd}", d.submittime))" href="javascript:;">@d.copyratename</a>
|
|
|
|
|
</td>
|
2021-11-03 15:19:08 +09:00
|
|
|
<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>
|
2022-04-28 14:05:09 +09:00
|
|
|
@Html.Partial("./Partial/ExcelCommentBox")
|
2021-11-03 15:19:08 +09:00
|
|
|
<div id="scdbox" class="findbox draggable regbox" style="width: 400px; z-index: 1041; top: 60px; overflow: auto;">
|
2025-08-08 10:24:53 +09:00
|
|
|
<h4><i class="fa fa-bars"></i> <span id="pcap">교육일정변경</span><a href="javascript:;" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
2021-11-03 15:19:08 +09:00
|
|
|
<ul id="ulScd"></ul>
|
|
|
|
|
<div class="findboxbtnbox" id="btnsavelect">
|
2025-08-08 10:24:53 +09:00
|
|
|
<a href="javascript:;" class="btn btn-primary" onclick="updateScd();">선택완료</a>
|
2021-11-03 15:19:08 +09:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
<!-- 과제제출 -->
|
2021-11-03 15:19:08 +09:00
|
|
|
<div id="thisbox" class="findbox draggable regbox" style="height: 850px; width: 800px; z-index: 1041; top: 60px; overflow: auto;">
|
2022-12-08 11:06:20 +09:00
|
|
|
<form id="mform2" enctype="multipart/form-data">
|
2025-08-08 10:24:53 +09:00
|
|
|
<h4><i class="fa fa-bars"></i> <span id="pcap">개별 과제제출 내용</span><a href="javascript:;" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
|
2022-12-08 11:06:20 +09:00
|
|
|
<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">
|
2025-08-08 10:24:53 +09:00
|
|
|
<a href="javascript:;" id="btnpre" class="btn btn-info btn-xs" onclick="save(-1)">◀이전</a>
|
|
|
|
|
<a href="javascript:;" class="btn btn-primary btn-xs" onclick="save(0)">저장</a>
|
|
|
|
|
<a href="javascript:;" id="btnnext" class="btn btn-info btn-xs" onclick="save(1)">다음▶</a>
|
|
|
|
|
<a href="javascript:;" class="btn btn-default btn-xs closethisbox">닫기</a>
|
2022-12-08 11:06:20 +09:00
|
|
|
</div>
|
|
|
|
|
<br /><br />
|
2025-08-08 10:24:53 +09:00
|
|
|
<div id="hdnmform2Area">
|
|
|
|
|
<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="">
|
|
|
|
|
</div>
|
2022-12-08 11:06:20 +09:00
|
|
|
</form>
|
2021-11-03 15:19:08 +09:00
|
|
|
</div>
|
2025-08-08 10:24:53 +09:00
|
|
|
<!-- // 과제제출 -->
|
2021-11-03 15:19:08 +09:00
|
|
|
<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%;
|
|
|
|
|
}
|
2022-12-08 11:06:20 +09:00
|
|
|
|
|
|
|
|
.file_input_opacity {
|
|
|
|
|
width: 400px !important;
|
|
|
|
|
}
|
2021-11-03 15:19:08 +09:00
|
|
|
</style>
|
2022-12-08 11:06:20 +09:00
|
|
|
|
|
|
|
|
@Html.Partial("./Partial/FileScript")
|
2021-11-03 15:19:08 +09:00
|
|
|
<script>
|
|
|
|
|
var ischange = false;
|
2025-08-08 10:24:53 +09:00
|
|
|
$(document).ready(function () {
|
2021-11-03 15:19:08 +09:00
|
|
|
$("body").on("click", "td.qi div.imgbox", function () {
|
|
|
|
|
$(this).toggleClass("active");
|
|
|
|
|
});
|
2022-12-08 11:06:20 +09:00
|
|
|
$("#cpoint,#feedb,#feedb2,.file_input_opacity").on("propertychange change keyup paste input", function () {
|
2021-11-03 15:19:08 +09:00
|
|
|
ischange = true;
|
|
|
|
|
})
|
2022-12-08 11:06:20 +09:00
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
});
|
|
|
|
|
function findme() {
|
2023-06-12 15:09:20 +09:00
|
|
|
bglayer();
|
|
|
|
|
submit();
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
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);
|
2022-04-28 14:05:09 +09:00
|
|
|
} else {
|
2021-11-03 15:19:08 +09:00
|
|
|
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");
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
function cblectsds() {
|
2022-12-08 11:06:20 +09:00
|
|
|
var submittimeDateVal;
|
|
|
|
|
var submittime = "";
|
2021-11-03 15:19:08 +09:00
|
|
|
$.each(capResult.obj, function (i, d) {
|
2022-12-08 11:06:20 +09:00
|
|
|
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 = "";
|
|
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2021-11-10 08:49:31 +09:00
|
|
|
$("#tbody1").append(("<tr data-sdno=\"{8}\" data-lectno=\"{0}\" data-tpoint=\"{22}\">" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td><input type=\"checkbox\" class=\"autocheck\" value=\"{0}\" data-userno=\"{1}\" /></td>" +
|
|
|
|
|
"<td>{2}</td>" +
|
|
|
|
|
"<td>{16}</td>" +
|
|
|
|
|
"<td>{17}</td>" +
|
|
|
|
|
"<td>{18}</td>" +
|
2022-12-08 11:06:20 +09:00
|
|
|
"<td>{24}</td>" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td>{5}</td>" +
|
2022-12-08 11:06:20 +09:00
|
|
|
"<td>{25}</td>" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td>{19}</td>" +
|
2022-11-08 16:01:42 +09:00
|
|
|
"{20}" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td class=\"estate{6}\">{7}</td>" +
|
2021-11-10 08:49:31 +09:00
|
|
|
"<td><a class=\"btn btn-xxs btn-select viewsd\" onclick=\"viewsd({8}, {0},{22}, {15})\" href=\"#\">{9}</a></td>" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td>{10}</td>" +
|
2022-11-08 16:01:42 +09:00
|
|
|
"<td><a class=\"btn btn-xxs btn-select iscopy{11}\" onclick=\"viewcopy({8}, {0},{23})\" href=\"#\">{12}</a></td>" +
|
2021-11-03 15:19:08 +09:00
|
|
|
"<td>{13}</td>" +
|
2022-11-08 16:01:42 +09:00
|
|
|
"<td>{14}</td>" +
|
2022-12-08 11:06:20 +09:00
|
|
|
"{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)));
|
2021-11-03 15:19:08 +09:00
|
|
|
});
|
|
|
|
|
if (_isprenext) {
|
2021-11-10 08:49:31 +09:00
|
|
|
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);
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var _sdno = 0;
|
|
|
|
|
var _lectno = 0;
|
2021-11-10 08:49:31 +09:00
|
|
|
var _tpoint = 0;
|
2022-12-08 11:06:20 +09:00
|
|
|
var _ridx = 0;
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
// 과제제출 팝업
|
|
|
|
|
function viewsd(sdno, lectno, tpoint, ridx) {
|
|
|
|
|
// Hidden 영역 초기화
|
|
|
|
|
$("#hdnmform2Area input[type='hidden']").val("");
|
|
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
ischange = false;
|
|
|
|
|
_sdno = sdno;
|
|
|
|
|
_lectno = lectno;
|
2021-11-10 08:49:31 +09:00
|
|
|
_tpoint = tpoint;
|
2021-11-03 15:19:08 +09:00
|
|
|
_ridx = ridx;
|
2022-12-08 11:06:20 +09:00
|
|
|
$("#sdno").val(sdno);
|
|
|
|
|
$("#lectno").val(lectno);
|
|
|
|
|
$("#tpoint").val(tpoint);
|
|
|
|
|
$("#ridx").val(ridx);
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
capp(
|
|
|
|
|
"/acommon/lectsd",
|
|
|
|
|
{
|
|
|
|
|
lectno: lectno,
|
|
|
|
|
sdno: sdno
|
|
|
|
|
},
|
|
|
|
|
"cblectsd");
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
/** 과제제출 팝업 콜백 */
|
|
|
|
|
function cblectsd() {
|
|
|
|
|
const d = capResult.obj;
|
|
|
|
|
|
|
|
|
|
// 제출자 정보 설정
|
|
|
|
|
$("#userinfo").text(`[${d.isrebatename}]${d.asname} | ${d.usernameid}`);
|
|
|
|
|
|
|
|
|
|
// 제출 내용 설정 (내용이 없으면 '미제출' 표시)
|
|
|
|
|
const submissionText = getdb(d.atext);
|
|
|
|
|
$("#atext").html(submissionText ? submissionText.replace(/\n/gi, "<br />") : "- 미제출");
|
|
|
|
|
|
|
|
|
|
// 첨부 파일 정보 및 모사율 설정
|
|
|
|
|
let fileHtml;
|
|
|
|
|
if (getdb(d.fileurl)) {
|
|
|
|
|
// 파일이 있을 경우, 다운로드 링크 생성
|
|
|
|
|
fileHtml = `
|
|
|
|
|
<div id="file${d.fileno}div">
|
|
|
|
|
<a href="/aCommon/DownFile?fno=${d.fileno}&loginfo=&issubject=1" title="다운로드">
|
|
|
|
|
<i class="fa fa-paperclip"></i> <span class="fileitem">${d.orgname}</span>
|
|
|
|
|
</a>
|
|
|
|
|
<a href="javascript:;" style="color:red; margin-left:5px; cursor:point;" onclick="fileDel(this)" data-fileno="${d.fileno}" data-filename="${d.orgname}">X</a>
|
|
|
|
|
</div>
|
|
|
|
|
<br />`;
|
|
|
|
|
|
|
|
|
|
$("#fileinfoDiv .fgno").val(d.fgno);
|
|
|
|
|
$("#fileinfoDiv").hide();
|
2021-12-03 08:36:36 +09:00
|
|
|
} else {
|
2025-08-08 10:24:53 +09:00
|
|
|
// 파일이 없을 경우
|
|
|
|
|
fileHtml = "- 제출파일 없음<br />";
|
|
|
|
|
$("#fileinfoDiv").show();
|
2022-12-08 11:06:20 +09:00
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
// 모사율, 모사답안 신고 체크박스와 결합하여 최종 HTML 생성
|
|
|
|
|
const isCopyChecked = d.iscopy === 1 ? "checked" : "";
|
|
|
|
|
|
|
|
|
|
const finalFileinfoHtml = `
|
|
|
|
|
${fileHtml}
|
|
|
|
|
(모사율: ${d.copyratename})
|
|
|
|
|
<label>
|
|
|
|
|
<input id="iscopy" type="checkbox" ${isCopyChecked} /> 모사답안신고
|
|
|
|
|
</label>`;
|
|
|
|
|
|
|
|
|
|
$("#fileinfo").html(finalFileinfoHtml);
|
|
|
|
|
|
|
|
|
|
// 숨은 값 및 텍스트 입력 영역 설정
|
2022-12-08 11:06:20 +09:00
|
|
|
setv("userno", d.userno);
|
|
|
|
|
setv("cmno", d.cmno);
|
2021-11-03 15:19:08 +09:00
|
|
|
setv("cpoint", d.cpoint);
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
// feedb, d.memo가 null이나 undefined이면 빈 문자열로 설정
|
|
|
|
|
$("#feedb").val(d.feedb ?? "");
|
|
|
|
|
$("#memo").val(d.memo ?? "");
|
2022-12-08 11:06:20 +09:00
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
$("#feedb").removeAttr("readonly");
|
2021-11-10 08:49:31 +09:00
|
|
|
$("#tpoint").val(_tpoint);
|
2025-08-08 10:24:53 +09:00
|
|
|
|
|
|
|
|
// 이전/다음 버튼 표시 로직
|
|
|
|
|
$("#btnpre, #btnnext").show();
|
|
|
|
|
if (_ridx === 1) {
|
2021-11-03 15:19:08 +09:00
|
|
|
$("#btnpre").hide();
|
|
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
if (_ridx === $("#tbody1 tr").length) {
|
2021-11-03 15:19:08 +09:00
|
|
|
$("#btnnext").hide();
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-08 10:24:53 +09:00
|
|
|
// 레이어 표시
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
bglayer();
|
|
|
|
|
$("#thisbox").slideDown("fast", function () {
|
|
|
|
|
$(this).scrollTop(0);
|
|
|
|
|
});
|
2021-11-03 15:19:08 +09:00
|
|
|
bglayer2(false);
|
|
|
|
|
$("#cpoint").focus();
|
|
|
|
|
}, 10);
|
|
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
//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="javascript:;" 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}) ".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);
|
|
|
|
|
|
|
|
|
|
// $("#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);
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
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점 이상으로 입력해주세요.");
|
2021-11-10 08:49:31 +09:00
|
|
|
} else if (getint($("#cpoint").val()) > getint($("#tpoint").val())) {
|
2021-11-03 15:19:08 +09:00
|
|
|
$("#cpoint").focus();
|
2021-11-10 08:49:31 +09:00
|
|
|
msg2(getint($("#tpoint").val()) + "점 이하으로 입력해주세요.");
|
2021-11-03 15:19:08 +09:00
|
|
|
} else if (confirm("저장하시겠습니까?")) {
|
2025-08-08 10:24:53 +09:00
|
|
|
_saveidx = idx;
|
2022-12-08 11:06:20 +09:00
|
|
|
$("#iscopyVal").val($("#iscopy").prop("checked") ? 1 : 0)
|
2025-08-08 10:24:53 +09:00
|
|
|
capfileform(
|
|
|
|
|
"/acommon/LectSDSaveToAdmin",
|
|
|
|
|
"mform2",
|
|
|
|
|
"cbsave");
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-08 10:24:53 +09:00
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
function cbsave() {
|
|
|
|
|
if (capResult.code == 1000) {
|
2022-12-08 11:06:20 +09:00
|
|
|
msg2("저장했습니다.");
|
|
|
|
|
$(".file_input_opacity").val("")
|
|
|
|
|
$(".file_input_textbox").val("")
|
|
|
|
|
|
2021-11-03 15:19:08 +09:00
|
|
|
if (_saveidx == 0) {
|
2022-12-08 11:06:20 +09:00
|
|
|
viewsd(_sdno, _lectno, _ridx);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
ischange = false;
|
|
|
|
|
save(_saveidx)
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
msgdev(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function checkmax(p) {
|
|
|
|
|
if (getint($(p).val()) < 0) {
|
|
|
|
|
$(p).focus();
|
|
|
|
|
msg2("0점 이상으로 입력해주세요.");
|
2021-11-10 08:49:31 +09:00
|
|
|
} else if (getint($(p).val()) > getint($("#tpoint").val())) {
|
2021-11-03 15:19:08 +09:00
|
|
|
$(p).focus();
|
2021-11-10 08:49:31 +09:00
|
|
|
msg2(getint($("#tpoint").val())+"점 이하으로 입력해주세요.");
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
}
|
2022-11-08 16:01:42 +09:00
|
|
|
function viewcopy(sdno, lectno, regdateStr) {
|
|
|
|
|
if (regdateStr == undefined) {
|
|
|
|
|
regdateStr = "";
|
|
|
|
|
}
|
2021-11-03 15:19:08 +09:00
|
|
|
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';
|
2022-11-08 16:01:42 +09:00
|
|
|
window.open("http://118.219.255.225:7614/memechecker/score.html?domain=v_lectsd_list&docId="+regdateStr + "_" +sdno+"_"+lectno, "iscopyWin", opt);
|
2021-11-03 15:19:08 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var _authtype = 1;
|
|
|
|
|
var _lectno;
|
|
|
|
|
function viewcert(lectno) {
|
|
|
|
|
_lectno = lectno;
|
|
|
|
|
capp("/acommon/authkey", { authtype: _authtype, jobkey: lectno }, "cbauthkey");
|
|
|
|
|
}
|
|
|
|
|
function cbauthkey() {
|
2025-08-08 10:24:53 +09:00
|
|
|
if (capResult.code == 1000) {
|
2021-11-03 15:19:08 +09:00
|
|
|
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("팝업이 차단되어 있습니다. 차단을 해제해 주세요.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-12-08 11:06:20 +09:00
|
|
|
|
|
|
|
|
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", "")
|
<기능개선>
1. PMS NO : 7146, 7149, 7152, 7158, 7179, 7181, 7184, 7187, 7202, 7210, 7214, 7215, 7218, 7220, 7224
2. (주요)작업내용
(1) 2022년 12월 추가 개발 및 유지보수 요청건 일괄 업로드
2023-01-03 08:59:38 +09:00
|
|
|
|
|
|
|
|
let sdno = $("#sdno").val();
|
|
|
|
|
let lectno = $("#lectno").val();
|
|
|
|
|
capp("/acommon/delfileOk", { lectno: lectno, sdno: sdno }, "afterView");
|
2022-12-08 11:06:20 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
msg("파일을 삭제할 수 없습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
<기능개선>
1. PMS NO : 7146, 7149, 7152, 7158, 7179, 7181, 7184, 7187, 7202, 7210, 7214, 7215, 7218, 7220, 7224
2. (주요)작업내용
(1) 2022년 12월 추가 개발 및 유지보수 요청건 일괄 업로드
2023-01-03 08:59:38 +09:00
|
|
|
|
|
|
|
|
function afterView() {
|
|
|
|
|
viewsd(_sdno, _lectno, _tpoint, _ridx);
|
|
|
|
|
}
|
2021-11-03 15:19:08 +09:00
|
|
|
</script>
|
2025-08-08 10:24:53 +09:00
|
|
|
<iframe id="ifrthis" style="display: none;"></iframe>
|