kreta/KretaWeb/Areas/Hianyzas/Views/Shared/TanuloMulasztasai_DetailGrid.cshtml
2024-03-13 00:33:46 +01:00

125 lines
No EOL
6.4 KiB
Text

@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>