389 lines
16 KiB
Text
389 lines
16 KiB
Text
@using Kreta.Enums.ManualEnums
|
|
@using Kreta.Resources
|
|
@using Kreta.Web.Areas.OsztalyCsoport.Models
|
|
@using Kreta.Web.Helpers.Grid
|
|
|
|
@model OraSorszamozasHalmazSearchModel
|
|
|
|
@{
|
|
const string OraSorszamozasHalmazController = Constants.Controllers.OraSorszamozasHalmaz;
|
|
const string OraSorszamozasHalmazApiController = Constants.ApiControllers.OraSorszamozasHalmazApi;
|
|
const string gridName = "OraSorszamozasHalmazGrid";
|
|
const string searchFormName = "OraSorszamozasHalmazSearchForm";
|
|
const string osszerendelesGridName = "OsszerendelesekGrid";
|
|
const string osszerendelesFormName = "OraSorszamozasHalmazForm";
|
|
const string osztalyCsoportValaszto = "OsztalyCsoportValaszto";
|
|
const string tantargyValaszto = "TantargyValaszto";
|
|
const string addOsszerendelesToList = "AddOsszerendelesToList";
|
|
const string osszerendelesValaszto = "OsszerendelesValaszto";
|
|
const string sorszamText = "SorszamText";
|
|
}
|
|
|
|
@section AddSearchPanel {
|
|
@using (Html.SearchPanelSideBar(searchFormName, gridName))
|
|
{
|
|
@Html.KretaTextBoxFor(x => x.SearchHalmazNeve).RenderSearchPanelSideBar()
|
|
@Html.KretaComboBoxFor(x => x.SearchOsztalyCsoportId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi,
|
|
new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetOsztalyCsoportListByEvfolyam" }), useGroup: true).RenderSearchPanelSideBar()
|
|
@Html.KretaComboBoxFor(x => x.SearchTantargyId, Url.HttpRouteUrl(Constants.RouteKey.ActionApi,
|
|
new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargy" })).RenderSearchPanelSideBar()
|
|
}
|
|
}
|
|
|
|
<div>
|
|
@(
|
|
Html.KretaGrid<OraSorszamozasHalmazGridModel>(
|
|
name: gridName,
|
|
getUrl: new GridApiUrl(OraSorszamozasHalmazApiController, "GetHalmazGrid"),
|
|
dataParameterFunction: searchFormName,
|
|
clientTemplate: "detailGrid-template",
|
|
clientTemplateUrl: @Url.Action("GetDetailGrid", OraSorszamozasHalmazController, new { area = Constants.Areas.OsztalyCsoport })
|
|
)
|
|
.Columns(columns =>
|
|
{
|
|
columns.Bound(c => c.HalmazNeve).Width("100%");
|
|
})
|
|
.AutoBind(true)
|
|
.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
|
|
.FunctionCommand(Html, new List<FunctionCommand>
|
|
{
|
|
new FunctionCommand
|
|
{
|
|
Name = OraSorszamozasHalmazResource.UjHalmazHozzaadasa,
|
|
ClientAction = "OraSorszamozasHalmazHelper.openEditPopUp",
|
|
},
|
|
})
|
|
.RowFunction(Html, new List<RowFunction>
|
|
{
|
|
new RowFunction
|
|
{
|
|
Name = CommonResource.Modositas,
|
|
ClientAction = "OraSorszamozasHalmazHelper.openEditPopUp",
|
|
IconEnum = GridRowFunctionIconEnum.Modositas ,
|
|
},
|
|
new RowFunction
|
|
{
|
|
Name = CommonResource.Torles,
|
|
ClientAction = "OraSorszamozasHalmazHelper.deleteHalmazConfirm",
|
|
IconEnum = GridRowFunctionIconEnum.Torles,
|
|
},
|
|
})
|
|
)
|
|
</div>
|
|
|
|
@Html.KretaGridTemplate("detailGrid-template")
|
|
|
|
<script>
|
|
var OraSorszamozasHalmazHelper = (function () {
|
|
var oraSorszamozasHalmazHelper = function () { };
|
|
|
|
var gridName = "@gridName";
|
|
var searchFormName = "@searchFormName";
|
|
var osszerendelesGridName = "@osszerendelesGridName";
|
|
var osszerendelesFormName = "@osszerendelesFormName";
|
|
var osztalyCsoportValaszto = "@osztalyCsoportValaszto";
|
|
var tantargyValaszto = "@tantargyValaszto";
|
|
var addOsszerendelesToList = "@addOsszerendelesToList";
|
|
var kezdoertekNumeric = "Kezdoertek";
|
|
var osszerendelesValasztoCB = "@osszerendelesValaszto";
|
|
var sorszamText = "@sorszamText";
|
|
var windowName = "OraSorszamozasHalmazEditWindow";
|
|
var windowTitle = "";
|
|
var deletedOsszerendeslIds = [];
|
|
|
|
var url = {
|
|
DeleteHalmaz: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = OraSorszamozasHalmazApiController, action = "DeleteHalmaz" })",
|
|
DeleteOsszerendeles: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = OraSorszamozasHalmazApiController, action = "DeleteOsszerendeles" })",
|
|
OpenEditPopUp: "@Url.Action("OpenEditPopUp", OraSorszamozasHalmazController, new { area = Constants.Areas.OsztalyCsoport })",
|
|
OsszerendelesExists: "@Url.Action("OsszerendelesExists", OraSorszamozasHalmazController, new { area = Constants.Areas.OsztalyCsoport })",
|
|
GetEvesOraszamForTantargyAndOsztaly: "@Url.Action("GetEvesOraszamForTantargyAndOsztaly", OraSorszamozasHalmazController, new { area = Constants.Areas.OsztalyCsoport })",
|
|
Save: "@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = OraSorszamozasHalmazApiController, action = "Save" })",
|
|
};
|
|
|
|
function success(message) {
|
|
KretaWindowHelper.successFeedBackWindow(KretaWindowHelper.destroyAllWindow, message);
|
|
|
|
KretaGridHelper.refreshGridSearchPanel(gridName, searchFormName);
|
|
}
|
|
|
|
function saveSuccess() {
|
|
success("@OraSorszamozasHalmazResource.AzOraSorszamozasHalmazMenteseSikerult");
|
|
}
|
|
|
|
function deleteOsszerendelesSuccess() {
|
|
success("@OraSorszamozasHalmazResource.AzOraSorszamozasHalmazOsszerendeleseTorleseSikerult");
|
|
}
|
|
|
|
function deleteHalmazSuccess() {
|
|
success("@OraSorszamozasHalmazResource.AzOraSorszamozasHalmazTorleseSikerult");
|
|
}
|
|
|
|
function deleteOsszerendeles(id) {
|
|
AjaxHelper.DoPostQuery(url.DeleteOsszerendeles, null, { id }, deleteOsszerendelesSuccess);
|
|
}
|
|
|
|
function deleteHalmaz(id) {
|
|
AjaxHelper.DoPostQuery(url.DeleteHalmaz, null, { id }, deleteHalmazSuccess);
|
|
}
|
|
|
|
oraSorszamozasHalmazHelper.deleteOsszerendelesConfirm = function (rowData) {
|
|
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@OraSorszamozasHalmazResource.BiztosanTorliAzOraSorszamozasHalmazOsszerendeleset", deleteOsszerendeles, rowData.ID);
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.deleteHalmazConfirm = function (rowData) {
|
|
KretaWindowHelper.confirmWindow("@CommonResource.Kerdes", "@OraSorszamozasHalmazResource.BiztosanTorliAzOraSorszamozasHalmazt", deleteHalmaz, rowData.ID);
|
|
};
|
|
|
|
function popUpWindow(data) {
|
|
var config = KretaWindowHelper.getWindowConfigContainer();
|
|
|
|
config.content = data;
|
|
config.title = windowTitle;
|
|
config.height = "400px";
|
|
|
|
deletedOsszerendeslIds = [];
|
|
|
|
var modal = KretaWindowHelper.createWindow(windowName, config);
|
|
|
|
KretaWindowHelper.openWindow(modal, true);
|
|
}
|
|
|
|
oraSorszamozasHalmazHelper.openEditPopUp = function (rowData) {
|
|
if (rowData.ID) {
|
|
windowTitle = "@OraSorszamozasHalmazResource.OraSorszamozasHalmazModositasa";
|
|
} else {
|
|
windowTitle = "@OraSorszamozasHalmazResource.OraSorszamozasHalmazHozzaadasa";
|
|
}
|
|
|
|
AjaxHelper.DoPost(url.OpenEditPopUp, { id: rowData.ID }, popUpWindow);
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.editCancel = function () {
|
|
KretaWindowHelper.destroyAllWindow();
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.validate = function () {
|
|
var form = $("#" + osszerendelesFormName);
|
|
|
|
if (form.valid()) {
|
|
var data = form.toObject();
|
|
|
|
data.Osszerendelesek = KretaGridHelper.getAllRows(osszerendelesGridName);
|
|
|
|
var osszerendelesValaszto = KretaComboBoxHelper.getKendoComboBoxData(osszerendelesValasztoCB);
|
|
|
|
var osszerendeles = osszerendelesValaszto.value();
|
|
|
|
if (osszerendeles) {
|
|
var osszerendelesValasztoData = osszerendelesValaszto.dataSource.data();
|
|
|
|
var osztalyCsoportId = null;
|
|
var tantargyId = null;
|
|
|
|
for (var i = 0; i < osszerendelesValasztoData.length; i++) {
|
|
var currentItem = osszerendelesValasztoData[i];
|
|
|
|
if (currentItem.Text == osszerendeles) {
|
|
osztalyCsoportId = currentItem.OsztalyCsoportId;
|
|
tantargyId = currentItem.TantargyId;
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
data.Osszerendelesek = data.Osszerendelesek.map(val => {
|
|
if (val.OsztalyCsoportId == osztalyCsoportId && val.TantargyId == tantargyId) {
|
|
return {
|
|
...val,
|
|
Selected: true
|
|
};
|
|
}
|
|
|
|
return val;
|
|
});
|
|
}
|
|
|
|
AjaxHelper.DoValidationPost(url.Save, osszerendelesFormName, data, saveSuccess);
|
|
}
|
|
};
|
|
|
|
function addRowToGrid(data) {
|
|
if (data == "True") {
|
|
KretaWindowHelper.warningWindow(Globalization.Figyelem, "@OraSorszamozasHalmazResource.AzOsszerendelesMarRogzitesreKerult");
|
|
} else {
|
|
var osztalyCsoportElement = KretaComboBoxHelper.getKendoComboBoxData(osztalyCsoportValaszto);
|
|
|
|
var osztalyCsoportId = osztalyCsoportElement.value();
|
|
|
|
var osztalyCsoport = osztalyCsoportElement.text();
|
|
|
|
var tantargyElement = KretaComboBoxHelper.getKendoComboBoxData(tantargyValaszto);
|
|
|
|
var tantargyId = tantargyElement.value();
|
|
|
|
var tantargy = tantargyElement.text();
|
|
|
|
var newRow = {
|
|
ID: -1,
|
|
OsztalyCsoport: osztalyCsoport,
|
|
OsztalyCsoportId: osztalyCsoportId,
|
|
Tantargy: tantargy,
|
|
TantargyId: tantargyId,
|
|
};
|
|
|
|
var grid = KretaGridHelper.getKendoGridData(osszerendelesGridName);
|
|
|
|
grid.dataSource.add(newRow);
|
|
|
|
var text = `${osztalyCsoport} - ${tantargy}`;
|
|
|
|
var newItem = {
|
|
OsztalyCsoportId: osztalyCsoportId,
|
|
TantargyId: tantargyId,
|
|
Text: text,
|
|
};
|
|
|
|
var osszerendelesValaszto = KretaComboBoxHelper.getKendoComboBoxData(osszerendelesValasztoCB);
|
|
|
|
osszerendelesValaszto.dataSource.add(newItem);
|
|
}
|
|
}
|
|
|
|
oraSorszamozasHalmazHelper.addOsszerendelesToList = function () {
|
|
var osztalyCsoportId = KretaComboBoxHelper.getKendoValue(osztalyCsoportValaszto);
|
|
|
|
var tantargyId = KretaComboBoxHelper.getKendoValue(tantargyValaszto);
|
|
|
|
if (osztalyCsoportId && tantargyId) {
|
|
var gridData = KretaGridHelper.getAllRows(osszerendelesGridName);
|
|
|
|
if (!gridData.some(g => g.OsztalyCsoportId == osztalyCsoportId && g.TantargyId == tantargyId)) {
|
|
var halmazId = $("#ID", "#" + osszerendelesFormName).val();
|
|
|
|
AjaxHelper.DoPost(url.OsszerendelesExists, { osztalyCsoportId, tantargyId, halmazId, deletedOsszerendeslIds }, addRowToGrid);
|
|
}
|
|
}
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.deleteOsszerendeles = function (e) {
|
|
if (e.ID > 0) {
|
|
deletedOsszerendeslIds.push(e.ID);
|
|
}
|
|
|
|
var row = document.querySelector(`tr[data-uid="${e.uid}"]`);
|
|
|
|
KretaGridHelper.getKendoGridData(osszerendelesGridName).removeRow(row);
|
|
|
|
var osszerendelesValaszto = KretaComboBoxHelper.getKendoComboBoxData(osszerendelesValasztoCB);
|
|
|
|
var data = osszerendelesValaszto.dataSource.data();
|
|
|
|
for (var i = 0; i < data.length; i++) {
|
|
var currentItem = data[i];
|
|
|
|
if (currentItem.OsztalyCsoportId == e.OsztalyCsoportId && currentItem.TantargyId == e.TantargyId) {
|
|
|
|
osszerendelesValaszto.dataSource.remove(currentItem);
|
|
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.changeOsztalyCsoport = function (e) {
|
|
var osztalyCsoportId = e.sender.value();
|
|
|
|
var tantargyId = KretaComboBoxHelper.getKendoValue(tantargyValaszto);
|
|
|
|
var btnElement = $("#" + addOsszerendelesToList).data("kendoButton");
|
|
|
|
var enableBtn = osztalyCsoportId && tantargyId;
|
|
|
|
btnElement.enable(enableBtn);
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.changeTantargy = function (e) {
|
|
var tantargyId = e.sender.value();
|
|
|
|
var osztalyCsoportId = KretaComboBoxHelper.getKendoValue(osztalyCsoportValaszto);
|
|
|
|
var btnElement = $("#" + addOsszerendelesToList).data("kendoButton");
|
|
|
|
var enableBtn = osztalyCsoportId && tantargyId;
|
|
|
|
btnElement.enable(enableBtn);
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.changeTipus = function () {
|
|
var tipusId = $("[name='Tipus']:checked", "#" + osszerendelesFormName).val();
|
|
|
|
var kezdoErtek = KretaNumericHelper.getKendoNumericTextBoxData(kezdoertekNumeric);
|
|
|
|
var osszerendelesValaszto = KretaComboBoxHelper.getKendoComboBoxData(osszerendelesValasztoCB);
|
|
|
|
if (tipusId == "@((int)SorszamozasKezdoErtekenekBeallitasa.NincsKivalasztva)") {
|
|
kezdoErtek.value(null);
|
|
osszerendelesValaszto.value(null);
|
|
|
|
kezdoErtek.enable(false);
|
|
osszerendelesValaszto.enable(false);
|
|
}
|
|
|
|
if (tipusId == "@((int)SorszamozasKezdoErtekenekBeallitasa.SorszamozasKezdoErtekeKezzelMegadva)") {
|
|
kezdoErtek.enable(true);
|
|
osszerendelesValaszto.enable(true);
|
|
}
|
|
};
|
|
|
|
oraSorszamozasHalmazHelper.getDataForValaszto = function () {
|
|
var gridData = KretaGridHelper.getAllRows(osszerendelesGridName);
|
|
|
|
return gridData.map(val => {
|
|
var text = `${val.OsztalyCsoport} - ${val.Tantargy}`;
|
|
|
|
return {
|
|
ID: val.ID,
|
|
OsztalyCsoportId: val.OsztalyCsoportId,
|
|
TantargyId: val.TantargyId,
|
|
Text: text,
|
|
};
|
|
});
|
|
};
|
|
|
|
function addSorszamToEdit(data) {
|
|
if (data) {
|
|
$("#" + sorszamText).html(`@OraSorszamozasHalmazResource.AKovetkezoOrasorszamokTartoznakAzOsszerendeleshez: ${data}.`);
|
|
} else {
|
|
$("#" + sorszamText).html('');
|
|
}
|
|
}
|
|
|
|
oraSorszamozasHalmazHelper.changeValaszto = function () {
|
|
var osszerendelesValaszto = KretaComboBoxHelper.getKendoComboBoxData(osszerendelesValasztoCB);
|
|
|
|
var osszerendeles = osszerendelesValaszto.value();
|
|
|
|
if (osszerendeles) {
|
|
var osszerendelesValasztoData = osszerendelesValaszto.dataSource.data();
|
|
|
|
for (var i = 0; i < osszerendelesValasztoData.length; i++) {
|
|
var currentItem = osszerendelesValasztoData[i];
|
|
|
|
if (currentItem.Text == osszerendeles) {
|
|
var osztalyCsoportId = currentItem.OsztalyCsoportId;
|
|
var tantargyId = currentItem.TantargyId;
|
|
|
|
AjaxHelper.DoPost(url.GetEvesOraszamForTantargyAndOsztaly, { osztalyCsoportId, tantargyId }, addSorszamToEdit);
|
|
|
|
break;
|
|
|
|
}
|
|
}
|
|
} else {
|
|
addSorszamToEdit(null);
|
|
}
|
|
};
|
|
|
|
return oraSorszamozasHalmazHelper;
|
|
})();
|
|
</script>
|