init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
282
KretaWeb/Areas/Hianyzas/Views/Igazolas/Index.cshtml
Normal file
282
KretaWeb/Areas/Hianyzas/Views/Igazolas/Index.cshtml
Normal 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>
|
Loading…
Add table
Add a link
Reference in a new issue