419 lines
No EOL
18 KiB
Text
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> |