move into sonardesk

This commit is contained in:
Mark Gregory
2026-10-12 16:23:27 +01:00
parent 27af94d8ca
commit dd1f144908
15 changed files with 66 additions and 36 deletions
@@ -1,7 +1,4 @@
@extends('sonardesk.layout')
@section('title','Downloads & Release Notes')
@section('content')<section class="sd-pagehead"><div class="sd-container"><span class="sd-eyebrow">Software distribution</span><h1>Downloads &amp; release notes</h1><p>All published applications in one place. Download current installers, view product details and read complete release notes.</p></div></section><section class="sd-section"><div class="sd-container"><span class="sd-eyebrow">Current downloads</span><h2>Available software</h2><div class="sd-grid">
@if($latest)<article class="sd-card"><span class="sd-eyebrow">SonarDesk · macOS</span><h3>SonarDesk</h3><p class="sd-meta">Version {{ $latest->version }} @if($latest->published_at) · {{ $latest->published_at->format('j M Y') }} @endif</p><p>{{ \Illuminate\Support\Str::limit(trim(preg_replace('/\s+/', ' ', strip_tags(\Illuminate\Support\Str::markdown($latest->release_notes ?: 'Native SonarQube project monitoring for macOS.', ['html_input'=>'strip','allow_unsafe_links'=>false])))), 155) }}</p><div class="sd-card-actions"><a class="sd-btn sd-btn-dark" href="{{ route('sonardesk.latest') }}">Download ↓</a><a class="sd-textlink" href="{{ route('sonardesk.releases.show',$latest) }}">Details &amp; notes →</a></div></article>@endif
@foreach($products as $product)<article class="sd-card"><span class="sd-eyebrow">{{ $product->platform ?: 'Software' }}</span><h3>{{ $product->name }}</h3><p class="sd-meta">{{ $product->version ? 'Version '.$product->version : 'Current release' }}</p><p>{{ \Illuminate\Support\Str::limit(trim(preg_replace('/\s+/', ' ', strip_tags(\Illuminate\Support\Str::markdown($product->description ?: 'Published software download.', ['html_input'=>'strip','allow_unsafe_links'=>false])))), 155) }}</p><div class="sd-card-actions"><a class="sd-btn sd-btn-dark" href="{{ route('sonardesk.products.download',$product) }}">Download ↓</a><a class="sd-textlink" href="{{ route('sonardesk.products.show',$product) }}">Product details →</a></div></article>@endforeach
</div>@if(!$latest && $products->isEmpty())<p class="sd-note">No published installers are available yet. Downloads appear automatically when a product or release is published in the distribution administration.</p>@endif</div></section>
<section class="sd-section sd-section-alt"><div class="sd-container"><span class="sd-eyebrow">Release archive</span><h2>SonarDesk release history</h2><p class="sd-intro">Read a summary here or open the full release page for notes, requirements and the installer.</p><div class="sd-list">@forelse($releases as $release)<article class="sd-row"><div><strong>SonarDesk {{ $release->version }}</strong><p>Build {{ $release->build_number }} · {{ ucfirst($release->channel) }} @if($release->published_at) · {{ $release->published_at->format('j M Y') }} @endif</p><p>{{ \Illuminate\Support\Str::limit(trim(preg_replace('/\s+/', ' ', strip_tags(\Illuminate\Support\Str::markdown($release->release_notes ?: 'Release information available on the details page.', ['html_input'=>'strip','allow_unsafe_links'=>false])))), 160) }}</p></div><div class="sd-row-actions"><a href="{{ route('sonardesk.releases.show',$release) }}">Release details →</a><a href="{{ route('sonardesk.releases.download',$release) }}">Download ↓</a></div></article>@empty<p>No published releases yet.</p>@endforelse</div><div class="sd-pagination">{{ $releases->links() }}</div></div></section>@endsection
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Product downloads · ABSDEV</title><link rel="stylesheet" href="{{ asset('css/sonardesk-absdev.css') }}"><link rel="stylesheet" href="{{ asset('css/sonardesk-downloads.css') }}"></head><body class="sd-site"><header class="sd-top"><a class="sd-brand" href="{{ url('/') }}">ABS<span>DEV</span></a><nav><a href="{{ url('/sonardesk') }}">SonarDesk</a><a href="{{ url('/sonardesk/features') }}">Features</a><a href="{{ url('/sonardesk/pricing') }}">Pricing</a><a class="selected" href="{{ route('sonardesk.downloads') }}">Downloads</a></nav></header><main class="sd-main"><section class="sd-intro"><span class="sd-kicker">ABSDEV SOFTWARE</span><h1>Downloads &amp; releases</h1><p>Get the latest versions of SonarDesk, SonarDisk and additional tools. Choose the installer that matches your system.</p></section>
@if($latest)<section class="sd-feature"><div><span class="sd-kicker">LATEST STABLE · SONARDESK</span><h2>SonarDesk <span>{{ $latest->version }}</span></h2><p>{{ \Illuminate\Support\Str::limit(strip_tags($latest->release_notes ?: 'Native SonarQube monitoring for macOS.'),180) }}</p><div class="sd-buttons"><a class="sd-btn" href="{{ route('sonardesk.releases.download',$latest) }}">Download for macOS ↓</a><a class="sd-btn ghost" href="{{ route('sonardesk.releases.show',$latest) }}">Release details →</a></div></div><div class="sd-feature-art"><span>Sonar<span class="sd-gold">Desk</span></span><small>Native code quality dashboard</small></div></section>@endif
@if($products->isNotEmpty())<section class="sd-section"><div class="sd-section-title"><span class="sd-kicker">SOFTWARE LIBRARY</span><h2>Products &amp; alternative downloads</h2><p>Installers are grouped by product, with each available platform and version listed together.</p></div>@foreach($products->groupBy('name') as $name => $files)<article class="sd-product"><div class="sd-product-head"><div><h3>{{ $name }}</h3><p>{{ $files->first()->description ?: 'Available downloads and supporting files.' }}</p></div><span class="sd-count">{{ $files->count() }} {{ $files->count() === 1 ? 'download' : 'downloads' }}</span></div><div class="sd-files">@foreach($files as $file)<div class="sd-file"><div><strong>{{ $file->version ? 'Version '.$file->version : ($file->original_filename ?: 'Download') }}</strong><small>{{ $file->platform ?: 'All platforms' }} @if($file->file_size) · {{ number_format($file->file_size / 1048576,1) }} MB @endif</small></div><div class="sd-file-actions"><a href="{{ route('sonardesk.products.show',$file) }}">Details</a><a class="sd-btn small" href="{{ route('sonardesk.products.download',$file) }}">Download ↓</a></div></div>@endforeach</div></article>@endforeach</section>@endif
<section class="sd-section"><div class="sd-section-title"><span class="sd-kicker">RELEASE HISTORY</span><h2>SonarDesk versions</h2><p>Full release notes and system requirements are available on each release page.</p></div><div class="sd-history">@forelse($releases as $release)<div class="sd-file"><div><strong>SonarDesk {{ $release->version }}</strong><small>Build {{ $release->build_number }} · {{ ucfirst($release->channel) }}</small><p>{{ \Illuminate\Support\Str::limit(strip_tags($release->release_notes ?: 'Release information'),120) }}</p></div><div class="sd-file-actions"><a href="{{ route('sonardesk.releases.show',$release) }}">Release notes</a><a class="sd-btn small" href="{{ route('sonardesk.releases.download',$release) }}">Download ↓</a></div></div>@empty<p>No SonarDesk releases published yet.</p>@endforelse</div><div class="sd-pagination">{{ $releases->links() }}</div></section></main><footer class="sd-footer"><span>© {{ date('Y') }} ABSDEV</span><a href="{{ url('/') }}">ABSDEV homepage</a></footer></body></html>