diff --git a/Modules/Licensing/Resources/views/checkout/index.blade.php b/Modules/Licensing/Resources/views/checkout/index.blade.php index 93c7353..ca73965 100644 --- a/Modules/Licensing/Resources/views/checkout/index.blade.php +++ b/Modules/Licensing/Resources/views/checkout/index.blade.php @@ -1,15 +1,3 @@ -@extends('licensing::customer.layout') -@section('title', 'SonarDesk · Purchase') -@section('content') -
-

SonarDesk

-

Native SonarQube project monitoring for macOS.

-

Choose your licence on our secure checkout service. Your subscription and licence are processed by the existing SonarDesk licensing platform.

- @if($enabled) -

View plans & buy

- @else -

Online checkout is not yet enabled on this site. No payment will be taken here.

- @endif -

Downloads & release notes · My licences

-
-@endsection +@extends('sonardesk.layout') +@section('title','SonarDesk — Purchase') +@section('content')
SonarDesk licensing

Get SonarDesk

Choose your licence using the existing secure SonarDesk checkout service.

Purchase a licence

Your subscription, billing and licence are managed by the established SonarDesk service.

@if($enabled)View plans & buy →@else

Online checkout is not enabled on this site yet. No payment will be taken here.

@endif
@endsection diff --git a/Modules/Licensing/Resources/views/downloads/index.blade.php b/Modules/Licensing/Resources/views/downloads/index.blade.php index f14673f..f1e5644 100644 --- a/Modules/Licensing/Resources/views/downloads/index.blade.php +++ b/Modules/Licensing/Resources/views/downloads/index.blade.php @@ -1,13 +1,7 @@ @extends('sonardesk.layout') @section('title','Downloads & Release Notes') -@section('content') -
SonarDesk / Distribution

Downloads & releases.

Installers and published release history, collected in one place. Review details before downloading.

-@if($latest) -
Latest stable release

SonarDesk {{ $latest->version }}

{{ \Illuminate\Support\Str::limit(trim(strip_tags($latest->release_notes ?? 'Native SonarQube monitoring for macOS.')), 210) }}

Stable
Download SonarDesk →Release notes & requirements
-@endif -
Product library

Available downloads

Published products grouped together, with concise descriptions and direct access to details.

-@if($products->isNotEmpty())
@foreach($products as $product)
{{ $product->platform ?: 'Software' }}

{{ $product->name }} {{ $product->version }}

{{ \Illuminate\Support\Str::limit(trim(strip_tags($product->description ?? '')), 160) }}

@endforeach
-@else
No additional products have been published yet.
@endif -
-
Version history

Release notes

Browse changes and download previous published builds.

@forelse($releases as $release)

SonarDesk {{ $release->version }} {{ ucfirst($release->channel) }}

{{ \Illuminate\Support\Str::limit(trim(strip_tags($release->release_notes ?? 'Release notes available on the details page.')), 160) }}

{{ $release->published_at?->format('j M Y') }}
@empty
No releases have been published yet.
@endforelse
{{ $releases->links() }}
-@endsection +@section('content')
Software distribution

Downloads & release notes

All published applications in one place. Download current installers, view product details and read complete release notes.

Current downloads

Available software

+@if($latest)
SonarDesk · macOS

SonarDesk

Version {{ $latest->version }} @if($latest->published_at) · {{ $latest->published_at->format('j M Y') }} @endif

{{ \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) }}

@endif +@foreach($products as $product)
{{ $product->platform ?: 'Software' }}

{{ $product->name }}

{{ $product->version ? 'Version '.$product->version : 'Current release' }}

{{ \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) }}

@endforeach +
@if(!$latest && $products->isEmpty())

No published installers are available yet. Downloads appear automatically when a product or release is published in the distribution administration.

@endif
+
Release archive

SonarDesk release history

Read a summary here or open the full release page for notes, requirements and the installer.

@forelse($releases as $release)
SonarDesk {{ $release->version }}

Build {{ $release->build_number }} · {{ ucfirst($release->channel) }} @if($release->published_at) · {{ $release->published_at->format('j M Y') }} @endif

{{ \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) }}

@empty

No published releases yet.

@endforelse
{{ $releases->links() }}
@endsection diff --git a/Modules/Licensing/Resources/views/downloads/product.blade.php b/Modules/Licensing/Resources/views/downloads/product.blade.php index 5bf445b..a292ee6 100644 --- a/Modules/Licensing/Resources/views/downloads/product.blade.php +++ b/Modules/Licensing/Resources/views/downloads/product.blade.php @@ -1,3 +1,3 @@ @extends('sonardesk.layout') -@section('title', $product->name) -@section('content')
← All downloads

Product details

{{ $product->name }}

{{ $product->platform }} · Version {{ $product->version }}

Download {{ $product->original_filename ?: 'file' }} ↓Other downloads

About this product

{{ $product->description ?: 'No description provided.' }}

Download details

Platform: {{ $product->platform ?: 'Not specified' }}

Version: {{ $product->version ?: 'Not specified' }}

File: {{ $product->original_filename ?: 'Download' }}

@if($product->file_size)

Size: {{ number_format($product->file_size / 1048576, 1) }} MB

@endif
@endsection +@section('title',$product->name.' — Download') +@section('content')
← All downloads

{{ $product->platform ?: 'Software' }} · {{ $product->version ? 'Version '.$product->version : 'Current release' }}

{{ $product->name }}

Product information and installer download.

About {{ $product->name }}

{!! \Illuminate\Support\Str::markdown($product->description ?: 'Published software download.', ['html_input'=>'strip','allow_unsafe_links'=>false]) !!}

Download information

Platform: {{ $product->platform ?: 'See product documentation' }}

@if($product->version)

Version: {{ $product->version }}

@endif @if($product->file_size)

Size: {{ number_format($product->file_size / 1048576, 2) }} MB

@endifDownload installer ↓
@endsection diff --git a/Modules/Licensing/Resources/views/downloads/release.blade.php b/Modules/Licensing/Resources/views/downloads/release.blade.php index 5fbaf68..c4bdd1b 100644 --- a/Modules/Licensing/Resources/views/downloads/release.blade.php +++ b/Modules/Licensing/Resources/views/downloads/release.blade.php @@ -1,3 +1,3 @@ @extends('sonardesk.layout') -@section('title', 'SonarDesk '.$release->version.' Release Notes') -@section('content')
← All downloads

{{ ucfirst($release->channel) }} release · {{ $release->published_at?->format('j M Y') }}

SonarDesk {{ $release->version }}

Build {{ $release->build_number ?: '—' }}

Download {{ $release->original_filename ?: 'SonarDesk' }} ↓Browse all releases

Full release notes

{{ $release->release_notes ?: 'No release notes provided.' }}

System requirements

macOS {{ $release->minimum_macos ?: 'Version not specified' }}@if($release->minimum_macos) or later @endif

File information

{{ $release->original_filename ?: 'SonarDesk installer' }}

@if($release->file_size)

{{ number_format($release->file_size / 1048576, 1) }} MB

@endif @if($release->sha256)

SHA-256

{{ $release->sha256 }}@endif
@endsection +@section('title','SonarDesk '.$release->version.' — Release Notes') +@section('content')
← All downloads

SonarDesk · {{ ucfirst($release->channel) }}

SonarDesk {{ $release->version }}

Build {{ $release->build_number }} @if($release->published_at) · Released {{ $release->published_at->format('j F Y') }} @endif

Release notes

{!! \Illuminate\Support\Str::markdown($release->release_notes ?: 'No release notes were provided for this version.', ['html_input'=>'strip','allow_unsafe_links'=>false]) !!}

System requirements

Platform: macOS

Minimum version: {{ $release->minimum_macos ?: 'See application documentation' }}


Installation

  1. Download the signed application installer.
  2. Open the downloaded disk image and move SonarDesk into Applications.
  3. Launch SonarDesk and configure your SonarQube connection.
@if($release->file_size)

Installer size: {{ number_format($release->file_size / 1048576, 2) }} MB

@endif @if($release->sha256)
SHA-256 checksum

{{ $release->sha256 }}

@endif
@endsection diff --git a/public/css/sonardesk-absdev.css b/public/css/sonardesk-absdev.css new file mode 100644 index 0000000..d53e3e1 --- /dev/null +++ b/public/css/sonardesk-absdev.css @@ -0,0 +1,2 @@ +/* SonarDesk product & distribution — ABSDEV navy/gold design */ +:root{--sd-bg:#0b1729;--sd-navy:#102540;--sd-navy2:#173657;--sd-gold:#d9b36a;--sd-gold2:#f1d69b;--sd-text:#f5f7fc;--sd-muted:#b6c4d8;--sd-line:rgba(204,221,244,.17)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4f7fb;color:#14263e;font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:#a97924}.sd-container{width:min(1320px,calc(100% - 64px));margin-inline:auto}.sd-header{background:var(--sd-bg);color:white;border-bottom:1px solid var(--sd-line);position:relative;z-index:30}.sd-header-row{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:25px}.sd-logo{font-size:24px;font-weight:850;letter-spacing:-.04em;white-space:nowrap}.sd-logo span,.sd-footer strong span{color:var(--sd-gold)}.sd-mark{display:inline-grid;place-items:center;width:35px;height:35px;border:1px solid var(--sd-gold);border-radius:9px;margin-right:9px}.sd-mainnav{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:650}.sd-mainnav>a:hover,.sd-navparent:hover{color:var(--sd-gold2)}.sd-navgroup{position:relative;padding:26px 0}.sd-subnav{position:absolute;top:100%;left:-20px;min-width:220px;padding:10px;background:#142b49;border:1px solid var(--sd-line);border-radius:12px;box-shadow:0 18px 40px #0004;display:none}.sd-navgroup:hover .sd-subnav,.sd-navgroup:focus-within .sd-subnav{display:grid}.sd-subnav a{padding:9px 12px;border-radius:7px}.sd-subnav a:hover{background:#ffffff14;color:var(--sd-gold2)}.sd-mobile{display:none}.sd-hero{background:radial-gradient(ellipse at 80% 0%,#244e78 0,transparent 45%),linear-gradient(130deg,#0a1729,#142c4a);color:var(--sd-text);padding:90px 0 92px}.sd-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:70px;align-items:center}.sd-eyebrow{font-size:12px;font-weight:800;letter-spacing:.19em;text-transform:uppercase;color:var(--sd-gold)}.sd-hero h1{font-size:clamp(43px,5.3vw,76px);line-height:1.09;letter-spacing:-.055em;margin:18px 0 25px}.sd-hero h1 em{color:var(--sd-gold);font-style:normal}.sd-hero p{font-size:19px;max-width:720px;color:#c7d4e4}.sd-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.sd-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:9px;font-weight:750;font-size:14px;min-height:48px;border:1px solid transparent}.sd-btn-primary{background:var(--sd-gold);color:#10233b}.sd-btn-primary:hover{background:var(--sd-gold2);color:#10233b}.sd-btn-ghost{border-color:#ffffff65;color:white}.sd-btn-ghost:hover{background:#ffffff1c;color:white}.sd-btn-dark{background:#173658;color:white}.sd-btn-dark:hover{background:#254e79;color:white}.sd-visual{border:1px solid #ffffff32;border-radius:20px;padding:24px;background:linear-gradient(155deg,#18365a,#0b1b30);box-shadow:0 25px 65px #0004}.sd-visual-top{display:flex;gap:7px;margin-bottom:26px}.sd-visual-top i{width:9px;height:9px;border-radius:50%;background:#718ba9}.sd-visual-title{font-size:15px;color:#dbe6f5;font-weight:700}.sd-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px}.sd-metric{border:1px solid #ffffff22;border-radius:10px;padding:16px;background:#ffffff08}.sd-metric b{display:block;font-size:27px;color:var(--sd-gold)}.sd-metric span{font-size:12px;color:#b4c8df}.sd-section{padding:72px 0}.sd-section-alt{background:#eaf0f7}.sd-section h2{font-size:clamp(28px,3vw,40px);line-height:1.18;letter-spacing:-.035em;margin:12px 0 18px}.sd-intro{max-width:740px;color:#52627a}.sd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}.sd-card{background:white;border:1px solid #dce5ef;border-radius:15px;padding:28px;box-shadow:0 10px 28px #0b264009}.sd-card h3{margin:12px 0 8px;font-size:22px;line-height:1.3}.sd-card p{color:#586980}.sd-card .sd-eyebrow{color:#a67826}.sd-card a.sd-textlink{color:#173e6c;font-weight:750}.sd-card a.sd-textlink:hover{text-decoration:underline}.sd-card-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}.sd-meta{font-size:13px;color:#62738b}.sd-pagehead{padding:65px 0 62px;background:linear-gradient(120deg,#0b192d,#193b61);color:white}.sd-pagehead h1{font-size:clamp(36px,4.5vw,58px);letter-spacing:-.04em;margin:10px 0}.sd-pagehead p{color:#c7d4e4;max-width:780px;font-size:18px}.sd-back{font-weight:700;color:#b78a39;font-size:14px}.sd-detail{max-width:960px;margin:0 auto}.sd-prose{line-height:1.8;overflow-wrap:anywhere}.sd-prose h2,.sd-prose h3{margin-top:26px}.sd-prose pre{overflow:auto;background:#eef2f7;padding:16px;border-radius:8px}.sd-prose code{overflow-wrap:anywhere}.sd-divider{border:0;border-top:1px solid #dce5ef;margin:30px 0}.sd-list{display:grid;gap:12px;margin-top:25px}.sd-row{display:flex;align-items:center;justify-content:space-between;gap:20px;background:white;border:1px solid #dce5ef;border-radius:12px;padding:18px 22px}.sd-row p{margin:2px 0;color:#687a8d;font-size:13px}.sd-row-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.sd-row-actions a{color:#1a4a79;font-weight:750}.sd-note{padding:18px 22px;border-left:4px solid var(--sd-gold);background:#fff;border-radius:7px}.sd-price{font-size:35px;font-weight:850;letter-spacing:-.04em;margin:15px 0}.sd-price small{font-size:14px;font-weight:500;color:#64748b}.sd-footer{background:var(--sd-bg);color:#cad5e3;padding:42px 0}.sd-footer-row{display:flex;justify-content:space-between;gap:24px}.sd-footer strong{font-size:22px;color:white}.sd-footer p{margin:3px 0;font-size:13px}.sd-footer-row>div:last-child{display:flex;gap:24px;flex-wrap:wrap;align-items:center;font-size:14px}.sd-pagination{margin-top:25px}.sd-checksum{overflow-wrap:anywhere;font-size:13px;background:#eef2f7;padding:14px;border-radius:8px}@media(max-width:950px){.sd-hero-grid{grid-template-columns:1fr;gap:28px}.sd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sd-mainnav{gap:14px}}@media(max-width:700px){.sd-container{width:min(100% - 32px,1320px)}.sd-mainnav{display:none}.sd-mobile{display:block;position:relative}.sd-mobile summary{cursor:pointer;font-weight:700;list-style:none}.sd-mobile nav{position:absolute;right:0;top:40px;display:grid;min-width:235px;padding:12px;background:#132b49;border:1px solid #ffffff3b;border-radius:10px;box-shadow:0 15px 35px #0005}.sd-mobile nav a{padding:9px 12px}.sd-hero{padding:58px 0}.sd-grid{grid-template-columns:1fr}.sd-section{padding:50px 0}.sd-row{align-items:flex-start;flex-direction:column}.sd-footer-row{flex-direction:column}} diff --git a/resources/themes/saasland/views/home.blade.php b/resources/themes/saasland/views/home.blade.php index adda760..b352ce6 100644 --- a/resources/themes/saasland/views/home.blade.php +++ b/resources/themes/saasland/views/home.blade.php @@ -23,10 +23,10 @@ : 'Streamline operations, boost productivity, and improve customer satisfaction with one connected platform built for modern teams.', ]) @endif -
-
-
ABSDEV SOFTWARE

SonarDesk

Native SonarQube monitoring for macOS. Keep quality gates, issues and project health in view, all from your desktop.

-
Explore SonarDesk →Downloads
+
+
+
ABSDEV SOFTWARE

Meet SonarDesk

Native SonarQube monitoring for macOS. Quality gates, vulnerabilities, bugs and issue details — without the browser clutter.

+

SonarDesk for macOS

Know your code health.

One focused workspace for project quality, issues and server connections.

Explore features →
@endsection diff --git a/resources/themes/saasland/views/partials/header.blade.php b/resources/themes/saasland/views/partials/header.blade.php index 99e39bb..d4fbf61 100644 --- a/resources/themes/saasland/views/partials/header.blade.php +++ b/resources/themes/saasland/views/partials/header.blade.php @@ -14,39 +14,19 @@ @if (filter_var($headerContent['show_navigation'] ?? true, FILTER_VALIDATE_BOOL)) @endif