kreta/KretaWeb/Areas/Hianyzas/Views/DualisMulasztasok/Index.cshtml
2024-03-13 00:33:46 +01:00

422 lines
No EOL
20 KiB
Text

@using Kreta.Enums
@using Kreta.Framework
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers
@model MulasztasIndexModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
@section AddCss {
@Styles.Render("~/Content/Mulasztasok")
}
@{
var searchFormName = "MulasztasokSearchForm";
var datumNezetGridName = "MulasztasokDatumNezetGrid";
var tanuloNezetGridName = "MulasztasokTanuloNezetGrid";
var naploNezetGridName = "MulasztasokNaploNezetGrid";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, null, postSubmitFunction: "MulasztasKezelesHelper.refreshTabGrids"))
{
@Html.KretaComboBoxFor(x => x.OsztalyCsoportId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetDualisCsopList", osztalyfonokiFeladat = true }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
}
}
@Html.KretaTabStripAjax("MulasztasokTabStrip", Model.TabList)
@Html.KretaTooltipTemplate("kendoTooltip-tanuloNevTemplate",
@"<div class='kendoTooltip'>
<table>
<tr>
<td style='padding-right: 5px'><b>Osztály:</b></td>
<td>#:target.data('osztaly')#</td>
</tr>
<tr>
<td style='padding-right: 5px'><b>Anyja neve:</b></td>
<td>#:target.data('anyjaneve')#</td>
</tr>
<tr>
<td style='padding-right: 5px'><b>Születési idő:</b></td>
<td>#:target.data('szuletesiido')#</td>
</tr>
</table>
</div>")
<script type="text/javascript">
var naploNezetDatum;
var igazolasNaplozarasDatum = new Date(@Model.IgazolasNaploZarasDatum.Year, @(Model.IgazolasNaploZarasDatum.Month - 1), @Model.IgazolasNaploZarasDatum.Day);
var MulasztasKezelesHelper = (function () {
var mulasztasKezelesHelper = function () { };
var url = {
OpenTanuloMulasztasaiPopup: "@Url.Action("OpenTanuloMulasztasaiPopup", Constants.Controllers.DualisMulasztasok, new { area = "Hianyzas" })",
SaveMulasztasList: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.DualisMulasztasokApi, action = "SaveMulasztasList" })",
Delete: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Constants.ApiControllers.DualisMulasztasokApi, action = "DeleteMulasztas" })",
VaneMarIgazolt: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.DualisMulasztasokApi, action = "VaneMarIgazolt" })"
};
var confirmMessage = "@HianyzasResource.MarVanRogzitettIgazolas";
var currentTanuloNev;
var searchFormName = "@searchFormName";
mulasztasKezelesHelper.onTabStripActivate = function () {
mulasztasKezelesHelper.refreshTabGrids(searchFormName);
}
function popUpDetailWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(StringResourcesUtil.GetString(5628) /*Tanuló mulasztásai*/) (" + kendo.htmlEncode(currentTanuloNev) + ")";
config.content = data;
var modal = KretaWindowHelper.createWindow("detailTanuloWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
mulasztasKezelesHelper.detailTanuloWindowCancel = function () {
KretaWindowHelper.destroyWindow("detailTanuloWindow");
}
mulasztasKezelesHelper.dataBoundAdditionalFunction = function () {
mulasztasKezelesHelper.setToolTip();
}
mulasztasKezelesHelper.setToolTip = function () {
var kendoTooltip = $(".tanuloNev");
KretaTooltipHelper.setTooltip(kendoTooltip, "#kendoTooltip-tanuloNevTemplate");
kendoTooltip.off("click");
kendoTooltip.click(function () {
var tanuloId = $(this).attr("data-tanuloid");
currentTanuloNev = $(this).attr("data-tanulonev");
if (!CommonUtils.isNullOrEmpty(tanuloId)) {
var { OsztalyCsoportId } = KretaGridHelper.getSearchParameterObject("@searchFormName");
var data = { TanuloId: tanuloId, osztalyCsoportId: OsztalyCsoportId, apiControllerName: "@Constants.ApiControllers.DualisMulasztasokApi" };
AjaxHelper.DoPost(url.OpenTanuloMulasztasaiPopup, data, popUpDetailWindow);
}
});
}
mulasztasKezelesHelper.saveMulasztasList = function (detailGridName, gridToRefreshList, formName, visszavonhato) {
var modRows = KretaGridHelper.getModifiedRows(detailGridName);
if (modRows.length > 0) {
var resultData = [modRows.length];
var message = "";
$.each(modRows, function (index, value) {
var igazoltValue = null;
if (value.input[0].value === "0") {
igazoltValue = true;
} else if (value.input[0].value === "1") {
igazoltValue = false;
}
var igazolasTipusValue = value.input[1].value;
var megjegyzesValue = value.input[2].value;
var tanuloId;
if (value.ID === "0") {
tanuloId = 0;
} else {
tanuloId = value.TanuloId;
}
resultData[index] = {
ID: value.ID,
TanuloId: tanuloId,
Igazolt: igazoltValue,
IgazolasTipus: igazolasTipusValue,
Megjegyzes: megjegyzesValue,
Visszavonhato: visszavonhato
}
if (igazoltValue && igazolasTipusValue === "" && value.ID > 0) {
if (message.length > 0) {
message += "<br />";
}
if (CommonUtils.isUndefined(value.TanuloNev)) {
message += value.TargyNev + " esetében Igazolás típus megadása kötelező!";
} else {
message += value.TanuloNev + " esetében Igazolás típus megadása kötelező!";
}
}
});
if (message.length > 0) {
KretaWindowHelper.feedbackWindow("", message, true);
} else {
AjaxHelper.DoPost(url.SaveMulasztasList,
resultData,
function () { mulasztasKezelesHelper.saveMulasztasListFeedBackOk(gridToRefreshList, formName); });
}
}
}
mulasztasKezelesHelper.setDetailControlsEvents = function (igazoltDivNamePrefix, detailGridName, visszavonhato) {
var igazoltDivSelectorPrefix = "#" + igazoltDivNamePrefix;
var detailGridSelector = "#" + detailGridName;
$(detailGridSelector).off("click");
$(detailGridSelector).on("click", igazoltDivSelectorPrefix + "0", function () {
var row = $(this).closest("tr");
var rowId = $("tr", $(detailGridSelector)).index(row);
if (rowId === 1) {
var headerValue = $(igazoltDivSelectorPrefix + "0 li.activebar").attr('val');
$.each(KretaGridHelper.getKendoGridData(detailGridName).dataSource.data(), function (index, value) {
if (value.ID !== "0") {
var liList = $(igazoltDivSelectorPrefix + value.ID + " li");
$(detailGridSelector + "_Igazolt_" + value.ID).val(headerValue);
value.Igazolt = headerValue;
value.dirty = true;
$.each(liList, function (liIndex, liValue) {
if ($(liValue).attr('val') === headerValue) {
$(liValue).addClass('activebar');
}
else {
$(liValue).removeClass('activebar');
}
});
}
});
}
});
$(detailGridSelector).on("click", "div[id^='" + igazoltDivNamePrefix + "']", function (e) {
//hack, hogy egértől jött-e
if (CommonUtils.isNullOrUndefined(e.clientX)) {
return;
}
$.each(KretaGridHelper.getKendoGridData(detailGridName).dataSource.data(), function (index, value) {
var kendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(detailGridName + "_IgazolasTipus_" + value.ID);
if (CommonUtils.isUndefined(kendoComboBox)) {
return;
}
var textarea = $(detailGridSelector + "_Megjegyzes_" + value.ID);
var igazoltVal = $(igazoltDivSelectorPrefix + value.ID + " li.activebar").attr('val');
if (!CommonUtils.isUndefined(igazoltVal)) {
value.dirty = true;
textarea.prop('disabled', false);
var isIgazolt = igazoltVal === "0";
if (isIgazolt) {
kendoComboBox.enable(true);
if (CommonUtils.isNullOrEmpty(kendoComboBox.value())) {
KretaComboBoxHelper.setKendoValue(kendoComboBox, "@((int)IgazolasTipusEnum.szabadsag)");
}
} else {
function folytatIgazolatlan() {
kendoComboBox.enable(false);
kendoComboBox.value("");
}
function stopIgazolatlan() {
value.dirty = false;
kendoComboBox.enable(false);
kendoComboBox.value("");
textarea.prop('disabled', true);
textarea.val("");
var igazolasValaszto = $(igazoltDivSelectorPrefix + value.ID + " li");
$.each(igazolasValaszto, function (index, e) {
e.classList.remove('activebar');
});
}
if (!CommonUtils.isNull(value.Igazolt) && value.Igazolt == 1
&& igazoltDivSelectorPrefix !== "#divMulasztasokNaploNezetGrid_Igazolt_" && igazoltDivSelectorPrefix.indexOf("MulasztasokDatumNezetDetailGrid_") == -1
&& igazoltDivSelectorPrefix.indexOf("TanuloMulasztasaiDetailGrid_Kezeletlen") == -1) {
KretaWindowHelper.confirmWindow(Globalization.Figyelem, confirmMessage, folytatIgazolatlan, null, stopIgazolatlan, Globalization.Folytatas, Globalization.Megsem);
}
else {
if (value.Igazolt == 0) {
KretaWindowHelper.confirmWindow(Globalization.Figyelem, confirmMessage, folytatIgazolatlan, null, stopIgazolatlan, Globalization.Folytatas, Globalization.Megsem);
}
else {
var elements = $(".naploNezetOra[data-tanuloId=" + value.TanuloId + "][data-isigazolt='True']");
if (!CommonUtils.isNullOrUndefined(elements) && elements.length > 0) {
KretaWindowHelper.confirmWindow(Globalization.Figyelem, confirmMessage, folytatIgazolatlan, null, stopIgazolatlan, Globalization.Folytatas, Globalization.Megsem);
}
else {
kendoComboBox.enable(false);
kendoComboBox.value("");
}
}
}
}
} else {
if (!visszavonhato) {
value.dirty = false;
}
kendoComboBox.enable(false);
kendoComboBox.value("");
textarea.prop('disabled', true);
textarea.val("");
}
});
$(detailGridSelector).off("change");
$(detailGridSelector).on("change", detailGridSelector + "_IgazolasTipus_0", function () {
var headerValue = $(detailGridSelector + "_IgazolasTipus_0")[0].value;
$.each(KretaGridHelper.getKendoGridData(detailGridName).dataSource.data(), function (index, value) {
value.dirty = true;
var isIgazolt = $(igazoltDivSelectorPrefix + value.ID + " li.activebar").attr('val') === "0";
var kendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(detailGridName + "_IgazolasTipus_" + value.ID);
if (value.ID !== "0" && isIgazolt) {
kendoComboBox.value(headerValue);
value.IgazolasTipus = headerValue;
}
else if (!isIgazolt) {
kendoComboBox.value('');
value.IgazolasTipus = null;
}
});
});
});
$(detailGridSelector).off("keyup");
$(detailGridSelector).on("keyup", detailGridSelector + "_Megjegyzes_0", function () {
var headerValue = $(detailGridSelector + "_Megjegyzes_0")[0].value;
$.each(KretaGridHelper.getKendoGridData(detailGridName).dataSource.data(), function (index, value) {
value.dirty = true;
var textarea = $(detailGridSelector + "_Megjegyzes_" + value.ID);
var igazoltVal = $(igazoltDivSelectorPrefix + value.ID + " li.activebar").attr('val');
if (value.ID !== "0" && !CommonUtils.isUndefined(igazoltVal)) {
textarea.val(headerValue);
value.Megjegyzes = headerValue;
}
});
});
$.each(KretaGridHelper.getKendoGridData(detailGridName).dataSource.data(), function (index, value) {
var kendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(detailGridName + "_IgazolasTipus_" + value.ID);
var textarea = $(detailGridSelector + "_Megjegyzes_" + value.ID);
if (!CommonUtils.isUndefined(kendoComboBox) && !CommonUtils.isUndefined(textarea)) {
var igazoltVal = $(igazoltDivSelectorPrefix + value.ID + " li.activebar").attr('val');
if (!CommonUtils.isUndefined(igazoltVal)) {
textarea.prop('disabled', false);
var isIgazolt = igazoltVal === "0";
if (isIgazolt) {
kendoComboBox.enable(true);
} else {
kendoComboBox.enable(false);
kendoComboBox.value("");
}
} else {
kendoComboBox.enable(false);
kendoComboBox.value("");
textarea.prop('disabled', true);
textarea.val("");
}
}
});
}
mulasztasKezelesHelper.saveMulasztasListFeedBackOk = function (gridToRefreshList, formName) {
$.each(gridToRefreshList,
function (index, value) {
if (CommonUtils.isNullOrEmpty(formName)) {
KretaGridHelper.refreshGrid(value);
} else {
KretaGridHelper.refreshGridByFormName(value, formName);
}
}
);
mulasztasKezelesHelper.refreshTabGrids(searchFormName);
KretaWindowHelper.successFeedBackWindow();
}
mulasztasKezelesHelper.refreshTabGrids = function (formName) {
KretaGridHelper.refreshGridSearchPanel("@(datumNezetGridName)", formName);
KretaGridHelper.refreshGridSearchPanel("@(tanuloNezetGridName)", formName);
mulasztasKezelesHelper.refreshNaploNezetGrid(formName);
}
mulasztasKezelesHelper.refreshNaploNezetGrid = function (formName) {
var naploNezetModel = KretaGridHelper.getSearchParameterObject(formName);
if (!CommonUtils.isUndefined(naploNezetDatum)) {
if (this.getNaploNezetDatum() > igazolasNaplozarasDatum) {
$('#@(naploNezetGridName)').removeClass("disabledItem");
$('#MulasztasMentes').show();
}
else {
$('#@(naploNezetGridName)').addClass("disabledItem");
$('#MulasztasMentes').hide();
}
naploNezetModel.NaploNezetDatum = naploNezetDatum;
KretaGridHelper.refreshGridByObject("@(naploNezetGridName)", naploNezetModel);
}
}
mulasztasKezelesHelper.setNaploNezetDatum = function (datum) {
naploNezetDatum = datum.toDateString();
}
mulasztasKezelesHelper.getNaploNezetDatum = function () {
return new Date(naploNezetDatum);
}
mulasztasKezelesHelper.deleteConfirmWindow = function (rowData, gridToRefreshList, formName) {
var deleteParamters = {
Id: rowData.ID,
GridToRefreshList: gridToRefreshList,
FormName: formName,
};
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@CommonResource.BiztosanTorli", deleteMulasztas, deleteParamters);
}
function deleteMulasztas(data) {
var deleteResponseOkFunction = function () { deleteResponseOk(data.GridToRefreshList, data.FormName); };
AjaxHelper.DoPost(
url.Delete,
data.Id,
deleteResponseOkFunction,
feedbackError
);
}
function deleteResponseOk(gridToRefreshList, formName) {
$.each(gridToRefreshList,
function (index, value) {
if (CommonUtils.isNullOrEmpty(formName)) {
KretaGridHelper.refreshGrid(value);
} else {
KretaGridHelper.refreshGridByFormName(value, formName);
}
}
);
mulasztasKezelesHelper.refreshTabGrids(searchFormName);
KretaWindowHelper.successFeedBackWindow();
}
function feedbackError() {
var message = "@CommonResource.Hiba";
KretaWindowHelper.feedbackWindow("@CommonResource.Hiba", message, true);
}
return mulasztasKezelesHelper;
})();
$(document).ready(function () {
var tabStrip = $("#MulasztasokTabStrip").data("kendoTabStrip");
tabStrip.bind("activate", function () {
MulasztasKezelesHelper.onTabStripActivate(tabStrip);
});
});
</script>