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

221 lines
No EOL
10 KiB
Text

@using Kreta.Enums
@using Kreta.Resources
@using Kreta.Web.Areas.Feljegyzes.Controllers
@using Kreta.Web.Areas.Feljegyzes.Models
@using Kreta.Web.Helpers.Grid
@model OsszefuggoSzakGyakSearchModel
@section AddCss {
@Styles.Render(Constants.General.FeljegyzesekCSS)
@Styles.Render(Constants.General.TanuloErtekelesCSS)
}
@{
string startPopupFormName = OsszefuggoSzakGyakController.StartPopupFormName;
string startPopupId = OsszefuggoSzakGyakController.StartPopupId;
string startPopupTitle = OsszefuggoSzakGyakController.StartPopupTitle;
string gridName = OsszefuggoSzakGyakController.GridName;
}
@using (Html.KretaForm("searchForm", new Dictionary<string, object> { { "style", "display:none;" } }))
{
@Html.HiddenFor(m => m.CsoportIdSearch)
@Html.HiddenFor(m => m.TantargyIdSearch)
}
@{
var functionCommandList = new List<FunctionCommand>
{
new FunctionCommand { Name = CommonResource.Mentes, ClientAction = "OsszefuggoSzakGyakHelper.save" },
new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "OsszefuggoSzakGyakHelper.export" },
new FunctionCommand { Name = CommonResource.Elolrol, ClientAction = "OsszefuggoSzakGyakHelper.openStartWindow", Classes = "kendo-gridFunctionKommandRed elolrol" }
};
var grid = Html.KretaGrid<OsszefuggoSzakGyakGridModel>
(
gridName,
new GridApiUrl("OsszefuggoSzakGyakApi", "GetOsszefuggoSzakGyakGrid"),
dataBoundAdditionalFunction: "OsszefuggoSzakGyakHelper.setkKendoMaskedDatePicker();",
allowFilterable: false,
allowPaging: false,
allowScrolling: true,
pageSizes: null,
dataParameterFunction: "searchForm",
sort: sort => sort.Add(s => s.TanuloNev).Ascending()
)
.Columns(columns =>
{
columns.Bound(c => c.TanuloNev);
})
.FunctionCommand(Html, functionCommandList);
grid.Columns(c => c.Template(t => t.ToString())
.HeaderHtmlAttributes(new { @class = "tanuloErtekelesSelectorGridColumnHeaderTh" })
.Title(@"
<div class='gridSelect'>
<div class='selectorwrapper'>
<ul class='bars weeks'>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllTeljesitettValue(""T"");'>" + FeljegyzesekResource.Teljesitve + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllTeljesitettValue(""F"");'>" + FeljegyzesekResource.NemTeljesitve + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllTeljesitettValue();' title='" + TanuloErtekelesResource.VisszaallitasAlapallapotba + @"'>" + TanuloErtekelesResource.X + @"</li>
</ul>
</div>
</div>")
.ClientTemplate(grid.SelectForColumnTemplate(Html.For<OsszefuggoSzakGyakGridModel>(), x => x.Teljesitett, Model.TeljesitettList)));
grid.Columns(c => c.Template(t => t.ToString())
.HeaderHtmlAttributes(new { @class = "tanuloErtekelesSelectorGridColumnHeaderTh" })
.Title(@"
<div class='gridSelect'>
<div class='selectorwrapper'>
<ul class='bars weeks'>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue(" + (int)OsztalyzatTipusEnum.elegtelen_1_ + ");' title='" + TanuloErtekelesResource.ElegtelenFullText + @"'>" + TanuloErtekelesResource.ElegtelenSzammal + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue(" + (int)OsztalyzatTipusEnum.elegseges_2_ + ");' title='" + TanuloErtekelesResource.ElegsegesFullText + @"'>" + TanuloErtekelesResource.ElegsegesSzammal + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue(" + (int)OsztalyzatTipusEnum.kozepes_3_ + ");' title='" + TanuloErtekelesResource.KozepesFullText + @"'>" + TanuloErtekelesResource.KozepesSzammal + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue(" + (int)OsztalyzatTipusEnum.jo_4_ + ");' title='" + TanuloErtekelesResource.JoFullText + @"'>" + TanuloErtekelesResource.JoSzammal + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue(" + (int)OsztalyzatTipusEnum.jeles_5_ + ");' title='" + TanuloErtekelesResource.JelesFullText + @"'>" + TanuloErtekelesResource.JelesSzammal + @"</li>
<li class='kretaSelectorButton' onclick='OsszefuggoSzakGyakHelper.changeAllOsztalyzatValue();' title='" + TanuloErtekelesResource.VisszaallitasAlapallapotba + @"'>" + TanuloErtekelesResource.X + @"</li>
</ul>
</div>
</div>")
.ClientTemplate(grid.SelectForColumnTemplate(Html.For<OsszefuggoSzakGyakGridModel>(), x => x.ErtekelesOsztalyzatId, Model.OsztalyzatList, true)));
grid.TextBoxForColumn(Html.For<OsszefuggoSzakGyakGridModel>(), FeljegyzesekResource.SzovegesErtekeles, m => m.ErtekelesSzoveg);
grid.DatePickerForColumn(Html.For<OsszefuggoSzakGyakGridModel>(), FeljegyzesekResource.DatumKotelezo, m => m.TeljesitesDatumFormatted);
grid.TextBoxForColumn(Html.For<OsszefuggoSzakGyakGridModel>(), FeljegyzesekResource.Megjegyzes, m => m.Megjegyzes);
grid.Columns(columns =>
{
columns.Bound(c => c.CsoportId).Hidden(true);
columns.Bound(c => c.TantargyId).Hidden(true);
});
}
<div>
@(grid)
</div>
<script type="text/javascript">
var OsszefuggoSzakGyakHelper = (function () {
var osszefuggoSzakGyakHelper = function () { };
var startPopupFormName = "@startPopupFormName";
var startPopupId = "@startPopupId";
var startPopupTitle = "@startPopupTitle";
var gridName = "@gridName";
osszefuggoSzakGyakHelper.startModel = null;
var url = {
OpenStartPopup: "@Url.Action("OpenStartPopup", "OsszefuggoSzakGyak", new {area = "Feljegyzes" })",
Export: "@Url.Action("Export", "OsszefuggoSzakGyak", new {area = "Feljegyzes" })",
Save: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = "OsszefuggoSzakGyakApi", action = "Save" })"
};
osszefuggoSzakGyakHelper.openStartWindow = function () {
KretaGridHelper.clearGridData(gridName);
AjaxHelper.DoPost(url.OpenStartPopup, null, popUpStartWindow);
}
function popUpStartWindow(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = startPopupTitle;
config.width = "500px";
config.content = data;
config.actions = ['Close'];
var modal = KretaWindowHelper.createWindow(startPopupId, config);
modal.setOptions({ height: 170 });
KretaWindowHelper.openWindow(modal, true);
}
osszefuggoSzakGyakHelper.startTovabb = function () {
var form = $("#" + startPopupFormName);
if (form.valid()) {
osszefuggoSzakGyakHelper.startModel = KretaGridHelper.getSearchParameterObject(startPopupFormName);
$("#CsoportIdSearch").val(osszefuggoSzakGyakHelper.startModel.CsoportId);
$("#TantargyIdSearch").val(osszefuggoSzakGyakHelper.startModel.TantargyId);
KretaGridHelper.refreshGrid(gridName);
KretaWindowHelper.destroyWindow(startPopupId);
}
}
osszefuggoSzakGyakHelper.save = function () {
var modifiedRows = KretaGridHelper.getModifiedRows(gridName);
var json = [];
$.each(modifiedRows,
function(i, item) {
json.push({
"ID": item.ID,
"Teljesitett": item.ki_Teljesitett,
"TanuloNev": item.TanuloNev,
"ErtekelesOsztalyzatId": item.ki_ErtekelesOsztalyzatId,
"ErtekelesSzoveg": item.ki_ErtekelesSzoveg,
"Megjegyzes": item.ki_Megjegyzes,
"TeljesitesDatumFormatted": item.ki_TeljesitesDatumFormatted,
"CsoportId": item.CsoportId,
"TantargyId": item.TantargyId
});
});
AjaxHelper.DoPost(url.Save, json, saveResponseOk);
}
osszefuggoSzakGyakHelper.changeAllTeljesitettValue = function (val) {
var defaultSelector = "td div[id*='Teljesitett'] .kretaSelectorButton";
changeColumnValues(gridName, defaultSelector, val);
}
osszefuggoSzakGyakHelper.changeAllOsztalyzatValue = function (val) {
var defaultSelector = "td div[id*='ErtekelesOsztalyzatId'] .kretaSelectorButton";
changeColumnValues(gridName, defaultSelector, val);
}
osszefuggoSzakGyakHelper.setkKendoMaskedDatePicker = function () {
var datePicker = $("input[id*='TeljesitesDatumFormatted']");
datePicker.kendoMaskedDatePicker();
datePicker.change(function() {
KretaDateTimeHelper.validateDate($(this));
});
datePicker.parent().parent().css("width", "initial");
}
osszefuggoSzakGyakHelper.export = function () {
window.location = url.Export + "?csoportId=" + osszefuggoSzakGyakHelper.startModel.CsoportId + "&tantargyId=" + osszefuggoSzakGyakHelper.startModel.TantargyId;
}
function changeColumnValues(gridName, selector, val) {
if (!CommonUtils.isNullOrEmpty(val)) {
$.each($("#" + gridName).find(selector + "[val='" + val + "']"), function () {
if (!$(this).hasClass("activebar")) {
$(this).click();
}
});
} else {
$.each($("#" + gridName).find(selector), function () {
if ($(this).hasClass("activebar")) {
$(this).click();
}
});
}
}
function saveResponseOk() {
KretaWindowHelper.successFeedBackWindow();
KretaGridHelper.refreshGrid();
}
return osszefuggoSzakGyakHelper;
})();
$(document).ready(function () {
OsszefuggoSzakGyakHelper.openStartWindow();
});
</script>