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

442 lines
22 KiB
Text

@using Kreta.Web.Helpers.Grid;
@using Kreta.Web.Areas.Intezmeny.Models
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Security
@model TeremSearchModel
@{
var searchFormName = "searchForm";
var gridName = "TeremGrid";
}
@section AddSearchPanel {
@using (Html.SearchPanelSideBar(searchFormName, gridName))
{
@Html.HiddenFor(x => x.SzervezetId)
@Html.HiddenFor(x => x.IsFromSzervezet)
@Html.KretaTextBoxFor(model => model.TeremNev).RenderSearchPanelSideBar()
if (!Model.IsFromSzervezet)
{
@Html.KretaComboBoxFor(x => x.TeremJellegID, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTeremJellegList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.KeresesMukodesiHelyID, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetMukodesiHelyList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaRangeNumericSideBar(model => model.MinAlapterulet, model => model.MaxAlapterulet)
@Html.KretaRangeNumericSideBar(model => model.MinKapacitas, model => model.MaxKapacitás)
@Html.KretaComboBoxFor(x => x.IsAktiv, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.TeremfelelosID, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTeremFelelosList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaRangeNumericSideBar(model => model.MinVizsgaKapacitas, model => model.MaxVizsgaKapacitas)
@Html.KretaComboBoxFor(x => x.IsTobbOraTarthato, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IsWifiLefedett, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaComboBoxFor(x => x.IsInternetkapcsolatElerheto, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").RenderSearchPanelSideBar()
@Html.KretaRangeNumericSideBar(model => model.MinOktCelraHasznaltSzamitogepekSzama, model => model.MaxOktCelraHasznaltSzamitogepekSzama)
@Html.KretaComboBoxFor(x => x.IsInterakttablavalMunkaallomassalFelszerelt, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Constants.ApiControllers.ComboBoxHelperEnumApi, action = "GetIgenNemEnumList" }), "Text", "Value").RenderSearchPanelSideBar()
}
else
{
@Html.KretaTextBoxFor(model => model.SzervezetNev).RenderSearchPanelSideBar()
@Html.KretaTextBoxFor(model => model.SzervezetAzonosito).RenderSearchPanelSideBar()
}
}
}
@{
var rowFunctions = new List<RowFunction> { };
var conditionalRowFunctions = new List<RowFunction> { };
var functionCommands = new List<FunctionCommand> { };
if (!ClaimData.IsSelectedTanevIsElozo)
{
var rowFunction = new RowFunction { Name = IntezmenyResource.Modositas, ClientAction = "TeremHelper.openTeremModify", IconEnum = GridRowFunctionIconEnum.Modositas };
if (!Model.IsFromSzervezet)
{
rowFunctions.Add(rowFunction);
}
else
{
conditionalRowFunctions.Add(rowFunction);
}
};
rowFunctions.Add(new RowFunction { Name = IntezmenyResource.Adatok, ClientAction = "TeremHelper.openTeremProperties", IconEnum = GridRowFunctionIconEnum.Adatok });
if (!ClaimData.IsSelectedTanevIsElozo)
{
var rowFunction = new RowFunction { Name = IntezmenyResource.Torles, ClientAction = "TeremHelper.deleteTeremConfirmWindow", IconEnum = GridRowFunctionIconEnum.Torles };
if (!Model.IsFromSzervezet)
{
rowFunctions.Add(rowFunction);
}
else
{
conditionalRowFunctions.Add(rowFunction);
}
functionCommands.Add(new FunctionCommand { Name = IntezmenyResource.Uj, ClientAction = "TeremHelper.openTeremModifyAdd" });
functionCommands.Add(new FunctionCommand { Name = IntezmenyResource.Modositas, ClientAction = "TeremHelper.openSelectModWindow" });
functionCommands.Add(new FunctionCommand { Name = IntezmenyResource.KijeloltekTorlese, ClientAction = "TeremHelper.deleteSelectedTerem", Classes = "kendo-gridFunctionKommandRed" });
};
if (!Model.IsFromSzervezet)
{
functionCommands.Add(new FunctionCommand
{
Name = ImportExportCommonResource.Export.ToUpper(),
NestedCommands = new List<FunctionCommand>
{
new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "TeremHelper.getExport" },
new FunctionCommand { Name = IntezmenyResource.TermekAdatai, ClientAction = "TeremHelper.exportTermekAdatai" }
}
});
}
else
{
functionCommands.Add(new FunctionCommand { Name = ImportExportCommonResource.Export, ClientAction = "TeremHelper.getExport" });
}
var grid =
Html.KretaGrid<TeremGridModel>
(
name: gridName,
getUrl: new GridApiUrl(Model.ApiControllerName, "GetTeremGrid", new Dictionary<string, string> { }),
dataParameterFunction: searchFormName,
allowScrolling: true,
sort: sort => sort.Add(m => m.Nev).Ascending()
)
.SelectBoxColumn(Html, string.Empty);
if (!ClaimData.IsSelectedTanevIsElozo)
{
grid.LinkButtonColumn(string.Empty, c => c.Nev, "TeremHelper.openTeremModifyOropenTeremProperties", GridButtonsEnum.Modositas);
}
else
{
grid.Columns(columns => { columns.Bound(c => c.Nev).Width("20%"); });
}
grid.Columns(columns =>
{
columns.Bound(c => c.JellegNev).Width("20%").Visible(!Model.IsFromSzervezet);
columns.Bound(c => c.MukodesihelyNev).Visible(!Model.IsFromSzervezet);
columns.Bound(c => c.Terulet).Visible(!Model.IsFromSzervezet);
columns.Bound(c => c.Kapacitas).Width("10%").Visible(!Model.IsFromSzervezet);
if (!Model.IsFromSzervezet)
{
columns.Bound(c => c.AktivNev).Width("10%");
}
columns.Bound(c => c.SzervezetNeve).Width("20%").Visible(Model.IsFromSzervezet);
columns.Bound(c => c.SzervezetAzonositoja).Width("20%").Visible(Model.IsFromSzervezet);
})
.RowFunction(Html, rowFunctions, iconCount: rowFunctions.Count)
.FunctionCommand(Html, functionCommands)
.Sortable(sortable => sortable
.AllowUnsort(true)
.SortMode(GridSortMode.MultipleColumn));
if (Model.IsFromSzervezet)
{
grid.ConditionalRowFunction(Html, conditionalRowFunctions, "TeremHelper.isSzerkesztheto", iconCount: conditionalRowFunctions.Count);
}
}
<div>
@(grid)
</div>
<script type="text/javascript">
var TeremHelper = (function () {
var teremHelper = function () { };
var formName = "TeremForm";
var gridName = "@gridName";
var searchFormName = "@searchFormName";
var modFormName = "TeremModForm";
var formObject = null;
var url = {
OpenTeremProperties: "@Url.Action("OpenTeremPropertiesTab", Model.ControllerName , new { area = Constants.Areas.Intezmeny })",
OpenTeremModifyAdd: "@Url.Action("OpenTeremModifyAddTab", Model.ControllerName, new { area = Constants.Areas.Intezmeny })",
OpenTeremModifyAddPopup: "@Url.Action("OpenTeremModifyAddPopup", Model.ControllerName, new { area = Constants.Areas.Intezmeny })",
OpenSelectedMod: "@Url.Action("OpenModPopup", Model.ControllerName, new { area = Constants.Areas.Intezmeny })",
ValidateSaveModifiedOrNewTerem: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "ValidateSaveModifiedOrNewTerem" })",
SaveModifiedOrNewTerem: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "SaveModifiedOrNewTerem" })",
DeleteTerem: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "DeleteTerem" })",
SaveModTerem: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "SaveModTerem" })",
DeleteSelectedTerem: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Model.ApiControllerName, action="DeleteSelectedTerem" })",
GetExport: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "GetExport" })",
ExportTermekAdatai: "@Url.Action("ExportTermekAdatai", Constants.Controllers.Terem, new {area = Constants.Areas.Intezmeny })"
}
teremHelper.openTeremProperties = function (rowData) {
if (rowData.ID) {
AjaxHelper.DoGet(url.OpenTeremProperties, { TeremId: rowData.ID }, popUpTeremProperties);
}
}
teremHelper.openTeremModify = function (rowData) {
AjaxHelper.DoGet(url.OpenTeremModifyAdd, { TeremId: rowData.ID, SzervezetId: @(Model.SzervezetId.HasValue ? Model.SzervezetId.Value.ToString() : "null") }, popUpTeremModify);
}
teremHelper.openTeremModifyAdd = function (rowData) {
AjaxHelper.DoGet(url.OpenTeremModifyAdd, { TeremId: rowData.ID, SzervezetId: @(Model.SzervezetId.HasValue ? Model.SzervezetId.Value.ToString() : "null") }, popUpTerem);
}
teremHelper.openSelectModWindow = function (data) {
var selectedRows = KretaGridHelper.getSelectedRowsByGridName(gridName);
@if (Model.IsFromSzervezet)
{
<text>
if (!selectedRows.every((x) => teremHelper.isSzerkesztheto(x))) {
KretaWindowHelper.warningWindow("@(IntezmenyResource.Figyelmeztetes)", "@(DualisResource.NincsMindenKijeloltElemhezSzerkesztesTorlesJogosultsaga)");
return;
}
</text>
}
if (selectedRows.length == 0) {
KretaWindowHelper.warningWindow("@(IntezmenyResource.Figyelmeztetes)", "@(IntezmenyResource.ACsoportosModositashozLegalabbEgyElemKivalasztasaSzukseges)");
}
else if (selectedRows.length == 1) {
AjaxHelper.DoGet(url.OpenTeremModifyAdd, { TeremId: selectedRows[0].ID, SzervezetId: @(Model.SzervezetId.HasValue ? Model.SzervezetId.Value.ToString() : "null") }, popUpTeremModify);
}
else {
var parameters = [];
$.each(selectedRows, function (index, value) {
parameters.push({ TeremId: value.ID, Nev: value.Nev });
});
AjaxHelper.DoPost(url.OpenSelectedMod, { TeremModelList: parameters, SzervezetId: @(Model.SzervezetId.HasValue ? Model.SzervezetId.Value.ToString() : "null") }, popUpTeremModify);
}
}
teremHelper.saveTobbesMod = function (data) {
KretaGridHelper.resetHeaderCheckbox(gridName);
if (data.Valid) {
AjaxHelper.DoPostElement(url.SaveModTerem, modFormName, modifyAddSaveFeedBackOk@(Model.IsFromSzervezet ? ", modifyAddSaveFeedbackError" : ""));
} else {
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)", data.Text, function () {
AjaxHelper.DoPostElement(url.SaveModTerem, modFormName, modifyAddSaveFeedBackOk@(Model.IsFromSzervezet ? ", modifyAddSaveFeedbackError" : ""));
});
}
}
function deleteTerem(data) {
AjaxHelper.DoPost(url.DeleteTerem, data, deleteFeedbackOk, deleteFeedbackFail);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
teremHelper.deleteTeremConfirmWindow = function (rowData) {
KretaWindowHelper.confirmWindow("@(IntezmenyResource.Kerdes)", "@(IntezmenyResource.BiztosanTorli)", deleteTerem, rowData.ID);
}
function popUpTeremModify(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(TeremResource.TeremModositasa)";
config.content = data;
var modal = KretaWindowHelper.createWindow("TeremPropertiesWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function popUpTerem(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(TeremResource.TeremFelvetele)";
config.content = data;
var modal = KretaWindowHelper.createWindow("TeremPropertiesWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function popUpTeremProperties(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(IntezmenyResource.TeremAdatai)";
config.content = data;
var modal = KretaWindowHelper.createWindow("TeremPropertiesWindow", config);
KretaWindowHelper.openWindow(modal, true);
}
function popUpTeremModifyAdd(data) {
var config = KretaWindowHelper.getWindowConfigContainer();
config.title = "@(IntezmenyResource.TeremAdatai)";
config.content = data;
var modal = KretaWindowHelper.createWindow("TeremModifyAdd", config);
KretaWindowHelper.openWindow(modal, true);
}
teremHelper.propertiesCancel = function () {
KretaWindowHelper.destroyWindow("TeremPropertiesWindow");
}
teremHelper.modifyAddCancel = function () {
KretaWindowHelper.destroyWindow("TeremModifyAdd");
}
teremHelper.confirmCancel = function () {
KretaWindowHelper.destroyWindow("TeremDeleteConfirm");
}
teremHelper.getExport = function () {
KretaGridHelper.getExportBySearchForm(gridName, url.GetExport, searchFormName)
}
teremHelper.exportTermekAdatai = function () {
window.location = url.ExportTermekAdatai + "?" + $.param(KretaGridHelper.getSearchParametersWithoutInputNames(searchFormName));
}
function modifyAddSaveFeedBackOk() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
function modifyAddSaveFeedbackError(data) {
if (!data.responseJSON.ModelState) {
AjaxHelper.ShowError(data);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
}
function deleteFeedbackOk() {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
teremHelper.confirmCsopModWindow = function () {
KretaWindowHelper.confirmWindow("@(IntezmenyResource.Figyelmeztetes)", "@(IntezmenyResource.BiztosanModositaniSzeretneAKijeloltElemeket)", teremHelper.validateTobbesMod);
}
teremHelper.validateTobbesMod = function () {
var teremIDArrayString = $("#TeremIDArray").val();
AjaxHelper.DoPost(url.ValidateSaveModifiedOrNewTerem, { TeremIDArray: teremIDArrayString }, teremHelper.saveTobbesMod)
}
function deleteFeedbackFail(data) {
var message = data.responseJSON.Message;
KretaWindowHelper.feedbackWindow(Globalization.Hiba /*HIBA*/, message, true, KretaWindowHelper.destroyAllWindow);
}
teremHelper.modifyAddSave = function () {
var teremIDArrayString = $("#TeremId").val().toString();
var tervezettKapacitas = $("#TeremAlapadatokModel_Kapacitas").val();
AjaxHelper.DoPost(url.ValidateSaveModifiedOrNewTerem, { TeremIDArray: teremIDArrayString, Kapacitas: tervezettKapacitas }, TeremHelper.ValidateSaveModifiedOrNewTeremCallback);
}
teremHelper.ValidateSaveModifiedOrNewTeremCallback = function (data) {
if (data.Valid) {
SaveTerem();
} else {
KretaWindowHelper.confirmWindow("@(CommonResource.Figyelmeztetes)", data.Text, function () {
AjaxHelper.DoPostElement(SaveTerem(), formName, modifyAddSaveFeedBackOk);
});
}
}
function SaveTerem() {
var formObject = $("#" + formName).toObject();
var isBerbeadhato = formObject.TeremBerbeadasModel != null && formObject.TeremBerbeadasModel.Berbeadhato === true;
if (isBerbeadhato) {
Save(formObject);
}
else {
AjaxHelper.DoPostElement(url.SaveModifiedOrNewTerem, formName, modifyAddSaveFeedBackOk@(Model.IsFromSzervezet ? ", modifyAddSaveFeedbackError" : ""));
}
}
function Save(formObject) {
formObject = getTeremBerbeAdasIdopontok(formObject);
KretaFileUpload.SendAttachmentsAsBase64EncodedString("FotoInputContainer", (function (filesArray) {
formObject.TeremBerbeadasModel.PictureList = filesArray;
AjaxHelper.DoValidationPost(url.SaveModifiedOrNewTerem, formName, formObject, modifyAddSaveFeedBackOk);
}));
}
teremHelper.deleteSelectedTerem = function () {
var selectedRows = KretaGridHelper.getSelectedRowsByGridName(gridName);
@if (Model.IsFromSzervezet)
{
<text>
if (!selectedRows.every((x) => teremHelper.isSzerkesztheto(x))) {
KretaWindowHelper.warningWindow("@(IntezmenyResource.Figyelmeztetes)", "@(DualisResource.NincsMindenKijeloltElemhezSzerkesztesTorlesJogosultsaga)");
return;
}
</text>
}
if (selectedRows.length > 0) {
KretaWindowHelper.confirmWindow("@(IntezmenyResource.Figyelmeztetes)", "@(IntezmenyResource.ARendszerCsakAzonSorokatTorliAmelyeknekNincsenekKapcsolataiARendszerbenBiztosanTorliAzAdatokat)", function() { deleteSelectedTerem(selectedRows); });
}
else {
KretaWindowHelper.feedbackWindow("@(IntezmenyResource.Figyelmeztetes)", "@(IntezmenyResource.AKijeloltElemekTorlesehezJeloljonKiLegalabbEgyElemet)", true, KretaWindowHelper.destroyAllWindow);
}
}
function getTeremBerbeAdasIdopontok(formObject) {
var allRows = KretaGridHelper.getAllRows("TeremBerbeadasIdopontGrid");
var teremBerbeadasIdopontokListModelJsonData = "[";
$.each(allRows, function (i, v) {
if (v.ki_Kezdete !== null && v.ki_Vege !== null) {
teremBerbeadasIdopontokListModelJsonData += "{\"TeremElerhetosegId\":" + v.TeremElerhetosegId + ",\"HetNapjaId\":" + v.ID + ",";
$.each(v.input, function (ind, val) {
if (val.value == null)
{
teremBerbeadasIdopontokListModelJsonData += "\"" + val.name + "\":null,";
}
else
{
teremBerbeadasIdopontokListModelJsonData += "\"" + val.name + "\":\"" + val.value + "\",";
}
});
teremBerbeadasIdopontokListModelJsonData = teremBerbeadasIdopontokListModelJsonData.substring(0, teremBerbeadasIdopontokListModelJsonData.length - 1);
teremBerbeadasIdopontokListModelJsonData += "},";
}
});
teremBerbeadasIdopontokListModelJsonData = teremBerbeadasIdopontokListModelJsonData.substring(0, teremBerbeadasIdopontokListModelJsonData.length - 1);
if (teremBerbeadasIdopontokListModelJsonData.length > 0) {
teremBerbeadasIdopontokListModelJsonData = teremBerbeadasIdopontokListModelJsonData + "]";
formObject.TeremBerbeadasModel["TeremBerbeadasIdopontokListModel"] = $.parseJSON(teremBerbeadasIdopontokListModelJsonData);
}
return formObject;
}
function deleteSelectedTerem(selectedRows) {
var parameters = [];
$.each(selectedRows, function(index, value) {
parameters.push(value.ID);
});
AjaxHelper.DoPost(url.DeleteSelectedTerem, parameters, deleteSelectedTeremResponseOk, deleteSelectedTeremResponseError);
}
function deleteSelectedTeremResponseError(data) {
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
AjaxHelper.ShowError(data);
}
function deleteSelectedTeremResponseOk(data) {
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow, data.Message);
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
}
teremHelper.openTeremModifyOropenTeremProperties = function (data) {
if (!teremHelper.isSzerkesztheto(data)) {
teremHelper.openTeremProperties(data);
}
else {
teremHelper.openTeremModify(data);
}
}
teremHelper.isSzerkesztheto = function (data) {
return CommonUtils.parseBool(data.IsSzerkesztheto);
}
return teremHelper;
})();
</script>