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

135 lines
No EOL
6.5 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 MulasztasokDatumNezetGridModel
@{
var gridName = "MulasztasokDatumNezetDetailGrid_" + Model.MulasztasDatuma.ToString("yyyyMMdd");
var javascriptClassName = gridName + "Helper";
var parentGridName = "MulasztasokDatumNezetGrid";
var parentFormName = "MulasztasokSearchForm";
}
@{
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)
{
igazoltList.Add(new SelectListItem { Text = IgazolasSelectListEnum.Igazolatlan.GetDisplayName(ClaimData.SelectedTanevID.Value), Value = ((int)IgazolasSelectListEnum.Igazolatlan).ToString() });
}
}
var functionCommandList = new List<FunctionCommand>();
if (Model.IsMulasztasKezelheto && (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet
&& Model.ApiControllerName == Constants.ApiControllers.DualisMulasztasokApi || 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}', false); }}", gridName, parentGridName, parentFormName)
});
}
var rowFunctionList = new List<RowFunction>();
if (Model.SzerepkorViewType == SzerepkorViewTypeEnum.OsztalyfonokNezet && Model.ApiControllerName == Constants.ApiControllers.DualisMulasztasokApi || ClaimManager.HasPackage("Osztalyfonok"))
{
rowFunctionList.Add(new RowFunction
{
Name = CommonResource.Torles,
ClientAction = string.Format(@"function(e) {{ MulasztasKezelesHelper.deleteConfirmWindow(e, ['{0}'], '{1}'); }}", parentGridName, parentFormName),
IconEnum = GridRowFunctionIconEnum.Torles
});
}
}
@{
var grid = Html.KretaGrid<MulasztasGridModel>(
gridName,
new GridApiUrl(Model.ApiControllerName, "GetMulasztasokDatumNezetDetailGrid", new Dictionary<string, string>()),
dataBoundAdditionalFunction:
string.Format(@"
var shortDateReplaced = '{0:yyyyMMdd}';
var igazoltDivNamePrefix = 'divMulasztasokDatumNezetDetailGrid_' + shortDateReplaced + '_Igazolt_';
var detailGridName = '{1}';
MulasztasKezelesHelper.setDetailControlsEvents(igazoltDivNamePrefix, detailGridName, false);
MulasztasKezelesHelper.dataBoundAdditionalFunction();
", Model.MulasztasDatuma, gridName),
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.TanuloNev).ClientTemplate(@"
<a class='kendoTooltip tanuloNev gridLinkButton'
data-tanuloid='#: TanuloId #'
data-tanulonev='#: TanuloNev #'
data-osztaly='#: OsztCsopNev #'
data-anyjaneve='#: AnyjaNeve #'
data-szuletesiido='#: SzuletesiIdoFormatted #'
>#: TanuloNev #</a>");
columns.Bound(c => c.Oraszam).Width("3%");
columns.Bound(c => c.OsztCsopNev).Width("10%");
columns.Bound(c => c.TargyNev).Width("10%");
columns.Bound(c => c.MulTip_DNAME).Width("8%");
columns.Bound(c => c.KesesPerc).Width("6%");
})
.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.SzervezetTipusId }), 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="partialDetailGrid_@Model.MulasztasDatuma.ToString("yyyyMMdd")" class="@(Model.IsMulasztasKezelheto ? "" : "disabledItem")">
@(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>