feat(jobs): add dedicated workspace page
CI and Deploy / test (pull_request) Failing after 2m51s
CI and Deploy / deploy (pull_request) Has been skipped

Make /jobs/:id the canonical application workspace while preserving list state and compatibility links. Replace popup and expandable-row navigation with accessible whole-row routing and richer job details.
This commit is contained in:
cesnimda
2026-08-15 13:33:00 +02:00
parent 0dfaac18a1
commit 109745edb0
18 changed files with 310 additions and 266 deletions
@@ -28,6 +28,14 @@ public sealed record WorkspaceOverviewDto(
DateTime? FollowUpAt,
string? NextAction,
string? JobUrl,
DateTime SavedAt,
string? Description,
string? TranslatedDescription,
string? DescriptionLanguage,
IReadOnlyList<string> Tags,
string? Notes,
string? Source,
string? CountryCode,
bool HasJobDescription,
WorkspaceCvDto Cv,
bool HasCoverLetter,
@@ -59,7 +67,9 @@ public sealed class ApplicationWorkspaceService : IApplicationWorkspaceService
public async Task<WorkspaceOverviewDto?> GetOverviewAsync(string ownerUserId, int jobApplicationId, CancellationToken ct)
{
var job = await _db.JobApplications.AsNoTracking().Include(j => j.Company)
var job = await _db.JobApplications.AsNoTracking()
.Include(j => j.Company)
.Include(j => j.Job)
.FirstOrDefaultAsync(j => j.Id == jobApplicationId && j.OwnerUserId == ownerUserId, ct);
if (job is null) return null;
@@ -116,7 +126,15 @@ public sealed class ApplicationWorkspaceService : IApplicationWorkspaceService
job.FollowUpAt,
job.NextAction,
job.JobUrl,
!string.IsNullOrWhiteSpace(job.Description),
job.SavedAt,
job.Description,
job.TranslatedDescription,
job.DescriptionLanguage,
JobApplicationHelpers.SplitTags(job.Tags).Distinct(StringComparer.OrdinalIgnoreCase).ToList(),
job.Notes,
job.Job?.Source,
job.Job?.CountryCode,
!string.IsNullOrWhiteSpace(job.Description) || !string.IsNullOrWhiteSpace(job.TranslatedDescription),
cv,
hasCoverLetter,
documentCount,