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

419 lines
No EOL
18 KiB
Text

@using Kreta.BusinessLogic.Classes
@using Kreta.Enums
@using Kreta.Web.Areas.TanuloErtekeles.Controllers
@using Kreta.Web.Helpers.Grid;
@using Kreta.Web.Areas.TanuloErtekeles.Models
@model ErettsegiEredmenyekModel
@{
string startPopupFormName = ErettsegiEredmenyekController.StartPopupFormName;
string startPopupId = ErettsegiEredmenyekController.StartPopupId;
string gridName = ErettsegiEredmenyekController.GridName;
}
@{
var functionCommandList = new List<FunctionCommand>
{
new FunctionCommand { Name = CommonResource.Mentes, ClientAction = "ErettsegiEredmenyekDetailHelper.save" },
new FunctionCommand { Name = CommonResource.Elolrol, ClientAction = "ErettsegiEredmenyekHelper.openStartWindow", Classes = "kendo-gridFunctionKommandRed elolrol" },
new FunctionCommand { Classes = "infoText clearFunctionCommand" }
};
var grid = Html.KretaGrid<ErettsegiEredmenyekGridModel>
(
gridName,
new GridApiUrl("ErettsegiEredmenyekApi", "GetErettsegiEredmenyekGrid"),
dataBoundAdditionalFunction: "ErettsegiEredmenyekHelper.dataBoundAdditionalFunction();",
clientTemplate: "detailGrid-template",
clientTemplateUrl: Url.Action("ErettsegiEredmenyekDetailGrid", "ErettsegiEredmenyek", new { area = "TanuloErtekeles", osztalyCsoportId = Model.OsztalyId }),
clientTemplateWholeDataRow: true,
readDataFunction: "ErettsegiEredmenyekHelper.getStartModelData",
allowFilterable: false,
allowPaging: false,
allowScrolling: true,
pageSizes: null,
sort: sort => sort.Add(s => s.TanuloNev).Ascending()
)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn))
.Columns(columns =>
{
columns.Bound(m => m.ID).Hidden();
columns.Bound(m => m.IsVegzos_BOOL).Hidden();
columns.Bound(m => m.TanuloNev).HeaderHtmlAttributes(new { @class = "nevWidth" }).ClientTemplate(@"
<a class='kendoTooltip erettsegiEredmenyekTanuloNevKendoTooltip gridLinkButton defaultCursor'
data-osztaly='#: OsztalyNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdoFormatted #'
>#: TanuloNev #</a>");
columns.Bound(m => m.SzuletesiIdo).Format(SDAFormat.Format[SDAFormat.FormatType.ShortDate]);
columns.Bound(m => m.AnyjaNeve);
columns.Bound(m => m.OMAzonosito);
columns.Bound(m => m.MentettErettsegikSzama);
})
.FunctionCommand(Html, functionCommandList);
}
<div>
@(grid)
</div>
<div>
@Html.KretaGridTemplate("detailGrid-template")
</div>
@Html.KretaTooltipTemplate("kendoTooltip-erettsegiEredmenyekTanuloNevKendoTooltip",
@"<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 ErettsegiEredmenyekHelper = (function () {
var erettsegiEredmenyekHelper = function () { };
var startPopupFormName = "@startPopupFormName";
var startPopupId = "@startPopupId";
erettsegiEredmenyekHelper.startModel = null;
var openedDetailGridData = [];
var gridName = "@gridName";
var tempRowId = 0;
var url = {
OpenStartPopup: "@Url.Action("OpenStartPopup", "ErettsegiEredmenyek", new {area = "TanuloErtekeles" })",
SaveErettsegiEredmenyList: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ErettsegiEredmenyekApi", action = "SaveErettsegiEredmenyList" })",
Delete: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "ErettsegiEredmenyekApi", action = "DeleteErettsegiEredmeny" })"
};
erettsegiEredmenyekHelper.dataBoundAdditionalFunction = function () {
var tanuloNevKendoTooltip = $(".erettsegiEredmenyekTanuloNevKendoTooltip");
KretaTooltipHelper.setTooltip(tanuloNevKendoTooltip, "#kendoTooltip-erettsegiEredmenyekTanuloNevKendoTooltip");
}
erettsegiEredmenyekHelper.getStartModelData = function () {
return KretaGridHelper.getSearchParameterData(erettsegiEredmenyekHelper.startModel);
}
erettsegiEredmenyekHelper.openStartWindow = function () {
if (!CommonUtils.isNull(erettsegiEredmenyekHelper.startModel)) {
erettsegiEredmenyekHelper.startModel = null;
KretaGridHelper.clearGridData(gridName);
}
$(".infoText").html("");
AjaxHelper.DoPost(url.OpenStartPopup, null, popUpStartWindow);
}
function popUpStartWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(ErettsegiEredmenyekResource.ErettsegiEredmenyek)";
config.maxWidth = "500px";
config.content = data;
config.actions = ['Close'];
var modal = KretaWindowHelper.createWindow(startPopupId, config);
modal.setOptions({ height: 120 });
KretaWindowHelper.openWindow(modal, true);
}
erettsegiEredmenyekHelper.startTovabb = function() {
var form = $("#" + startPopupFormName);
if (form.valid()) {
erettsegiEredmenyekHelper.startModel = KretaGridHelper.getSearchParameterObject(startPopupFormName);
if (!CommonUtils.isNullOrEmpty(erettsegiEredmenyekHelper.startModel.OsztalyId)) {
var osztalyText = KretaComboBoxHelper.getKendoComboBoxData("OsztalyId").text();
if (!CommonUtils.isNullOrEmpty(osztalyText)) {
$(".infoText").html(kendo.htmlEncode(osztalyText) + " @(ErettsegiEredmenyekResource.ErettsegiEredmenyek)".toLowerCase());
}
erettsegiEredmenyekHelper.refreshGrid();
KretaWindowHelper.destroyWindow(startPopupId);
}
}
}
erettsegiEredmenyekHelper.setDetailControlsEvents = function (currentDetailGridName, tanuloId) {
var dataSource = KretaGridHelper.getKendoGridData(currentDetailGridName).dataSource.data();
var detailGridSelector = "#" + currentDetailGridName;
var data = KretaGridHelper.getKendoGridData(gridName).dataSource.data();
var totalNumber = data.length;
var isVegzos;
for (var i = 0; i < totalNumber; i++) {
if (data[i].ID === tanuloId) {
isVegzos = data[i].IsVegzos_BOOL;
break;
}
}
$(detailGridSelector).off("change");
$.each(dataSource, function (index, value) {
$(detailGridSelector).on("change", "input[id^='" + currentDetailGridName + "_ErettsegiTantargyId_" + value.ID + "']", function () {
setControlsEnabilityAndDefaultValue(currentDetailGridName, value, isVegzos);
});
});
$.each(dataSource, function (index, value) {
if (value.IsNew) {
setControlsEnabilityAndDefaultValue(currentDetailGridName, value, isVegzos);
}
});
}
function setControlsEnabilityAndDefaultValue(currentDetailGridName, value, isVegzos) {
var detailGridSelector = "#" + currentDetailGridName;
var erettsegiTantargyIdKendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(currentDetailGridName + "_ErettsegiTantargyId_" + value.ID);
var erettsegiSzintIdKendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(currentDetailGridName + "_ErettsegiSzintId_" + value.ID);
var erettsegiTipusIdKendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(currentDetailGridName + "_ErettsegiTipusId_" + value.ID);
var irasbeliPontszamKendoNumericBox = KretaNumericHelper.getKendoNumericTextBoxData(currentDetailGridName + "_IrasbeliPontszam_" + value.ID);
var szobeliPontszamKendoNumericBox = KretaNumericHelper.getKendoNumericTextBoxData(currentDetailGridName + "_SzobeliPontszam_" + value.ID);
var gyakorlatiPontszamKendoNumericBox = KretaNumericHelper.getKendoNumericTextBoxData(currentDetailGridName + "_GyakorlatiPontszam_" + value.ID);
var megjegyzesTextBox = $(detailGridSelector + "_Megjegyzes_" + value.ID);
if (!CommonUtils.isUndefined(erettsegiTantargyIdKendoComboBox) &&
!CommonUtils.isUndefined(erettsegiSzintIdKendoComboBox) &&
!CommonUtils.isUndefined(erettsegiTipusIdKendoComboBox) &&
!CommonUtils.isUndefined(irasbeliPontszamKendoNumericBox) &&
!CommonUtils.isUndefined(szobeliPontszamKendoNumericBox) &&
!CommonUtils.isUndefined(gyakorlatiPontszamKendoNumericBox) &&
!CommonUtils.isUndefined(megjegyzesTextBox)) {
var erettsegiTantargyId = erettsegiTantargyIdKendoComboBox.value();
if (!CommonUtils.isNullOrEmpty(erettsegiTantargyId)) {
erettsegiSzintIdKendoComboBox.enable(true);
erettsegiTipusIdKendoComboBox.enable(true);
irasbeliPontszamKendoNumericBox.enable(true);
szobeliPontszamKendoNumericBox.enable(true);
gyakorlatiPontszamKendoNumericBox.enable(true);
megjegyzesTextBox.prop('disabled', false);
if (value.IsNew) {
erettsegiSzintIdKendoComboBox.value("@((int)ErettsegiSzintEnum.KozepSzint)");
if (isVegzos) {
erettsegiTipusIdKendoComboBox.value("@((int)ErettsegiTipusEnum.Rendes)");
} else {
erettsegiTipusIdKendoComboBox.value("@((int)ErettsegiTipusEnum.Elorehozott)");
}
}
} else {
erettsegiSzintIdKendoComboBox.enable(false);
erettsegiSzintIdKendoComboBox.value("");
erettsegiTipusIdKendoComboBox.enable(false);
erettsegiTipusIdKendoComboBox.value("");
irasbeliPontszamKendoNumericBox.enable(false);
irasbeliPontszamKendoNumericBox.value("");
szobeliPontszamKendoNumericBox.enable(false);
szobeliPontszamKendoNumericBox.value("");
gyakorlatiPontszamKendoNumericBox.enable(false);
gyakorlatiPontszamKendoNumericBox.value("");
megjegyzesTextBox.prop('disabled', true);
megjegyzesTextBox.val("");
}
}
}
erettsegiEredmenyekHelper.addDetailGridDataToVariable = function (currentDetailGridName, formName) {
if (!openedDetailGridData.hasValue("gridName", currentDetailGridName)) {
openedDetailGridData.push({ gridName: currentDetailGridName, formName: formName });
}
}
erettsegiEredmenyekHelper.addNewErettsegiEredmeny = function (currentDetailGridName, tanuloId) {
setModifiedDataSource(currentDetailGridName);
var grid = KretaGridHelper.getKendoGridData(currentDetailGridName);
var total = grid.dataSource.data().length;
grid.dataSource.insert(total,
{
ID: "tempRowId_" + tempRowId,
IsNew: true,
Erdemjegy: "-",
GyakorlatiPontszam: null,
IrasbeliPontszam: null,
Megjegyzes: null,
OsszPontszam: "-",
Szazalek: "-",
ErettsegiSzintId: null,
SzobeliPontszam: null,
ErettsegiTantargyId: null,
ErettsegiTipusId: null
});
tempRowId++;
erettsegiEredmenyekHelper.setDetailControlsEvents(currentDetailGridName, tanuloId);
}
erettsegiEredmenyekHelper.saveErettsegiEredmenyek = function () {
var resultData = [];
$.each(openedDetailGridData, function (i, gridData) {
var formName = gridData.formName;
var form = $('#' + formName);
if (form.valid()) {
var data = form.toObject();
var tanuloId = data.ID;
var rows = KretaGridHelper.getAllRows(gridData.gridName);
if (rows.length > 0) {
var detailData = [rows.length];
$.each(rows,
function (index, rowData) {
detailData[index] = {
Id: rowData.ID,
TanuloId: tanuloId,
ErettsegiTantargyId: rowData.ki_ErettsegiTantargyId,
ErettsegiSzintId: rowData.ki_ErettsegiSzintId,
ErettsegiTipusId: rowData.ki_ErettsegiTipusId,
IrasbeliPontszam: rowData.ki_IrasbeliPontszam,
SzobeliPontszam: rowData.ki_SzobeliPontszam,
GyakorlatiPontszam: rowData.ki_GyakorlatiPontszam,
Megjegyzes: rowData.ki_Megjegyzes,
IsNew: rowData.IsNew
}
});
resultData.push({
FormName: formName,
ErettsegiEredmenySaveDetailModelList: detailData
});
}
}
});
if (resultData.length > 0){
AjaxHelper.DoPost(url.SaveErettsegiEredmenyList,
resultData,
erettsegiEredmenyekHelper.refreshGrid,
saveFeedbackError);
}
}
erettsegiEredmenyekHelper.deleteErettsegiEredmenyConfirmWindow = function (currentDetailGridName, rowData) {
var isNew = rowData.IsNew;
if (CommonUtils.parseBool(isNew)) {
KretaWindowHelper.confirmWindow(
"@(CommonResource.Kerdes)",
"@(CommonResource.BiztosanTorli)",
function () {
setModifiedDataSource(currentDetailGridName);
var grid = KretaGridHelper.getKendoGridData(currentDetailGridName);
grid.dataSource.remove(rowData);
}
);
} else {
KretaWindowHelper.confirmWindow(
"@(CommonResource.Kerdes)",
"@Html.Raw(ErettsegiEredmenyekResource.BiztosanTorli)",
deleteErettsegiEredmeny,
rowData.ID
);
}
}
function deleteErettsegiEredmeny(data) {
AjaxHelper.DoPost(url.Delete, data, erettsegiEredmenyekHelper.refreshGrid, feedbackError);
}
erettsegiEredmenyekHelper.refreshGrid = function () {
openedDetailGridData = [];
KretaGridHelper.refreshGridByObject(gridName, erettsegiEredmenyekHelper.startModel);
}
function saveFeedbackError(data) {
$.each(data.responseJSON.ModelState, function (name, value) {
var form = $('#' + name);
var detailModelState = { detailModelState: value }
AjaxHelper.CallRemoteErrors(form, detailModelState);
});
}
function feedbackError() {
var message = "@(CommonResource.Hiba)";
KretaWindowHelper.feedbackWindow("@(CommonResource.Hiba)", message, true, KretaWindowHelper.destroyAllWindow);
}
function setModifiedDataSource(currentDetailGridName) {
var grid = KretaGridHelper.getKendoGridData(currentDetailGridName);
var currentData = KretaGridHelper.getModifiedRows(currentDetailGridName);
$.each(currentData, function (index, value) {
var data = grid.dataSource.getByUid(value.uid);
data.set("ID", value.ID);
data.set("IsNew", value.IsNew);
data.set("Erdemjegy", value.Erdemjegy);
data.set("GyakorlatiPontszam", value.ki_GyakorlatiPontszam);
data.set("IrasbeliPontszam", value.ki_IrasbeliPontszam);
data.set("Megjegyzes", value.ki_Megjegyzes);
data.set("OsszPontszam", value.OsszPontszam);
data.set("Szazalek", value.Szazalek);
data.set("ErettsegiSzintId", value.ki_ErettsegiSzintId);
data.set("SzobeliPontszam", value.ki_SzobeliPontszam);
data.set("ErettsegiTantargyId", value.ki_ErettsegiTantargyId);
data.set("ErettsegiTipusId", value.ki_ErettsegiTipusId);
});
}
return erettsegiEredmenyekHelper;
})();
$(document).ready(function () {
if (!CommonUtils.parseBool("@(Model.OsztalyList.Count == 1)")) {
ErettsegiEredmenyekHelper.openStartWindow();
} else {
$("button.kendo-gridFunctionKommandRed.elolrol").hide();
ErettsegiEredmenyekHelper.startModel = {
OsztalyId: "@Model.OsztalyId"
};
var osztalyText = "@Model.OsztalyNev";
$(".infoText").html(osztalyText + " @(ErettsegiEredmenyekResource.ErettsegiEredmenyek)".toLowerCase());
ErettsegiEredmenyekHelper.refreshGrid();
}
});
</script>
<style type="text/css">
.k-grid .kendo-gridFunctionKommand .clearFunctionCommand {
background-color: initial;
color: #5c6a79;
cursor: initial;
text-transform: initial;
font-weight: bold;
}
.k-grid .kendo-gridFunctionKommand .clearFunctionCommand:before {
content: initial;
}
.k-grid-content .kendo-gridFunctionKommand > .k-button.k-button-icontext {
background-color: #54a5d1;
}
.k-grid td.kozepre,
.k-grid th.kozepre {
text-align: center;
}
.k-grid td > div.gridNumericBox > span.k-numerictextbox,
.k-grid td > div.gridTextbox > input.k-textbox {
width: 100%;
}
</style>