From 44e3ad94e05f9c77889c3c59bf22669e1b228e60 Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Sun, 22 Feb 2026 22:57:51 +0000 Subject: [PATCH] feat(developers): add service URLs and onboarding guide to provisioning reply and success page Ticket replies now include full onboarding info (webmail, IMAP/SMTP, Mattermost, Gitea, SilverDESK URLs) instead of raw provisioning status. Confirmation success page uses clickable service links with email client config details. Co-Authored-By: Claude Opus 4.6 --- .../Components/Pages/DeploymentConfirm.razor | 67 ++++++++++++++++--- BlazorApp/Endpoints/DeveloperEndpoints.cs | 25 +++++-- 2 files changed, 79 insertions(+), 13 deletions(-) diff --git a/BlazorApp/Components/Pages/DeploymentConfirm.razor b/BlazorApp/Components/Pages/DeploymentConfirm.razor index 93ff84b..5c0ec5a 100644 --- a/BlazorApp/Components/Pages/DeploymentConfirm.razor +++ b/BlazorApp/Components/Pages/DeploymentConfirm.razor @@ -50,18 +50,27 @@

Accounts Activated

@_resultMessage

+
@@ -167,10 +176,10 @@ .confirm-services { display: grid; - grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(4, 1fr); gap: 1rem; margin: 1.5rem auto; - max-width: 500px; + max-width: 600px; } .confirm-service-item { @@ -182,6 +191,17 @@ text-align: center; } + .confirm-service-link { + text-decoration: none; + border: 1px solid rgba(77, 208, 225, 0.15); + transition: background 0.2s, border-color 0.2s; + } + + .confirm-service-link:hover { + background: rgba(77, 208, 225, 0.08); + border-color: rgba(77, 208, 225, 0.35); + } + .confirm-service-item strong { color: #4DD0E1; font-size: 0.95rem; @@ -193,6 +213,35 @@ font-size: 0.8rem; } + .confirm-email-config { + margin: 1rem auto; + max-width: 360px; + padding: 0.75rem 1rem; + background: rgba(0, 0, 0, 0.2); + border-radius: 8px; + border: 1px solid rgba(255, 255, 255, 0.06); + font-size: 0.82rem; + } + + .confirm-email-config strong { + display: block; + color: rgba(255, 255, 255, 0.5); + font-size: 0.72rem; + text-transform: uppercase; + letter-spacing: 0.05em; + margin-bottom: 0.4rem; + } + + .confirm-email-detail { + color: rgba(255, 255, 255, 0.6); + padding: 0.15rem 0; + } + + .confirm-email-detail span { + color: rgba(255, 255, 255, 0.4); + font-size: 0.8rem; + } + @@media (max-width: 768px) { .confirm-user-info { flex-direction: column; @@ -200,7 +249,7 @@ } .confirm-services { - grid-template-columns: 1fr; + grid-template-columns: repeat(2, 1fr); } } diff --git a/BlazorApp/Endpoints/DeveloperEndpoints.cs b/BlazorApp/Endpoints/DeveloperEndpoints.cs index 138c248..5e7df84 100644 --- a/BlazorApp/Endpoints/DeveloperEndpoints.cs +++ b/BlazorApp/Endpoints/DeveloperEndpoints.cs @@ -117,18 +117,35 @@ public static class DeveloperEndpoints // Send follow-up ticket reply with results var resultContent = success ? $""" - Your accounts have been successfully provisioned: + Your accounts have been successfully provisioned! Here's how to access your services: - {message} + **Email**: {deployment.Username}@silverlabs.uk + - Webmail: [mail.silverlined.uk](https://mail.silverlined.uk) + - IMAP: `mail.silverlined.uk:993` (SSL) + - SMTP: `mail.silverlined.uk:465` (SSL) - You can now log in to all services with your SilverDESK credentials. + **Mattermost** (Team Chat): [ops.silverlined.uk](https://ops.silverlined.uk) + + **Gitea** (Source Code): [git.silverlabs.uk](https://git.silverlabs.uk) + + **SilverDESK** (Support & Tickets): [silverdesk.silverlabs.uk](https://silverdesk.silverlabs.uk) + + All services use the same password you entered during activation. + + --- + *Provisioning status: {message}* """ : $""" Account provisioning completed with some issues: {message} - Please contact an administrator if you have trouble accessing any services. + Some services may not be available yet. Please contact an administrator for assistance. + + Once resolved, your services will be: + - **Email**: {deployment.Username}@silverlabs.uk — [mail.silverlined.uk](https://mail.silverlined.uk) + - **Mattermost**: [ops.silverlined.uk](https://ops.silverlined.uk) + - **Gitea**: [git.silverlabs.uk](https://git.silverlabs.uk) """; await provisioningService.SendTicketReplyAsync(deployment.TicketId, resultContent, "close");