From ac6b515d9ace7b6522d44b34c7d882a289a185fe Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Mon, 18 May 2026 08:37:26 +0200 Subject: [PATCH 1/5] Reapply "Merge branch 'feature/workshop-banner' into develop" This reverts commit 13e32ec9f5617822825092f9adf9147305275664. --- assets/js/{hubcontact.js => apiform.js} | 11 +- config/_default/params.yaml | 7 + content/webinar.de.html | 5 + content/webinar.en.html | 5 + i18n/de.yaml | 48 ++++++ i18n/en.yaml | 48 ++++++ layouts/_default/baseof.html | 18 ++- layouts/become-a-partner/single.html | 12 +- layouts/book-a-demo/single.html | 12 +- layouts/contact-sales/single.html | 12 +- layouts/partials/nav.html | 5 + layouts/webinar/single.html | 185 ++++++++++++++++++++++++ 12 files changed, 343 insertions(+), 25 deletions(-) rename assets/js/{hubcontact.js => apiform.js} (85%) create mode 100644 content/webinar.de.html create mode 100644 content/webinar.en.html create mode 100644 layouts/webinar/single.html diff --git a/assets/js/hubcontact.js b/assets/js/apiform.js similarity index 85% rename from assets/js/hubcontact.js rename to assets/js/apiform.js index 1bbe98148..f129d8150 100644 --- a/assets/js/hubcontact.js +++ b/assets/js/apiform.js @@ -1,13 +1,12 @@ "use strict"; -const REQUEST_HUB_CONTACT_URL = API_BASE_URL + '/connect/contact/request-contact'; +class ApiForm { -class HubContact { - - constructor(form, feedbackData, submitData) { + constructor(form, feedbackData, submitData, url) { this._form = form; this._feedbackData = feedbackData; this._submitData = submitData; + this._url = url; } request() { @@ -22,7 +21,7 @@ class HubContact { this._feedbackData.errorMessage = ''; $.ajax({ - url: REQUEST_HUB_CONTACT_URL, + url: this._url, type: 'POST', data: JSON.stringify(this._submitData), contentType: "application/json; charset=utf-8", @@ -46,4 +45,4 @@ class HubContact { window.scrollTo(0, 0); } -} \ No newline at end of file +} diff --git a/config/_default/params.yaml b/config/_default/params.yaml index d27a2f696..c8137e07e 100644 --- a/config/_default/params.yaml +++ b/config/_default/params.yaml @@ -8,6 +8,13 @@ anniversaryBanner: - /paddle-checkout/ - /hub/billing/ +webinarBanner: + enabled: false + excludePaths: + - /downloads-thanks/ + - /paddle-checkout/ + - /hub/billing/ + releases: exe: version: 1.19.2 diff --git a/content/webinar.de.html b/content/webinar.de.html new file mode 100644 index 000000000..3a2d5437a --- /dev/null +++ b/content/webinar.de.html @@ -0,0 +1,5 @@ +--- +title: "Webinar: Cryptomator für Unternehmen" +description: "Nimm an unserem kostenlosen Live-Webinar teil und erfahre, wie du die Cloud-Daten deines Teams mit Zero-Knowledge-Verschlüsselung schützt." +type: webinar +--- diff --git a/content/webinar.en.html b/content/webinar.en.html new file mode 100644 index 000000000..069c2b655 --- /dev/null +++ b/content/webinar.en.html @@ -0,0 +1,5 @@ +--- +title: "Webinar: Cryptomator for Companies" +description: "Join our free live webinar and learn how to protect your team's cloud data with zero-knowledge encryption." +type: webinar +--- diff --git a/i18n/de.yaml b/i18n/de.yaml index f9e928681..6d8150df2 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -1328,6 +1328,54 @@ - id: success_story_read_link translation: "Erfolgsgeschichte lesen" +# Live Webinar Banner +- id: webinar_banner + translation: "Live-Webinar – Cryptomator für Unternehmen  Jetzt anmelden " + +# Webinar Form +- id: webinar_first_name + translation: "Vorname" +- id: webinar_last_name + translation: "Nachname" +- id: webinar_email + translation: "E-Mail-Adresse" +- id: webinar_company + translation: "Unternehmen" +- id: webinar_submit + translation: "Jetzt anmelden" +- id: webinar_form_title + translation: "Sichere dir deinen Platz" +- id: webinar_form_subtitle + translation: "Du erhältst die Bestätigung und vor dem Termin eine Erinnerung per E-Mail." +- id: webinar_success_title + translation: "Du bist angemeldet!" +- id: webinar_success_message + translation: "Vielen Dank für deine Anmeldung. Du erhältst in Kürze eine Bestätigungs-E-Mail mit den Webinar-Details." +- id: webinar_success_inbox_hint + translation: "Bitte prüfe auch deinen Spam-Ordner." +- id: webinar_details_title + translation: "Webinar-Details" +- id: webinar_date_label + translation: "Datum" +- id: webinar_date_value + translation: "27. März 2026" +- id: webinar_time_label + translation: "Uhrzeit" +- id: webinar_time_value + translation: "11:30 Uhr MEZ" +- id: webinar_language_label + translation: "Sprache" +- id: webinar_language_value + translation: "Englisch" +- id: webinar_learn_title + translation: "Das lernst du" +- id: webinar_learn_1 + translation: "Cloud-Speicher für dein Unternehmen verschlüsseln" +- id: webinar_learn_2 + translation: "Cryptomator Hub einrichten und verwalten" +- id: webinar_learn_3 + translation: "Best Practices für den unternehmensweiten Einsatz" + # Sale - id: sale_off translation: "Rabatt" diff --git a/i18n/en.yaml b/i18n/en.yaml index 4bd58b66f..6673de7a7 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -1367,6 +1367,54 @@ - id: success_story_read_link translation: "Read success story" +# Live Webinar Banner +- id: webinar_banner + translation: "Live Webinar – Cryptomator for Companies  Sign up " + +# Webinar Form +- id: webinar_first_name + translation: "First Name" +- id: webinar_last_name + translation: "Last Name" +- id: webinar_email + translation: "Email Address" +- id: webinar_company + translation: "Company" +- id: webinar_submit + translation: "Register Now" +- id: webinar_form_title + translation: "Reserve your seat" +- id: webinar_form_subtitle + translation: "We'll email you a confirmation and a reminder before the session." +- id: webinar_success_title + translation: "You're registered!" +- id: webinar_success_message + translation: "Thank you for registering. You will receive a confirmation email with the webinar details shortly." +- id: webinar_success_inbox_hint + translation: "Please also check your spam folder." +- id: webinar_details_title + translation: "Webinar Details" +- id: webinar_date_label + translation: "Date" +- id: webinar_date_value + translation: "March 27, 2026" +- id: webinar_time_label + translation: "Time" +- id: webinar_time_value + translation: "11:30 AM CET" +- id: webinar_language_label + translation: "Language" +- id: webinar_language_value + translation: "English" +- id: webinar_learn_title + translation: "What You'll Learn" +- id: webinar_learn_1 + translation: "Encrypt cloud storage for your company" +- id: webinar_learn_2 + translation: "Set up and manage Cryptomator Hub" +- id: webinar_learn_3 + translation: "Best practices for company-wide deployment" + # Sale - id: sale_off translation: "Off" diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index e452eaa2f..2785982be 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -76,13 +76,29 @@ {{- end -}} {{- end -}} {{- .Scratch.Set "anniversaryBannerActive" $showAnniversaryBanner -}} + {{- $webinarBanner := .Site.Params.webinarBanner -}} + {{- $showWebinarBanner := false -}} + {{- if and $webinarBanner $webinarBanner.enabled -}} + {{- $showWebinarBanner = true -}} + {{- $currentPath := .RelPermalink -}} + {{- range $webinarBanner.excludePaths -}} + {{- if hasPrefix $currentPath . -}} + {{- $showWebinarBanner = false -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- .Scratch.Set "webinarBannerActive" $showWebinarBanner -}} {{ partial "nav.html" . }} {{- if $showAnniversaryBanner -}} {{ partial "anniversary-banner.html" . }} {{- end -}} {{- $topPadding := cond .IsHome "" "pt-12" -}} - {{- if $showAnniversaryBanner -}} + {{- if and $showWebinarBanner (not $showAnniversaryBanner) -}} + {{- $topPadding = cond .IsHome "" "pt-24 md:pt-18" -}} + {{- else if and (not $showWebinarBanner) $showAnniversaryBanner -}} {{- $topPadding = cond .IsHome "" "pt-28 md:pt-24" -}} + {{- else if and $showWebinarBanner $showAnniversaryBanner -}} + {{- $topPadding = cond .IsHome "" "pt-40 md:pt-32" -}} {{- end -}}
diff --git a/layouts/become-a-partner/single.html b/layouts/become-a-partner/single.html index 446a6781e..e6ff1591f 100644 --- a/layouts/become-a-partner/single.html +++ b/layouts/become-a-partner/single.html @@ -2,13 +2,13 @@ {{ partial "altcha-css.html" . }} {{ end }} {{ define "main" }} -
+

{{ .Title }}

{{ .Description }}

-
+
@@ -218,8 +218,8 @@

{{ if hugo.IsDevelopment }} {{ $newsletterJs := resources.Get "js/newsletter.js" }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" }} - + {{ $apiFormJs := resources.Get "js/apiform.js" }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} @@ -227,8 +227,8 @@

{{ else }} {{ $newsletterJs := resources.Get "js/newsletter.js" | minify | fingerprint }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" | minify | fingerprint }} - + {{ $apiFormJs := resources.Get "js/apiform.js" | minify | fingerprint }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} diff --git a/layouts/book-a-demo/single.html b/layouts/book-a-demo/single.html index 9ca9cadc0..574881379 100644 --- a/layouts/book-a-demo/single.html +++ b/layouts/book-a-demo/single.html @@ -2,13 +2,13 @@ {{ partial "altcha-css.html" . }} {{ end }} {{ define "main" }} -
+

{{ .Title }}

{{ .Description }}

- +
@@ -264,8 +264,8 @@

{{ if hugo.IsDevelopment }} {{ $newsletterJs := resources.Get "js/newsletter.js" }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" }} - + {{ $apiFormJs := resources.Get "js/apiform.js" }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} @@ -273,8 +273,8 @@

{{ else }} {{ $newsletterJs := resources.Get "js/newsletter.js" | minify | fingerprint }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" | minify | fingerprint }} - + {{ $apiFormJs := resources.Get "js/apiform.js" | minify | fingerprint }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} diff --git a/layouts/contact-sales/single.html b/layouts/contact-sales/single.html index 41fbef619..e19cd5208 100644 --- a/layouts/contact-sales/single.html +++ b/layouts/contact-sales/single.html @@ -2,13 +2,13 @@ {{ partial "altcha-css.html" . }} {{ end }} {{ define "main" }} -
+

{{ .Title }}

{{ .Description }}

- +
@@ -206,8 +206,8 @@

{{ if hugo.IsDevelopment }} {{ $newsletterJs := resources.Get "js/newsletter.js" }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" }} - + {{ $apiFormJs := resources.Get "js/apiform.js" }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} @@ -215,8 +215,8 @@

{{ else }} {{ $newsletterJs := resources.Get "js/newsletter.js" | minify | fingerprint }} - {{ $hubContactJs := resources.Get "js/hubcontact.js" | minify | fingerprint }} - + {{ $apiFormJs := resources.Get "js/apiform.js" | minify | fingerprint }} + {{ $altchaJs := resources.Get "js/altcha/altcha.js" }} {{ $altchaWorkerJs := resources.Get "js/altcha/worker.js" }} diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 26adfff23..d934a2d94 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -4,6 +4,11 @@ {{- $backgroundColor := cond .IsHome "bg-dark" "bg-white" -}} {{- $currentRelPermalink := .RelPermalink -}}