UI Improvements

This commit is contained in:
Claudio Schaad 2025-08-21 20:44:56 +02:00
parent 2530e729ce
commit d26b3319b9
2 changed files with 40 additions and 25 deletions

View file

@ -230,11 +230,11 @@ namespace ShiftScheduler.Client.Pages
var morningTransport = shiftWithTransport.GetMorningTransportSummary();
if (!string.IsNullOrEmpty(morningTransport))
summaries.Add($"🌅 {morningTransport}");
summaries.Add($"🚂 {morningTransport}");
var afternoonTransport = shiftWithTransport.GetAfternoonTransportSummary();
if (!string.IsNullOrEmpty(afternoonTransport))
summaries.Add($"🌆 {afternoonTransport}");
summaries.Add($"🚂 {afternoonTransport}");
return string.Join(" | ", summaries);
}
@ -250,10 +250,12 @@ namespace ShiftScheduler.Client.Pages
return string.Empty;
var times = new List<string>();
if (!string.IsNullOrEmpty(shift.MorningTime))
times.Add(shift.MorningTime);
times.Add($"🌅 {shift.MorningTime}");
if (!string.IsNullOrEmpty(shift.AfternoonTime))
times.Add(shift.AfternoonTime);
times.Add($"🌆 {shift.AfternoonTime}");
return string.Join(" | ", times);
}

View file

@ -72,6 +72,7 @@ namespace ShiftScheduler.Services
foreach (var week in weeks)
{
RenderShiftForWeek(table, week, scheduleDictionary);
RenderEmptyRow(table);
}
});
}
@ -81,6 +82,8 @@ namespace ShiftScheduler.Services
{
var weekDates = week.ToList();
var dayInWeek = weekDates.Count;
// Date
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var dddd = weekDates.ElementAtOrDefault(day).ToString("dd.MM.yyyy (ddd)");
@ -91,39 +94,7 @@ namespace ShiftScheduler.Services
RenderEmptyCell(table);
}
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var shiftName = shiftWithTransport?.Shift.Name ?? "";
table.Cell().Element(CellStyleMiddle).Text(shiftName);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var morningTime = shiftWithTransport?.Shift.MorningTime ?? "";
table.Cell().Element(CellStyleMiddle).Text(morningTime);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var afternoonTime = shiftWithTransport?.Shift.AfternoonTime ?? "";
table.Cell().Element(CellStyleMiddle).Text(afternoonTime);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
// Icon
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
@ -135,6 +106,43 @@ namespace ShiftScheduler.Services
RenderEmptyCell(table);
}
// Shifname
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var shiftName = shiftWithTransport?.Shift.Name ?? "";
table.Cell().Element(CellStyleMiddle).Text(shiftName);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
// Morning times
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var morningTime = $"🌅 {shiftWithTransport?.Shift.MorningTime}";
table.Cell().Element(CellStyleMiddle).Text(morningTime);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
// Afternoon times
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
var afternoonTime = $"🌆 {shiftWithTransport?.Shift.AfternoonTime}";
table.Cell().Element(CellStyleMiddle).Text(afternoonTime);
}
foreach (var day in Enumerable.Range(dayInWeek, 7 - dayInWeek))
{
RenderEmptyCell(table);
}
// Transport
foreach (var day in Enumerable.Range(0, dayInWeek))
{
var shiftWithTransport = shiftsWithTransport.GetValueOrDefault(weekDates.ElementAtOrDefault(day));
@ -147,6 +155,14 @@ namespace ShiftScheduler.Services
}
}
private static void RenderEmptyRow(TableDescriptor table)
{
foreach (var day in Enumerable.Range(0, 7))
{
RenderEmptyCell(table);
}
}
private static string GetTransportSummary(ShiftWithTransport? shiftWithTransport)
{
if (shiftWithTransport == null) return "-";
@ -155,28 +171,25 @@ namespace ShiftScheduler.Services
if (shiftWithTransport.MorningTransport != null && !string.IsNullOrEmpty(shiftWithTransport.MorningTransport.DepartureTime))
{
var morningInfo = FormatTransportConnection(shiftWithTransport.MorningTransport, "Morning");
var morningInfo = FormatTransportConnection(shiftWithTransport.MorningTransport);
transportLines.Add(morningInfo);
}
if (shiftWithTransport.AfternoonTransport != null && !string.IsNullOrEmpty(shiftWithTransport.AfternoonTransport.DepartureTime))
{
var afternoonInfo = FormatTransportConnection(shiftWithTransport.AfternoonTransport, "Afternoon");
var afternoonInfo = FormatTransportConnection(shiftWithTransport.AfternoonTransport);
transportLines.Add(afternoonInfo);
}
return transportLines.Count > 0 ? string.Join("\n", transportLines) : "-";
}
private static string FormatTransportConnection(TransportConnection transport, string timeOfDay)
private static string FormatTransportConnection(TransportConnection transport)
{
var departure = DateTime.TryParse(transport.DepartureTime, out var dep) ? dep.ToString("HH:mm") : transport.DepartureTime;
var arrival = DateTime.TryParse(transport.ArrivalTime, out var arr) ? arr.ToString("HH:mm") : transport.ArrivalTime;
var mainJourney = transport.Sections?.FirstOrDefault()?.Journey;
var trainInfo = mainJourney != null ? $"{mainJourney.Category} {mainJourney.Number}" : "Train";
return $"{timeOfDay}: {trainInfo} {departure}→{arrival}";
return $"🚂 {departure}→{arrival}";
}
private static void RenderEmptyCell(TableDescriptor table)