240 lines
13 KiB
Plaintext
240 lines
13 KiB
Plaintext
@model NP.Model.VMLect
|
|
|
|
<div>
|
|
<ul class="pagination pagination-md" style="margin: 0;">
|
|
<li class="@(Model.tabidx == 0 ? "active" : "")"><a href="#" data-toggle="tab">대상자검색</a></li>
|
|
<li class="@(Model.tabidx == 1 ? "active" : "")"><a href="#" onclick="gotab(1);" data-toggle="tab">자동설정</a></li>
|
|
</ul>
|
|
</div>
|
|
<form id="mform" method="post">
|
|
<section class="panel panel-default clearfix devsearch" data-cleartbody="tbody1">
|
|
@Html.Partial("./Partial/SearchCaption")
|
|
<div class="step-content">
|
|
<div class="step-pane active form-inline">
|
|
<div class="form-group">
|
|
기수/강좌:
|
|
<select id="stringval" name="stringval" class="form-control disp-init">
|
|
<option value="">-년도선택</option>
|
|
@foreach (var y in Model.Terms.Select(s => s.tyear).Distinct())
|
|
{
|
|
<option value="@y" @(Model.stringval == y.ToString() ? "selected" : "")>@y 년</option>
|
|
}
|
|
</select>
|
|
<select id="stringval2" name="stringval2" class="form-control disp-init">
|
|
<option value="">-기수선택</option>
|
|
@foreach (var t in Model.Terms.Where(w => w.tyear.ToString() == Model.stringval))
|
|
{
|
|
<option value="@t.tmno" @(Model.stringval2 == t.tmno.ToString() ? "selected" : "")>@t.tseq 기</option>
|
|
}
|
|
</select>
|
|
@Html.Partial("./Partial/Select", Model.CGs, new ViewDataDictionary { { "name", "stringval3" }, { "selected", Model.stringval3 }, { "df", ":-상위분류선택" } })
|
|
@Html.Partial("./Partial/Select", Model.CMs, new ViewDataDictionary { { "name", "stringval4" }, { "selected", Model.stringval4 }, { "df", ":-강좌전체" } })
|
|
<br />
|
|
진 도 율: @Html.Partial("./Partial/Text", Model.stringval5, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval5", Value = Model.stringval5, CssClass = "int disp-init text-center", Style = "width: 100px;" }))% 이하
|
|
<br />
|
|
미참여활동:
|
|
<label><input type="checkbox" name="stringval6" value="1" @(Model.stringval6 == "1" ? "checked" : "") /> 진행평가</label>
|
|
<label><input type="checkbox" name="stringval7" value="1" @(Model.stringval7 == "1" ? "checked" : "") /> 최종평가</label>
|
|
<label><input type="checkbox" name="stringval8" value="1" @(Model.stringval8 == "1" ? "checked" : "") /> 과제</label>
|
|
<label><input type="checkbox" name="stringval9" value="1" @(Model.stringval9 == "1" ? "checked" : "") /> 토론</label>
|
|
<label><input type="checkbox" name="stringval10" value="1" @(Model.stringval10 == "1" ? "checked" : "") /> 강의평가</label>
|
|
<br />
|
|
교육생:
|
|
<label><input type="checkbox" name="stringval11" value="1" @(Model.stringval11 == "1" ? "checked" : "") /> 환급</label>
|
|
<label><input type="checkbox" name="stringval12" value="1" @(Model.stringval12 == "1" ? "checked" : "") /> 비환급</label>
|
|
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "userid:ID;username:이름" }, { "name", "stringval13" }, { "selected", Model.stringval13 } })
|
|
@Html.Partial("./Partial/Text", Model.stringval14, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval14", Value = Model.stringval14, PH = "", CssClass = "ff" }))
|
|
@Html.Partial("./Partial/Button", new NP.Model.Button() { Special = "search", OnClick = "searchthis()" })
|
|
@* <button class="btn btn-default btn-s-xs" type="button" onclick="javascript:searchthis();"><i class="fa fa-search"></i></button>*@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<div class="tar buttonbox">
|
|
<a href="#" class="btn btn-select" onclick="send()" style="margin-left: 5px;">메일</a>
|
|
@Html.Partial("./Partial/sembtns", "#tbody1;1;0;1;1;0;학습독려")
|
|
</div>
|
|
<section class="panel panel-default">
|
|
<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>환산점수</th>
|
|
<th>강의평가</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="data" id="tbody1">
|
|
@foreach (var d in Model.Lects)
|
|
{
|
|
<tr>
|
|
<td><input type="checkbox" class="autocheck" value="@d.lectno" data-userno="@d.userno" /></td>
|
|
<td>@d.rnorvt</td>
|
|
<td class="text-left">@d.cnameclassno</td>
|
|
<td>@d.isrebatename</td>
|
|
<td>@d.asname</td>
|
|
<td>@d.usernameid</td>
|
|
<td>@d.sstime.Value.ToShortDateString()</td>
|
|
<td>@d.attrate %</td>
|
|
<td>@(d.ex0cnt < 1 ? "-" : d.ex0lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex0lectpoint.ToString())</td>
|
|
<td>@(d.ex1cnt < 1 ? "-" : d.ex1lectcnt < 1 && d.ex0cnt > 0 ? "미제출" : d.ex1lectpoint.ToString())</td>
|
|
<td>@(d.sd0cnt < 1 ? "-" : d.sd0lectcnt < 1 && d.sd0cnt > 0 ? "미제출" : d.sd0lectpoint.ToString())</td>
|
|
<td>@(d.sd1cnt < 1 ? "-" : d.sd1lectcnt < 1 && d.sd1cnt > 0 ? "미제출" : d.sd1lectpoint.ToString())</td>
|
|
<td>@((d.apoint + d.mpoint + d.fpoint + d.spoint + d.dpoint).ToString())</td>
|
|
<td>@(d.rs0cnt < 1 ? "-" : d.rs0lectcnt < 1 && d.rs0cnt > 0 ? "미제출" : string.Format("{0} / {1}", d.rs0lectcnt, d.rs0cnt))</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
<div id="thisbox" class="findbox draggable regbox" style="width: 800px; z-index: 1041; left: 30%; 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>
|
|
<br />
|
|
<table class="regtable">
|
|
@Html.HiddenFor(m=>m.EmailSend.etitle)
|
|
@Html.HiddenFor(m=>m.stringval15)
|
|
<tr>
|
|
<th>첨부파일</th>
|
|
<td><input type="file" name="file2" id="file2" /></td>
|
|
</tr>
|
|
<tr><th>내용</th><td style="text-align: left; font-weight: normal !important;">@Html.TextArea("EmailSend.ehtml", "", new { @class = "form-control disp-init", @style = "resize: none; font-weight: normal;" })</td></tr>
|
|
</table>
|
|
<br /><br />
|
|
<div class="findboxbtnbox">
|
|
<a href="#" class="btn btn-primary" onclick="sendemail();">발송</a>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<form id="dform" method="post" action="/croom/cmlects">
|
|
@Html.Partial("./Partial/dform", Model, new ViewDataDictionary { { "preform", 1 } })
|
|
</form>
|
|
@section styles{
|
|
@Html.Partial("./Partial/Summernotestyle")
|
|
}
|
|
@section scriptsHeader{
|
|
@Html.Partial("./Partial/semscript")
|
|
@Html.Partial("./Partial/Summernote")
|
|
}
|
|
@section scripts{
|
|
<script>
|
|
$('body').on('keydown', 'input, select', function(e) {
|
|
if (e.key === "Enter") {
|
|
searchthis();
|
|
}
|
|
});
|
|
var terms = '@(string.Join(";", Model.Terms.Select(s=>string.Format("{0}:{1}:{2}", s.tmno, s.tyear, s.tseq))))';
|
|
var stringval4 = $("#stringval4").val();
|
|
$(document).ready(function () {
|
|
$('#EmailSend_ehtml').summernote({
|
|
height: 300,
|
|
tabsize: 2,
|
|
callbacks: {
|
|
onImageUpload: function (files, editor, welEditable) {
|
|
var fdata = new FormData();
|
|
fdata.append('img', files[0]);
|
|
fdata.append('fd', "Editor");
|
|
uploadeditorimage(files, this, fdata, "cbeditorupload()");
|
|
}
|
|
}
|
|
});
|
|
$("#stringval").on("change", function () {
|
|
$("#stringval2 option:gt(0)").remove();
|
|
var y = $(this).val();
|
|
if (y != "") {
|
|
$.each(terms.split(';'), function (i, t) {
|
|
if (t.split(':')[1] == y) {
|
|
$("#stringval2").append("<option value=\"" + t.split(':')[0] + "\">" + t.split(':')[2] + " 기</optoin>");
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$("#stringval2").on("change", function () {
|
|
$("#stringval4 option:gt(0)").remove();
|
|
if ($(this).val() != "" && val("stringval3") != "") {
|
|
capp("/acommon/cmget", { ismaster: 0, tmno: val("stringval2"), cgno: val("stringval3"), cshapes: "0,2",isall:1 }, "cbcmget");
|
|
}
|
|
});
|
|
$("#stringval3").on("change", function () {
|
|
$("#stringval4 option:gt(0)").remove();
|
|
if ($(this).val() != "" && val("stringval2") != "") {
|
|
capp("/acommon/cmget", { ismaster: 0, tmno: val("stringval2"), cgno: val("stringval3"), cshapes: "0,2" ,isall:1 }, "cbcmget");
|
|
}
|
|
});
|
|
});
|
|
function cbcmget() {
|
|
$.each(capResult.obj, function (i, d) {
|
|
$("#stringval4").append("<option value=\"" + d.value + "\">" + d.cnameclassno + "</optoin>");
|
|
if (!isnulloremt(stringval4.toString)) {
|
|
$("#stringval4").val(stringval4);
|
|
}
|
|
});
|
|
}
|
|
function searchthis() {
|
|
$("#EmailSend_ehtml").val("");
|
|
if (check("stringval", null, "년도를 선택해주세요.")) { }
|
|
else if (check("stringval2", null, "기수를 선택해주세요.")) { }
|
|
else if (check("stringval3", null, "상위분류를 선택해주세요.")) { }
|
|
else {
|
|
submit();
|
|
}
|
|
}
|
|
function gotab(idx, t) {
|
|
bglayer();
|
|
t = t || 0;
|
|
setTimeout(function () {
|
|
if (idx == 0) { location.href = "/croom/encourages"; }
|
|
else if (idx == 1) { location.href = "/croom/encourageset"; }
|
|
}, t);
|
|
}
|
|
function send() {
|
|
if ($("#tbody1").find("input.autocheck:checked").length < 1) {
|
|
msg("대상자를 선택해주세요.");
|
|
} else {
|
|
bglayer(); $("#thisbox").slideDown("fast", function () { $("#thisbox").scrollTop(0); });
|
|
$("#EmailSend_etitle").val("[학습독려]");
|
|
}
|
|
}
|
|
var _script_sem_usernos;
|
|
function sendemail() {
|
|
_script_sem_usernos = "";
|
|
$.each($("#tbody1").find("input.autocheck:checked"), function (i, c) {
|
|
_script_sem_usernos += "," + $(c).attr("data-userno");
|
|
});
|
|
_script_sem_usernos = _script_sem_usernos.substr(1);
|
|
|
|
var cdata = $('#EmailSend_ehtml').summernote('code');
|
|
cdata = cdata == "<p><br></p>" ? "" : cdata;
|
|
if (cdata.length < 1) { $('#EmailSend_ehtml').summernote('focus'); msg("내용을 입력해주세요."); }
|
|
else if (confirm("메일을 보내시겠습니까?")) {
|
|
$("#EmailSend_ehtml").val(cdata);
|
|
$("#stringval15").val(_script_sem_usernos);
|
|
capfileform("/acommon/emailsendforencourage", "mform", "cbsave");
|
|
}
|
|
}
|
|
function cbsave() {
|
|
if (capResult.code == 1000) {
|
|
msg("발송결과> " + capResult.msg);
|
|
if (capResult.obj > 0) {
|
|
$("#EmailSend_ehtml").val("");
|
|
$("#dform").attr("action", "/cc/emails");
|
|
timesubmitauto("dform");
|
|
}
|
|
}
|
|
else {
|
|
msgadmin();
|
|
}
|
|
}
|
|
</script>
|
|
} |