Community site: links back to seosoft.dk
Some checks are pending
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
CI / Build og unit tests (push) Successful in 58s
deploy community / deploy (push) Successful in 13s
deploy hub / deploy (push) Successful in 23s
CI / MSI-installer (push) Successful in 35s
Some checks are pending
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
CI / Build og unit tests (push) Successful in 58s
deploy community / deploy (push) Successful in 13s
deploy hub / deploy (push) Successful in 23s
CI / MSI-installer (push) Successful in 35s
A thin bar above the header ("Tilbage til seosoft.dk") and footer links
lead back to the vendor's site. CompanyUrl is configurable.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
967c01ec97
commit
3bfb59f302
4 changed files with 25 additions and 1 deletions
|
|
@ -29,6 +29,9 @@ public sealed class CommunityOptions
|
|||
|
||||
public Uri SourceUrl { get; set; } = new("https://git.seosoft.dk/seo/sqlinsight-pro");
|
||||
|
||||
/// <summary>The vendor's own site, linked from the header and footer so visitors can get back to it.</summary>
|
||||
public Uri CompanyUrl { get; set; } = new("https://seosoft.dk/");
|
||||
|
||||
/// <summary>Where Professional and Enterprise enquiries go.</summary>
|
||||
public string ContactEmail { get; set; } = "salg@example.com";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
@inherits LayoutComponentBase
|
||||
@inject IOptions<CommunityOptions> Options
|
||||
|
||||
<div class="vendor-bar">
|
||||
<div class="wrap"><a href="@Options.Value.CompanyUrl">← Tilbage til seosoft.dk</a></div>
|
||||
</div>
|
||||
<header class="site-header">
|
||||
<div class="wrap header-row">
|
||||
<a class="brand" href="/"><span class="logo" aria-hidden="true">SI</span><span>SQLInsight <strong>Pro</strong></span></a>
|
||||
|
|
@ -25,7 +28,7 @@
|
|||
<div class="wrap footer-row">
|
||||
<div>
|
||||
<strong>SQLInsight Pro</strong><br />
|
||||
Gratis og open source (MIT). Udviklet af SEOSoft.
|
||||
Gratis og open source (MIT). Udviklet af <a href="@Options.Value.CompanyUrl">SEOSoft</a>.
|
||||
</div>
|
||||
<div class="footer-links">
|
||||
@if (Options.Value.ForumHome is { } forumLink)
|
||||
|
|
@ -35,6 +38,7 @@
|
|||
<a href="@Options.Value.SourceUrl" rel="noopener">Kildekode og issues</a>
|
||||
<a href="/dokumentation/databehandling">Databehandling</a>
|
||||
<a href="/support">Support og priser</a>
|
||||
<a href="@Options.Value.CompanyUrl">seosoft.dk</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
|||
|
|
@ -69,6 +69,12 @@ pre code { background: none; padding: 0; }
|
|||
/* Header and footer */
|
||||
.site-header { position: sticky; top: 0; z-index: 10; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border); }
|
||||
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; flex-wrap: wrap; }
|
||||
/* Thin bar above the header: the way back to the vendor's own site. */
|
||||
.vendor-bar { background: var(--surface-2); border-bottom: 1px solid var(--border); font-size: .85rem; }
|
||||
.vendor-bar .wrap { padding-top: .35rem; padding-bottom: .35rem; }
|
||||
.vendor-bar a { color: var(--text-2); }
|
||||
.vendor-bar a:hover { color: var(--text); }
|
||||
|
||||
.brand { display: flex; align-items: center; gap: .6rem; color: var(--text); font-size: 1.1rem; }
|
||||
.brand:hover { text-decoration: none; }
|
||||
.brand strong { color: var(--accent); }
|
||||
|
|
|
|||
|
|
@ -136,6 +136,17 @@ public sealed class SiteTests : IDisposable
|
|||
Assert.EndsWith("/latest.json", _forum.Requests.Single().AbsolutePath, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Every_page_links_back_to_the_vendor_site()
|
||||
{
|
||||
using var factory = Site();
|
||||
|
||||
var html = await Get(factory, "/dokumentation");
|
||||
|
||||
Assert.Contains("href=\"https://seosoft.dk/\"", html, StringComparison.Ordinal);
|
||||
Assert.Contains("Tilbage til seosoft.dk", html, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Front_page_works_when_the_forum_is_down()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue