Various CSS work
This commit is contained in:
parent
ef174af0e1
commit
15579acba8
52 changed files with 8001 additions and 944 deletions
|
|
@ -0,0 +1,145 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using PlanTempus.Application.Features.Localization.Services;
|
||||
|
||||
namespace PlanTempus.Application.Features.Employees.Components;
|
||||
|
||||
public class EmployeeRowViewComponent : ViewComponent
|
||||
{
|
||||
private readonly ILocalizationService _localization;
|
||||
|
||||
public EmployeeRowViewComponent(ILocalizationService localization)
|
||||
{
|
||||
_localization = localization;
|
||||
}
|
||||
|
||||
public IViewComponentResult Invoke(string key)
|
||||
{
|
||||
var model = EmployeeRowCatalog.Get(key, _localization);
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
|
||||
public class EmployeeRowViewModel
|
||||
{
|
||||
public required string Key { get; init; }
|
||||
public required string Initials { get; init; }
|
||||
public required string Name { get; init; }
|
||||
public required string Email { get; init; }
|
||||
public required string Role { get; init; }
|
||||
public required string RoleText { get; init; }
|
||||
public required string Status { get; init; }
|
||||
public required string StatusText { get; init; }
|
||||
public required string LastActive { get; init; }
|
||||
public string? AvatarColor { get; init; }
|
||||
public bool IsOwner { get; init; }
|
||||
public bool IsInvited { get; init; }
|
||||
}
|
||||
|
||||
internal class EmployeeRowData
|
||||
{
|
||||
public required string Key { get; init; }
|
||||
public required string Initials { get; init; }
|
||||
public required string Name { get; init; }
|
||||
public required string Email { get; init; }
|
||||
public required string Role { get; init; }
|
||||
public required string RoleKey { get; init; }
|
||||
public required string Status { get; init; }
|
||||
public required string StatusKey { get; init; }
|
||||
public required string LastActive { get; init; }
|
||||
public string? AvatarColor { get; init; }
|
||||
}
|
||||
|
||||
public static class EmployeeRowCatalog
|
||||
{
|
||||
private static readonly Dictionary<string, EmployeeRowData> Employees = new()
|
||||
{
|
||||
["employee-1"] = new EmployeeRowData
|
||||
{
|
||||
Key = "employee-1",
|
||||
Initials = "MJ",
|
||||
Name = "Maria Jensen",
|
||||
Email = "maria@salonbeauty.dk",
|
||||
Role = "owner",
|
||||
RoleKey = "employees.roles.owner",
|
||||
Status = "active",
|
||||
StatusKey = "employees.status.active",
|
||||
LastActive = "I dag, 14:32"
|
||||
},
|
||||
["employee-2"] = new EmployeeRowData
|
||||
{
|
||||
Key = "employee-2",
|
||||
Initials = "AS",
|
||||
Name = "Anna Sørensen",
|
||||
Email = "anna@salonbeauty.dk",
|
||||
Role = "admin",
|
||||
RoleKey = "employees.roles.admin",
|
||||
Status = "active",
|
||||
StatusKey = "employees.status.active",
|
||||
LastActive = "I dag, 12:15",
|
||||
AvatarColor = "purple"
|
||||
},
|
||||
["employee-3"] = new EmployeeRowData
|
||||
{
|
||||
Key = "employee-3",
|
||||
Initials = "LP",
|
||||
Name = "Louise Pedersen",
|
||||
Email = "louise@salonbeauty.dk",
|
||||
Role = "leader",
|
||||
RoleKey = "employees.roles.leader",
|
||||
Status = "active",
|
||||
StatusKey = "employees.status.active",
|
||||
LastActive = "I går, 17:45",
|
||||
AvatarColor = "blue"
|
||||
},
|
||||
["employee-4"] = new EmployeeRowData
|
||||
{
|
||||
Key = "employee-4",
|
||||
Initials = "KN",
|
||||
Name = "Katrine Nielsen",
|
||||
Email = "katrine@salonbeauty.dk",
|
||||
Role = "employee",
|
||||
RoleKey = "employees.roles.employee",
|
||||
Status = "active",
|
||||
StatusKey = "employees.status.active",
|
||||
LastActive = "27. dec, 09:30",
|
||||
AvatarColor = "amber"
|
||||
},
|
||||
["employee-5"] = new EmployeeRowData
|
||||
{
|
||||
Key = "employee-5",
|
||||
Initials = "SH",
|
||||
Name = "Sofie Hansen",
|
||||
Email = "sofie@salonbeauty.dk",
|
||||
Role = "employee",
|
||||
RoleKey = "employees.roles.employee",
|
||||
Status = "invited",
|
||||
StatusKey = "employees.status.invited",
|
||||
LastActive = "-",
|
||||
AvatarColor = "purple"
|
||||
}
|
||||
};
|
||||
|
||||
public static EmployeeRowViewModel Get(string key, ILocalizationService localization)
|
||||
{
|
||||
if (!Employees.TryGetValue(key, out var employee))
|
||||
throw new KeyNotFoundException($"Employee with key '{key}' not found");
|
||||
|
||||
return new EmployeeRowViewModel
|
||||
{
|
||||
Key = employee.Key,
|
||||
Initials = employee.Initials,
|
||||
Name = employee.Name,
|
||||
Email = employee.Email,
|
||||
Role = employee.Role,
|
||||
RoleText = localization.Get(employee.RoleKey),
|
||||
Status = employee.Status,
|
||||
StatusText = localization.Get(employee.StatusKey),
|
||||
LastActive = employee.LastActive,
|
||||
AvatarColor = employee.AvatarColor,
|
||||
IsOwner = employee.Role == "owner",
|
||||
IsInvited = employee.Status == "invited"
|
||||
};
|
||||
}
|
||||
|
||||
public static IEnumerable<string> AllKeys => Employees.Keys;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue