WIP: evaluation and management
This commit is contained in:
parent
a906c9966f
commit
8f5178ae6d
38 changed files with 311 additions and 235 deletions
|
@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Components;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using Wonky.Entity.Configuration;
|
using Wonky.Entity.Configuration;
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.HttpRepository;
|
namespace Wonky.Client.HttpRepository;
|
||||||
|
|
||||||
|
@ -29,38 +30,60 @@ public class EvaluationRepository : IEvaluationRepository
|
||||||
_api = configuration.Value;
|
_api = configuration.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<ManagerView> GetManagerByUserId(string userId)
|
||||||
|
{
|
||||||
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<ManagerView>($"{_api.MemberEvaluation}", _options);
|
||||||
|
|
||||||
|
return result ?? new ManagerView();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<MemberView> GetMemberByUserId(string userId)
|
||||||
|
{
|
||||||
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<MemberView>($"{_api.MemberEvaluation}", _options);
|
||||||
|
|
||||||
|
return result ?? new MemberView();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<List<EvaluationEditView>> GetByManager(string managerId)
|
public async Task<List<EvaluationEditView>> GetByManager(string managerId)
|
||||||
{
|
{
|
||||||
var result = await _client
|
var result = await _client
|
||||||
.GetFromJsonAsync<List<EvaluationEditView>>(
|
.GetFromJsonAsync<List<EvaluationEditView>>(
|
||||||
$"{_api.UserEvaluations}/manager/{managerId}", _options);
|
$"{_api.MemberEvaluation}/manager/{managerId}", _options);
|
||||||
|
|
||||||
return result ?? new List<EvaluationEditView>();
|
return result ?? new List<EvaluationEditView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<List<EvaluationEditView>> GetByMember(string memberId)
|
public async Task<List<EvaluationEditView>> GetByMember(string memberId)
|
||||||
{
|
{
|
||||||
var result = await _client
|
var result = await _client
|
||||||
.GetFromJsonAsync<List<EvaluationEditView>>(
|
.GetFromJsonAsync<List<EvaluationEditView>>(
|
||||||
$"{_api.UserEvaluations}/member/{memberId}", _options);
|
$"{_api.MemberEvaluation}/member/{memberId}", _options);
|
||||||
|
|
||||||
return result ?? new List<EvaluationEditView>();
|
return result ?? new List<EvaluationEditView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<EvaluationEditView> GetById(string evaluationId)
|
public async Task<EvaluationEditView> GetById(string evaluationId)
|
||||||
{
|
{
|
||||||
var result = await _client
|
var result = await _client
|
||||||
.GetFromJsonAsync<EvaluationEditView>(
|
.GetFromJsonAsync<EvaluationEditView>(
|
||||||
$"{_api.UserEvaluations}/id/{evaluationId}", _options);
|
$"{_api.MemberEvaluation}/id/{evaluationId}", _options);
|
||||||
|
|
||||||
return result ?? new EvaluationEditView();
|
return result ?? new EvaluationEditView();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluation)
|
|
||||||
|
public async Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluationEditView)
|
||||||
{
|
{
|
||||||
var result = await _client
|
var result = await _client
|
||||||
.PostAsJsonAsync($"{_api.UserEvaluations}", evaluation, _options);
|
.PostAsJsonAsync($"{_api.MemberEvaluation}", evaluationEditView, _options);
|
||||||
|
|
||||||
if (!result.IsSuccessStatusCode)
|
if (!result.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
|
@ -75,10 +98,11 @@ public class EvaluationRepository : IEvaluationRepository
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluation)
|
|
||||||
|
public async Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView)
|
||||||
{
|
{
|
||||||
var result = await _client
|
var result = await _client
|
||||||
.PutAsJsonAsync($"{_api.UserEvaluations}/{evaluationId}", evaluation, _options);
|
.PutAsJsonAsync($"{_api.MemberEvaluation}/{evaluationId}", evaluationEditView, _options);
|
||||||
|
|
||||||
if (!result.IsSuccessStatusCode)
|
if (!result.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
|
@ -92,8 +116,9 @@ public class EvaluationRepository : IEvaluationRepository
|
||||||
: JsonSerializer.Deserialize<EvaluationEditView>(content, _options))!;
|
: JsonSerializer.Deserialize<EvaluationEditView>(content, _options))!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task DeleteEvaluation(string evaluationId)
|
public async Task DeleteEvaluation(string evaluationId)
|
||||||
{
|
{
|
||||||
await _client.DeleteAsync($"{_api.UserEvaluations}/{evaluationId}");
|
await _client.DeleteAsync($"{_api.MemberEvaluation}/{evaluationId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,13 +1,16 @@
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.HttpRepository;
|
namespace Wonky.Client.HttpRepository;
|
||||||
|
|
||||||
public interface IEvaluationRepository
|
public interface IEvaluationRepository
|
||||||
{
|
{
|
||||||
|
Task<ManagerView> GetManagerByUserId(string userId);
|
||||||
|
Task<MemberView> GetMemberByUserId(string userId);
|
||||||
Task<List<EvaluationEditView>> GetByManager(string managerId);
|
Task<List<EvaluationEditView>> GetByManager(string managerId);
|
||||||
Task<List<EvaluationEditView>> GetByMember(string memberId);
|
Task<List<EvaluationEditView>> GetByMember(string memberId);
|
||||||
Task<EvaluationEditView> GetById(string evaluationId);
|
Task<EvaluationEditView> GetById(string evaluationId);
|
||||||
Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluation);
|
Task<EvaluationEditView> CreateEvaluation(EvaluationEditView evaluationEditView);
|
||||||
Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluation);
|
Task<EvaluationEditView> UpdateEvaluation(string evaluationId, EvaluationEditView evaluationEditView);
|
||||||
Task DeleteEvaluation(string evaluationId);
|
Task DeleteEvaluation(string evaluationId);
|
||||||
}
|
}
|
|
@ -43,41 +43,40 @@ public class OfficeUserInfoRepository : IOfficeUserInfoRepository
|
||||||
_api = configuration.Value;
|
_api = configuration.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get Users
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<List<UserInfoListView>> GetUsers()
|
public async Task<List<UserInfoListView>> GetUsers()
|
||||||
{
|
{
|
||||||
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserData}/list");
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserInfoClient}/list", _options);
|
||||||
|
|
||||||
|
return result ?? new List<UserInfoListView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get Users in role
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<List<UserInfoListView>> GetUsers(string role)
|
public async Task<List<UserInfoListView>> GetUsers(string role)
|
||||||
{
|
{
|
||||||
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserData}/role/{role}");
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserInfoClient}/role/{role}", _options);
|
||||||
|
|
||||||
|
return result ?? new List<UserInfoListView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get users for logged in supervisor
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<List<UserInfoListView>> GetSupervisorUsers()
|
public async Task<List<UserInfoListView>> GetSupervisorUsers()
|
||||||
{
|
{
|
||||||
return await _client.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserData}/supervisor");
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<List<UserInfoListView>>($"{_api.UserInfoClient}/supervisor", _options);
|
||||||
|
|
||||||
|
return result ?? new List<UserInfoListView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Get Advisor Info for given userId
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="userId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<UserInfoAdvisorView> GetUserInfo(string userId)
|
public async Task<UserInfoAdvisorView> GetUserInfo(string userId)
|
||||||
{
|
{
|
||||||
return await _client.GetFromJsonAsync<UserInfoAdvisorView>($"{_api.UserData}/{userId}");
|
var result = await _client
|
||||||
|
.GetFromJsonAsync<UserInfoAdvisorView>($"{_api.UserInfoClient}/{userId}", _options);
|
||||||
|
|
||||||
|
return result ?? new UserInfoAdvisorView();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -135,7 +135,7 @@ public class AuthenticationService : IAuthenticationService
|
||||||
|
|
||||||
public async Task<UserManagerEditView> UserInfo(bool write = false)
|
public async Task<UserManagerEditView> UserInfo(bool write = false)
|
||||||
{
|
{
|
||||||
var response = await _client.GetAsync(_apiConfig.Value.UserInfo).ConfigureAwait(true);
|
var response = await _client.GetAsync(_apiConfig.Value.UserInfoAuth).ConfigureAwait(true);
|
||||||
var content = await response.Content.ReadAsStringAsync();
|
var content = await response.Content.ReadAsStringAsync();
|
||||||
var userInfo = JsonSerializer.Deserialize<UserManagerEditView>(content, _options);
|
var userInfo = JsonSerializer.Deserialize<UserManagerEditView>(content, _options);
|
||||||
if(write)
|
if(write)
|
||||||
|
|
|
@ -20,6 +20,7 @@ namespace Wonky.Client.Local.Services;
|
||||||
|
|
||||||
public interface IUserInfoService
|
public interface IUserInfoService
|
||||||
{
|
{
|
||||||
|
Task<string> GetUserId();
|
||||||
Task<UserManagerEditView> GetUserInfo();
|
Task<UserManagerEditView> GetUserInfo();
|
||||||
Task SetUserInfo(UserManagerEditView userInfo);
|
Task SetUserInfo(UserManagerEditView userInfo);
|
||||||
Task<bool> IsSupervisor();
|
Task<bool> IsSupervisor();
|
||||||
|
|
|
@ -38,6 +38,11 @@ public class UserInfoService : IUserInfoService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<string> GetUserId()
|
||||||
|
{
|
||||||
|
var x = await GetUserInfo();
|
||||||
|
return x.UserId;
|
||||||
|
}
|
||||||
public async Task<bool> IsSupervisor()
|
public async Task<bool> IsSupervisor()
|
||||||
{
|
{
|
||||||
var x = await GetUserInfo();
|
var x = await GetUserInfo();
|
||||||
|
|
|
@ -14,12 +14,35 @@
|
||||||
*@
|
*@
|
||||||
|
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
|
|
||||||
@page "/ManagerEvaluationListPage"
|
@page "/management/members/{UserId}/evaluations"
|
||||||
<h3>ManagerEvaluationListPage</h3>
|
|
||||||
|
|
||||||
@code {
|
<PageTitle>Evalueringer</PageTitle>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h3>Evalueringer</h3>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="text-end">
|
||||||
|
<a class="btn btn-primary" href="/management/members/@UserId/evaluations/new"><i class="bi-plus-circle-fill"></i> Opret Evaluering</a>
|
||||||
|
@*
|
||||||
|
<div class="busy-signal" style="display:@(_working ? "block" : "none")">
|
||||||
|
<div class="spinner-grow text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
*@
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if (Evaluations.Any())
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<div>Ingen data</div>
|
||||||
|
}
|
||||||
|
|
|
@ -13,16 +13,60 @@
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
//
|
//
|
||||||
|
|
||||||
|
using System.Text.Json;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Wonky.Client.HttpInterceptors;
|
using Wonky.Client.HttpInterceptors;
|
||||||
using Wonky.Client.HttpRepository;
|
using Wonky.Client.HttpRepository;
|
||||||
|
using Wonky.Entity.DTO;
|
||||||
using Wonky.Entity.Views;
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|
||||||
public partial class ManagerEvaluationListPage
|
public partial class ManagerEvaluationListPage : IDisposable
|
||||||
|
{
|
||||||
|
// #########################################################
|
||||||
|
[Inject] public IEvaluationRepository EvaluationRepo { get; set; }
|
||||||
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
|
[Inject] public ILogger<ManagerEvaluationListPage> Logger { get; set; }
|
||||||
|
|
||||||
|
// #########################################################
|
||||||
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
|
|
||||||
|
// #########################################################
|
||||||
|
private List<EvaluationEditView> Evaluations { get; set; } = new();
|
||||||
|
private MemberView Member { get; set; } = new();
|
||||||
|
private bool _working = true;
|
||||||
|
|
||||||
|
protected override async Task OnParametersSetAsync()
|
||||||
|
{
|
||||||
|
Interceptor.RegisterEvent();
|
||||||
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
|
Member = await EvaluationRepo.GetMemberByUserId(UserId);
|
||||||
|
while (string.IsNullOrWhiteSpace(Member.MemberId))
|
||||||
|
{
|
||||||
|
await Task.Delay(250);
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.LogDebug("Member => {}",JsonSerializer.Serialize(Member));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Evaluations = await EvaluationRepo.GetByMember(Member.MemberId);
|
||||||
|
|
||||||
|
Logger.LogDebug("{}",JsonSerializer.Serialize(Evaluations));
|
||||||
|
|
||||||
|
_working = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Interceptor.DisposeEvent();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -17,9 +17,22 @@
|
||||||
|
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
|
|
||||||
@page "/ManagerEvaluationNewPage"
|
@page "/management/members/{UserId}/evaluations/new"
|
||||||
<h3>ManagerEvaluationNewPage</h3>
|
|
||||||
|
|
||||||
@code {
|
<PageTitle>Ny evaluering</PageTitle>
|
||||||
|
|
||||||
}
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<div class="card-title">
|
||||||
|
<h3>Ny Evaluering</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<EditForm EditContext="EvaluationContext">
|
||||||
|
<DataAnnotationsValidator/>
|
||||||
|
</EditForm>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -14,15 +14,48 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Microsoft.AspNetCore.Components.Forms;
|
||||||
using Wonky.Client.HttpInterceptors;
|
using Wonky.Client.HttpInterceptors;
|
||||||
using Wonky.Client.HttpRepository;
|
using Wonky.Client.HttpRepository;
|
||||||
|
using Wonky.Client.Local.Services;
|
||||||
using Wonky.Entity.Views;
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|
||||||
public partial class ManagerEvaluationNewPage
|
public partial class ManagerEvaluationNewPage : IDisposable
|
||||||
{
|
{
|
||||||
|
// ############################################################
|
||||||
|
[Inject] public IEvaluationRepository EvaluationRepo { get; set; }
|
||||||
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
|
[Inject] public IUserInfoService UserService { get; set; }
|
||||||
|
|
||||||
|
// ############################################################
|
||||||
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
|
|
||||||
|
|
||||||
|
// ############################################################
|
||||||
|
private EditContext EvaluationContext { get; set; }
|
||||||
|
private MemberView Member { get; set; } = new();
|
||||||
|
private ManagerView Manager { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
Interceptor.RegisterEvent();
|
||||||
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
|
Member = await EvaluationRepo.GetMemberByUserId(UserId);
|
||||||
|
var managerId = await UserService.GetUserId();
|
||||||
|
|
||||||
|
Manager = await EvaluationRepo.GetManagerByUserId(managerId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Interceptor.DisposeEvent();
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,8 +17,19 @@
|
||||||
|
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
|
|
||||||
<h3>ManagerEvaluationViewEditPage</h3>
|
@page "/management/members/{UserId}/evaluations/{EvaluationId}"
|
||||||
|
|
||||||
@code {
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
}
|
<h3>Evalueringer</h3>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="text-end">
|
||||||
|
<div class="busy-signal" style="display:@(Working ? "block" : "none")">
|
||||||
|
<div class="spinner-grow text-info" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -16,6 +16,7 @@
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Wonky.Client.HttpInterceptors;
|
using Wonky.Client.HttpInterceptors;
|
||||||
using Wonky.Client.HttpRepository;
|
using Wonky.Client.HttpRepository;
|
||||||
|
using Wonky.Entity.DTO;
|
||||||
using Wonky.Entity.Views;
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
@ -23,7 +24,36 @@ namespace Wonky.Client.Pages;
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|
||||||
|
|
||||||
public partial class ManagerEvaluationViewEditPage
|
public partial class ManagerEvaluationViewEditPage : IDisposable
|
||||||
{
|
{
|
||||||
|
// #########################################################
|
||||||
|
[Inject] public IEvaluationRepository EvaluationRepo { get; set; }
|
||||||
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
|
|
||||||
|
// #########################################################
|
||||||
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
|
[Parameter] public string EvaluationId { get; set; } = "";
|
||||||
|
|
||||||
|
// #########################################################
|
||||||
|
private bool Working { get; set; } = true;
|
||||||
|
private EvaluationEditView Evaluation { get; set; } = new();
|
||||||
|
private MemberView Member { get; set; } = new();
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
Interceptor.RegisterEvent();
|
||||||
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
|
Member = await EvaluationRepo.GetMemberByUserId(UserId);
|
||||||
|
|
||||||
|
Evaluation = await EvaluationRepo.GetById(EvaluationId);
|
||||||
|
|
||||||
|
Working = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Interceptor.DisposeEvent();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -16,7 +16,8 @@
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
@page "/management/advisors/{UserId}/reports/{ReportDate}"
|
|
||||||
|
@page "/management/members/{UserId}/activities/{ReportDate}"
|
||||||
|
|
||||||
<div class="report-main d-print-print">
|
<div class="report-main d-print-print">
|
||||||
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum))
|
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum))
|
|
@ -30,13 +30,13 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class ManagerAdvisorReportViewPage : IDisposable
|
public partial class ManagerMemberActivityViewPage : IDisposable
|
||||||
{
|
{
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] public NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] public ILogger<ManagerAdvisorReportViewPage> Logger { get; set; }
|
[Inject] public ILogger<ManagerMemberActivityViewPage> Logger { get; set; }
|
||||||
[Inject] public ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] public UserPreferenceService PreferenceService { get; set; }
|
[Inject] public UserPreferenceService PreferenceService { get; set; }
|
||||||
[Inject] public IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
|
@ -45,7 +45,6 @@ public partial class ManagerAdvisorReportViewPage : IDisposable
|
||||||
|
|
||||||
|
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
|
||||||
[Parameter] public string UserId { get; set; } = "";
|
[Parameter] public string UserId { get; set; } = "";
|
||||||
[Parameter] public string ReportDate { get; set; } = "";
|
[Parameter] public string ReportDate { get; set; } = "";
|
||||||
|
|
||||||
|
@ -79,7 +78,7 @@ public partial class ManagerAdvisorReportViewPage : IDisposable
|
||||||
{
|
{
|
||||||
// shoe order/activity document
|
// shoe order/activity document
|
||||||
// the supervisor version
|
// the supervisor version
|
||||||
Navigator.NavigateTo($"/management/advisors/{UserId}/reports/{ReportDate}/activities/{documentId}");
|
Navigator.NavigateTo($"/management/members/{UserId}/activities/{ReportDate}/visits/{documentId}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,7 +97,7 @@ public partial class ManagerAdvisorReportViewPage : IDisposable
|
||||||
ReportDate = workDate;
|
ReportDate = workDate;
|
||||||
|
|
||||||
// ensure the browser address bar contains the correct link
|
// ensure the browser address bar contains the correct link
|
||||||
Navigator.NavigateTo($"/management/advisors/{UserId}/reports/{workDate}", false, true);
|
Navigator.NavigateTo($"/management/members/{UserId}/activities/{workDate}", false, true);
|
||||||
|
|
||||||
// return if we are already at it
|
// return if we are already at it
|
||||||
if (Working)
|
if (Working)
|
|
@ -14,8 +14,9 @@
|
||||||
*@
|
*@
|
||||||
|
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Supervisor")]
|
||||||
@page "/supervisor"
|
|
||||||
|
@page "/management"
|
||||||
|
|
||||||
<PageTitle>Supervisor</PageTitle>
|
<PageTitle>Supervisor</PageTitle>
|
||||||
|
|
||||||
|
@ -39,7 +40,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach (var user in Users)
|
@foreach (var user in Users)
|
||||||
{
|
{
|
||||||
<div class="col">
|
<div class="col-sm-4">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<div class="card-title">
|
<div class="card-title">
|
||||||
|
@ -67,8 +68,8 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<a class="btn btn-info" href="/management/advisors/@user.UserId">Dagsrapporter</a>
|
<a class="btn btn-info" href="/management/members/@user.UserId">Dagsrapporter</a>
|
||||||
<a class="btn btn-primary" href="#">Evalueringer</a>
|
<a class="btn btn-primary" href="/management/members/@user.UserId/evaluations">Evalueringer</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -22,7 +22,7 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
#pragma warning disable CS8618
|
#pragma warning disable CS8618
|
||||||
|
|
||||||
public partial class ManagerHomePage
|
public partial class ManagerMemberListPage
|
||||||
{
|
{
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
|
@ -39,6 +39,7 @@ public partial class ManagerHomePage
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
Users = await UserRepo.GetSupervisorUsers();
|
Users = await UserRepo.GetSupervisorUsers();
|
||||||
|
|
||||||
if (Users.Any())
|
if (Users.Any())
|
||||||
{
|
{
|
||||||
Users = Users
|
Users = Users
|
||||||
|
@ -46,6 +47,7 @@ public partial class ManagerHomePage
|
||||||
.ThenBy(x => x.CountryCode)
|
.ThenBy(x => x.CountryCode)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,8 @@
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
@page "/management/advisors/{UserId}"
|
|
||||||
|
@page "/management/members/{UserId}"
|
||||||
|
|
||||||
<PageTitle>Rapport Arkiv @InfoAdvisor.FirstName @InfoAdvisor.LastName</PageTitle>
|
<PageTitle>Rapport Arkiv @InfoAdvisor.FirstName @InfoAdvisor.LastName</PageTitle>
|
||||||
<div class="card">
|
<div class="card">
|
|
@ -7,14 +7,14 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class ManagerAdvisorViewPage : IDisposable
|
public partial class ManagerMemberViewPage : IDisposable
|
||||||
{
|
{
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
|
[Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
|
||||||
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] public NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] public ILogger<ManagerAdvisorViewPage> Logger { get; set; }
|
[Inject] public ILogger<ManagerMemberViewPage> Logger { get; set; }
|
||||||
|
|
||||||
|
|
||||||
// #############################################################
|
// #############################################################
|
||||||
|
@ -56,8 +56,8 @@ public partial class ManagerAdvisorViewPage : IDisposable
|
||||||
var uri = new Uri(Navigator.Uri);
|
var uri = new Uri(Navigator.Uri);
|
||||||
var url = uri.AbsoluteUri;
|
var url = uri.AbsoluteUri;
|
||||||
Logger.LogDebug("ShowReport\n => {}\n =>{}", reportDate, url);
|
Logger.LogDebug("ShowReport\n => {}\n =>{}", reportDate, url);
|
||||||
Logger.LogDebug("ShowReport => NavigateTo => {}",$"{url}/reports/{reportDate}");
|
Logger.LogDebug("ShowReport => NavigateTo => {}",$"{url}/activities/{reportDate}");
|
||||||
Navigator.NavigateTo($"{url}/reports/{reportDate}");
|
Navigator.NavigateTo($"{url}/activities/{reportDate}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
|
@ -17,7 +17,9 @@
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
@attribute [Authorize(Roles = "Management,Supervisor")]
|
||||||
@page "/management/advisors/{UserId}/reports/{ReportDate}/activities/{DocumentId}"
|
|
||||||
|
@page "/management/members/{UserId}/activities/{ReportDate}/visits/{DocumentId}"
|
||||||
|
|
||||||
<PageTitle>@ReportItem.ESalesNumber - @ReportItem.Company.Name</PageTitle>
|
<PageTitle>@ReportItem.ESalesNumber - @ReportItem.Company.Name</PageTitle>
|
||||||
<table class="table table-sm table-striped d-print-table">
|
<table class="table table-sm table-striped d-print-table">
|
||||||
<thead>
|
<thead>
|
|
@ -28,7 +28,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class ManagerVisitViewPage : IDisposable
|
public partial class ManagerMemberVisitViewPage : IDisposable
|
||||||
{
|
{
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
|
@ -1,81 +0,0 @@
|
||||||
@* Copyright (C) 2022 FCS Frede's Computer Services.
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU Affero General Public License as
|
|
||||||
// published by the Free Software Foundation, either version 3 of the
|
|
||||||
// License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU Affero General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
|
||||||
*@
|
|
||||||
|
|
||||||
@using Microsoft.AspNetCore.Authorization
|
|
||||||
@attribute [Authorize(Roles = "Management,Supervisor")]
|
|
||||||
@page "/management/advisors"
|
|
||||||
|
|
||||||
<PageTitle>Supervisor Sælger Oversigt</PageTitle>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3>Supervisor Sælger Oversigt</h3>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="text-end">
|
|
||||||
<div class="busy-signal" style="display:@(Working ? "block" : "none")">
|
|
||||||
<div class="spinner-grow text-info" role="status">
|
|
||||||
<span class="visually-hidden">Loading...</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="list-group">
|
|
||||||
<div class="list-group-item">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-1 mt-3">
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4 mt-3">
|
|
||||||
<div class="h4">Navn</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3 mt-3">
|
|
||||||
<div class="h4">Email</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-2 mt-3">
|
|
||||||
<div class="h4">Telefon</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-2 text-end mt-1">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (Users.Any())
|
|
||||||
{
|
|
||||||
foreach (var user in Users)
|
|
||||||
{
|
|
||||||
<a class="list-group-item list-group-item-action" href="/management/advisors/@user.UserId">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-1">
|
|
||||||
@user.CountryCode @user.SalesRep
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4">
|
|
||||||
@user.FullName
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-3">
|
|
||||||
@user.Email
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
@user.PhoneNumber
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
@user.Description
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</div>
|
|
|
@ -1,57 +0,0 @@
|
||||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU Affero General Public License as
|
|
||||||
// published by the Free Software Foundation, either version 3 of the
|
|
||||||
// License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU Affero General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
|
||||||
//
|
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
|
||||||
using Wonky.Client.HttpInterceptors;
|
|
||||||
using Wonky.Client.HttpRepository;
|
|
||||||
using Wonky.Entity.Views;
|
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
|
||||||
|
|
||||||
#pragma warning disable CS8618
|
|
||||||
|
|
||||||
public partial class ManagerUserListPage : IDisposable
|
|
||||||
{
|
|
||||||
// #############################################################
|
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
|
||||||
[Inject] public IOfficeUserInfoRepository UserRepo { get; set; }
|
|
||||||
|
|
||||||
// #############################################################
|
|
||||||
private List<UserInfoListView> Users { get; set; } = new();
|
|
||||||
private bool Working { get; set; } = true;
|
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
Interceptor.RegisterEvent();
|
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
|
||||||
|
|
||||||
Users = await UserRepo.GetSupervisorUsers();
|
|
||||||
if (Users.Any())
|
|
||||||
{
|
|
||||||
Users = Users
|
|
||||||
.OrderBy(x => x.FullName)
|
|
||||||
.ThenBy(x => x.CountryCode)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
Working = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
Interceptor.DisposeEvent();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -17,6 +17,7 @@
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Admin,Office")]
|
@attribute [Authorize(Roles = "Admin,Office")]
|
||||||
|
|
||||||
@page "/office/users/advisors/{CountryCode}/{UserId}/customers"
|
@page "/office/users/advisors/{CountryCode}/{UserId}/customers"
|
||||||
|
|
||||||
<PageTitle>Kundeliste for @SalesRep.FirstName @SalesRep.LastName</PageTitle>
|
<PageTitle>Kundeliste for @SalesRep.FirstName @SalesRep.LastName</PageTitle>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Admin,Office,Management")]
|
@attribute [Authorize(Roles = "Admin,Office,Management")]
|
||||||
|
|
||||||
@page "/office/users/advisors/{CountryCode}"
|
@page "/office/users/advisors/{CountryCode}"
|
||||||
|
|
||||||
<PageTitle>Sælger Oversigt @CountryName</PageTitle>
|
<PageTitle>Sælger Oversigt @CountryName</PageTitle>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Admin,Office")]
|
@attribute [Authorize(Roles = "Admin,Office")]
|
||||||
|
|
||||||
@page "/office/users/advisors/{CountryCode}/{UserId}/reports"
|
@page "/office/users/advisors/{CountryCode}/{UserId}/reports"
|
||||||
|
|
||||||
<PageTitle>Rapport Arkiv @InfoAdvisor.FirstName @InfoAdvisor.LastName</PageTitle>
|
<PageTitle>Rapport Arkiv @InfoAdvisor.FirstName @InfoAdvisor.LastName</PageTitle>
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
@using Wonky.Client.Enums
|
@using Wonky.Client.Enums
|
||||||
@using Wonky.Client.Models
|
@using Wonky.Client.Models
|
||||||
@attribute [Authorize(Roles = "Admin,Office,Supervisor")]
|
@attribute [Authorize(Roles = "Admin,Office,Supervisor")]
|
||||||
|
|
||||||
@page "/office/users/advisors/{CountryCode}/{UserId}/reports/{ReportDate}"
|
@page "/office/users/advisors/{CountryCode}/{UserId}/reports/{ReportDate}"
|
||||||
|
|
||||||
<div class="row pt-2 pb-2 mb-3 rounded-2 d-print-none bg-dark text-white">
|
<div class="row pt-2 pb-2 mb-3 rounded-2 d-print-none bg-dark text-white">
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@attribute [Authorize(Roles = "Admin,Office,Warehouse")]
|
@attribute [Authorize(Roles = "Admin,Office,Warehouse")]
|
||||||
|
|
||||||
@page "/office/country"
|
@page "/office/country"
|
||||||
|
|
||||||
<PageTitle>Kontor</PageTitle>
|
<PageTitle>Kontor</PageTitle>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
@using Wonky.Client.OverlayOrderCreate
|
@using Wonky.Client.OverlayOrderCreate
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@attribute [Authorize(Roles = "Admin,Office,Supervisor,Warehouse")]
|
@attribute [Authorize(Roles = "Admin,Office,Supervisor,Warehouse")]
|
||||||
|
|
||||||
@page "/office/customers/{CountryCode}/{CompanyId}/order"
|
@page "/office/customers/{CountryCode}/{CompanyId}/order"
|
||||||
|
|
||||||
<PageTitle>Telefon Ordre - @Company.Name - @Company.Account</PageTitle>
|
<PageTitle>Telefon Ordre - @Company.Name - @Company.Account</PageTitle>
|
||||||
|
|
|
@ -17,7 +17,9 @@
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@attribute [Authorize(Roles = "Admin,Office,Warehouse")]
|
@attribute [Authorize(Roles = "Admin,Office,Warehouse")]
|
||||||
|
|
||||||
@page "/office/customers/{CompanyId}/orders/{OrderId}"
|
@page "/office/customers/{CompanyId}/orders/{OrderId}"
|
||||||
|
|
||||||
<PageTitle>@ReportItem.ESalesNumber - @ReportItem.Company.Name</PageTitle>
|
<PageTitle>@ReportItem.ESalesNumber - @ReportItem.Company.Name</PageTitle>
|
||||||
<table class="table table-sm table-striped d-print-table">
|
<table class="table table-sm table-striped d-print-table">
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
@ -22,7 +22,7 @@ using Wonky.Entity.DTO;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class SysDocumentTextsViewEditPage
|
public partial class SystemDocumentTextsViewEditPage
|
||||||
{
|
{
|
||||||
[Inject] public ISystemTextsRepository TextsRepo { get; set; }
|
[Inject] public ISystemTextsRepository TextsRepo { get; set; }
|
||||||
|
|
|
@ -116,17 +116,17 @@
|
||||||
</div>
|
</div>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
|
|
||||||
<AuthorizeView Roles="Supervisor">
|
<AuthorizeView Roles="Management,Supervisor">
|
||||||
<Authorized>
|
<Authorized>
|
||||||
<div class="nav-item px-3">
|
<div class="nav-item px-3">
|
||||||
<NavLink class="nav-link ps-2" href="/supervisor">
|
<NavLink class="nav-link ps-2" href="/management">
|
||||||
<i class="bi-people pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Supervisor
|
<i class="bi-people pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Management
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
</Authorized>
|
</Authorized>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
|
|
||||||
<AuthorizeView Roles="Admin,Advisor,Office,Supervisor,Warehouse">
|
<AuthorizeView Roles="Admin,Advisor,Management,Office,Supervisor,Warehouse">
|
||||||
<div class="nav-item px-3">
|
<div class="nav-item px-3">
|
||||||
<NavLink class="nav-link ps-2" href="/info">
|
<NavLink class="nav-link ps-2" href="/info">
|
||||||
<i class="bi-question pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Hjælp
|
<i class="bi-question pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Hjælp
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{
|
{
|
||||||
"appInfo": {
|
"appInfo": {
|
||||||
"name": "Wonky Online",
|
"name": "Wonky Online",
|
||||||
"version": "0.136.1",
|
"version": "0.137.0",
|
||||||
"rc": true,
|
"rc": true,
|
||||||
"sandBox": false,
|
"sandBox": false,
|
||||||
"image": "grumpy-coder.png"
|
"image": "grumpy-coder.png"
|
||||||
},
|
},
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Debug",
|
||||||
"System": "Information",
|
"System": "Information",
|
||||||
"Microsoft": "Information"
|
"Microsoft": "Information"
|
||||||
},
|
},
|
||||||
|
@ -46,9 +46,9 @@
|
||||||
"systemDocStringUrl": "api/v2/admin/doc",
|
"systemDocStringUrl": "api/v2/admin/doc",
|
||||||
"systemLabels": "api/v2/admin/doc/labels",
|
"systemLabels": "api/v2/admin/doc/labels",
|
||||||
"systemTexts": "api/v2/admin/doc/texts",
|
"systemTexts": "api/v2/admin/doc/texts",
|
||||||
"userData": "/api/v2/client/users",
|
"memberEvaluation": "/api/v2/app/manage/evaluations",
|
||||||
"userEvaluations": "/api/v2/app/manage/evaluations",
|
"userInfoClient": "/api/v2/client/users",
|
||||||
"userInfo": "api/v2/auth/userinfo",
|
"userInfoAuth": "api/v2/auth/userinfo",
|
||||||
"userManager": "api/v2/app/manage/users",
|
"userManager": "api/v2/app/manage/users",
|
||||||
"userManagerSetPasswd": "api/v2/app/manage/passwd",
|
"userManagerSetPasswd": "api/v2/app/manage/passwd",
|
||||||
"userRoles": "api/v2/app/manage/roles",
|
"userRoles": "api/v2/app/manage/roles",
|
||||||
|
|
|
@ -154,17 +154,17 @@ public class ApiConfig
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Endpoint for user evaluations
|
/// Endpoint for user evaluations
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string UserEvaluations { get; set; } = "";
|
public string MemberEvaluation { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Application uri for user information request
|
/// Application uri for user information request
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string UserData { get; set; } = "";
|
public string UserInfoClient { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Application uri for user information request
|
/// Application uri for user information request
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string UserInfo { get; set; } = "";
|
public string UserInfoAuth { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Application uri for user management
|
/// Application uri for user management
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
namespace Wonky.Entity.DTO;
|
namespace Wonky.Entity.DTO;
|
||||||
|
|
||||||
public class EvaluationEditView
|
public class EvaluationEditView
|
||||||
{
|
|
||||||
public class EvaluationViewEdit
|
|
||||||
{
|
{
|
||||||
public string Content { get; set; } = "";
|
public string Content { get; set; } = "";
|
||||||
|
|
||||||
|
@ -20,4 +18,3 @@ public class EvaluationEditView
|
||||||
|
|
||||||
public string MemberName { get; set; } = "";
|
public string MemberName { get; set; } = "";
|
||||||
}
|
}
|
||||||
}
|
|
8
Wonky.Entity/Views/ManagerView.cs
Normal file
8
Wonky.Entity/Views/ManagerView.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Wonky.Entity.Views;
|
||||||
|
|
||||||
|
public class ManagerView
|
||||||
|
{
|
||||||
|
public string ManagerId { get; set; } = "";
|
||||||
|
public string UserId { get; set; } = "";
|
||||||
|
public string FullName { get; set; } = "";
|
||||||
|
}
|
8
Wonky.Entity/Views/MemberView.cs
Normal file
8
Wonky.Entity/Views/MemberView.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Wonky.Entity.Views;
|
||||||
|
|
||||||
|
public class MemberView
|
||||||
|
{
|
||||||
|
public string MemberId { get; set; } = "";
|
||||||
|
public string UserId { get; set; } = "";
|
||||||
|
public string FullName { get; set; } = "";
|
||||||
|
}
|
Loading…
Reference in a new issue