diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor b/Wonky.Client/Pages/AdvisorReportCreatePage.razor
index e135aeda..cdff4469 100644
--- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor
+++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor
@@ -76,7 +76,7 @@
}
else
{
- Report.Figures.KmMorning = Profiles.KmMorning;
+ Report.Figures.KmMorning = Preference.KmMorning;
diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
index 04c7e915..fc36d13a 100644
--- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
+++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
@@ -34,7 +34,6 @@ public partial class AdvisorReportCreatePage : IDisposable
// ##########################################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
- [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILogger Logger { get; set; }
@@ -47,7 +46,7 @@ public partial class AdvisorReportCreatePage : IDisposable
private ReportDto Report { get; set; } = new();
private List Activities { get; set; } = new();
private ReportFiguresDto InitialValues { get; set; } = new();
- private UserPreference Profiles { get; set; } = new();
+ private UserPreference Preference { get; set; } = new();
private bool FormInvalid { get; set; } = true;
private bool NoFigures { get; set; } = true;
private bool Working { get; set; }
@@ -75,14 +74,16 @@ public partial class AdvisorReportCreatePage : IDisposable
IsSupervisor = await UserInfo.IsSupervisor();
ReportContext = new EditContext(Report);
+
ReportContext.OnFieldChanged += HandleFieldChanged;
ReportContext.OnValidationStateChanged += ValidationChanged;
PreferenceService.OnChange += ProfileServiceOnOnChange;
- Profiles = await PreferenceService.GetProfile();
- Logger.LogDebug("{}", JsonSerializer.Serialize(Profiles));
- WorkDate = Profiles.WorkDate;
+ Preference = await PreferenceService.GetProfile();
+ Logger.LogDebug("{}", JsonSerializer.Serialize(Preference));
+
+ WorkDate = Preference.WorkDate;
if (string.IsNullOrWhiteSpace(WorkDate))
{
ThisWorkDate = DateTime.Now;
@@ -93,9 +94,11 @@ public partial class AdvisorReportCreatePage : IDisposable
{
ThisWorkDate = DateTime.Parse(WorkDate);
}
-
- if(await AdvisorReportRepo.ReportExist(WorkDate))
- Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
+
+ if (await AdvisorReportRepo.ReportExist(WorkDate))
+ {
+ Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
+ }
BeginLeave = ThisWorkDate;
EndLeave = ThisWorkDate;
@@ -115,8 +118,8 @@ public partial class AdvisorReportCreatePage : IDisposable
private void ProfileServiceOnOnChange(UserPreference userPreference)
{
- Profiles = userPreference;
- WorkDate = Profiles.WorkDate;
+ Preference = userPreference;
+ WorkDate = Preference.WorkDate;
StateHasChanged();
}
@@ -148,7 +151,7 @@ public partial class AdvisorReportCreatePage : IDisposable
}
else
{
- Report.Figures.KmMorning = Profiles.KmMorning;
+ Report.Figures.KmMorning = Preference.KmMorning;
}
NoFigures = false;
@@ -262,8 +265,9 @@ public partial class AdvisorReportCreatePage : IDisposable
// pop confirmation
// create a prompt for popup confirmation
- var warning = Report.Figures.KmEvening - Report.Figures.KmMorning > 1000 ?
- $"Kørte km for rapporten er '{Report.Figures.KmEvening - Report.Figures.KmMorning}'. Er du sikker på at det er rigtigt? " : "";
+ var warning = Report.Figures.KmEvening - Report.Figures.KmMorning > 1000
+ ? $"Kørte km for rapporten er '{Report.Figures.KmEvening - Report.Figures.KmMorning}'. Er du sikker på at det er rigtigt? "
+ : "";
Prompt = $"{warning} Gem rapport for {ThisWorkDate.ToLongDateString()}?";
diff --git a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor b/Wonky.Client/Pages/ManagerEvaluationNewPage.razor
index 81052d3d..47a5c060 100644
--- a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor
+++ b/Wonky.Client/Pages/ManagerEvaluationNewPage.razor
@@ -21,18 +21,43 @@
Ny evaluering
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs b/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs
index fb1ea0fd..f38f9e63 100644
--- a/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs
+++ b/Wonky.Client/Pages/ManagerEvaluationNewPage.razor.cs
@@ -14,11 +14,13 @@
//
using System.Text.Json;
+using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Client.Local.Services;
+using Wonky.Entity.DTO;
using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
@@ -32,6 +34,8 @@ public partial class ManagerEvaluationNewPage : IDisposable
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IUserInfoService UserService { get; set; }
[Inject] public ILogger Logger { get; set; }
+ [Inject] public IToastService Toaster { get; set; }
+ [Inject] public NavigationManager Navigator { get; set; }
// ############################################################
@@ -39,16 +43,23 @@ public partial class ManagerEvaluationNewPage : IDisposable
// ############################################################
- private EditContext EvaluationContext { get; set; }
+ private EditContext FormContext { get; set; }
private MemberView Member { get; set; } = new();
private ManagerView Manager { get; set; } = new();
-
+ private EvaluationEditView Document { get; set; } = new();
+ private DateTime DocumentDate { get; set; } = DateTime.Now;
+ private bool FormInvalid { get; set; } = true;
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
+ FormContext = new EditContext(Document);
+
+ FormContext.OnFieldChanged += HandleFieldChanged!;
+ FormContext.OnValidationStateChanged += ValidationChanged!;
+
Member = await MemberSupportRepo.GetMemberByUserId(UserId);
Logger.LogDebug("Member => {}", JsonSerializer.Serialize(Member));
@@ -60,11 +71,61 @@ public partial class ManagerEvaluationNewPage : IDisposable
Manager = await MemberSupportRepo.GetManagerByUserId(managerId);
Logger.LogDebug("Manager => {}", JsonSerializer.Serialize(Manager));
+
+ Document.EvaluationDate = $"{DocumentDate:yyyy-MM-dd}";
+ Document.ManagerId = Manager.ManagerId;
+ Document.ManagerName = Manager.FullName;
+ Document.MemberId = Member.MemberId;
+ Document.MemberName = Member.FullName;
}
+ private async Task SubmitDocument()
+ {
+ Toaster.ShowInfo("Gemmer Evaluering");
+ var x = await MemberSupportRepo.CreateEvaluation(Document);
+ if (string.IsNullOrWhiteSpace(x.EvaluationId))
+ {
+ Toaster.ShowError("Fejl");
+ }
+ else
+ {
+ Toaster.ShowSuccess("Ok");
+ Navigator.NavigateTo($"/supervisor/members/{UserId}/evaluations/{x.EvaluationId}");
+ }
+ }
+
+ private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
+ {
+ Document.EvaluationDate = $"{DocumentDate:yyyy-MM-dd}";
+
+ FormInvalid = !FormContext.Validate();
+
+ StateHasChanged();
+ }
+
+ ///
+ /// Validation change event
+ ///
+ ///
+ ///
+ private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
+ {
+ FormInvalid = false;
+ FormContext.OnFieldChanged -= HandleFieldChanged!;
+ FormContext.OnValidationStateChanged -= ValidationChanged!;
+ FormContext = new EditContext(Document);
+ FormContext.OnFieldChanged += HandleFieldChanged!;
+ FormContext.OnValidationStateChanged += ValidationChanged!;
+ }
+
+
+
public void Dispose()
{
Interceptor.DisposeEvent();
+ FormContext.OnFieldChanged -= HandleFieldChanged!;
+ FormContext.OnValidationStateChanged -= ValidationChanged!;
+
}
}
\ No newline at end of file
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index 1bf3ef75..e299c066 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -1,7 +1,7 @@
{
"appInfo": {
"name": "Wonky Online",
- "version": "0.137.0",
+ "version": "0.138.0",
"rc": true,
"sandBox": false,
"image": "grumpy-coder.png"
@@ -9,7 +9,7 @@
"Logging": {
"LogLevel": {
"Default": "Debug",
- "System": "Information",
+ "System": "Debug",
"Microsoft": "Information"
},
"Debug": {
diff --git a/Wonky.Entity/DTO/EvaluationEditView.cs b/Wonky.Entity/DTO/EvaluationEditView.cs
index 7150ff62..c4cff40a 100644
--- a/Wonky.Entity/DTO/EvaluationEditView.cs
+++ b/Wonky.Entity/DTO/EvaluationEditView.cs
@@ -1,20 +1,25 @@
+using System.ComponentModel.DataAnnotations;
+
namespace Wonky.Entity.DTO;
public class EvaluationEditView
{
+ [Required(ErrorMessage = "Indhold mangler")]
public string Content { get; set; } = "";
-
+
+ [Required(ErrorMessage = "Beskrivelse mangler")]
+ [MaxLength(128, ErrorMessage = "Der er kun afsat 128 tegn.")]
public string Description { get; set; } = "";
-
+
public string EvaluationDate { get; set; } = "";
public string EvaluationId { get; set; } = "";
-
+
public string ManagerId { get; set; } = "";
public string ManagerName { get; set; } = "";
-
+
public string MemberId { get; set; } = "";
public string MemberName { get; set; } = "";
-}
+}
\ No newline at end of file
|