From ae7b36a4bfbb322904e9604e33a6299aba09af44 Mon Sep 17 00:00:00 2001 From: Mark Gregory Date: Mon, 12 Oct 2026 10:24:08 +0100 Subject: [PATCH] download fixes --- views/downloads/index.blade.php | 31 ++++++++++++-------- views/layouts/app.blade.php | 50 +++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 11 deletions(-) diff --git a/views/downloads/index.blade.php b/views/downloads/index.blade.php index 6c172c8..d3e410d 100644 --- a/views/downloads/index.blade.php +++ b/views/downloads/index.blade.php @@ -1,13 +1,22 @@ -@extends('layouts.app', ['title' => 'Download SonarDesk — Native SonarQube monitoring for macOS', 'description' => 'Download the latest signed SonarDesk release for macOS, review release notes and system requirements.']) +@extends('layouts.app', ['title' => 'Downloads — SonarDesk']) @section('fullbleed') -
{{ $settings['eyebrow'] }}

{{ $settings['title'] }}

{{ $settings['intro'] }}

@if($latest)
✓ Signed distribution✓ SHA-256 verified✓ Secure licence activation
@else
The next SonarDesk release is being prepared.Check back shortly or contact support.
@endif
SonarDesk
SonarDesk
Project healthAll systems monitored
NativeBuilt for macOS
-
Native macOSFast, focused desktop workflow
SonarQubeYour server remains the source of truth
SecurityTokens protected by macOS Keychain
UpdatesProfessional in-app release delivery
-@if($latest) -
Latest stable release

SonarDesk {{ $latest->version }}

Build {{ $latest->build_number }} · Released {{ $latest->published_at?->format('j F Y') }}

Download {{ $latest->version }}
{!! nl2br(e($latest->release_notes ?: 'This release contains the latest SonarDesk improvements and maintenance updates.')) !!}
SHA-256 checksum · Verify download{{ $latest->sha256 }}
-@endif -@if($products->isNotEmpty()) -
SOFTWARE LIBRARY

Available downloads

Installers and tools, ready to download.

@foreach($products as $product)
{{ $product->platform ?: 'Software' }}{{ $product->version ? 'Version '.$product->version : 'Latest' }}

{{ $product->name }}

{{ $product->description ?: 'Download the latest available package.' }}

@endforeach
-@endif -
Release archive

Previous versions

Published SonarDesk builds remain available here for customers who need a previous release.

@forelse($releases as $release)
SonarDesk {{ $release->version }}Build {{ $release->build_number }} · {{ ucfirst($release->channel) }} · {{ $release->published_at?->format('j M Y') }}
{{ $release->formatted_size }}Download
@empty

No published releases are available yet.

@endforelse
{{ $releases->links() }}
-
Support

Installation or activation help?

{{ $settings['support_text'] }}

Contact SonarDesk support
+
+
+
SOFTWARE DISTRIBUTION

Downloads

Installers and releases, all in one place.

+ @if($latest) + + @endif + @if($products->isNotEmpty()) +
SOFTWARE CATALOGUE

Available products

{{ $products->count() }} {{ $products->count() === 1 ? 'product' : 'products' }}
+
@foreach($products as $product) +

{{ $product->name }}

{{ $product->description ?: 'Software installer available for download.' }}

{{ $product->platform ?: 'Software' }}{{ $product->version ? 'v'.$product->version : 'Latest' }}{{ $product->formatted_size }}
Download ↓
+ @endforeach
+ @endif + @if($latest) +
SonarDesk {{ $latest->version }} release notes Show details +

{!! nl2br(e($latest->release_notes ?: 'Latest SonarDesk improvements and maintenance updates.')) !!}

@if($latest->sha256)
SHA-256{{ $latest->sha256 }}
@endif
+ @endif +
RELEASE HISTORY

Previous SonarDesk versions

@forelse($releases as $release)
SonarDesk {{ $release->version }}Build {{ $release->build_number }} · {{ ucfirst($release->channel) }} · {{ $release->published_at?->format('j M Y') }}
{{ $release->formatted_size }}Download ↓
@empty

No previous releases available.

@endforelse
{{ $releases->links() }}
+ +
+
@endsection diff --git a/views/layouts/app.blade.php b/views/layouts/app.blade.php index 6aea0e9..9099654 100644 --- a/views/layouts/app.blade.php +++ b/views/layouts/app.blade.php @@ -224,6 +224,56 @@ .download-page .release-history{padding:40px 0} .download-page .release-history .section-heading h2{font-size:28px} @media(max-width:640px){.download-page .distribution-catalogue{padding:28px 0 34px}.download-page .distribution-product-card{padding:16px}} + +/* SonarDesk downloads v3 — intentionally compact, no empty two-column release panel */ +.sd-downloads-v3{background:#f5f7fb;color:#172033;padding:40px 0 64px} +.sd-downloads-v3 .sd3-container{max-width:1060px;margin:0 auto} +.sd-downloads-v3 .sd3-heading{margin:0 0 22px} +.sd-downloads-v3 .sd3-heading h1{font-size:clamp(30px,4vw,42px);letter-spacing:-.04em;margin:5px 0 5px;color:#172033} +.sd-downloads-v3 .sd3-heading p{color:#64748b;margin:0;font-size:14px} +.sd-downloads-v3 .sd3-featured{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 30px;margin:0 0 28px;border-radius:16px;background:linear-gradient(115deg,#101c34,#203657);color:white} +.sd-downloads-v3 .sd3-tag{font-size:10px;font-weight:800;letter-spacing:.13em;color:#e8bc66} +.sd-downloads-v3 .sd3-featured h2{font-size:28px;color:white;letter-spacing:-.03em;margin:7px 0} +.sd-downloads-v3 .sd3-featured h2 span{font-weight:500;color:#cbd5e1} +.sd-downloads-v3 .sd3-featured p{font-size:13px;color:#d3dceb;max-width:540px;margin:0 0 10px;line-height:1.6} +.sd-downloads-v3 .sd3-meta{font-size:11px;color:#b9c6d9} +.sd-downloads-v3 .sd3-feature-actions{display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0} +.sd-downloads-v3 .sd3-feature-actions .btn{background:#e8bc66;color:#172033;border:0;white-space:nowrap;padding:12px 18px} +.sd-downloads-v3 .sd3-feature-actions>a:not(.btn){color:#e2e8f0;font-size:12px} +.sd-downloads-v3 .sd3-section{margin:0 0 25px} +.sd-downloads-v3 .sd3-section-title{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:0 0 13px} +.sd-downloads-v3 .sd3-section-title h2{font-size:22px;letter-spacing:-.03em;margin:4px 0 0;color:#172033} +.sd-downloads-v3 .sd3-section-title>span{font-size:12px;color:#64748b} +.sd-downloads-v3 .sd3-products{display:grid;grid-template-columns:1fr 1fr;gap:12px} +.sd-downloads-v3 .sd3-product{display:flex;align-items:center;gap:14px;min-height:110px;padding:17px 18px;border:1px solid #e1e7ef;border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.025)} +.sd-downloads-v3 .sd3-product-mark{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;background:#eaf0fa;color:#244a88;border-radius:9px;font-size:18px} +.sd-downloads-v3 .sd3-product-copy{flex:1;min-width:0} +.sd-downloads-v3 .sd3-product h3{font-size:16px;line-height:1.3;margin:0 0 4px;color:#172033} +.sd-downloads-v3 .sd3-product p{font-size:12px;line-height:1.45;color:#64748b;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} +.sd-downloads-v3 .sd3-product-meta{display:flex;flex-wrap:wrap;gap:6px 10px;color:#66758b;font-size:10px} +.sd-downloads-v3 .sd3-download-link{white-space:nowrap;align-self:center;font-size:12px;font-weight:800;color:#1d4ed8;text-decoration:none} +.sd-downloads-v3 .sd3-download-link:hover{text-decoration:underline} +.sd-downloads-v3 .sd3-details{border:1px solid #e1e7ef;border-radius:12px;background:#fff;margin:20px 0;padding:0} +.sd-downloads-v3 .sd3-details summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;padding:15px 18px;font-size:13px;font-weight:750;list-style:none} +.sd-downloads-v3 .sd3-details summary::-webkit-details-marker{display:none} +.sd-downloads-v3 .sd3-details summary span{color:#64748b;font-weight:500} +.sd-downloads-v3 .sd3-details-body{border-top:1px solid #e1e7ef;padding:15px 18px;font-size:12px;line-height:1.6} +.sd-downloads-v3 .sd3-details-body code{display:block;overflow-wrap:anywhere;font-size:11px;margin-top:5px} +.sd-downloads-v3 .sd3-archive{margin-top:26px} +.sd-downloads-v3 .sd3-history{border:1px solid #e1e7ef;border-radius:12px;background:#fff;overflow:hidden} +.sd-downloads-v3 .sd3-history-row{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:13px 18px;border-bottom:1px solid #edf0f5;font-size:12px} +.sd-downloads-v3 .sd3-history-row:last-child{border-bottom:0} +.sd-downloads-v3 .sd3-history-row>div{flex:1} +.sd-downloads-v3 .sd3-history-row strong,.sd-downloads-v3 .sd3-history-row div span{display:block} +.sd-downloads-v3 .sd3-history-row div span,.sd-downloads-v3 .sd3-history-row>span{color:#64748b;font-size:11px;margin-top:3px} +.sd-downloads-v3 .sd3-history-row a{color:#1d4ed8;font-weight:750} +.sd-downloads-v3 .sd3-empty{padding:15px 18px;font-size:12px;color:#64748b;margin:0} +.sd-downloads-v3 .sd3-help{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #dce4ee;margin-top:26px;padding-top:22px} +.sd-downloads-v3 .sd3-help h2{font-size:17px;margin:0 0 5px;color:#172033} +.sd-downloads-v3 .sd3-help p{font-size:12px;color:#64748b;margin:0} +@media(max-width:800px){.sd-downloads-v3 .sd3-products{grid-template-columns:1fr}.sd-downloads-v3 .sd3-featured{align-items:flex-start;flex-direction:column}.sd-downloads-v3 .sd3-feature-actions{align-items:flex-start}} +@media(max-width:550px){.sd-downloads-v3{padding:25px 0}.sd-downloads-v3 .sd3-product{flex-wrap:wrap}.sd-downloads-v3 .sd3-download-link{margin-left:52px}.sd-downloads-v3 .sd3-help{flex-direction:column;align-items:flex-start}.sd-downloads-v3 .sd3-history-row{gap:10px;flex-wrap:wrap}} + @stack('head')