This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,406 @@
@using Kreta.Enums
@using Kreta.Framework
@using Kreta.Resources
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid
@model MulasztasIndexModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
@{
var searchFormName = "CsoportMulasztasokSearchForm";
var gridName = "CsoportMulasztasokGrid";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, gridName))
{
@Html.KretaComboBoxFor(x => x.CsoportId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetCsoportVezList", showTanoraCeluCsoportok = true }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
}
}
<div>
@(
Html.KretaGrid<MulasztasokDatumNezetGridModel>(
gridName,
new GridApiUrl("MulasztasokApi", "GetMulasztasokDatumNezetGrid", new Dictionary<string, string>()),
dataParameterFunction: searchFormName,
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("GetMulasztasokDatumNezetDetailGrid", "CsoportMulasztasok", new { area = "Hianyzas" }),
clientTemplateWholeDataRow: true,
allowPaging: false,
allowScrolling: false,
pageSizes: null
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(c => c.MulasztasDatuma).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.MulasztasNapja).Width("30%");
columns.Bound(c => c.MulasztasokSzama).Width("30%");
})
)
</div>
@Html.KretaGridTemplate("detailGrid-template")
@Html.KretaTooltipTemplate("kendoTooltip-tanuloNevTemplate",
@"<div class='kendoTooltip'>
<table>
<tr>
<td style='padding-right: 5px'><b>Csoport:</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 MulasztasKezelesHelper = (function () {
var mulasztasKezelesHelper = function () { };
var url = {
OpenTanuloMulasztasaiPopup: "@Url.Action("OpenTanuloMulasztasaiPopup", "CsoportMulasztasok", new { area = "Hianyzas" })",
SaveMulasztasList: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "MulasztasokApi", action = "SaveMulasztasList" })",
Delete: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "MulasztasokApi", action = "DeleteMulasztas" })",
VaneMarIgazolt: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "MulasztasokApi", action = "VaneMarIgazolt" })"
};
var confirmMessage = "@HianyzasResource.MarVanRogzitettIgazolas";
var currentTanuloNev;
var gridName = "@gridName";
var searchFormName = "@searchFormName";
mulasztasKezelesHelper.refreshTabGrids = function (formName) {
KretaGridHelper.refreshGridSearchPanel(gridName, formName);
}
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 () {
setToolTip();
}
function setToolTip() {
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 { CsoportId } = KretaGridHelper.getSearchParameterObject("@searchFormName");
var data = { TanuloId: tanuloId, OsztalyCsoportId: CsoportId, apiControllerName: "@Constants.ApiControllers.MulasztasokApi" };
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;
resultData[index] = {
ID: value.ID,
TanuloId: value.ID === "0" ? 0 : value.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,
mulasztasKezelesHelper.saveMulasztasListFeedBackOkPostReturn);
}
}
}
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.orvosi_igazolas)");
}
} 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.saveMulasztasListFeedBackOkPostReturn = function (data) {
mulasztasKezelesHelper.saveMulasztasListFeedBackOk(gridNamesToRefreshList, currentFormName, data);
}
mulasztasKezelesHelper.saveMulasztasListFeedBackOk = function (gridToRefreshList, formName, data) {
$.each(gridToRefreshList,
function (index, value) {
if (CommonUtils.isNullOrEmpty(formName)) {
KretaGridHelper.refreshGrid(value);
} else {
KretaGridHelper.refreshGridByFormName(value, formName);
}
}
);
mulasztasKezelesHelper.refreshTabGrids(searchFormName);
KretaWindowHelper.successFeedBackWindow();
}
@*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;
})();
</script>

View file

@ -0,0 +1,422 @@
@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>

View file

@ -0,0 +1,296 @@
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers.Grid
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Controllers
@model FelmentesekSearchModel
@section AddCss {
@Styles.Render(Constants.General.FeljegyzesekCSS)
}
@{ string gridName = FelmentesekController.GridName;
string searchFormName = FelmentesekController.SearchFormName;
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, gridName))
{
@Html.KretaTextBoxFor(x => x.TanuloNeve).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.OsztalyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetOsztalyListByEvfolyam" })).AutoBind(true).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.TantargyIdSearch, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetTantargy" })).AutoBind(true).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.KezdeteDateFrom, x => x.KezdeteDateTo)
@Html.KretaRangeDatePickerSideBar(x => x.VegeDateFrom, x => x.VegeDateTo)
@Html.KretaComboBoxFor(x => x.IsTanoraLatogatasaAloli, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IsErtekelesAloli, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IsSzovegesenErtekelheto, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.FelmentesOka).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.RogzitesDateFrom, x => x.RogzitesDateTo)
@Html.KretaTextBoxFor(x => x.RogzitoNeve).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.ModositasDateFrom, x => x.ModositasDateTo)
@Html.KretaTextBoxFor(x => x.ModositoNeve).RenderSearchPanelSideBar()
}
}
@{
List<FunctionCommand> nestedExportFunctions = new List<FunctionCommand>
{
new FunctionCommand {Name = ImportExportCommonResource.Export, ClientAction = "FelmentesekHelper.getExport"},
new FunctionCommand {Name = FelmentesResource.AktivFelmentesekExport, ClientAction = "FelmentesekHelper.getExportAktiv"},
new FunctionCommand {Name = FelmentesResource.ToroltFelmentesekExport, ClientAction = "FelmentesekHelper.getExportTorolt"}
};
List<FunctionCommand> functionList = new List<FunctionCommand>
{
new FunctionCommand {Name = TanuloResource.Export.ToUpper(), NestedCommands = nestedExportFunctions }
};
var rowFunctionList = new List<RowFunction>
{
new RowFunction { Name = CommonResource.Modositas, ClientAction = "FelmentesekHelper.modFelmentes", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Modositas },
new RowFunction { Name = CommonResource.Adatok, ClientAction = "FelmentesekHelper.infoFelmentes", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Adatok },
new RowFunction { Name = CommonResource.Torles, ClientAction = "FelmentesekHelper.deleteConfirmWindow", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Torles }
};
var grid = Html.KretaGrid<FelmentesekGridModel>(
gridName,
new GridApiUrl(Constants.ApiControllers.FelmentesekApi, "GetFelmentesekGrid"),
useToolBar: true,
dataParameterFunction: searchFormName,
dataBoundAdditionalFunction: "FelmentesekHelper.setAthuzas(this)",
allowSorting: true,
allowScrolling: true,
allowPaging: true,
sort: sort => sort.Add(s => s.TanuloOsztalya)
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn)
)
.Columns(columns => {
columns.Bound(c => c.TanuloNeve);
columns.Bound(c => c.TanuloOsztalya);
columns.Bound(c => c.TantargyNev);
columns.Bound(c => c.KezdeteDate);
columns.Bound(c => c.VegeDate);
columns.Bound(c => c.TanoraLatogatasaAloli);
columns.Bound(c => c.ErtekelesAloli);
columns.Bound(c => c.SzovegesenErtekelheto);
columns.Bound(c => c.FelmentesOka);
columns.Bound(c => c.RogzitoNeve);
})
.ConditionalRowFunction(Html, rowFunctionList, "FelmentesekHelper.isTorolt")
.FunctionCommand(Html, functionList);
}
<div>
@(grid)
</div>
<script type="text/javascript">
var FelmentesekHelper = (function () {
var felmentesekHelper = function () { }
var gridName = "@gridName";
var formName = "FelmentesForm";
var searchFormName = "@searchFormName";
var url = {
ModFelmentes: "@Url.Action("ModFelmentes", Constants.Controllers.Felmentesek, new { area = Constants.Areas.Hianyzas })",
InfoFelmentes: "@Url.Action("InfoFelmentes", Constants.Controllers.Felmentesek, new { area = Constants.Areas.Hianyzas })",
SaveFelmentes: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.FelmentesekApi, action = "SaveFelmentes" })",
DeleteFelmentes: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.FelmentesekApi, action = "DeleteFelmentes" })",
getExport: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Constants.ApiControllers.FelmentesekApi, action = "GetExportFelmentesekGrid" })",
getExportAktiv: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Constants.ApiControllers.FelmentesekApi, action = "GetExportAktivFelmentesek" })",
getExportTorolt: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Constants.ApiControllers.FelmentesekApi, action = "GetExportToroltFelmentesek" })"
};
felmentesekHelper.setAthuzas = function (sender) {
var toroltUids = sender.dataSource.data().filter(function (e) { return e.Torolt }).map(function (e) { return e.uid });
$.each(sender.items(), function () {
if (($.inArray(($(this).attr("data-uid")), toroltUids)) !== -1) {
$(this).addClass("kretaStrikedGridRow disabledItem");
}
});
}
felmentesekHelper.isTorolt = function (rowData) {
return !rowData.Torolt;
}
felmentesekHelper.getExport = function () {
KretaGridHelper.getExportBySearchForm(gridName, url.getExport, searchFormName);
}
felmentesekHelper.getExportAktiv = function () {
KretaGridHelper.getExportBySearchForm(gridName, url.getExportAktiv, searchFormName);
}
felmentesekHelper.getExportTorolt = function () {
KretaGridHelper.getExportBySearchForm(gridName, url.getExportTorolt, searchFormName);
}
felmentesekHelper.infoFelmentes = function (data) {
var postData = { Id: data.ID };
AjaxHelper.DoValidationPost(url.InfoFelmentes, formName, postData, popUpInfoFelmentesWindow);
}
felmentesekHelper.modFelmentes = function (data) {
var postData = { Id: data.ID };
AjaxHelper.DoValidationPost(url.ModFelmentes, formName, postData, popUpModFelmentesWindow);
}
felmentesekHelper.modFelmentesCancel = function () {
KretaWindowHelper.destroyWindow("modFelmentesWindow");
}
felmentesekHelper.infoFelmentesCancel = function () {
KretaWindowHelper.destroyWindow("infoFelmentesWindow");
}
felmentesekHelper.modFelmentesSave = function () {
var felmentesFormData = $('#' + formName);
var felmentesData = felmentesFormData.toObject();
felmentesData.IsKorabbiMulasztasokEllenorzese = true;
felmentesData.IsKorabbiMulasztasokModositasa = false;
AjaxHelper.DoValidationPost(url.SaveFelmentes, formName, felmentesData, felmentesSaveFeedBackOk);
}
felmentesekHelper.deleteConfirmWindow = function (data) {
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanTorli)", deleteFelmentes, data.ID);
}
function felmentesSaveFeedBackOk(data) {
if (data == "") {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
refreshGrid(gridName);
}
else {
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)",
"<div class ='felmentesWarrningMessage'> @(IgazolasResource.ARogzitenikivantFelmentesiAdatokKorabbiIdoszakraVonatkoznakEsATanuloOralatogatasiKotelezettsegetErintik)</div>"
+"<div id ='MulasztasGrid' ></div>"
+ "<div class ='felmentesWarrningMessage'> @(IgazolasResource.AFelmentesRogzitesenekFolytatasavalAFentiMulasztasiErtekekTorlesreKerulnek)</div>"
+ "<div class ='felmentesWarrningMessage'> @(IgazolasResource.KivanjaFolytatniAMentestAFentieketFigyelembeVeve)</div>"
, newFelmentesSaveKorabbiMulasztasokModositasa, null, null, "@(CommonResource.Folytatas)", "@(CommonResource.Megse)", null, false, false, false, null, 1000);
$("#MulasztasGrid").kendoGrid({
columns: [
{field: "Tantargyak", title: "@(IgazolasResource.TantargyakMulasztasDbPerc)",
headerAttributes: {
style: "text-align: left; vertical-align: top;"
},
attributes: {
style: "text-align: left;"
}},
{
field:
"IgazolasraVaroKeses", title: "@(IgazolasResource.IgazolasraVaroKeses)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},
{
field: "IgazolasraVaroHianyzas", title: "@(IgazolasResource.IgazolasraVaroHianyzas)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},
{
field: "IgazoltKeses", title: "@(IgazolasResource.IgazoltKeses)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},
{
field: "IgazoltHianyzas", title: "@(IgazolasResource.IgazoltHianyzas)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},
{
field: "IgazolatlanKeses", title: "@(IgazolasResource.IgazolatlanKeses)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},
{
field: "IgazolatlanHianyzas", title: "@(IgazolasResource.IgazolatlanHianyzas)", width: "90px",
headerAttributes: {
style: "text-align: center; vertical-align: top;"
},
attributes: {
"class": "mulasztasGrid-table-cell"
}
},],
});
var dataSource = new kendo.data.DataSource({
data:data.Data
});
var grid = $("#MulasztasGrid").data("kendoGrid");
grid.setDataSource(dataSource);
$("#KretaGeneratedConfrimWindow").parent().css("margin-top", "-175px");
}
}
function popUpModFelmentesWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(FelmentesResource.FelmentesModositasa)";
config.width = "650px";
config.height = "525px";
config.content = data;
var modal = KretaWindowHelper.createWindow("modFelmentesWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function popUpInfoFelmentesWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(FelmentesResource.FelmentesMegtekintese)";
config.width = "650px";
config.height = "525px";
config.content = data;
var modal = KretaWindowHelper.createWindow("infoFelmentesWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function deleteFelmentes(data) {
AjaxHelper.DoPost(url.DeleteFelmentes, data, deleteFelmentesResponseOk);
}
function deleteFelmentesResponseOk() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
function refreshGrid(gridName) {
KretaGridHelper.refreshGrid(gridName);
}
function feedbackError() {
var message = "@(CommonResource.Hiba)";
KretaWindowHelper.feedbackWindow("@(CommonResource.Hiba)", message, true, KretaWindowHelper.destroyAllWindow);
}
return felmentesekHelper;
})();
</script>

View file

@ -0,0 +1,63 @@
@using Kreta.Web.Areas.Tanulo.Models
@model TanuloFelmentesModel
<div class="container-fluid details">
@using (Html.KretaForm("FelmentesForm"))
{
@Html.KretaValidationSummary()
@Html.HiddenFor(x => x.ID)
@Html.HiddenFor(x => x.TanuloId)
<div class="row">
@Html.KretaLabelFor(x => x.TanuloNeve, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.TanuloOsztalya, 3, 9)
</div>
<div class="row">
@Html.KretaComboBoxFor(x => x.TantargyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargyList" })).AutoBind(true).RenderWithName(isCustomRequired: true)
</div>
<div class="row">
@Html.KretaCheckBoxFor(x => x.OraMentesites).RenderWithName()
</div>
<div class="row">
@Html.KretaCheckBoxFor(x => x.ErtekelesMentesites).RenderWithName()
</div>
<div class="row">
@Html.KretaCheckBoxFor(x => x.SzovegesenErtekelheto).RenderWithName()
</div>
<div class="row">
@Html.KretaTextAreaFor(x => x.FelmentesOka).RenderWithName()
</div>
<div class="row">
@Html.KretaDatePickerFor(x => x.Kezdete).RenderWithName()
</div>
<div class="row">
@Html.KretaDatePickerFor(x => x.Vege).RenderWithName()
</div>
}
</div>
<script type="text/javascript">
$(document).ready(function () {
setTimeout(function () {
if (!$('#ErtekelesMentesites').is(':checked')) {
$('#SzovegesenErtekelheto').prop('disabled', true);
$('#SzovegesenErtekelheto').prop('checked', false);
}
else {
$('#SzovegesenErtekelheto').prop('disabled', false);
}
$('#ErtekelesMentesites').click(function () {
if ($(this).is(':checked')) {
$('#SzovegesenErtekelheto').prop('disabled', false);
}
else {
$('#SzovegesenErtekelheto').prop('disabled', true);
$('#SzovegesenErtekelheto').prop('checked', false);
}
});
}, 1);
});
</script>

View file

@ -0,0 +1,36 @@
@using Kreta.Web.Areas.Hianyzas.Models
@model FelmentesekGridModel
<div class="container-fluid details">
<div class="row">
@Html.KretaLabelFor(x => x.TanuloNeve, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.TanuloOsztalya, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.TantargyNev, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.TanoraLatogatasaAloli, 3, 3)
@Html.KretaLabelFor(x => x.ErtekelesAloli, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.SzovegesenErtekelheto, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.FelmentesOka, 3, 9)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.KezdeteDate, 3, 3)
@Html.KretaLabelFor(x => x.VegeDate, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.RogzitesDate, 3, 3)
@Html.KretaLabelFor(x => x.RogzitoNeve, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.ModositasDate, 3, 3)
@Html.KretaLabelFor(x => x.ModositoNeve, 3, 3)
</div>
</div>

View file

@ -0,0 +1,94 @@
@using Kreta.Enums
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Resources
@model HianyzasokSearchModel
@{
var searchFormName = "searchForm";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, "HianyzasGrid"))
{
@Html.KretaRangeDatePickerSideBar(model => model.IdoszakKezdete, model => model.IdoszakVege)
@Html.KretaNumericFor(x => x.Oraszam).Min(0).Max(24).Step(1).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.TantargyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargyList" })).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.Tema).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.MulasztasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetMulasztasTipusList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.Igazolt, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.TanoraiCeluMulasztas, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetIgazolasTipusList" })).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(model => model.RogzitesKezdete, model => model.RogzitesVege)
@Html.HiddenFor(x => x.MulaszatasId);
}
}
<div>
@(
Html.KretaGrid<HianyzasGridModel>
(
"HianyzasGrid",
new GridApiUrl("HianyzasokApi", "GetHianyzasGrid"),
dataParameterFunction: "searchForm",
dataBoundAdditionalFunction: "HianyzasGridHelper.HighlightRow();",
sort: sort => sort.Add(m => m.MulasztasDatum).Descending(),
allowScrolling: true
)
.Columns(columns =>
{
columns.Bound(m => m.MulasztasDatum).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.Oraszam).Width("10%");
columns.Bound(m => m.Targy);
columns.Bound(m => m.Tema);
columns.Bound(m => m.MulasztasTipus_DNAME).ClientTemplate("#if (MulasztasTipus == \"" + (int)@MulasztasTipusEnum.keses + "\" && Perc != null) {# #:MulasztasTipus_DNAME# (#:Perc# " + StringResourcesUtils.GetString(220) + ") #} else {# #:MulasztasTipus_DNAME# #} #");
columns.Bound(m => m.Igazolt_BNAME).Width("10%");
columns.Bound(m => m.TanoraiCeluMulasztas_BNAME).Width("10%");
columns.Bound(m => m.IgazolasTipus_DNAME);
columns.Bound(m => m.RogzitesDatum).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
})
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.FunctionCommand(Html, new List<FunctionCommand>
{
new FunctionCommand
{
Name = ImportExportCommonResource.Export.ToUpper(),
ClientAction = "HianyzasGridHelper.export"
}
})
)
</div>
@section AddJs{
<script type="text/javascript">
var HianyzasGridHelper = (function () {
var hianyzasGridHelper = function () { };
var searchFormName = "@searchFormName";
var url = {
Export: "@Url.Action("Export", Constants.Controllers.Hianyzasok, new { area = Constants.Areas.Hianyzas })",
}
hianyzasGridHelper.HighlightRow = function () {
KretaGridHelper.getAllRows("HianyzasGrid").forEach(val => {
if (val.ID == "@Model.MulaszatasId") {
document.querySelector(`tr[data-uid="${val.uid}"]`).style.backgroundColor = "#54A5D1";
}
});
}
hianyzasGridHelper.export = function () {
window.location = url.Export + "?" + $.param(KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName));
}
return hianyzasGridHelper;
})();
</script>
}

View file

@ -0,0 +1,282 @@
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Helpers
@using Kreta.Resources
@model IgazolasKeresoModel
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "IgazolasokGrid"))
{
@Html.KretaComboBoxFor(x => x.OsztCsopId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = Model.IsFromSzervezet ? "GetDualisCsopList" : "GetOsztCsopList", osztalyfonokiFeladat = true }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
}
}
<div id="IgazolasValidator">
@Html.KretaValidationSummary()
</div>
<div>
@(
Html.KretaGrid<IgazolasGridModel>(
"IgazolasokGrid",
new GridApiUrl(Model.ApiControllerName, "GetIgazolasGrid", new Dictionary<string, string> { { "OsztCsopId", Model.OsztCsopId.ToString() } }),
dataParameterFunction: "searchForm",
dataBoundAdditionalFunction: "IgazolasHelper.setKendoMaskedDataPicker(); IgazolasHelper.setToolTip();",
requestEndAdditionalFunction: "IgazolasHelper.requestEndAdditionalFunction",
clientTemplate: "detailGrid-template",
clientTemplateUrl: @Url.Action("IgazolasDetailGrid", Model.ControllerName, new { area = "Hianyzas", apiControllerName = Model.ApiControllerName }),
sort: sort => sort.Add(s => s.TanuloNevElotagNelkul).Ascending(),
allowPaging: false,
allowScrolling: true,
pageSizes: null
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloNevElotagNelkul).ClientTemplate(@"
<a class='kendoTooltip tanuloNev gridLinkButton'
data-tanuloid='#: ID #'
data-tanulonev='#: TanuloNevElotagNelkul #'
data-osztaly='#: OsztCsopNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdo #'
>#: TanuloNevElotagNelkul #</a>");
})
.DatePickerForColumn(Html,2021 /*Igazolás első napja*/, m => m.IgazolasElsoNap, Model.KezdoNap, Model.UtolsoNap)
.DatePickerForColumn(Html, 2022 /*Igazolás utolsó napja*/, m => m.IgazolasUtolsoNap, Model.KezdoNap, Model.UtolsoNap)
.EditableDropDownColumn(Html, HianyzasResource.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = Model.IsFromSzervezet ? "GetDualisIgazolasTipusList" : "GetIgazolasTipusList" }), m => m.Valid, m => m.IgazolasTipus, "Text", "Value")
.TextBoxForColumn(Html,2023 /*Igazolás szöveges tartalma*/, m => m.IgazolasSzovegesTartalma)
.AutoBind(true)
.FunctionCommand(Html, new List<FunctionCommand>
{
new FunctionCommand { Name = "SaveIgazolas", NameResourceId = 111 /*Mentés*/, ClientAction = "IgazolasHelper.SaveIgazolas"}
})
.Sortable(sortable => sortable.AllowUnsort(false))
)
</div>
@Html.KretaGridTemplate("detailGrid-template")
@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 IgazolasHelper = (function () {
var igazolasHelper = function () { };
var gridName = "IgazolasokGrid";
var searchFormName = "searchForm";
var validationSummaryName = "IgazolasValidator";
var errorContainer = $("#IgazolasValidator").find(".kreta-validation-summary");
var errorList = errorContainer.find("ul");
var url = {
SaveIgazolas: "@Url.HttpRouteUrl("ActionApi", new { controller = "IgazolasokApi", action = "SaveIgazolas" })",
ValidateIgazolasOnSave: "@Url.HttpRouteUrl("ActionApi", new { controller = "IgazolasokApi", action = "ValidateIgazolasOnSave" })",
DeleteIgazolas: "@Url.HttpRouteUrl("ActionApi", new { controller = "IgazolasokApi", action = "DeleteIgazolas" })"
};
igazolasHelper.SaveIgazolas = function () {
clearErrors();
var igazolasData = [];
var hasError = false;
var warningMessage = "";
var osztalyCsoportId = $("#OsztCsopId").val();
var modifiedRows = KretaGridHelper.getModifiedRows(gridName);
$.each(modifiedRows, function (index, rowData) {
if (hasValidRowData(rowData)) {
if (!validateErrorRowData(rowData)) {
hasError = true;
} else {
var rowWarningMessage = validateWarningRowData(rowData);
if (rowWarningMessage.length > 0) {
warningMessage += "<br/>" + rowWarningMessage;
}
igazolasData.push({
TanuloId: rowData.ID,
TanuloNev: rowData.TanuloNev,
OsztalyCsoportId: osztalyCsoportId,
IgazolasElsoNap: rowData.ki_IgazolasElsoNap,
IgazolasUtolsoNap: rowData.ki_IgazolasUtolsoNap,
IgazolasTipus: rowData.ki_IgazolasTipus,
IgazolasSzovegesTartalma: rowData.ki_IgazolasSzovegesTartalma,
SzervezetId: rowData.TanuloSzervezetId
});
}
}
});
if (hasError) {
showErrors();
} else {
if (igazolasData.length > 0) {
if (warningMessage.length > 0) {
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", warningMessage, save, igazolasData, undefined, "@IgazolasResource.OsszesIgazolasMentese", "@IgazolasResource.Vissza");
} else {
AjaxHelper.DoValidationPost(url.ValidateIgazolasOnSave, null, igazolasData, validationsuccessCallBack,validationErrorCallBack);
}
}
}
}
function getIgazolasData() {
var igazolasData = [];
var osztalyCsoportId = $("#OsztCsopId").val();
var modifiedRows = KretaGridHelper.getModifiedRows(gridName);
$.each(modifiedRows, function (index, rowData) {
if (hasValidRowData(rowData)) {
if (validateErrorRowData(rowData)) {
igazolasData.push({
TanuloId: rowData.ID,
TanuloNev: rowData.TanuloNev,
OsztalyCsoportId: osztalyCsoportId,
IgazolasElsoNap: rowData.ki_IgazolasElsoNap,
IgazolasUtolsoNap: rowData.ki_IgazolasUtolsoNap,
IgazolasTipus: rowData.ki_IgazolasTipus,
IgazolasSzovegesTartalma: rowData.ki_IgazolasSzovegesTartalma,
SzervezetId: rowData.TanuloSzervezetId
});
}
}
});
return igazolasData;
}
function validationsuccessCallBack() {
save(getIgazolasData());
}
function validationErrorCallBack(data) {
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", data.responseJSON.Message, save, getIgazolasData(), undefined, "@IgazolasResource.OsszesIgazolasMentese", "@IgazolasResource.Vissza");
}
igazolasHelper.DeleteConfirmWindow = function (rowData) {
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@CommonResource.BiztosanTorli", deleteIgazolas, rowData.ID);
}
igazolasHelper.requestEndAdditionalFunction = function (e) {
clearErrors();
}
igazolasHelper.setKendoMaskedDataPicker = function () {
var dataPickerElsoNap = [$("input[id*='IgazolasElsoNap']"), $("input[id*='IgazolasUtolsoNap']")];
dataPickerElsoNap.forEach(e => {
e.kendoMaskedDatePicker();
e.change(function () {
KretaDateTimeHelper.validateDate($(this));
});
e.parent().parent().css("width", "initial");
});
}
igazolasHelper.setToolTip = function () {
var kendoTooltip = $(".tanuloNev");
KretaTooltipHelper.setTooltip(kendoTooltip, "#kendoTooltip-tanuloNevTemplate");
}
function save(igazolasData) {
AjaxHelper.DoValidationPost(url.SaveIgazolas, validationSummaryName, igazolasData, saveFeedBackOk);
}
function saveFeedBackOk() {
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
KretaWindowHelper.feedbackWindow("@CommonResource.Siker", "@CommonResource.AMentesSikeresenMegtortent", false, KretaWindowHelper.destroyAllWindow);
}
function deleteIgazolas(data) {
AjaxHelper.DoPost(url.DeleteIgazolas, data, deleteResponseOk);
}
function deleteResponseOk() {
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
KretaWindowHelper.feedbackWindow("@CommonResource.Siker", "@CommonResource.ATorlesSikeresenMegtortent", false, KretaWindowHelper.destroyAllWindow);
}
function hasValidRowData(rowData) {
return (rowData.ki_IgazolasElsoNap != "" || rowData.ki_IgazolasUtolsoNap != "" || rowData.ki_IgazolasSzovegesTartalma != "");
}
function validateErrorRowData(rowData) {
var isValid = true;
if (rowData.ki_IgazolasElsoNap != "" || rowData.ki_IgazolasUtolsoNap != "" || rowData.ki_IgazolasSzovegesTartalma != "") {
if (rowData.ki_IgazolasElsoNap == "") {
addError("@IgazolasResource.NemAdtaMegAzIgazolasElsoNapjat".format(rowData.TanuloNev));
isValid = false;
}
if (rowData.ki_IgazolasUtolsoNap == "") {
addError("@IgazolasResource.NemAdtaMegAzIgazolasUtolsoNapjat".format(rowData.TanuloNev));
isValid = false;
}
}
if (rowData.ki_IgazolasElsoNap != "" && rowData.ki_IgazolasUtolsoNap != "") {
var igazolasElsoNap = kendo.parseDate(rowData.ki_IgazolasElsoNap, 'yyyy. MM. dd.');
var igazolasUtolsoNap = kendo.parseDate(rowData.ki_IgazolasUtolsoNap, 'yyyy. MM. dd.');
if (igazolasUtolsoNap < igazolasElsoNap) {
addError("@IgazolasResource.AzIgazolasUtolsoNapjaNemLehetKorabbiMintAzIgazolasElsoNapja".format(rowData.TanuloNev));
isValid = false;
}
}
if (rowData.ki_IgazolasElsoNap != "") {
var igazolasElsoNap = kendo.parseDate(rowData.ki_IgazolasElsoNap, 'yyyy. MM. dd.');
var igazolasNaplozaras = kendo.parseDate("@(Model.IgazolasNaplozarasDatum)", 'yyyy. MM. dd.');
if (igazolasElsoNap <= igazolasNaplozaras) {
addError("@IgazolasResource.AzIgazolasKezdoNapjaNemEshetLezartIdoszakra".format(rowData.TanuloNev));
isValid = false;
}
}
return isValid;
}
function validateWarningRowData(rowData) {
var warningMessage = "";
var oneDay = 24 * 60 * 60 * 1000;
var igazolasElsoNap = kendo.parseDate(rowData.ki_IgazolasElsoNap, 'yyyy. MM. dd.');
var igazolasUtolsoNap = kendo.parseDate(rowData.ki_IgazolasUtolsoNap, 'yyyy. MM. dd.');
if (Math.round(Math.abs((igazolasUtolsoNap.getTime() - igazolasElsoNap.getTime()) / oneDay)) > 20) {
warningMessage = "@IgazolasResource.AzIgazolasDatumokKozottiElteresNagyobbMint20Nap".format(rowData.TanuloNev, rowData.ki_IgazolasElsoNap.bold(), rowData.ki_IgazolasUtolsoNap.bold());
}
return warningMessage;
}
function clearErrors() {
errorContainer.addClass("validation-summary-valid").removeClass("validation-summary-errors");
errorContainer.css({ 'display': 'none' });
errorList.empty();
}
function showErrors() {
errorContainer.addClass("validation-summary-errors").removeClass("validation-summary-valid");
errorContainer.css({ 'display': 'block' });
}
function addError(errorMessage) {
$("<li />").html("<label class='error labelError'>" + errorMessage + "</label>").appendTo(errorList);
}
return igazolasHelper;
})();
</script>

View file

@ -0,0 +1,23 @@
@model Kreta.Web.Areas.Hianyzas.Models.IgazolasModel
@using Kreta.Web.Helpers
<div class="container-fluid details">
<div class="row">
@Html.KretaLabelFor(x => x.TanuloNev, 3, 3)
@Html.KretaLabelFor(x => x.OsztCsopNev, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.ErvKezdeteRoviddatum, 3, 3)
@Html.KretaLabelFor(x => x.ErvVegeRoviddatum, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.RogzitoNev, 3, 3)
@Html.KretaLabelFor(x => x.RogzDatumRoviddatum, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.IgazolasTipusNev, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Megjegyzes, 3, 9, formatted: true)
</div>
</div>

View file

@ -0,0 +1,125 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Security;
@model IgazolasokListajaSearchModel
@{
const string GridName = "IgazolasokListajaGrid";
const string SearchForm = "searchForm";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(SearchForm, GridName))
{
@Html.KretaComboBoxFor(x => x.FeladatEllatasiHelyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetFeladatellatasiHelyek" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.IgazolasKezdteteSearch, x => x.IgazolasVegeSearch)
@Html.KretaTextBoxFor(x => x.NevSearch).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.OsztalySearch, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetOsztalyListByEvfolyam" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IgazolasTipusaSearch, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetIgazolasTipusList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.RogzitoSearch, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetPedagogusListByTanev" })).RenderSearchPanelSideBar()
@Html.KretaRangeDatePickerSideBar(x => x.RogzitesDatumaTolSearch, x => x.RogzitesDatumaIgSearch)
}
}
@{
List<FunctionCommand> functions = new List<FunctionCommand> {
new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "IgazolasokListajaHelper.getExport" }
};
}
<div>
@(
Html.KretaGrid<IgazolasokListajaGridModel>(
name: GridName,
getUrl: new GridApiUrl("IgazolasokListajaApi", "GetIgazolasokListajaGrid"),
useToolBar: true,
dataParameterFunction: SearchForm,
allowScrolling: true,
sort: sort =>
{
sort.Add(m => m.Kezdete).Descending();
},
postRead: true
)
.Columns(columns =>
{
columns.Bound(c => c.Kezdete).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.Vege).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.NevElotagNelkul).Width("15%").SetDisplayProperty("Nev");
columns.Bound(c => c.OsztalyCsoport).Width("15%").Sortable(false);
columns.Bound(c => c.IgazolasTipusaNev).Width("10%");
columns.Bound(c => c.RogzitesDatuma).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.RogzitoElotagNelkul).Width("10%").SetDisplayProperty("Rogzito");
columns.Bound(c => c.Megjegyzes).Encoded(false);
})
.RowFunction(Html, new List<RowFunction> {
new RowFunction { NameResourceId = 118 /*Adatok*/, ClientAction= "IgazolasokListajaHelper.openIgazolasInfoWindow", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Adatok },
new RowFunction { NameResourceId = 117 /*Törlés*/, ClientAction= "IgazolasokListajaHelper.DeleteConfirmWindow", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Torles },
})
.FunctionCommand(Html, functions)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
)
</div>
<script type="text/javascript">
$(document).ready(function () {
if (!CommonUtils.isNullOrUndefined("@ClaimData.FelhelySzuro") && !CommonUtils.isNullOrUndefined($("#FeladatEllatasiHelyId").data("kendoComboBox"))) {
$("#FeladatEllatasiHelyId").data("kendoComboBox").value("@ClaimData.FelhelySzuro");
}
});
var IgazolasokListajaHelper = (function () {
var igazolasokListajaHelper = function () { };
var gridName = "@GridName";
var searchFormName = "@SearchForm";
var url = {
IgazolasInfoPopUp: "@Url.Action("IgazolasInfoPopUp", "IgazolasokListaja", new { area = "Hianyzas" })",
DeleteIgazolas: "@Url.HttpRouteUrl("ActionApi", new { controller = "IgazolasokApi", action = "DeleteIgazolasAdmin" })",
GetExport: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.IgazolasokListajaApi, action = "GetExport" })"
}
igazolasokListajaHelper.openIgazolasInfoWindow = function (rowData) {
var postData = { igazolasId: rowData.ID };
AjaxHelper.DoPost(url.IgazolasInfoPopUp, postData, popUpInfoWindow);
}
igazolasokListajaHelper.igazolasInfoCancel = function () {
KretaWindowHelper.destroyWindow("igazolasInfoWindow");
}
function popUpInfoWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(OrarendResource.IgazolasAdatai)";
config.maxWidth = "960px";
config.height = "600px";
config.content = data;
var modal = KretaWindowHelper.createWindow("igazolasInfoWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
igazolasokListajaHelper.export = function () {
var fileName = "@(HianyzasResource.IgazolasokExport)_@(DateTime.Now.ToString("yyyy_MM_dd")).xlsx";
KretaGridHelper.exportGrid(IgazolasokListajaGrid, fileName, null, 170);
}
igazolasokListajaHelper.DeleteConfirmWindow = function (rowData) {
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@CommonResource.BiztosanTorli", deleteIgazolas, rowData.ID);
}
igazolasokListajaHelper.getExport = function () {
KretaGridHelper.getExportBySearchForm(gridName, url.GetExport, searchFormName);
}
function deleteIgazolas(data) {
AjaxHelper.DoPost(url.DeleteIgazolas, data, deleteResponseOk);
}
function deleteResponseOk() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
KretaGridHelper.refreshGrid(gridName);
}
return igazolasokListajaHelper;
})();
</script>

View file

@ -0,0 +1,63 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Resources
@model InformaciokIgazolasSearchModel
@section AddSearchPanel {
@using (Html.SearchPanelSideBar("searchForm", "IgazolasGrid"))
{
@Html.KretaRangeDatePickerSideBar(model => model.IgazolasKezdeteSearch, model => model.IgazolasVegeSearch)
@Html.KretaComboBoxFor(model => model.IgazolasTipusaSearch, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetIgazolasTipusList" })).RenderSearchPanelSideBar()
}
}
<div>
@(
Html.KretaGrid<InformaciokIgazolasGridModel>
(
"IgazolasGrid",
new GridApiUrl("InformaciokIgazolasokApi", "GetIgazolasGrid"),
sort: sort => sort.Add(m => m.Kezdete).Descending(),
allowPaging: true,
allowScrolling: true,
pageSizes: null
)
.Columns(columns =>
{
columns.Bound(m => m.Kezdete).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.Vege).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.IgazolasTipusa_DNAME);
columns.Bound(m => m.Megjegyzes);
})
.FunctionCommand(Html, new List<FunctionCommand>
{
new FunctionCommand { Name = ImportExportCommonResource.Export.ToUpper(), ClientAction = "InformaciokIgazolasHelper.exportIgazolasGrid" }
})
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
)
</div>
<script type="text/javascript">
var InformaciokIgazolasHelper = (function () {
var informaciokIgazolasHelper = function () { };
var searchFormName = "searchForm";
var url = {
ExportIgazolasok: "@Url.Action("ExportIgazolasok", "InformaciokIgazolasok", new {area = "Hianyzas"})",
}
informaciokIgazolasHelper.exportIgazolasGrid = function () {
window.location = url.ExportIgazolasok + "?" + $.param(KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName));
}
return informaciokIgazolasHelper;
})();
</script>

View file

@ -0,0 +1,215 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Enums.ManualEnums
@using Kreta.Framework
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Controllers
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Security
@model MulasztasSearchModel
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
@{
var gridName = MulasztasKeresoController.GridName;
var searchFormName = MulasztasKeresoController.SearchFormName;
var infoPopUpId = MulasztasKeresoController.InfoPopUpId;
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, gridName))
{
if (!Model.IsFromSzervezet)
{
if (ClaimData.IsVegyes)
{
@Html.KretaComboBoxFor(x => x.FeladatKategoriaId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetFeladatKategoriaSzuro" }), "Text", "Value").AutoBind(true).RenderSearchPanelSideBar()
}
@Html.KretaComboBoxFor(x => x.FeladatEllatasiHelyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetFeladatEllatasiHelyList" })).RenderSearchPanelSideBar()
}
@Html.KretaRangeDatePickerSideBar(x => x.DatumTol, x => x.DatumIg)
@Html.KretaTextBoxFor(x => x.TanuloNeve).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.OsztalyCsoportId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = Model.IsFromSzervezet ? "GetOsztalyCsoportDualisListByEvfolyam" : "GetOsztalyCsoportListByEvfolyam" }), useGroup: !Model.IsFromSzervezet).RenderSearchPanelSideBar()
if (!Model.IsFromSzervezet)
{
@Html.KretaCheckBoxFor(x => x.KellKapcsolodoCsoportok).RenderSearchPanelSideBar()
}
@Html.KretaComboBoxFor(x => x.CsoportTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetCsoportTipusList", szervezetTipusEnumId = (int?)Model.SzervezetTipusEnum })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.FoglalkozasId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargyfelosztasComboBoxListItemList", szervezetTipusEnumId = (int?)Model.SzervezetTipusEnum })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.TantargyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargyComboBoxListItemList", szervezetTipusEnumId = (int?)Model.SzervezetTipusEnum, addMagatartasSzogalom = !Model.IsFromSzervezet })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.MulasztasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetMulasztasTipusList", szervezetTipusEnumId = (int?)Model.SzervezetTipusEnum })).RenderSearchPanelSideBar()
@Html.KretaNumericFor(x => x.KesesPercben).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IgazoltsagAllapota, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "GetIgazoltList" })).RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetIgazolasTipusList", szervezetTipusEnumId = (int?)Model.SzervezetTipusEnum })).RenderSearchPanelSideBar()
if (!Model.IsFromSzervezet)
{
@Html.KretaComboBoxFor(x => x.IsOnlineOra, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" })).RenderSearchPanelSideBar()
}
@Html.KretaCheckBoxFor(x => x.IsNemJelenlevoTanulokMegjelenitese).RenderSearchPanelSideBar()
@Html.KretaCheckBoxFor(x => x.IsNemBesoroltTanulokMulasztasainakMegjelenitese).RenderSearchPanelSideBar()
if (Model.IsFromSzervezet)
{
@Html.KretaTextBoxFor(x => x.SzervezetNevSzovegSearch).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(x => x.SzervezetAzonositoSzovegSearch).RenderSearchPanelSideBar()
}
@Html.HiddenFor(x => x.SzervezetId)
}
}
@{
List<RowFunction> rowFunctionList = new List<RowFunction>
{
new RowFunction { NameResourceId = 118 /*Adatok*/, ClientAction = "MulasztasKeresoHelper.openMulasztasKeresoInfoPopUp", IconEnum = GridRowFunctionIconEnum.Adatok },
new RowFunction { NameResourceId = 1796 /*Nem hiányzó*/, ClientAction = "MulasztasKeresoHelper.deleteMulasztasConfirmWindow", IconEnum = GridRowFunctionIconEnum.Torles }
};
List<FunctionCommand> nestedExportFunctions = new List<FunctionCommand>
{
new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "MulasztasKeresoHelper.getExport" }
};
if (!Model.IsFromSzervezet)
{
nestedExportFunctions.Add(new FunctionCommand { Name = HianyzasResource.TanulokMulasztasai, ClientAction = "MulasztasKeresoHelper.exportTanulokMulasztasai" });
nestedExportFunctions.Add(new FunctionCommand { Name = HianyzasResource.TanorakonNemJelenlevok, ClientAction = "MulasztasKeresoHelper.exportTanorakonNemJelenlevok" });
}
List<FunctionCommand> functions = new List<FunctionCommand>
{
new FunctionCommand { Name = CommonResource.KijeloltekTorlese.ToUpper(), ClientAction = "MulasztasKeresoHelper.deleteTobbesMulasztasConfirmWindow", Classes = "kendo-gridFunctionKommandRed" },
new FunctionCommand { Name = HianyzasResource.Export.ToUpper(), NestedCommands = nestedExportFunctions },
};
}
<div>
@(
Html.KretaGrid<MulasztasGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasGrid"),
allowScrolling: true,
dataParameterFunction: searchFormName,
sort: sort => sort.Add(m => m.Datum).Descending()
)
.SelectBoxColumn(Html, string.Empty)
.Columns(columns =>
{
columns.Bound(c => c.TanuloNevElotagNelkul).SetDisplayProperty("TanuloNev");
columns.Bound(c => c.Datum).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.Oraszam).Width("5%");
columns.Bound(c => c.OsztCsopNev);
columns.Bound(c => c.TargyNev);
columns.Bound(c => c.MulTip_DNAME);
columns.Bound(c => c.KesesPerc).Width("8%");
columns.Bound(c => c.Igazolt_BNAME).Width("8%");
columns.Bound(c => c.IgazolasTipus_DNAME);
})
.RowFunction(Html, rowFunctionList)
.FunctionCommand(Html, functions)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
)
</div>
<script type="text/javascript">
$(document).ready(function() {
var isFromSzervezet = CommonUtils.parseBool("@Model.IsFromSzervezet");
if (!CommonUtils.isNullOrUndefined("@ClaimData.FelhelySzuro") &&
!CommonUtils.isNullOrUndefined($("#FeladatEllatasiHelyId").data("kendoComboBox")) &&
!isFromSzervezet) {
$("#FeladatEllatasiHelyId").data("kendoComboBox").value("@ClaimData.FelhelySzuro");
}
});
var MulasztasKeresoHelper = (function() {
var mulasztasKeresoHelper = function() {};
var gridName = "@gridName";
var searchFormName = "@searchFormName";
var infoPopUpId = "@infoPopUpId";
var url = {
OpenMulasztasInfoPopUp: "@Url.Action("OpenMulasztasInfoPopUp", Model.ControllerName, new { area = "Hianyzas" })",
ExportTanulokMulasztasai: "@Url.Action("ExportTanulokMulasztasai", Model.ControllerName, new { area = "Hianyzas" })",
ExportTanorakonNemJelenlevok: "@Url.Action("ExportTanorakonNemJelenlevok", Model.ControllerName, new { area = "Hianyzas" })",
GetExport: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "GetExport" })",
DeleteMulasztas: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "DeleteMulasztas" })",
DeleteTobbesMulasztas: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "DeleteTobbesMulasztas" })"
}
mulasztasKeresoHelper.openMulasztasKeresoInfoPopUp = function(rowData) {
var postData = { MulasztasId: rowData.ID };
AjaxHelper.DoPost(url.OpenMulasztasInfoPopUp, postData, popUpInfoWindow);
}
mulasztasKeresoHelper.mulasztasKeresoInfoPopUpCancel = function() {
KretaWindowHelper.destroyWindow(infoPopUpId);
}
mulasztasKeresoHelper.deleteMulasztasConfirmWindow = function(rowData) {
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanTorli)", deleteMulasztas, rowData.ID);
}
mulasztasKeresoHelper.deleteTobbesMulasztasConfirmWindow = function() {
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)", "@(CommonResource.BiztosanTorolniSzeretneAKijeloltElemeket)", deleteTobbesMulasztas);
}
mulasztasKeresoHelper.exportTanulokMulasztasai = function() {
window.location = url.ExportTanulokMulasztasai + "?" + $.param(KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName));
}
mulasztasKeresoHelper.exportTanorakonNemJelenlevok = function() {
window.location = url.ExportTanorakonNemJelenlevok + "?" + $.param(KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName));
}
mulasztasKeresoHelper.getExport = function() {
KretaGridHelper.getExportBySearchForm(gridName, url.GetExport, searchFormName)
}
function popUpInfoWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(StringResourcesUtil.GetString(1821))"; /*Mulasztás adatok*/
config.content = data;
var modal = KretaWindowHelper.createWindow(infoPopUpId, config);
KretaWindowHelper.openWindow(modal, true);
}
function deleteMulasztas(data) {
AjaxHelper.DoPost(url.DeleteMulasztas, data, deleteSuccessCallBack, errorCallBack);
}
function deleteTobbesMulasztas() {
var selectedRows = KretaGridHelper.getSelectedRowsByGridName(gridName);
if (selectedRows.length == 0) {
KretaWindowHelper.warningWindow("@(CommonResource.Kivalasztas)", "@(CommonResource.AKijeloltElemekTorlesehezJeloljonKiLegalabbEgyElemet)");
} else {
var parameters = [];
$.each(selectedRows,
function(index, value) {
parameters.push(value.ID);
});
AjaxHelper.DoPost(url.DeleteTobbesMulasztas, parameters, deleteSuccessCallBack, errorCallBack);
}
}
function deleteSuccessCallBack() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
function errorCallBack() {
var content = "@(StringResourcesUtil.GetString(367 /*Hiba*/))";
KretaWindowHelper.feedbackWindow("@(StringResourcesUtil.GetString(367))" /*Hiba*/, content, true, KretaWindowHelper.destroyAllWindow);
}
return mulasztasKeresoHelper;
})();
</script>

View file

@ -0,0 +1,437 @@
@using Kreta.Enums
@using Kreta.Framework
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Helpers
@using Kreta.Web.Security
@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 = "GetOsztCsopList", 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", "Mulasztasok", new { area = "Hianyzas" })",
SaveMulasztasList: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "MulasztasokApi", action = "SaveMulasztasList" })",
Delete: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "MulasztasokApi", action = "DeleteMulasztas" })",
VaneMarIgazolt: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "MulasztasokApi", action = "VaneMarIgazolt" })"
};
var confirmMessage = "@HianyzasResource.MarVanRogzitettIgazolas";
var gridNamesToRefreshList;
var currentFormName;
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, apiControllerName: "@Constants.ApiControllers.MulasztasokApi" };
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ő!";
}
}
});
gridNamesToRefreshList = gridToRefreshList;
currentFormName = formName;
if (message.length > 0) {
KretaWindowHelper.feedbackWindow("", message, true);
} else {
AjaxHelper.DoPost(url.SaveMulasztasList,
resultData,
mulasztasKezelesHelper.saveMulasztasListFeedBackOkPostReturn);
}
}
}
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.orvosi_igazolas)");
}
} 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.saveMulasztasListFeedBackOkPostReturn = function (data) {
mulasztasKezelesHelper.saveMulasztasListFeedBackOk(gridNamesToRefreshList, currentFormName, data);
}
mulasztasKezelesHelper.saveMulasztasListFeedBackOk = function (gridToRefreshList, formName, data) {
$.each(gridToRefreshList,
function (index, value) {
if (CommonUtils.isNullOrEmpty(formName)) {
KretaGridHelper.refreshGrid(value);
} else {
KretaGridHelper.refreshGridByFormName(value, formName);
}
}
);
mulasztasKezelesHelper.refreshTabGrids(searchFormName);
KretaWindowHelper.successFeedBackWindow();
if (!CommonUtils.isNullOrEmpty(data)) {
mulasztasKezelesHelper.OsztondijJogosultsag7HianyzasMiattErtesito(data);
}
}
mulasztasKezelesHelper.OsztondijJogosultsag7HianyzasMiattErtesito = function (message) {
KretaWindowHelper.warningWindow("@(HianyzasResource.OsztondijJogosultsag7HianyzasMiattErtesitoFejlec)", message, null, null, null, Globalization.Rendben);
}
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>

View file

@ -0,0 +1,30 @@
@using Kreta.Web.Helpers.Grid;
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Areas.Hianyzas.Models;
@model IgazolasDetailModel
<div id="partialDetailGrid_@Model.ToString()">
@(
Html.KretaGrid<IgazolasDetailGridModel>(
"IgazolasDetailGrid_" + Model.TanuloId.ToString(),
new GridApiUrl(Model.ApiControllerName, "GetDetailIgazolasok", new Dictionary<string, string> { { "tanuloId", Model.TanuloId.ToString() } }),
useToolBar: false,
allowPaging: false,
pageSizes: null
)
.Columns(columns =>
{
columns.Bound(c => c.Kezdete).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.Vege).Width("10%").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.IgazolasTipusa_DNAME);
columns.Bound(c => c.Rogzito);
columns.Bound(c => c.Megjegyzes);
})
.RowFunction(Html, new List<RowFunction> {
new RowFunction { NameResourceId = 117 /*Törlés*/, ClientAction= "IgazolasHelper.DeleteConfirmWindow", IconEnum = Kreta.Enums.ManualEnums.GridRowFunctionIconEnum.Torles },
})
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
)
</div>

View file

@ -0,0 +1,28 @@
@using Kreta.Web.Areas.Hianyzas.Models
@model MulasztasInfoModel.AlapadatModel
<div class="container-fluid details">
<div class="row">
@Html.KretaLabelFor(model => model.Tanulo, 3, 3)
@Html.KretaLabelFor(model => model.Datum, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(model => model.Oraszam, 3, 3)
@Html.KretaLabelFor(model => model.OsztalyCsoport, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(model => model.Tantargy, 3, 3)
@Html.KretaLabelFor(model => model.MulasztasTipus, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(model => model.KesesPercben, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(model => model.Igazolt, 3, 3)
@Html.KretaLabelFor(model => model.IgazolasTipus, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(model => model.Megjegyzes, 3, 3)
</div>
</div>

View file

@ -0,0 +1,8 @@
@using Kreta.Web.Models.EditorTemplates
@model TabStripModel
<div id="MulasztasInfoTabStrip">@Html.Partial(@"EditorTemplates\TabStrip", Model.TabList)</div>
@Html.KretaTabStrip("MulasztasInfoTabStrip").Animation(false).RenderOnModal()

View file

@ -0,0 +1,42 @@
@using Kreta.Web.Areas.Hianyzas.Models
@model MulasztasInfoModel.TanitasiOraModel
<div class="container-fluid details">
<div class="row">
@Html.KretaLabelFor(x => x.Datum, 3, 3)
@Html.KretaLabelFor(x => x.Oraszam, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.HetNapja, 3, 3)
@Html.KretaLabelFor(x => x.Hetirend, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Foglalkozas, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.OsztalyCsoport, 3, 3)
@Html.KretaLabelFor(x => x.Tantargy, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Tanar, 3, 3)
@Html.KretaLabelFor(x => x.Terem, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.HelyettesitesitoTanarNeve, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Megtartott, 3, 3)
@Html.KretaLabelFor(x => x.Sorszamozando, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.OraKezdete, 3, 3)
@Html.KretaLabelFor(x => x.OraVege, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Tema, 3, 3)
</div>
<div class="row">
@Html.KretaLabelFor(x => x.Megjegyzes, 3, 3)
</div>
</div>

View file

@ -0,0 +1,135 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Security
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid
@{
Layout = null;
}
@model MulasztasokDatumNezetGridModel
@{
var gridName = "MulasztasokDatumNezetDetailGrid_" + Model.MulasztasDatuma.ToString("yyyyMMdd");
var javascriptClassName = gridName + "Helper";
var parentGridName = "MulasztasokDatumNezetGrid";
var parentFormName = "MulasztasokSearchForm";
}
@{
var igazoltList = new List<SelectListItem>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolt.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolt).ToString() });
if(!Model.SzervezetTipusId.HasValue)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
else if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet && Model.IsTanorai == false)
{
if (Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.CsakIgazoltraAllithatnak ||
Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.BarmitBeallithatnak)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolt.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolt).ToString() });
}
if (Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.BarmitBeallithatnak)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
var functionCommandList = new List<FunctionCommand>();
if (Model.IsMulasztasKezelheto && (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet
&& Model.ApiControllerName == Constants.ApiControllers.DualisMulasztasokApi || ClaimManager.HasPackage("Osztalyfonok") || Model.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet
&& Model.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak && Model.IsTanorai == false))
{
functionCommandList.Add(new FunctionCommand
{
Name = CommonResource.Mentes,
ClientAction = string.Format("function() {{ MulasztasKezelesHelper.saveMulasztasList('{0}', ['{1}'], '{2}', false); }}", gridName, parentGridName, parentFormName)
});
}
var rowFunctionList = new List<RowFunction>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet && Model.ApiControllerName == Constants.ApiControllers.DualisMulasztasokApi || ClaimManager.HasPackage("Osztalyfonok"))
{
rowFunctionList.Add(new RowFunction
{
Name = CommonResource.Torles,
ClientAction = string.Format(@"function(e) {{ MulasztasKezelesHelper.deleteConfirmWindow(e, ['{0}'], '{1}'); }}", parentGridName, parentFormName),
IconEnum = GridRowFunctionIconEnum.Torles
});
}
}
@{
var grid = Html.KretaGrid<MulasztasGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokDatumNezetDetailGrid", new Dictionary<string, string>()),
dataBoundAdditionalFunction:
string.Format(@"
var shortDateReplaced = '{0:yyyyMMdd}';
var igazoltDivNamePrefix = 'divMulasztasokDatumNezetDetailGrid_' + shortDateReplaced + '_Igazolt_';
var detailGridName = '{1}';
MulasztasKezelesHelper.setDetailControlsEvents(igazoltDivNamePrefix, detailGridName, false);
MulasztasKezelesHelper.dataBoundAdditionalFunction();
", Model.MulasztasDatuma, gridName),
allowPaging: false,
pageSizes: null,
//TODO: Itt azért tüntetjük el a sorszámot, mert hozzáadunk egy plusz sort amivel az összes elemet lehet módosítani, amit szintén sorszámoz a grid és ez a user-eket zavarja!
// Vissza kell tenni a sorszámokat, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
showSorszam: false,
readDataFunction: "function(){ return { model: '" + Model.ToJson(true) + "' }; }"
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(c => c.TanuloNev).ClientTemplate(@"
<a class='kendoTooltip tanuloNev gridLinkButton'
data-tanuloid='#: TanuloId #'
data-tanulonev='#: TanuloNev #'
data-osztaly='#: OsztCsopNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdoFormatted #'
>#: TanuloNev #</a>");
columns.Bound(c => c.Oraszam).Width("3%");
columns.Bound(c => c.OsztCsopNev).Width("10%");
columns.Bound(c => c.TargyNev).Width("10%");
columns.Bound(c => c.MulTip_DNAME).Width("8%");
columns.Bound(c => c.KesesPerc).Width("6%");
})
.SelectForColumn(Html.For<MulasztasGridModel>(), HianyzasResource.IgazoltKerdojel, c => c.Igazolt, igazoltList)
.EditableComboBoxColumn(Html, HianyzasResource.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetIgazolasTipusList", szervezetTipusEnumId = Model.SzervezetTipusId }), m => m.IgazolasTipus, "Text", "Value", maxWidth: true);
grid.TextAreaForColumn(Html.For<MulasztasGridModel>(), 97, m => m.Megjegyzes);
grid.FunctionCommand(Html, functionCommandList);
grid.ConditionalRowFunction(Html, rowFunctionList, javascriptClassName + ".removeFirstRowDeleteButton");
}
<div id="partialDetailGrid_@Model.MulasztasDatuma.ToString("yyyyMMdd")" class="@(Model.IsMulasztasKezelheto ? "" : "disabledItem")">
@(grid)
</div>
<script type="text/javascript">
var @javascriptClassName = (function () {
var gridDetailHelper = function () { };
//TODO: Ezt lehet majd törölni, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
gridDetailHelper.removeFirstRowDeleteButton = function (rowData) {
var result = rowData.id !== "0" && CommonUtils.parseBool("@ClaimData.IsModosithatjaOsztfoMulasztasokat");
return result;
}
return gridDetailHelper;
})();
</script>

View file

@ -0,0 +1,48 @@
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers.Grid
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Helpers
@using Kreta.Web.Areas.Hianyzas.Models
@model MulasztasSearchModel
@{
var gridName = "MulasztasokDatumNezetGrid";
var searchFormName = "MulasztasokSearchForm";
}
<div>
@(
Html.KretaGrid<MulasztasokDatumNezetGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokDatumNezetGrid", new Dictionary<string, string>()),
dataParameterFunction: searchFormName,
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("GetMulasztasokDatumNezetDetailGrid", Model.ControllerName, new { area = "Hianyzas" }),
clientTemplateWholeDataRow: true,
allowPaging: false,
pageSizes: null
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(c => c.MulasztasDatuma).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.MulasztasNapja).Width("30%");
columns.Bound(c => c.MulasztasokSzama).Width("30%");
})
)
</div>
@Html.KretaGridTemplate("detailGrid-template")
<script type="text/javascript">
var MulasztasokDatumNezetHelper = (function () {
var mulasztasokDatumNezetHelper = function () { };
return mulasztasokDatumNezetHelper;
})();
</script>

View file

@ -0,0 +1,521 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Security
@using Kreta.Enums
@using Kreta.Enums.ManualEnums;
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers.Grid
@model MulasztasSearchModel
@{
var gridName = "MulasztasokNaploNezetGrid";
var searchFormName = "MulasztasokSearchForm";
var igazoltList = new List<SelectListItem>();
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolt.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolt).ToString() });
if (!Model.SzervezetTipusId.HasValue)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
@Html.KretaTooltipTemplate("kendoTooltip-naploNezetOraTemplate",
@"<div class='kendoTooltip'>
<table>
<tr>
<td style='padding-right: 5px'><b>Óra:</b></td>
<td>#:target.data('nev')#</td>
</tr>
<tr>
<td style='padding-right: 5px'><b>Osztály/csoport:</b></td>
<td>#:target.data('osztalycsoportnev')#</td>
</tr>
<tr>
<td style='padding-right: 5px'><b>Tanár:</b></td>
<td>#:target.data('tanarnev')#</td>
</tr>
<tr>
<td style='padding-right: 5px'><b>Tantárgy:</b></td>
<td>#:target.data('tantargynev')#</td>
</tr>
<tr style='#=target.data('megtartottdisplaystyletext')#'>
<td style='padding-right: 5px'><b>Mulasztás típus:</b></td>
<td>#:target.data('mulasztastipustext')#</td>
</tr>
<tr style='#=target.data('megtartottdisplaystyletext')#'>
<td style='padding-right: 5px'><b>Igazolt?:</b></td>
<td>#:target.data('isigazolttext')#</td>
</tr>
<tr style='#=target.data('megtartottdisplaystyletext')#'>
<td style='padding-right: 5px'><b>Igazolás típus:</b></td>
<td>#:target.data('igazolastipustext')#</td>
</tr>
<tr style='#=target.data('megtartottdisplaystyletext')#'>
<td style='padding-right: 5px'><b>Megjegyzés:</b></td>
<td>#:target.data('megjegyzes')#</td>
</tr>
</table>
</div>")
<div style="float: left">
@Html.KretaSaveButton("MulasztasMentes", "function() { MulasztasokNaploNezetHelper.saveNaploNezetMulasztasList(); }")
</div>
<div id="pager" class="row" style="text-align: center">
<div class="fc-button-group">
<button type="button" class="fc-prev-button fc-button fc-state-default fc-corner-left" style="height:25px" onclick="MulasztasokNaploNezetHelper.getNaploNezetByDate(-7)">
<span class="fc-icon fc-icon-left-double-arrow"></span>
</button>
<button type="button" class="fc-prev-button fc-button fc-state-default fc-corner-left" style="height: 25px" onclick="MulasztasokNaploNezetHelper.getNaploNezetByDate(-1)">
<span class="fc-icon fc-icon-left-single-arrow"></span>
</button>
@Html.KretaDatePickerFor(x => x.NaploNezetDatum, new Dictionary<string, object> { { "onchange", "MulasztasokNaploNezetHelper.naploNezetDatumOnChange()" }, { "style", "margin-bottom: 3px;" } }).Min(Model.NaploNezetDatumMinDate).Max(Model.NaploNezetDatumMaxDate)
<button type="button" class="fc-next-button fc-button fc-state-default fc-corner-right" style="height:25px" onclick="MulasztasokNaploNezetHelper.getNaploNezetByDate(1)">
<span class="fc-icon fc-icon-right-single-arrow"></span>
</button>
<button type="button" class="fc-next-button fc-button fc-state-default fc-corner-right" style="height:25px" onclick="MulasztasokNaploNezetHelper.getNaploNezetByDate(7)">
<span class="fc-icon fc-icon-right-double-arrow"></span>
</button>
</div>
</div>
<div>
@{
var grid = Html.KretaGrid<MulasztasokNaploNezetGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokNaploNezetGrid", new Dictionary<string, string>()),
dataParameterFunction: searchFormName,
dataBoundAdditionalFunction: "MulasztasokNaploNezetHelper.dataBoundAdditionalFunction();",
allowSorting: false,
allowPaging: false,
pageSizes: null,
mustShowPagerCount: false,
//TODO: Itt azért tüntettjük el a sorszámot, mert hozzáadunk egy plusz sort amivel az összes elemet lehet módosítani, amit szintén sorszámoz a grid és ez a user-eket zavarja!
// Vissza kell tenni a sorszámokat, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
showSorszam: false
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.TanuloNev)
.ClientTemplate(@"
<a class='kendoTooltip tanuloNev gridLinkButton'
data-tanuloid='#: TanuloId #'
data-tanulonev='#: TanuloNev #'
data-osztaly='#: OsztalyNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdoFormatted #'
>#: TanuloNev #</a>")
.HeaderHtmlAttributes(new { @class = "borderRight" })
.HtmlAttributes(new { @class = "borderRight" });
for (int index = Kreta.Core.Constants.Mulasztas.OraSorszamMinValue; index <= Kreta.Core.Constants.Mulasztas.OraSorszamMaxValue; index++)
{
string oraSorszamString;
if (index < 0)
{
oraSorszamString = "Minusz" + Math.Abs(index);
}
else
{
oraSorszamString = index.ToString();
}
columns.Bound("Ora" + oraSorszamString + "Column")
.ClientTemplate("#= MulasztasokNaploNezetHelper.getOraTemplate(" +
"Ora" + oraSorszamString + "IsMegtartott, " +
"Ora" + oraSorszamString + "MulasztasId, " +
"Ora" + oraSorszamString + "MulasztasTipus, " +
"Ora" + oraSorszamString + "KesesPercben, " +
"Ora" + oraSorszamString + "IsIgazolt, " +
"Ora" + oraSorszamString + "Nev, " +
"Ora" + oraSorszamString + "OsztalyCsoportNev, " +
"Ora" + oraSorszamString + "TanarNev, " +
"Ora" + oraSorszamString + "TantargyNev, " +
"Ora" + oraSorszamString + "TanitasiOraId, " +
"Ora" + oraSorszamString + "IgazolasTipus, " +
"Ora" + oraSorszamString + "Megjegyzes, " +
"Ora" + oraSorszamString + "IgazolasTipusText, " +
"TanuloId) #")
.Title(index + ". óra")
.HeaderHtmlAttributes(new { @class = "borderRight kozepre" })
.HtmlAttributes(new { @class = "borderRight kozepre" })
.Hidden(index >= 0 && 12 >= index ? false : true);
}
for (int index = 1; index <= Kreta.Core.Constants.Mulasztas.FoglalkozasCount; index++)
{
columns.Bound("Foglalkozas" + index + "Column")
.ClientTemplate("#= MulasztasokNaploNezetHelper.getOraTemplate(" +
"Foglalkozas" + index + "IsMegtartott, " +
"Foglalkozas" + index + "MulasztasId, " +
"Foglalkozas" + index + "MulasztasTipus, " +
"Foglalkozas" + index + "KesesPercben, " +
"Foglalkozas" + index + "IsIgazolt, " +
"Foglalkozas" + index + "Nev, " +
"Foglalkozas" + index + "OsztalyCsoportNev, " +
"Foglalkozas" + index + "TanarNev, " +
"Foglalkozas" + index + "TantargyNev, " +
"Foglalkozas" + index + "TanitasiOraId, " +
"Foglalkozas" + index + "IgazolasTipus, " +
"Foglalkozas" + index + "Megjegyzes, " +
"Foglalkozas" + index + "IgazolasTipusText, " +
"TanuloId) #")
.HeaderHtmlAttributes(new { @class = "borderRight kozepre" })
.HtmlAttributes(new { @class = "borderRight kozepre" })
.Hidden(true);
}
})
.AutoBind(false)
.SelectForColumn(Html.For<MulasztasokNaploNezetGridModel>(), HianyzasResource.IgazoltKerdojel, c => c.Igazolt, igazoltList)
.EditableComboBoxColumn(Html, HianyzasResource.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetIgazolasTipusList", szervezetTipusEnumId = Model.SzervezetTipusId }), m => m.IgazolasTipus, "Text", "Value", maxWidth: true);
grid.TextAreaForColumn(Html.For<MulasztasokNaploNezetGridModel>(), 97, m => m.Megjegyzes);
}
</div>
<script type="text/javascript">
MulasztasokNaploNezetHelper = (function () {
var mulasztasokNaploNezetHelper = function () { };
var url = {
SaveNaploNezetMulasztasList: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "SaveNaploNezetMulasztasList" })"
};
var gridName = "@gridName";
var searchFormName = "@searchFormName";
var modifiedMulasztasList = new Array();
mulasztasokNaploNezetHelper.getNaploNezetByDate = function (addDayCount) {
var datum = MulasztasKezelesHelper.getNaploNezetDatum();
datum.setDate(datum.getDate() + addDayCount);
var kendoDatePicker = KretaDateTimeHelper.getKendoDatePickerData("NaploNezetDatum");
var minDatum = kendoDatePicker.min();
if (datum < minDatum) {
datum = minDatum;
}
var maxDatum = kendoDatePicker.max();
if (datum > maxDatum) {
datum = maxDatum;
}
MulasztasKezelesHelper.setNaploNezetDatum(datum);
kendoDatePicker.value(datum);
$("#NaploNezetDatum").trigger("change");
}
mulasztasokNaploNezetHelper.naploNezetDatumOnChange = function () {
var kendoDatePicker = KretaDateTimeHelper.getKendoDatePickerData("NaploNezetDatum");
MulasztasKezelesHelper.setNaploNezetDatum(kendoDatePicker.value());
MulasztasKezelesHelper.refreshNaploNezetGrid(searchFormName);;
}
mulasztasokNaploNezetHelper.setNaploNezetOraToolTip = function () {
var kendoTooltip = $(".naploNezetOra");
KretaTooltipHelper.setTooltip(kendoTooltip, "#kendoTooltip-naploNezetOraTemplate");
if ("@ClaimData.IsModosithatjaOsztfoMulasztasokat" != "False") {
kendoTooltip.off("click");
kendoTooltip.click(function (e) {
changeMulasztasDetails(e);
});
}
}
mulasztasokNaploNezetHelper.dataBoundAdditionalFunction = function () {
MulasztasKezelesHelper.setToolTip();
mulasztasokNaploNezetHelper.setNaploNezetOraToolTip();
var igazoltDivNamePrefix = "divMulasztasokNaploNezetGrid_Igazolt_";
MulasztasKezelesHelper.setDetailControlsEvents(igazoltDivNamePrefix, gridName, false);
var gridData = KretaGridHelper.getKendoGridData(gridName);
var rowData = gridData.dataSource.data()[0];
if (!CommonUtils.isUndefined(rowData)) {
setOraColumnVisibility(gridData, rowData.OraMinusz2IsHiddenColumn, "OraMinusz2Column", rowData.OraMinusz2Nev);
setOraColumnVisibility(gridData, rowData.OraMinusz1IsHiddenColumn, "OraMinusz1Column", rowData.OraMinusz1Nev);
setOraColumnVisibility(gridData, rowData.Ora0IsHiddenColumn, "Ora0Column", rowData.Ora0Nev);
setOraColumnVisibility(gridData, false, "Ora1Column", rowData.Ora1Nev);
setOraColumnVisibility(gridData, false, "Ora2Column", rowData.Ora2Nev);
setOraColumnVisibility(gridData, false, "Ora3Column", rowData.Ora3Nev);
setOraColumnVisibility(gridData, false, "Ora4Column", rowData.Ora4Nev);
setOraColumnVisibility(gridData, false, "Ora5Column", rowData.Ora5Nev);
setOraColumnVisibility(gridData, false, "Ora6Column", rowData.Ora6Nev);
setOraColumnVisibility(gridData, false, "Ora7Column", rowData.Ora7Nev);
setOraColumnVisibility(gridData, false, "Ora8Column", rowData.Ora8Nev);
setOraColumnVisibility(gridData, false, "Ora9Column", rowData.Ora9Nev);
setOraColumnVisibility(gridData, false, "Ora10Column", rowData.Ora10Nev);
setOraColumnVisibility(gridData, false, "Ora11Column", rowData.Ora11Nev);
setOraColumnVisibility(gridData, false, "Ora12Column", rowData.Ora12Nev);
setOraColumnVisibility(gridData, rowData.Ora13IsHiddenColumn, "Ora13Column", rowData.Ora13Nev);
setOraColumnVisibility(gridData, rowData.Ora14IsHiddenColumn, "Ora14Column", rowData.Ora14Nev);
setOraColumnVisibility(gridData, rowData.Ora15IsHiddenColumn, "Ora15Column", rowData.Ora15Nev);
setOraColumnVisibility(gridData, rowData.Ora16IsHiddenColumn, "Ora16Column", rowData.Ora16Nev);
setOraColumnVisibility(gridData, rowData.Ora17IsHiddenColumn, "Ora17Column", rowData.Ora17Nev);
setOraColumnVisibility(gridData, rowData.Ora18IsHiddenColumn, "Ora18Column", rowData.Ora18Nev);
setOraColumnVisibility(gridData, rowData.Ora19IsHiddenColumn, "Ora19Column", rowData.Ora19Nev);
setOraColumnVisibility(gridData, rowData.Ora20IsHiddenColumn, "Ora20Column", rowData.Ora20Nev);
setOraColumnVisibility(gridData, rowData.Ora21IsHiddenColumn, "Ora21Column", rowData.Ora21Nev);
setOraColumnVisibility(gridData, rowData.Ora22IsHiddenColumn, "Ora22Column", rowData.Ora22Nev);
setOraColumnVisibility(gridData, rowData.Ora23IsHiddenColumn, "Ora23Column", rowData.Ora23Nev);
setOraColumnVisibility(gridData, rowData.Ora24IsHiddenColumn, "Ora24Column", rowData.Ora24Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas1IsHiddenColumn, "Foglalkozas1Column", rowData.Foglalkozas1Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas2IsHiddenColumn, "Foglalkozas2Column", rowData.Foglalkozas2Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas3IsHiddenColumn, "Foglalkozas3Column", rowData.Foglalkozas3Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas4IsHiddenColumn, "Foglalkozas4Column", rowData.Foglalkozas4Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas5IsHiddenColumn, "Foglalkozas5Column", rowData.Foglalkozas5Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas6IsHiddenColumn, "Foglalkozas6Column", rowData.Foglalkozas6Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas7IsHiddenColumn, "Foglalkozas7Column", rowData.Foglalkozas7Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas8IsHiddenColumn, "Foglalkozas8Column", rowData.Foglalkozas8Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas9IsHiddenColumn, "Foglalkozas9Column", rowData.Foglalkozas9Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas10IsHiddenColumn, "Foglalkozas10Column", rowData.Foglalkozas10Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas11IsHiddenColumn, "Foglalkozas11Column", rowData.Foglalkozas11Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas12IsHiddenColumn, "Foglalkozas12Column", rowData.Foglalkozas12Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas13IsHiddenColumn, "Foglalkozas13Column", rowData.Foglalkozas13Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas14IsHiddenColumn, "Foglalkozas14Column", rowData.Foglalkozas14Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas15IsHiddenColumn, "Foglalkozas15Column", rowData.Foglalkozas15Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas16IsHiddenColumn, "Foglalkozas16Column", rowData.Foglalkozas16Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas17IsHiddenColumn, "Foglalkozas17Column", rowData.Foglalkozas17Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas18IsHiddenColumn, "Foglalkozas18Column", rowData.Foglalkozas18Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas19IsHiddenColumn, "Foglalkozas19Column", rowData.Foglalkozas19Nev);
setOraColumnVisibility(gridData, rowData.Foglalkozas20IsHiddenColumn, "Foglalkozas20Column", rowData.Foglalkozas20Nev);
}
modifiedMulasztasList = new Array();
}
function setOraColumnVisibility(gridData, isHiddenColumn, columnName, columnHeaderValue) {
if (CommonUtils.parseBool(isHiddenColumn)) {
gridData.hideColumn(columnName);
} else {
gridData.showColumn(columnName);
$("#" + gridName + " thead th[data-field=" + columnName + "] span.k-link").html(columnHeaderValue);
}
}
mulasztasokNaploNezetHelper.saveNaploNezetMulasztasList = function () {
var modRows = KretaGridHelper.getModifiedRows(gridName);
var message = "";
$.each(modRows, function (index, row) {
var naploNezetOraList = $(".naploNezetOra[data-tanuloid='" + row.TanuloId + "']");
$.each(naploNezetOraList, function (i, value) {
var igazoltValue = "null";
if (row.input[0].value === "0") {
igazoltValue = "true";
} else if (row.input[0].value === "1") {
igazoltValue = "false";
}
var igazolasTipusValue = row.input[1].value;
var megjegyzesValue = row.input[2].value;
setMulasztas(value.dataset.tanitasioraid, value.dataset.tanuloid, value.dataset.mulasztasid, value.dataset.mulasztastipus, igazoltValue, igazolasTipusValue, megjegyzesValue);
if (CommonUtils.parseBool(igazoltValue) === true && igazolasTipusValue === "" && row.ID > 0) {
if (message.length > 0) {
message += "<br />";
}
message += row.TanuloNev + " esetében Igazolás típus megadása kötelező!";
return false;
}
});
});
if (modifiedMulasztasList.length > 0) {
var mulasztasok = [modifiedMulasztasList.length];
$.each(modifiedMulasztasList,
function (index, value) {
mulasztasok[index] = {
ID: value.mulasztasId,
Igazolt: value.isIgazolt,
IgazolasTipus: value.igazolasTipus,
MulasztasTipus: value.mulasztasTipus,
Megjegyzes: value.megjegyzes,
TanuloId: value.tanuloId,
TanitasiOraId: value.tanitasiOraId
}
});
var resultData = {
Mulasztasok: mulasztasok,
OsztalyCsoportId: $("#OsztalyCsoportId").val(),
NaploNezetDatum: $("#NaploNezetDatum").val()
};
if (message.length > 0) {
KretaWindowHelper.feedbackWindow("", message, true);
} else {
AjaxHelper.DoPost(url.SaveNaploNezetMulasztasList,
resultData,
mulasztasokNaploNezetHelper.saveMulasztasListFeedBackOkPostReturn,
function (err) {
MulasztasKezelesHelper.refreshNaploNezetGrid(searchFormName);
KretaWindowHelper.feedbackWindow("@CommonResource.Figyelmeztetes", err.responseJSON.Message, true);
}
);
}
}
}
mulasztasokNaploNezetHelper.saveMulasztasListFeedBackOkPostReturn = function (data) {
MulasztasKezelesHelper.saveMulasztasListFeedBackOk([], null, data);
}
mulasztasokNaploNezetHelper.getOraTemplate = function (isMegtartott, mulasztasId, mulasztasTipus, kesesPercben, isIgazolt, nev, osztalyCsoportNev, tanarNev, tantargyNev, tanitasiOraId, igazolasTipus, megjegyzes, igazolasTipusText, tanuloId) {
var html = "";
var clickableclass = "clickable";
var mulasztasTipusText;
var megtartottDisplayStyleText;
var isIgazoltText;
var imgClassText;
if ("@ClaimData.IsModosithatjaOsztfoMulasztasokat" == "False") {
clickableclass = "notallowed";
}
if (isMegtartott) {
if (mulasztasTipus == "@((int)MulasztasTipusEnum.hianyzas)") {
if (CommonUtils.isNull(isIgazolt)) {
mulasztasTipusText = "Hiányzás";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolandó";
imgClassText = "igazolandoHianyzas";
} else if (CommonUtils.parseBool(isIgazolt)) {
mulasztasTipusText = "Hiányzás";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolt";
imgClassText = "igazoltHianyzas";
} else {
mulasztasTipusText = "Hiányzás";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolatlan";
imgClassText = "igazolatlanHianyzas";
}
} else if (mulasztasTipus == "@((int)MulasztasTipusEnum.keses)") {
if (CommonUtils.isNull(isIgazolt)) {
mulasztasTipusText = "Késés (" + kesesPercben + "p)";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolandó";
imgClassText = "igazolandoKeses";
} else if (CommonUtils.parseBool(isIgazolt)) {
mulasztasTipusText = "Késés (" + kesesPercben + "p)";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolt";
imgClassText = "igazoltKeses";
} else {
mulasztasTipusText = "Késés (" + kesesPercben + "p)";
megtartottDisplayStyleText = "";
isIgazoltText = "Igazolatlan";
imgClassText = "igazolatlanKeses";
}
} else {
mulasztasTipusText = "";
megtartottDisplayStyleText = "display: none";
isIgazoltText = "";
imgClassText = "megtartottOra";
}
html = "<span class='kendoTooltip " + clickableclass + " naploNezetOra'" +
"data-nev='" + nev + "'" +
"data-osztalycsoportnev='" + osztalyCsoportNev + "'" +
"data-tanarnev='" + tanarNev + "'" +
"data-tantargynev='" + tantargyNev + "'" +
"data-tanuloid='" + tanuloId + "'" +
"data-tanitasiOraId='" + tanitasiOraId + "'" +
"data-mulasztasId='" + mulasztasId + "'" +
"data-mulasztasTipus='" + mulasztasTipus + "'" +
"data-mulasztastipustext='" + mulasztasTipusText + "'" +
"data-megtartottdisplaystyletext='" + megtartottDisplayStyleText + "'" +
"data-isigazolt='" + isIgazolt + "'" +
"data-isigazolttext='" + isIgazoltText + "'" +
"data-igazolastipus='" + igazolasTipus + "'" +
"data-igazolastipustext='" + igazolasTipusText + "'" +
"data-megjegyzes='" + megjegyzes + "'>" +
"<img class='hianyzasImage " + imgClassText + "'/>" +
"</span>";
}
return html;
}
function changeMulasztasDetails(e) {
var element = e.currentTarget;
var currentMulasztasTipus = element.dataset.mulasztastipus;
var tipusId;
var imgClassText;
var mulasztasTipusJelentlet = "@((int) MulasztasTipusEnum.jelenlet)";
if (currentMulasztasTipus == mulasztasTipusJelentlet) {
var mulasztasTipusHianyzas = "@((int) MulasztasTipusEnum.hianyzas)";
tipusId = mulasztasTipusHianyzas;
element.dataset.mulasztastipus = mulasztasTipusHianyzas;
imgClassText = "igazolandoHianyzasModified";
} else {
tipusId = mulasztasTipusJelentlet;
element.dataset.mulasztastipus = mulasztasTipusJelentlet;
imgClassText = "megtartottOraModified";
}
var oraId = element.dataset.tanitasioraid;
var tanuloId = element.dataset.tanuloid;
var currentMulasztasId = element.dataset.mulasztasid;
var isIgazolt = element.dataset.isigazolt;
var igazolasTipus = element.dataset.igazolastipus;
var megjegyzes = element.dataset.megjegyzes;
var parameters = { oraId, tanuloId, currentMulasztasId, tipusId, isIgazolt, igazolasTipus, megjegyzes, imgClassText };
mulasztasCallback(parameters);
}
function mulasztasCallback(data) {
setMulasztas(data.oraId, data.tanuloId, data.currentMulasztasId, data.tipusId, data.isIgazolt, data.igazolasTipus, data.megjegyzes);
$("span[data-tanitasiOraId='" + data.oraId + "'][data-tanuloid='" + data.tanuloId + "'] img:first-child").attr("class", "hianyzasImage " + data.imgClassText);
}
function setMulasztas(tanitasiOraId, tanuloId, mulasztasId, mulasztasTipus, isIgazolt, igazolasTipus, megjegyzes) {
tanitasiOraId = CommonUtils.parseNull(tanitasiOraId);
tanuloId = CommonUtils.parseNull(tanuloId);
mulasztasId = CommonUtils.parseNull(mulasztasId);
mulasztasTipus = CommonUtils.parseNull(mulasztasTipus);
isIgazolt = CommonUtils.parseNull(isIgazolt);
igazolasTipus = CommonUtils.parseNull(igazolasTipus);
megjegyzes = CommonUtils.parseNull(megjegyzes);
var mulasztasListIndex = -1;
if (modifiedMulasztasList.length > 0) {
for (var i = 0; i < modifiedMulasztasList.length; i++) {
if (modifiedMulasztasList[i].tanitasiOraId === tanitasiOraId && modifiedMulasztasList[i].tanuloId === tanuloId) {
mulasztasListIndex = i;
break;
}
}
}
var mulasztas = {
tanitasiOraId: tanitasiOraId,
tanuloId: tanuloId,
mulasztasId: mulasztasId,
mulasztasTipus: mulasztasTipus,
isIgazolt: isIgazolt,
igazolasTipus: igazolasTipus,
megjegyzes: megjegyzes
}
if (mulasztasListIndex < 0) {
modifiedMulasztasList.push(mulasztas);
} else {
modifiedMulasztasList[mulasztasListIndex] = mulasztas;
}
}
return mulasztasokNaploNezetHelper;
})();
</script>
<div>
@(grid)
</div>
<script>
$(document).ready(function () {
MulasztasKezelesHelper.setNaploNezetDatum(new Date("@Model.NaploNezetDatum"));
$("#NaploNezetDatum").on("change", MulasztasokNaploNezetHelper.naploNezetDatumOnChange());
});
</script>

View file

@ -0,0 +1,89 @@
@using Kreta.Web.Security
@using Kreta.BusinessLogic.Classes
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models;
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid;
@model MulasztasokTanuloNezetGridModel
@{
var gridName = "MulasztasokTanuloNezetDetailGrid_" + Model.TanuloId;
var javascriptClassName = gridName + "Helper";
var parentGridName = "MulasztasokTanuloNezetGrid";
var parentFormName = "MulasztasokSearchForm";
}
@{
var rowFunctionList = new List<RowFunction>();
if ((ClaimManager.HasPackage("Osztalyfonok") || Model.SzervezetTipusId.HasValue && Model.SzervezetTipusId == (int)SzervezetTipusEnum.Dualis) && Model.GridHasDelete)
{
rowFunctionList.Add(new RowFunction
{
Name = CommonResource.Torles, ClientAction = string.Format(@"function(e) {{ MulasztasKezelesHelper.deleteConfirmWindow(e, ['{0}'], '{1}'); }}", parentGridName, parentFormName), IconEnum = GridRowFunctionIconEnum.Torles
});
}
}
<div id="partialDetailGridTanulo_@Model.TanuloId.ToString()">
@(
Html.KretaGrid<MulasztasGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokTanuloNezetDetailGrid", new Dictionary<string, string> { { "tanuloId", Model.TanuloId.ToString() }, { "osztalyCsoportId", Model.OsztalyCsoportId.ToString()} }),
useToolBar: false,
allowPaging: false,
pageSizes: null,
dataBoundAdditionalFunction: javascriptClassName + ".disableRow();",
sort: (sort =>
{
sort.Add(m => m.Datum).Descending();
sort.Add(m => m.Oraszam).Ascending();
})
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(c => c.Datum).Width("90px").Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(c => c.Oraszam).Width("5%");
columns.Bound(c => c.OsztCsopNev).Width("15%");
columns.Bound(c => c.TargyNev).Width("15%");
columns.Bound(c => c.MulTip_DNAME).Width("10%");
columns.Bound(c => c.KesesPerc).Width("8%");
columns.Bound(c => c.Igazolt_BNAME).Width("7%");
columns.Bound(c => c.IgazolasTipus_DNAME).Width("13%");
columns.Bound(c => c.IgazolasMegjegyzes).SetDisplayPropertyWithToolip("IgazolasMegjegyzes");
columns.Bound(c => c.IsMulasztasKezelheto).Hidden();
})
.ConditionalRowFunction(Html, rowFunctionList, javascriptClassName + ".removeFirstRowDeleteButton")
)
</div>
<script type="text/javascript">
var @javascriptClassName = (function () {
var gridDetailHelper = function () { };
//TODO: Ezt lehet majd törölni, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
gridDetailHelper.removeFirstRowDeleteButton = function (rowData) {
var result = rowData.id !== "0" && CommonUtils.parseBool("@ClaimData.IsModosithatjaOsztfoMulasztasokat");
return result;
}
gridDetailHelper.disableRow = function () {
var grid = $('#@gridName');
grid.find('tbody tr').each(function () {
var dataItem = grid.data('kendoGrid').dataItem(this);
if (dataItem.IsMulasztasKezelheto !== true) {
$(this).addClass('disabledItem');
}
})
}
return gridDetailHelper;
})();
</script>

View file

@ -0,0 +1,168 @@
@using Kreta.Framework
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Helpers
@model MulasztasSearchModel
@{
var gridName = "MulasztasokTanuloNezetGrid";
var searchFormName = "MulasztasokSearchForm";
}
<script type="text/javascript">
var MulasztasokTanuloNezetHelper = (function () {
var mulasztasokTanuloNezetHelper = function () { };
mulasztasokTanuloNezetHelper.getGridModelData = function () {
if (CommonUtils.parseBool("@Model.IsCustomForm")) {
var customFormName = "@Model.CustomFormName";
var model = KretaGridHelper.getSearchParameterObject(customFormName);
return KretaGridHelper.getSearchParameterData(model);
}
return null;
}
mulasztasokTanuloNezetHelper.renameGridHeaders = function ($window) {
var osszesThSpan = $("#MulasztasokTanuloNezetGrid.k-grid th.statisztika.osszes span");
var igazolatlanThSpan = $("#MulasztasokTanuloNezetGrid.k-grid th.statisztika.igazolatlan span");
var igazolandoThSpan = $("#MulasztasokTanuloNezetGrid.k-grid th.statisztika.igazolando span");
if ($window.width() < 1440) {
osszesThSpan.html("@Html.Raw(StringResourcesUtil.GetString(5642 /*Össz.*/))");
igazolatlanThSpan.html("@Html.Raw(StringResourcesUtil.GetString(5643 /*Igazo- latlan*/))");
igazolandoThSpan.html("@Html.Raw(StringResourcesUtil.GetString(5644 /*Igazo- landó*/))");
} else if ($window.width() >= 1440) {
osszesThSpan.html("@Html.Raw(StringResourcesUtil.GetString(2672 /*Összes*/))");
igazolatlanThSpan.html("@Html.Raw(StringResourcesUtil.GetString(2800 /*Igazolatlan*/))");
igazolandoThSpan.html("@Html.Raw(StringResourcesUtil.GetString(5520 /*Igazolandó*/))");
}
}
return mulasztasokTanuloNezetHelper;
})();
$(document).ready(function () {
MulasztasokTanuloNezetHelper.renameGridHeaders($(window));
});
$(window).resize(function () {
MulasztasokTanuloNezetHelper.renameGridHeaders($(this));
});
</script>
<div>
@(
Html.KretaGrid<MulasztasokTanuloNezetGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokTanuloNezetGrid", new Dictionary<string, string>()),
dataParameterFunction: Model.IsCustomForm ? "" : searchFormName,
dataBoundAdditionalFunction: Model.IsCustomForm ? "" : "MulasztasKezelesHelper.dataBoundAdditionalFunction();",
readDataFunction: Model.IsCustomForm ? "MulasztasokTanuloNezetHelper.getGridModelData" : "",
clientTemplateUrl: Url.Action("GetMulasztasokTanuloNezetDetailGrid", Model.ControllerName, new { area = "Hianyzas", GridHasDelete = Model.ChildGridHasDelete }),
clientTemplate: "detailGrid-template",
clientTemplateWholeDataRow: true,
allowSorting: false,
allowPaging: false,
pageSizes: null,
sort: sort => sort.Add(s => s.TanuloNev).Ascending(),
useToolBar: Model.GridUseToolBar,
showSorszam: !Model.IsCustomForm
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.OsztalyCsoportId).Hidden(true);
columns.Group(group =>
group.Title("").Columns(groupColumn =>
{
groupColumn.Bound(c => c.TanuloNev).ClientTemplate(@"
<a class='kendoTooltip tanuloNev gridLinkButton'
data-tanuloid='#: TanuloId #'
data-tanulonev='#: TanuloNev #'
data-osztaly='#: OsztCsopNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdoFormatted #'
>#: TanuloNev #</a>");
})
.Hidden(Model.IsCustomForm)
);
columns.Group(group =>
group.Title(StringResourcesUtil.GetString(5638 /*Tanórai hiányzás*/)).Columns(groupColumn =>
{
groupColumn.Bound(x => x.TanoraiHianyzasOsszes).HeaderHtmlAttributes(new { @class = "statisztika osszes" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(x => x.TanoraiHianyzasIgazolt).HeaderHtmlAttributes(new { @class = "statisztika" }).HtmlAttributes(new { @class = "statisztika" }).Visible(!Model.SzervezetTipusId.HasValue);
groupColumn.Bound(x => x.TanoraiHianyzasIgazolatlan).HeaderHtmlAttributes(new { @class = "statisztika igazolatlan" }).HtmlAttributes(new { @class = "statisztika" }).Visible(!Model.SzervezetTipusId.HasValue);
groupColumn.Bound(x => x.Szabadsag).HeaderHtmlAttributes(new { @class = "statisztika borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" }).Visible(Model.SzervezetTipusId.HasValue);
groupColumn.Bound(x => x.Tappenz).HeaderHtmlAttributes(new { @class = "statisztika borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" }).Visible(Model.SzervezetTipusId.HasValue);
groupColumn.Bound(x => x.BetegSzabadsag).HeaderHtmlAttributes(new { @class = "statisztika borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" }).Visible(Model.SzervezetTipusId.HasValue);
groupColumn.Bound(x => x.TanoraiHianyzasIgazolando).HeaderHtmlAttributes(new { @class = "statisztika igazolando borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" });
groupColumn.Bound(x => x.Potlas).HeaderHtmlAttributes(new { @class = "statisztika borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" }).Visible(Model.SzervezetTipusId.HasValue);
}).HeaderHtmlAttributes(new { @class = "groupHeader borderRight" })
);
if(!Model.SzervezetTipusId.HasValue)
{
columns.Group(group =>
group.Title(StringResourcesUtil.GetString(5639 /*Tanórán kívüli hiányzás*/)).Columns(groupColumn =>
{
groupColumn.Bound(c => c.TanoranKivuliHianyzasOsszes).HeaderHtmlAttributes(new { @class = "statisztika osszes" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoranKivuliHianyzasIgazolt).HeaderHtmlAttributes(new { @class = "statisztika" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoranKivuliHianyzasIgazolatlan).HeaderHtmlAttributes(new { @class = "statisztika igazolatlan" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoranKivuliHianyzasIgazolando).HeaderHtmlAttributes(new { @class = "statisztika igazolando borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" });
}).HeaderHtmlAttributes(new { @class = "groupHeader borderRight" })
);
}
columns.Group(group =>
group.Title(StringResourcesUtil.GetString(5640 /*Tanórai késések száma (perc)*/)).Columns(groupColumn =>
{
groupColumn.Bound(c => c.TanoraiKesesOsszes).HeaderHtmlAttributes(new { @class = "statisztika osszes" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoraiKesesIgazolt).HeaderHtmlAttributes(new { @class = "statisztika" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoraiKesesIgazolatlan).HeaderHtmlAttributes(new { @class = "statisztika igazolatlan" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.TanoraiKesesIgazolando).HeaderHtmlAttributes(new { @class = "statisztika igazolando borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" });
}).HeaderHtmlAttributes(new { @class = "groupHeader borderRight" })
);
columns.Group(group =>
group.Title(StringResourcesUtil.GetString(5641 /*Tanórai késésekből számítható hiányzás (óra)*/)).Columns(groupColumn =>
{
groupColumn.Bound(c => c.SzamitottKesesOsszes).HeaderHtmlAttributes(new { @class = "statisztika osszes" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.SzamitottKesesIgazolt).Hidden().HeaderHtmlAttributes(new { @class = "statisztika" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.SzamitottKesesIgazolatlan).Hidden().HeaderHtmlAttributes(new { @class = "statisztika igazolatlan" }).HtmlAttributes(new { @class = "statisztika" });
groupColumn.Bound(c => c.SzamitottKesesIgazolando).HeaderHtmlAttributes(new { @class = "statisztika igazolando borderRight" }).HtmlAttributes(new { @class = "statisztika borderRight bold" });
}).HeaderHtmlAttributes(new { @class = "groupHeader" })
);
})
)
</div>
@Html.KretaGridTemplate("detailGrid-template")
<style type="text/css">
#MulasztasokTanuloNezetGrid.k-grid th.kretaRowNumberHeader > span {
padding-top: 1px;
border-top: 1px solid #aab7c4;
margin-bottom: -0.5em;
display: block;
}
#MulasztasokTabStrip-2 {
height: auto;
white-space: nowrap;
}
@@media (max-width: 1439px) {
#MulasztasokTanuloNezetGrid.k-grid th.kretaRowNumberHeader > span {
padding-top: 18px;
}
}
@@media (max-width: 1250px) {
#MulasztasokTanuloNezetGrid.k-grid th.kretaRowNumberHeader > span {
padding-top: 17px;
}
}
</style>

View file

@ -0,0 +1,125 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Web.Security
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid
@{
Layout = null;
}
@model TanuloMulasztasaiPopupModel
@{
var visszavonhato = !Model.Kezeletlen ? "true" : "false";
var gridName = "TanuloMulasztasaiDetailGrid_" + (Model.Kezeletlen ? "Kezeletlen" : "Kezelt") + "_" + (Model.IsTanorai ? "Tanorai" : "NemTanorai") + "_" + Model.MulasztasDatuma.ToString("yyyyMMdd");
var javascriptClassName = gridName + "Helper";
var kezeletlenMulasztasokGridName = "kezeletlenMulasztasokGrid";
var kezeltMulasztasokGridName = "kezeltMulasztasokGrid";
}
@{
var igazoltList = new List<SelectListItem>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolt.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolt).ToString() });
if(!Model.SzervezetTipusId.HasValue)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
else if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet && Model.IsTanorai == false)
{
if (Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.CsakIgazoltraAllithatnak ||
Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.BarmitBeallithatnak)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolt.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolt).ToString() });
}
if (Model.MulasztasJogosultsagSetting == CsoportvezetokIgazolasiJogosultsagaEnum.BarmitBeallithatnak && !Model.SzervezetTipusId.HasValue)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
var functionCommandList = new List<FunctionCommand>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet && ClaimManager.HasPackage("Osztalyfonok") ||
Model.SzerepkorViewType == SzerepkorViewTypeEnum.CsoportvezetoNezet && Model.MulasztasJogosultsagSetting != CsoportvezetokIgazolasiJogosultsagaEnum.NemIgazolhatnak && Model.IsTanorai == false)
{
functionCommandList.Add(new FunctionCommand
{
Name = CommonResource.Mentes,
ClientAction = string.Format(@"function() {{ MulasztasKezelesHelper.saveMulasztasList('{0}', ['{1}'], '{2}', {3}); }}", gridName, kezeletlenMulasztasokGridName + "', '" + kezeltMulasztasokGridName, null, visszavonhato)
});
}
var rowFunctionList = new List<RowFunction>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet && ClaimManager.HasPackage("Osztalyfonok"))
{
rowFunctionList.Add(new RowFunction
{
Name = CommonResource.Torles,
ClientAction = string.Format(@"function(e) {{ MulasztasKezelesHelper.deleteConfirmWindow(e, ['{0}'], '{1}'); }}", kezeletlenMulasztasokGridName + "', '" + kezeltMulasztasokGridName, null),
IconEnum = GridRowFunctionIconEnum.Torles
});
}
}
@{
var grid = Html.KretaGrid<MulasztasGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetTanuloMulasztasaiDetailGrid", new Dictionary<string, string>()),
dataBoundAdditionalFunction:
string.Format(@"
var shortDateReplaced = '{0:yyyyMMdd}';
var kezelesTipus = '{1}';
var igazoltDivNamePrefix = 'divTanuloMulasztasaiDetailGrid_' + kezelesTipus + '_' + shortDateReplaced + '_Igazolt_';
var detailGridName = '{2}';
MulasztasKezelesHelper.setDetailControlsEvents(igazoltDivNamePrefix, detailGridName, {3});
", Model.MulasztasDatuma, (Model.Kezeletlen ? "Kezeletlen" : "Kezelt") + "_" + (Model.IsTanorai ? "Tanorai" : "NemTanorai"), gridName, visszavonhato),
allowPaging: false,
pageSizes: null,
//TODO: Itt azért tüntetjük el a sorszámot, mert hozzáadunk egy plusz sort amivel az összes elemet lehet módosítani, amit szintén sorszámoz a grid és ez a user-eket zavarja!
// Vissza kell tenni a sorszámokat, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
showSorszam: false,
readDataFunction: "function(){ return { model: '" + Model.ToJson(true) + "' }; }"
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(c => c.Oraszam);
columns.Bound(c => c.OsztCsopNev).Width("14%");
columns.Bound(c => c.TargyNev).Width("14%");
columns.Bound(c => c.MulTip_DNAME).Width("11%");
columns.Bound(c => c.KesesPerc).Width("8%");
})
.SelectForColumn(Html.For<MulasztasGridModel>(), HianyzasResource.IgazoltKerdojel, c => c.Igazolt, igazoltList)
.EditableComboBoxColumn(Html, HianyzasResource.IgazolasTipus, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetIgazolasTipusList", szervezetTipusEnumId = Model.ApiControllerName.Contains("Dualis") ? (int)SzervezetTipusEnum.Dualis : (int?)null }), m => m.IgazolasTipus, "Text", "Value", maxWidth: true);
grid.TextAreaForColumn(Html.For<MulasztasGridModel>(), 97, m => m.Megjegyzes);
grid.FunctionCommand(Html, functionCommandList);
grid.ConditionalRowFunction(Html, rowFunctionList, javascriptClassName + ".removeFirstRowDeleteButton");
}
<div id="partialTanuloMulasztasaiDetailGrid_@Model.MulasztasDatuma.ToString("yyyyMMdd")">
@(grid)
</div>
<script type="text/javascript">
var @javascriptClassName = (function () {
var gridDetailHelper = function () { };
//TODO: Ezt lehet majd törölni, ha sikerül máshogy megoldani az összes elem módosítását a gridben!
gridDetailHelper.removeFirstRowDeleteButton = function (rowData) {
var result = rowData.id !== "0" && CommonUtils.parseBool("@ClaimData.IsModosithatjaOsztfoMulasztasokat");
return result;
}
return gridDetailHelper;
})();
</script>

View file

@ -0,0 +1,142 @@
@using Kreta.BusinessLogic.Classes
@using Kreta.Resources
@using Kreta.Web.Areas.Hianyzas.Models.Mulasztasok
@using Kreta.Web.Helpers
@using Kreta.Web.Helpers.Grid
@using Kreta.Enums.ManualEnums
@model TanuloMulasztasaiPopupModel
@{
Layout = null;
}
<style>
.k-header-line {
background-color: #54a5d1;
padding: 10px;
}
.k-header-line > .k-title {
color: #ffffff;
}
</style>
@{
var szervezetTipusId = Model.SzervezetTipusId;
var kezeletlenMulasztasokGridName = "kezeletlenMulasztasokGrid";
var kezeltMulasztasokGridName = "kezeltMulasztasokGrid";
//NOTE: Csoportvezetői nézethez kellenek!
var kezeletlenNemTanoraiGridName = "kezeletlenNemTanoraiGrid";
var kezeltNemTanoraiGridName = "kezeltNemTanoraiGrid";
var controllerName = Model.SzerepkorViewType == Kreta.Enums.ManualEnums.SzerepkorViewTypeEnum.CsoportvezetoNezet ? Constants.Controllers.CsoportMulasztasok : szervezetTipusId.HasValue && szervezetTipusId == (int)SzervezetTipusEnum.Dualis ? Constants.Controllers.DualisMulasztasok : Constants.Controllers.Mulasztasok;
}
<div class="container-fluid details">
<div>
@if (Model.SzerepkorViewType == Kreta.Enums.ManualEnums.SzerepkorViewTypeEnum.CsoportvezetoNezet)
{
<p class="k-header-line"><span class="k-title">@HianyzasResource.NemTanoraiCeluCsoportok</span></p>
<div>
@(
Html.KretaGrid<TanuloMulasztasaiPopupModel>(
kezeletlenNemTanoraiGridName,
new GridApiUrl(Model.ApiControllerName, "GetTanuloMulasztasaiGrid", new Dictionary<string, string>{
{ "isTanorai", bool.FalseString },
{ "igazolandok", bool.TrueString }
}),
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("TanuloKezeletlenMulasztasaiDetailGrid", controllerName, new { area = "Hianyzas", isTanorai = false, apiControllerName = Model.ApiControllerName }),
clientTemplateWholeDataRow: true,
allowSorting: false,
allowPaging: false,
pageSizes: null,
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.MulasztasDatuma).Title(StringResourcesUtils.GetString(5630)).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
})
)
</div>
<p class="k-header-line"><span class="k-title">@HianyzasResource.TanoraiCeluCsoportok</span></p>
}
<div>
@(
Html.KretaGrid<TanuloMulasztasaiPopupModel>(
kezeletlenMulasztasokGridName,
new GridApiUrl(Model.ApiControllerName, "GetTanuloMulasztasaiGrid", new Dictionary<string, string>{
{ "isTanorai", bool.TrueString },
{ "igazolandok", bool.TrueString }
}),
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("TanuloKezeletlenMulasztasaiDetailGrid", controllerName, new { area = "Hianyzas", isTanorai = true, apiControllerName = Model.ApiControllerName }),
clientTemplateWholeDataRow: true,
allowSorting: false,
allowPaging: false,
pageSizes: null,
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.MulasztasDatuma).Title(StringResourcesUtils.GetString(5630)).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
})
)
</div>
</div>
<hr />
<div>
@if (Model.SzerepkorViewType == Kreta.Enums.ManualEnums.SzerepkorViewTypeEnum.CsoportvezetoNezet)
{
<p class="k-header-line"><span class="k-title">@HianyzasResource.NemTanoraiCeluCsoportok</span></p>
<div>
@(
Html.KretaGrid<TanuloMulasztasaiPopupModel>(
kezeltNemTanoraiGridName,
new GridApiUrl(Model.ApiControllerName, "GetTanuloMulasztasaiGrid", new Dictionary<string, string> {
{ "isTanorai", bool.FalseString },
{ "igazolandok", false.ToString() }
}),
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("TanuloKezeltMulasztasaiDetailGrid", controllerName, new { area = "Hianyzas", isTanorai = false, apiControllerName = Model.ApiControllerName }),
clientTemplateWholeDataRow: true,
allowSorting: false,
allowPaging: false,
pageSizes: null,
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.MulasztasDatuma).Title(StringResourcesUtils.GetString(5631)).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
})
)
</div>
<p class="k-header-line"><span class="k-title">@HianyzasResource.TanoraiCeluCsoportok</span></p>
}
<div>
@(
Html.KretaGrid<TanuloMulasztasaiPopupModel>(
kezeltMulasztasokGridName,
new GridApiUrl(Model.ApiControllerName, "GetTanuloMulasztasaiGrid", new Dictionary<string, string> {
{ "isTanorai", bool.TrueString },
{ "igazolandok", false.ToString() }
}),
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("TanuloKezeltMulasztasaiDetailGrid", controllerName, new { area = "Hianyzas", isTanorai = true, apiControllerName = Model.ApiControllerName }),
clientTemplateWholeDataRow: true,
allowSorting: false,
allowPaging: false,
pageSizes: null,
readDataFunction: "function(){ return { data: '" + Model.ToJson(true) + "' }; }"
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloId).Hidden(true);
columns.Bound(c => c.MulasztasDatuma).Title(StringResourcesUtils.GetString(5631)).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
})
)
</div>
</div>
</div>

View file

@ -0,0 +1,23 @@
@using Kreta.Web.Helpers.Grid
@using Kreta.Web.Areas.Hianyzas.Models
<div>
@(
Html.KretaGrid<TantargyiMulasztasGridModel>
(
"TantargyiMulasztasGrid",
new GridApiUrl("TantargyiMulasztasApi", "GetTantargyiMulasztasGrid"),
allowScrolling: true
)
.Columns(columns =>
{
columns.Bound(m => m.Tantargy);
columns.Bound(m => m.Mulasztas);
columns.Bound(m => m.Osszes).Width("10%");
columns.Bound(m => m.Szazalek).Width("10%");
})
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
)
</div>

View file

@ -0,0 +1,3 @@
@{
Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

View file

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization" />
<add namespace="Kreta.Web" />
<add namespace="Kreta.BusinessLogic.Utils" />
<add namespace="Kendo.Mvc.UI" />
<add namespace="Kreta.Web.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>