Fontos kezelési javítások

This commit is contained in:
2025-06-04 12:25:04 +02:00
parent 6839fc0b78
commit ff9d6ae361
7 changed files with 66 additions and 9 deletions
+1 -2
View File
@@ -212,8 +212,7 @@ namespace WorkFlowCheck.BL.Services
var res = await _dbContext.Locations.Where(w => w.Id == LocationDTO.Id).FirstOrDefaultAsync(); var res = await _dbContext.Locations.Where(w => w.Id == LocationDTO.Id).FirstOrDefaultAsync();
if (res != null) if (res != null)
{ {
res = _mapper.Map<DL.Entities.Location>(LocationDTO); res.FullName = LocationDTO.FullName;
await _dbContext.SaveChangesAsync(); await _dbContext.SaveChangesAsync();
retVal = _mapper.Map<LocationDTO>(res); retVal = _mapper.Map<LocationDTO>(res);
@@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -9,7 +11,13 @@ namespace WorkFlowCheck.Common.DTO
public class EquipmentDTO public class EquipmentDTO
{ {
public int Id { get; set; } public int Id { get; set; }
[Required(ErrorMessage = "A megnevezést megadása kötelező.")]
[DisplayName("Megnevezés")]
public string ShortName { get; set; } = null!; public string ShortName { get; set; } = null!;
[Required(ErrorMessage = "Az azonosító megadása kötelező.")]
[DisplayName("Azonosító")]
public string EquipmentNumber { get; set; } = null!; public string EquipmentNumber { get; set; } = null!;
} }
} }
@@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -9,6 +11,9 @@ namespace WorkFlowCheck.Common.DTO
public class LocationDTO public class LocationDTO
{ {
public int Id { get; set; } public int Id { get; set; }
[Required(ErrorMessage = "A megnevezést megadása kötelező.")]
[DisplayName("Megnevezés")]
public string FullName { get; set; } = null!; public string FullName { get; set; } = null!;
} }
} }
@@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace WorkFlowCheck.Web.Helpers
{
[HtmlTargetElement("input", Attributes = "asp-for-datatype")]
public class AspForDataTypeTagHelper : TagHelper
{
[HtmlAttributeName("asp-for-datatype")]
public ModelExpression For { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (For == null) return;
var type = For.ModelExplorer.ModelType;
string dataType = GetDataTypeString(type);
output.Attributes.SetAttribute("data-type", dataType);
}
private string GetDataTypeString(Type type)
{
// Nullable<T> esetén nyerjük ki az alaptípust
if (Nullable.GetUnderlyingType(type) is Type underlyingType)
{
type = underlyingType;
}
if (type == typeof(string)) return "string";
if (type == typeof(int) || type == typeof(long) || type == typeof(float) ||
type == typeof(double) || type == typeof(decimal)) return "number";
if (type == typeof(bool)) return "bool";
if (type == typeof(DateTime)) return "date";
return "string"; // default fallback
}
}
}
@@ -79,7 +79,7 @@
$('#tbEquipmentsPage').on('click', '.delete-btn', function () $('#tbEquipmentsPage').on('click', '.delete-btn', function ()
{ {
const row = table.row($(this).closest('tr')).data(); const row = table.row($(this).closest('tr')).data();
deleteEntity(table, '/BaseStock/Equipments/EquipmentPage?handler=DeleteEquipment', row.id); deleteEntity(table, '/BaseStock/Equipments/EquipmentsPage?handler=DeleteEquipment', row.id);
}); });
</script> </script>
} }
@@ -17,14 +17,14 @@
<thead class="table-primary"> <thead class="table-primary">
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Full name</th> <th>@DisplayNameHelper.GetDisplayName(nameof(LocationDTO.FullName), typeof(LocationDTO))</th>
<th class="text-center">Action</th> <th class="text-center">Action</th>
</tr> </tr>
</thead> </thead>
<tfoot class="table-light"> <tfoot class="table-light">
<tr> <tr>
<th>ID</th> <th>ID</th>
<th>Full name</th> <th>@DisplayNameHelper.GetDisplayName(nameof(LocationDTO.FullName), typeof(LocationDTO))</th>
<th>Action</th> <th>Action</th>
</tr> </tr>
</tfoot> </tfoot>
+9 -4
View File
@@ -2,7 +2,11 @@
// for details on configuring this project to bundle and minify static web assets. // for details on configuring this project to bundle and minify static web assets.
// Write your JavaScript code. // Write your JavaScript code.
function parseValue(value) { function parseValue(value, type = "string") {
if (type === "string") {
return value;
}
if (value === "") return null; if (value === "") return null;
// Boolean // Boolean
@@ -23,17 +27,17 @@ function getFormAsNestedObject(formSelector) {
formArray.forEach(function (item) { formArray.forEach(function (item) {
var keys = item.name.split('.'); var keys = item.name.split('.');
var value = parseValue(item.value); var inputElement = document.querySelector(`[name="${item.name}"]`);
var type = inputElement?.dataset?.type || "string"; // ha nincs data-type, alap: string
var value = parseValue(item.value, type);
var current = result; var current = result;
for (var i = 0; i < keys.length; i++) { for (var i = 0; i < keys.length; i++) {
var key = keys[i]; var key = keys[i];
// Ha utolsó kulcs, értéket rendelünk hozzá
if (i === keys.length - 1) { if (i === keys.length - 1) {
current[key] = value; current[key] = value;
} else { } else {
// Ha a következő szint nincs meg, hozzuk létre
if (!current[key]) { if (!current[key]) {
current[key] = {}; current[key] = {};
} }
@@ -44,6 +48,7 @@ function getFormAsNestedObject(formSelector) {
return result; return result;
} }
function showConfirmModal(options) { function showConfirmModal(options) {
return new Promise(function (resolve) { return new Promise(function (resolve) {
// Alapértelmezett értékek // Alapértelmezett értékek