This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,39 @@
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Areas.OsztalyCsoport.Models
@using Kreta.Web.Helpers.Grid
@model int
@{
const string OraSorszamozasHalmazApiController = Constants.ApiControllers.OraSorszamozasHalmazApi;
string gridName = "OraSorszamozasHalmazOsszerendelesGrid" + Model.ToString();
}
<div>
@(
Html.KretaGrid<OraSorszamozasHalmazOsszerendelesGridModel>(
gridName,
getUrl: new GridApiUrl(OraSorszamozasHalmazApiController, "GetOsszerendelesGrid",
new Dictionary<string, string>
{
{ "halmazId", Model.ToString() }
})
)
.Columns(columns =>
{
columns.Bound(c => c.DetailOsztalyCsoport).Width("50%");
columns.Bound(c => c.DetailTantargy).Width("50%");
})
.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
.RowFunction(Html, new List<RowFunction>
{
new RowFunction
{
Name = CommonResource.Torles,
ClientAction = "OraSorszamozasHalmazHelper.deleteOsszerendelesConfirm",
IconEnum = GridRowFunctionIconEnum.Torles,
},
})
)
</div>

View file

@ -0,0 +1,124 @@
@using Kreta.Enums.ManualEnums
@using Kreta.Resources
@using Kreta.Web.Areas.OsztalyCsoport.Models
@using Kreta.Web.Helpers.Grid
@model OraSorszamozasHalmazModel
@{
const string formName = "OraSorszamozasHalmazForm";
const string gridName = "OsszerendelesekGrid";
const string osztalyCsoportValaszto = "OsztalyCsoportValaszto";
const string tantargyValaszto = "TantargyValaszto";
const string addOsszerendelesToList = "AddOsszerendelesToList";
const string osszerendelesValaszto = "OsszerendelesValaszto";
const string sorszamText = "SorszamText";
}
<div class="container-fluid orasorszamModal">
@using (Html.KretaForm(formName))
{
@Html.HiddenFor(x => x.ID)
@Html.KretaValidationSummary()
<div class="row">
@Html.KretaTextBoxFor(x => x.Nev).RenderWithName(2, 6)
@Html.KretaCheckBoxFor(x => x.KozosOraSorszamozasElteroTanarnal).RenderWithName(3, 1)
</div>
<div class="row equal">
<fieldset class="col-xs-4">
<legend>@OraSorszamozasHalmazResource.UjOsszerendeles</legend>
@Html.KretaComboBox(osztalyCsoportValaszto, Url.HttpRouteUrl(Constants.RouteKey.ActionApi,
new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetOsztalyCsoportListByEvfolyam" }), useGroup: true, onChangeFunction: "OraSorszamozasHalmazHelper.changeOsztalyCsoport(e)").RenderWithName(OraSorszamozasHalmazResource.OsztalyCsoport, 4, 8)
@Html.KretaComboBox(tantargyValaszto, Url.HttpRouteUrl(Constants.RouteKey.ActionApi,
new { controller = Constants.ApiControllers.ComboBoxHelperApi, action = "GetTantargy" }), onChangeFunction: "OraSorszamozasHalmazHelper.changeTantargy(e)").RenderWithName(OraSorszamozasHalmazResource.Tantargy, 4, 8)
@Html.KretaButton(addOsszerendelesToList, OraSorszamozasHalmazResource.OsszerendelesHozzaadasa, enabled: false, clickEventName: "OraSorszamozasHalmazHelper.addOsszerendelesToList")
</fieldset>
<fieldset class="col-xs-4">
<legend>@OraSorszamozasHalmazResource.JelenlegiOsztalyCsoportTantargyOsszerendelesek</legend>
@(
Html.KretaGrid<OraSorszamozasHalmazOsszerendelesModel>(
dataSource: Model.Osszerendelesek,
name: gridName
)
.Columns(columns =>
{
columns.Bound(c => c.OsztalyCsoportId).SetDisplayProperty("OsztalyCsoport").Width("50%");
columns.Bound(c => c.TantargyId).SetDisplayProperty("Tantargy").Width("50%");
})
.RowFunction(Html, new List<RowFunction>
{
new RowFunction
{
Name = CommonResource.Torles,
ClientAction = "OraSorszamozasHalmazHelper.deleteOsszerendeles",
IconEnum = GridRowFunctionIconEnum.Torles,
},
})
)
</fieldset>
<fieldset class="col-xs-4">
<legend>@OraSorszamozasHalmazResource.SorszamozasKezdoErtekenekBeallitasa</legend>
<div class="row">
<div class="col-xs-6">
@Html.KretaRadioButtonListFor(x => x.Tipus, Model.TipusList, onChangeFunction: "OraSorszamozasHalmazHelper.changeTipus()")
</div>
<div class="col-xs-6">
<ul class="noUlLiButton k-widget" style="border-style: none">
<li style="height: 50px;"></li>
<li>@Html.KretaNumericFor(x => x.Kezdoertek, new Dictionary<string, object> { { "style", "width: 100%;" } }).Min(1).Max(1000)</li>
</ul>
</div>
<div class="col-xs-12">
<input id="@osszerendelesValaszto" data-value-primitive="True" style="width: 100%;"/>
<span id="@sorszamText" />
</div>
</div>
</fieldset>
</div>
}
</div>
<script type="text/javascript">
$(document).ready(function () {
var element = $("#@osszerendelesValaszto");
element.kendoComboBox({
dataTextField: "Text",
dataValueField: "Text",
dataSource: OraSorszamozasHalmazHelper.getDataForValaszto(),
filter: "contains",
autoWidth: true,
change: OraSorszamozasHalmazHelper.changeValaszto,
});
element.ready(function () {
OraSorszamozasHalmazHelper.changeTipus();
KretaComboBoxHelper.getKendoComboBoxData("@osszerendelesValaszto").select(function (item) {
return item.ID == "@Model.OraSorszamozasHalmazOsszerendelesId";
});
});
});
</script>
<style>
fieldset {
border-left: 1px solid #aab7c4;
}
legend {
font-size: 13px;
font-weight: 600;
color: #5c6a79;
}
.equal {
display: flex;
flex-wrap: wrap;
}
.orasorszamModal .row:nth-of-type(2n) {
background-color: #eceff2;
}
</style>

View file

@ -0,0 +1,389 @@
@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>