440 lines
No EOL
20 KiB
Text
440 lines
No EOL
20 KiB
Text
@using Kreta.Web.Helpers.Grid
|
|
@using Kreta.Web.Areas.LEPModul.Models
|
|
@using Kreta.Resources
|
|
@using Kreta.Enums.ManualEnums
|
|
@using Kreta.Web.Security
|
|
@model EloadasokDetailModel
|
|
|
|
<style>
|
|
.eloadasok-multiselect .k-floatwrap {
|
|
border: solid 1px #aab7c4 !important;
|
|
}
|
|
</style>
|
|
|
|
<style type="text/css">
|
|
.jelenletGridColumnHeader {
|
|
cursor: pointer;
|
|
float: left;
|
|
width: 50px;
|
|
text-align: center;
|
|
}
|
|
|
|
.jelenletGridColumnHeaderIgen {
|
|
padding: 2px 10px 4px 10px;
|
|
margin-top: 2px;
|
|
color: #FFFFFF;
|
|
border: 1px solid #C5D3E2 !important;
|
|
background-color: #54A5D1;
|
|
}
|
|
|
|
.jelenletGridColumnHeaderNem {
|
|
padding: 2px 10px 4px 10px;
|
|
margin-top: 2px;
|
|
margin-left: 4px;
|
|
color: #5C6A79;
|
|
border: 1px solid #C5D3E2 !important;
|
|
}
|
|
|
|
.tankerTorolteUzenet {
|
|
color: red;
|
|
font-weight: bold;
|
|
justify-content: center;
|
|
}
|
|
</style>
|
|
|
|
<div id="partialDetailGrid_@Model.ID.ToString()">
|
|
@{
|
|
List<SelectListItem> JelenletList = new List<SelectListItem>();
|
|
JelenletList.Add(new SelectListItem() { Text = "Megjelent", Value = "T" });
|
|
JelenletList.Add(new SelectListItem() { Text = "Nem jelent meg", Value = "F" });
|
|
|
|
var grid = Html.KretaGrid<EloadasokDetailGridModel>
|
|
(
|
|
name: "EloadasokDetailGrid_" + Model.ID.ToString(),
|
|
getUrl: new GridApiUrl("EloadasokKezeleseApi", "GetEloadasokDetailGrid", new Dictionary<string, string>()),
|
|
useToolBar: false,
|
|
allowSorting: false,
|
|
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
|
|
)
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.TanuloNev);
|
|
columns.Bound(c => c.OsztalyCsoportNev);
|
|
columns.Bound(c => c.GondviseloElfogadas).ClientTemplate(@"
|
|
#if (GondviseloElfogadas == 'T') { # Igen # } #
|
|
#if (GondviseloElfogadas == 'F') { # Nem # } #
|
|
#if (GondviseloElfogadas == null || GondviseloElfogadas == ' ') { # Függőben # } #
|
|
");
|
|
columns.Bound(c => c.TanuloOktAzon).Hidden();
|
|
columns.Bound(c => c.IntezmenyNev).Hidden();
|
|
columns.Bound(c => c.IntezmenyAzon).Hidden();
|
|
})
|
|
.AutoBind(true)
|
|
.Excel(excel => excel
|
|
.FileName("JelenletiIv.xlsx")
|
|
.AllPages(true)
|
|
);
|
|
|
|
if (Model.Datum > DateTime.Now.Date)
|
|
{
|
|
if (ClaimData.JustLEPOrganization)
|
|
{
|
|
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = EloadasokResource.DokumentumLetoltes, ClientAction = "LEPDetailHelper.DokumentumLetoltes" }, new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
|
|
}
|
|
else
|
|
{
|
|
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
|
|
}
|
|
|
|
grid.ConditionalRowFunction(Html, new List<RowFunction> {
|
|
new RowFunction { NameResourceId = 117 /*Törlés*/, ClientAction = "LEPHelper.DeleteTanulokForEloadas", IconEnum = GridRowFunctionIconEnum.Torles }
|
|
}, "LEPHelper.setRowDeleting");
|
|
}
|
|
else
|
|
{
|
|
grid.Columns(c => c.Template(t => t.ToString()).HeaderHtmlAttributes(new { @class = "mulasztasGridColumnHeaderTh" })
|
|
.Title(@"<div>
|
|
<div class='jelenletGridColumnHeader jelenletGridColumnHeaderIgen' style='width: 70px; float: left;' onclick='LEPHelper.ChangeAllJelenletValue(" + Model.ID + ", true);'>" + "Megjelent" + @"</div>
|
|
<div class='jelenletGridColumnHeader jelenletGridColumnHeaderNem' style='width: 100px; float: left;' onclick='LEPHelper.ChangeAllJelenletValue(" + Model.ID + ", false);'>" + "Nem jelent meg" + @"</div>
|
|
</div>")
|
|
.ClientTemplate(@"
|
|
#if (isErasable == 'T') { # " +
|
|
grid.SelectForColumnTemplate(Html.For<EloadasokDetailGridModel>(), x => x.Megjelent, JelenletList)
|
|
+ @"# } #"
|
|
)
|
|
);
|
|
|
|
if (ClaimData.JustLEPOrganization)
|
|
{
|
|
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Engedélykérő dokumenutumok letöltése", ClientAction = "LEPDetailHelper.DokumentumLetoltes" }, new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Jelenlét mentés", ClientAction = "LEPHelper.JelenletMentes" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
|
|
}
|
|
else
|
|
{
|
|
grid.FunctionCommand(Html, new List<FunctionCommand>() { new FunctionCommand() { Name = "Jelenléti Ív", ClientAction = "LEPHelper.JelenletiIv" }, new FunctionCommand() { Name = "Jelenlét mentés", ClientAction = "LEPHelper.JelenletMentes" }, new FunctionCommand() { Name = "Export", ClientAction = "LEPHelper.Export" } });
|
|
}
|
|
}
|
|
}
|
|
|
|
@if (Model.IsToroltJelentkezes)
|
|
{
|
|
<div class="row">
|
|
<label class="windowInputLabel tankerTorolteUzenet">@EloadasokResource.ATankeruletiKozpontTorolteAzEloadashozRogzitettJelentkezoket</label>
|
|
</div>
|
|
}
|
|
<div class="row">
|
|
<div class="col-xs-3 col-sm-3 col-md-3">
|
|
<div class="col-xs-12 col-sm-12 col-md-12" style="padding-left: 0px; padding-right: 0px;">
|
|
<label class="windowInputLabel">@EloadasokResource.EvFolyam</label>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-12 col-md-12" style="padding-left: 0px; padding-right: 0px;">
|
|
@Html.KretaComboBox("PartialEvfolyamComboSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-4 col-sm-4 col-md-4" style="margin-top: 20px;">
|
|
<label class="windowInputLabel">@(string.Format(EloadasokResource.EngedelyezettTanuloiLetszamFormat, Model.TanuloLetszam))</label>
|
|
</div>
|
|
<div class="col-xs-4 col-sm-4 col-md-4" style="margin-top: 20px;">
|
|
<label class="windowInputLabel">@(string.Format(EloadasokResource.EngedelyezettKiseroiLetszamFormat, Model.KiseroLetszam))</label>
|
|
</div>
|
|
<div class="col-xs-1 col-sm-1 col-md-1">
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-3 col-sm-3 col-md-3"><label class="windowInputLabel">@EloadasokResource.Osztaly</label></div>
|
|
<div class="col-xs-5 col-sm-5 col-md-5"><label class="windowInputLabel">Tanuló (<span id="selectedTanulo_@Model.ID.ToString()">0</span>)</label></div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2 kretaLabelTooltip"><label class="windowInputLabel">@EloadasokResource.KiseroOsszLetszam <img class="kretaLabelTooltipImg"><span class="kretaLabelTooltipText">@EloadasokResource.KiseroOsszLetszamIntezmeny</span></label></div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2"><label class="windowInputLabel"></label></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-3 col-sm-3 col-md-3">
|
|
@Html.KretaComboBox("PartialComboSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
|
|
</div>
|
|
<div class="col-xs-5 col-sm-5 col-md-5 eloadasok-multiselect">
|
|
@Html.KretaMultiSelect("PartialMultiSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
|
|
</div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2">
|
|
@Html.KretaNumeric("Kisero_" + Model.ID.ToString()).Min(0).Max(100).Step(1).Format("").Decimals(0).Value(Model.KiseroSzam)
|
|
</div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2">
|
|
<input type="button" class="k-button" id="SaveBtn_@Model.ID.ToString()" name="SaveBtn_@Model.ID.ToString()" value="@CommonResource.Mentes" />
|
|
</div>
|
|
</div>
|
|
@if (Model.Datum >= DateTime.Now.Date)
|
|
{
|
|
<br />
|
|
<div class="row">
|
|
<div class="col-xs-3 col-sm-3 col-md-3"><label class="windowInputLabel">@EloadasokResource.TorolniKivantOsztalyok</label></div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2"><label class="windowInputLabel"></label></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-3 col-sm-3 col-md-3">
|
|
@Html.KretaComboBox("PartialComboDeleteSelect_" + Model.ID.ToString(), null, "Text", "Value", null, null)
|
|
</div>
|
|
<div class="col-xs-2 col-sm-2 col-md-2">
|
|
<input type="button" class="k-button" id="DeleteBtn_@Model.ID.ToString()" name="DeleteBtn_@Model.ID.ToString()" value="@CommonResource.Torles" />
|
|
</div>
|
|
</div>
|
|
}
|
|
<br />
|
|
@(grid)
|
|
@*}
|
|
else
|
|
{
|
|
@(grid)
|
|
<div class="row"></div>
|
|
<div class="row">
|
|
<div class="col-xs-2 col-sm-2 col-md-2 kretaLabelTooltip"><label class="windowInputLabel">Kísérő összlétszám <img class="kretaLabelTooltipImg"><span class="kretaLabelTooltipText">Az intézményből az előadásra küldendő kísérők összlétszáma.</span></label></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-2 col-sm-2 col-md-2">
|
|
@Html.KretaNumeric("Kisero_" + Model.ID.ToString()).Min(0).Max(100).Step(1).Format("").Decimals(0).Value(Model.KiseroSzam).Enable(false)
|
|
</div>
|
|
</div>
|
|
}*@
|
|
<div class="clear"></div>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
GetEvfolyamok();
|
|
|
|
$("#PartialMultiSelect_@Model.ID.ToString()").change(function () {
|
|
var selectedValues = $(this).val();
|
|
if (selectedValues != null) {
|
|
$("#selectedTanulo_@Model.ID.ToString()").text(selectedValues.length);
|
|
}
|
|
else {
|
|
$("#selectedTanulo_@Model.ID.ToString()").text(0);
|
|
}
|
|
});
|
|
|
|
$("#DeleteBtn_@Model.ID.ToString()").click(function () {
|
|
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)", "Biztosan törli a kijelölt osztályba járó összes tanuló jelentkezését?", deleteTanuloByOsztaly);
|
|
});
|
|
|
|
function deleteTanuloByOsztaly() {
|
|
var urlDelete = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "DeleteTanulokForEloadasByOsztaly" })";
|
|
AjaxHelper.DoPost(urlDelete, { eloadasId: "@Model.ID", osztalyId: $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox").value() }, saveResponseOk, saveResponseError);
|
|
}
|
|
|
|
$("#SaveBtn_@Model.ID.ToString()").click(function () {
|
|
var tanuloIds = $("#PartialMultiSelect_@Model.ID.ToString()").val();
|
|
var grid = $("#EloadasokDetailGrid_@Model.ID.ToString()").data('kendoGrid').dataSource.data();
|
|
|
|
var kiseroSzam = $("#Kisero_@Model.ID.ToString()").data('kendoNumericTextBox').value();
|
|
if (tanuloIds != null) {
|
|
$.each(grid, function (i, v) {
|
|
tanuloIds = $.grep(tanuloIds, function (value) {
|
|
return value != v.TanuloId.toString();
|
|
});
|
|
});
|
|
}
|
|
|
|
if (kiseroSzam >= 0) {
|
|
var postData = {
|
|
"eloadasId": "@Model.ID",
|
|
"tanuIds": tanuloIds,
|
|
"kiseroSzam": kiseroSzam,
|
|
"szervNev": "@Model.SzervezetNev",
|
|
"eloadasNev": "@Model.EloadasNev",
|
|
"idopont": "@Model.Datum",
|
|
"kezdete": "@Model.EloadasKezdete",
|
|
"vege": "@Model.EloadasVege",
|
|
"ferohelyFoglaltHelyek": "@Model.FerohelyFoglaltHelyek",
|
|
"tanuloLetszam": "@Model.TanuloLetszam",
|
|
"kiseroLetszam": "@Model.KiseroLetszam",
|
|
"tanuloLetszamFennmarado": "@Model.TanuloLetszamFennmarado",
|
|
"kiseroLetszamFennmarado": "@Model.KiseroLetszamFennmarado",
|
|
};
|
|
|
|
var urlSaveTanulok = "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "EloadasokKezeleseApi", action = "SaveTanulokForEloadas" })";
|
|
AjaxHelper.DoPost(urlSaveTanulok, postData, saveResponseOk, saveResponseError);
|
|
}
|
|
});
|
|
|
|
$("#PartialEvfolyamComboSelect_@Model.ID.ToString()").change(function () {
|
|
var evfolyamId = $("#PartialEvfolyamComboSelect_@Model.ID.ToString()").val();
|
|
if ($.isNumeric(evfolyamId)) {
|
|
GetOsztalyok(evfolyamId);
|
|
}
|
|
else {
|
|
ClearOsztalyok();
|
|
}
|
|
});
|
|
|
|
$("#PartialComboSelect_@Model.ID.ToString()").change(function () {
|
|
var osztalyId = $("#PartialComboSelect_@Model.ID.ToString()").val();
|
|
if ($.isNumeric(osztalyId)) {
|
|
GetTanulok(osztalyId);
|
|
}
|
|
else {
|
|
ClearTanulok();
|
|
}
|
|
});
|
|
|
|
function saveResponseOk() {
|
|
KretaGridHelper.refreshGrid("EloadasokGrid");
|
|
}
|
|
|
|
function saveResponseError(error) {
|
|
KretaWindowHelper.feedbackWindow("@(ErrorResource.Hiba)", error.responseJSON.Message, true);
|
|
}
|
|
|
|
function GetTanulok(osztalyId) {
|
|
var urlGetTanulok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetTanulokForOsztaly" })";
|
|
var modelId = '@Model.ID';
|
|
var evfolyam = $('#PartialEvfolyamComboSelect_@Model.ID.ToString()').data('kendoComboBox');
|
|
|
|
if (osztalyId != '') {
|
|
var jsonData = { eloadasId: modelId, evfolyamId: evfolyam.value(), filter: osztalyId, isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
|
|
}
|
|
else {
|
|
var jsonData = { eloadasId: modelId, evfolyamId: evfolyam.value(), isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
|
|
}
|
|
|
|
AjaxHelper.DoGet(urlGetTanulok, jsonData,
|
|
function (data) {
|
|
var dataSource = new kendo.data.DataSource();
|
|
|
|
if (data != "") {
|
|
dataSource.data(data);
|
|
|
|
var multiselect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
|
|
multiselect.setDataSource(dataSource);
|
|
multiselect.refresh();
|
|
|
|
if (data.length == 1) { multiselect.value(''); }
|
|
|
|
var selectedValues = [];
|
|
for (var i = 0; i < multiselect.dataSource.data().length; i++) {
|
|
var item = multiselect.dataSource.data()[i];
|
|
selectedValues.push(item.Value);
|
|
}
|
|
multiselect.value(selectedValues);
|
|
$("#selectedTanulo_@Model.ID.ToString()").text(selectedValues.length);
|
|
}
|
|
else {
|
|
ClearTanulok();
|
|
}
|
|
});
|
|
}
|
|
|
|
function GetOsztalyok(evfolyamId) {
|
|
var urlGetOsztalyok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetOsztalyokForEloadas" })";
|
|
var modelId = '@Model.ID';
|
|
var jsonData = { eloadasId: modelId, evfolyamId: evfolyamId, isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
|
|
|
|
AjaxHelper.DoGet(urlGetOsztalyok, jsonData,
|
|
function (data) {
|
|
var dataSource = new kendo.data.DataSource();
|
|
|
|
var tanulokMultiSelect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
|
|
tanulokMultiSelect.value([]);
|
|
tanulokMultiSelect.dataSource.data([]);
|
|
if (data.Item1 != "") {
|
|
dataSource.data(data.Item1);
|
|
var multiselect = $("#PartialComboSelect_@Model.ID.ToString()").data("kendoComboBox");
|
|
var multiselectDelete = $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox");
|
|
|
|
if (multiselect != undefined) {
|
|
multiselect.setDataSource(dataSource);
|
|
multiselect.refresh();
|
|
if (data.Item1.length == 1) { setTimeout(function () { multiselect.value(''); }, 1); }
|
|
}
|
|
|
|
if (multiselectDelete != undefined) {
|
|
var deleteDataSource = new kendo.data.DataSource();
|
|
deleteDataSource.data(data.Item2)
|
|
multiselectDelete.setDataSource(deleteDataSource);
|
|
multiselectDelete.refresh();
|
|
|
|
if (data.Item2.length == 1) { multiselectDelete.value(''); }
|
|
}
|
|
}
|
|
else {
|
|
ClearOsztalyok();
|
|
ClearTorlendoOsztalyok();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function GetEvfolyamok() {
|
|
var urlGetEvfolyamok = "@Url.HttpRouteUrl("ActionApi", new { controller = "EloadasokKezeleseApi", action = "GetEvfolyamokForEloadas" })";
|
|
var modelId = '@Model.ID';
|
|
var jsonData = { eloadasId: modelId, evfolyamIdList: '@Model.EvfolyamIdList', isMindenEvfolyamJog: "@Model.IsMindenEvfolyamJog" };
|
|
|
|
AjaxHelper.DoGet(urlGetEvfolyamok, jsonData,
|
|
function (data) {
|
|
var dataSource = new kendo.data.DataSource();
|
|
|
|
if (data != "") {
|
|
dataSource.data(data);
|
|
var comboboxEvfolyam = $("#PartialEvfolyamComboSelect_@Model.ID.ToString()").data("kendoComboBox");
|
|
|
|
if (comboboxEvfolyam != undefined) {
|
|
comboboxEvfolyam.setDataSource(dataSource);
|
|
comboboxEvfolyam.refresh();
|
|
if (data.length == 1) { setTimeout(function () { comboboxEvfolyam.value(''); }, 1); }
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function ClearOsztalyok() {
|
|
var osztalyCombobox = $("#PartialComboSelect_@Model.ID.ToString()").data("kendoComboBox");
|
|
if (osztalyCombobox != undefined) {
|
|
osztalyCombobox.text("");
|
|
osztalyCombobox.value("");
|
|
osztalyCombobox.dataSource.data([]);
|
|
}
|
|
ClearTanulok();
|
|
}
|
|
|
|
function ClearTorlendoOsztalyok() {
|
|
var osztalyCombobox = $("#PartialComboDeleteSelect_@Model.ID.ToString()").data("kendoComboBox");
|
|
if (osztalyCombobox != undefined) {
|
|
osztalyCombobox.text("");
|
|
osztalyCombobox.value("");
|
|
osztalyCombobox.dataSource.data([]);
|
|
}
|
|
}
|
|
|
|
function ClearTanulok() {
|
|
var multiselect = $("#PartialMultiSelect_@Model.ID.ToString()").data("kendoMultiSelect");
|
|
if (multiselect != undefined) {
|
|
var dataSource = new kendo.data.DataSource();
|
|
multiselect.setDataSource(dataSource);
|
|
multiselect.value([]);
|
|
$("#PartialMultiSelect_@Model.ID.ToString()").change();
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
var LEPDetailHelper = (function () {
|
|
var helper = function () { };
|
|
|
|
helper.DokumentumLetoltes = function (data) {
|
|
var json = [];
|
|
var gridTanuloAllRows = KretaGridHelper.getAllRows("EloadasokDetailGrid_" + "@Model.ID.ToString()");
|
|
$.each(gridTanuloAllRows, function (i, v) {
|
|
json.push({
|
|
SzervezetNev : v.szervezetNev,
|
|
EloadasHelyszin : v.eloadasHelyszin,
|
|
EloadasNev : v.eloadasNev,
|
|
EloadasIdopontja : v.datum.substring(0, 10).replace('-','.').replace('-','.') + ". " + v.kezdete.substring(11,16) + " - " + v.vege.substring(11,16),
|
|
TanuloNev : v.TanuloNev,
|
|
TanuloOktAzon : v.TanuloOktAzon,
|
|
});
|
|
});
|
|
|
|
$("#data").val(JSON.stringify(json));
|
|
$("#downloadBtn").click();
|
|
}
|
|
|
|
return helper;
|
|
})();
|
|
</script>
|
|
</div> |