IsEnabled a CheckPoint-hoz

This commit is contained in:
2025-03-31 13:39:02 +02:00
parent 56f17681be
commit 7996f887ba
14 changed files with 1155 additions and 21 deletions
@@ -27,6 +27,11 @@
<input asp-for="CheckPoint.Code" class="form-control" />
<span asp-validation-for="CheckPoint.Code" class="text-danger"></span>
</div>
<div class="col-md-3">
<label asp-for="CheckPoint.IsEnabled"></label>
<input type="checkbox" asp-for="CheckPoint.IsEnabled" class="form-check-input" />
<span asp-validation-for="CheckPoint.IsEnabled" class="text-danger"></span>
</div>
<div class="mb-3">
<button type="button" id="saveCheckPoint" class="btn btn-primary">Mentés</button>
<button type="button" class="btn btn-secondary" onclick="history.back()">Mégsem</button>
@@ -15,7 +15,7 @@
<thead class="table-primary">
<tr>
<th>ID</th>
<th>Short Name</th>
<th>Enabled</th>
<th>Code</th>
<th class="text-center">Action</th>
</tr>
@@ -23,6 +23,7 @@
<tfoot class="table-light">
<tr>
<th>ID</th>
<th>Enabled</th>
<th>Short Name</th>
<th>Code</th>
<th>Action</th>
@@ -41,6 +42,22 @@
},
columns: [
{ data: "id" },
{
data: "isEnabled",
searchable: false,
sortable: false,
className: "text-center",
render: function ( data, type, row ) {
if (data === true) {
return '<input type="checkbox" class="form-check-input no-click" checked>';
}
if (data === false) {
return '<input type="checkbox" class="form-check-input no-click" >';
}
return data;
}
},
{ data: "shortName" },
{ data: "code" },
{ data: null, render: function (data, type, row) {
@@ -56,6 +56,7 @@
<li><hr class="dropdown-divider"></li> <!-- EZ AZ ELVÁLASZTÓ VONAL -->
<li><a class="dropdown-item" asp-area="" asp-page="/UserAndRole/UserRolePage">Felhasználók - szabályok</a></li>
<li><a class="dropdown-item" asp-area="" asp-page="/UserAndRole/RoleCheckListTemplateHeadersPage">Szabályok - Ellenőrzési sablonok</a></li>
<li><a class="dropdown-item" asp-area="" asp-page="/UserAndRole/RoleCheckPointsPage">Szabályok - Ellenőrzési pontok</a></li>
</ul>
</li>
<li class="nav-item">
@@ -151,7 +152,6 @@
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.5/dist/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation-unobtrusive@4.0.0/dist/jquery.validate.unobtrusive.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
@* <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script> *@
@await RenderSectionAsync("Scripts", required: false)
<partial name="_ValidationScriptsPartial" />
@@ -46,19 +46,19 @@
{ data: "roleDTO.roleName" },
{ data: "checkListTemplateHeaderDTO.description" },
{
data: "enabled",
searchable: false,
sortable: false,
className: "text-center",
render: function ( data, type, row ) {
if (data === true) {
return '<input type="checkbox" class="editor-active" disabled checked>';
}
if (data === false) {
return '<input type="checkbox" class="editor-active" disabled>';
}
return data;
data: "enabled",
searchable: false,
sortable: false,
className: "text-center",
render: function ( data, type, row ) {
if (data === true) {
return '<input type="checkbox" class="form-check-input no-click" checked>';
}
if (data === false) {
return '<input type="checkbox" class="form-check-input no-click">';
}
return data;
}
},
{ data: null, render: function (data, type, row) {
@@ -0,0 +1,119 @@
@page
@model WorkFlowCheck.Web.Pages.UserAndRole.RoleCheckPointEditPageModel
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery Antiforgery
@{
ViewData["Title"] = "Ellenőrzési pont";
var RoleCheckPointId = Model.RoleCheckPointDTO.Id;
var urlPost = Url.Page("./RoleCheckPointEditPage", "Save");
}
<h1>@ViewData["Title"]</h1>
<input type="hidden" id="RoleCheckPointEditPostUrl" value="@urlPost" />
<div class="card shadow p-4">
<form method="post" id="RoleCheckPointForm">
<meta name="csrf-token" content="@Antiforgery.GetAndStoreTokens(HttpContext).RequestToken" />
<input type="hidden" asp-for="RoleCheckPointDTO.Id" />
<div class="mb-3">
<div class="col-md-3">
<label asp-for="RoleCheckPointDTO.RoleId"></label>
<select asp-for="RoleCheckPointDTO.RoleId" class="form-control" asp-items="Model.Roles"></select>
<span asp-validation-for="RoleCheckPointDTO.RoleId" class="text-danger"></span>
</div>
<div class="col-md-3">
<label asp-for="RoleCheckPointDTO.CheckPointId"></label>
<select asp-for="RoleCheckPointDTO.CheckPointId" class="form-control" asp-items="Model.RoleCheckPoints"></select>
<span asp-validation-for="RoleCheckPointDTO.CheckPointId" class="text-danger"></span>
</div>
<div class="col-md-3">
<label asp-for="RoleCheckPointDTO.Enabled"></label>
<input type="checkbox" asp-for="RoleCheckPointDTO.Enabled" class="form-check-input" />
<span asp-validation-for="RoleCheckPointDTO.Enabled" class="text-danger"></span>
</div>
</div>
<div class="mb-3 d-flex justify-content-between">
<button type="button" id="saveRoleCheckPoint" class="btn btn-primary">Mentés</button>
<button type="button" class="btn btn-secondary" onclick="history.back()">Mégsem</button>
</div>
</form>
</div>
@section Scripts {
<script>
$("#saveRoleCheckPoint").click(function () {
const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
var formData = getFormAsNestedObject('#RoleCheckPointForm');
const $form = $('#RoleCheckPointForm');
formData.RoleCheckPointDTO.Enabled = $('#RoleCheckPointForm input[name="RoleCheckPointDTO.Enabled"]').is(':checked');
// console.log(formData);
console.log(formData.RoleCheckPointDTO);
if ($form.valid())
{
$.ajax({
url: $('#RoleCheckPointEditPostUrl').val(),
type: 'POST',
headers: {
'X-CSRF-TOKEN': csrfToken,
'Content-Type': 'application/json'
},
data: JSON.stringify(formData.RoleCheckPointDTO),
success: function (response) {
// console.log(response);
if (response.success)
{
showMessageModal({
title: 'Figyelmem!',
message: 'Sikeres mentés.',
okText: 'Értettem'
});
}
else
{
showMessageModal({
title: 'Figyelmem, HIBA!',
message: 'Sikertelen mentés.',
okText: 'Értettem'
});
}
},
error: function (xhr, status, error) {
// Hiba esetén
console.error("Hiba: ", error);
showMessageModal({
title: 'Hiba!',
message: 'A mentés NEM sikerült!',
okText: 'Értettem'
});
}
});
} else
{
$form[0].reportValidity();
}
});
$(document).ready(function () {
const $form = $("#RoleCheckPointForm");
$form.validate({
errorClass: "text-danger small",
errorPlacement: function (error, element) {
error.appendTo(element.parent());
}
});
// $form.on("submit", function (e) {
// if (!$form.valid()) {
// e.preventDefault(); // Ne küldje be, ha van hiba
// }
// });
});
</script>
}
@@ -0,0 +1,75 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Serilog;
using WorkFlowCheck.Common.DTO;
using WorkFlowCheck.Web.Services;
using WorkFlowCheck.Web.Services.Interfaces;
namespace WorkFlowCheck.Web.Pages.UserAndRole
{
public class RoleCheckPointEditPageModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
private readonly IUserService _userService;
private readonly IBaseStockService _baseStockService;
[BindProperty]
public RoleCheckPointDTO RoleCheckPointDTO { get; set; } = new();
[BindProperty]
public List<SelectListItem> Roles { get; set; }
[BindProperty]
public List<SelectListItem> RoleCheckPoints { get; set; }
public RoleCheckPointEditPageModel(ILogger<IndexModel> logger, IUserService userService, IBaseStockService baseStockService)
{
_logger = logger;
_userService = userService;
_baseStockService = baseStockService;
}
public async Task OnGet(int id)
{
await InitSelectItems();
RoleCheckPointDTO = await _userService.GetRoleCheckPoint(id);
}
public async Task<IActionResult> OnPostSave([FromBody] RoleCheckPointDTO roleCheckPointDTO)
{
try
{
var result = await _userService.UpdateRoleCheckPoint(roleCheckPointDTO);
if (result.IsSuccess)
{
return new JsonResult(new { success = true });
}
else
{
return new JsonResult(new { success = false });
}
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
return new JsonResult(new { success = false });
}
private async Task InitSelectItems()
{
var roles = await _userService.GetAllRoles();
this.Roles = new List<SelectListItem>();
foreach (var role in roles)
{
this.Roles.Add(new SelectListItem() { Value = role.Id.ToString(), Text = role.RoleName });
}
var CheckPoints = await _baseStockService.GetAllCheckPoints();
this.RoleCheckPoints = new List<SelectListItem>();
foreach (var CheckPoint in CheckPoints)
{
this.RoleCheckPoints.Add(new SelectListItem() { Value = CheckPoint.Id.ToString(), Text = CheckPoint.ShortName });
}
}
}
}
@@ -18,7 +18,7 @@ namespace WorkFlowCheck.Web.Pages.UserAndRole
}
public async Task<JsonResult> OnGetLoadRoleCheckPoints()
{
var results = await _userService.GetAllRoleCheckListTemplates();
var results = await _userService.GetAllRoleCheckPoints();
return new JsonResult(new { data = results });
}
}