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/assets/js/webinar.js b/assets/js/webinar.js new file mode 100644 index 000000000..8e8e8352e --- /dev/null +++ b/assets/js/webinar.js @@ -0,0 +1,22 @@ +"use strict"; + +class Webinar { + + constructor(webinarId, lang, languageNames, data) { + $.getJSON(`${API_BASE_URL}/connect/contact/webinar/${webinarId}`).done(d => { + data.name = d.name; + data.language = languageNames[d.language]; + data.dateStart = d.dateStart.replace(' ', 'T') + 'Z'; + data.lead = d.metadata.lead[lang]; + data.learnTitle = d.metadata.learn.title[lang]; + data.learnItems = (d.metadata.learn.items).map(i => i[lang]); + }).fail(xhr => { + console.error('Fetching webinar data failed:', xhr.responseJSON?.message || xhr.statusText); + }); + } + + static formatBerlin(iso, opts) { + return new Intl.DateTimeFormat(document.documentElement.lang || 'en', { timeZone: 'Europe/Berlin', ...opts }).format(new Date(iso)); + } + +} diff --git a/config/_default/params.yaml b/config/_default/params.yaml index d27a2f696..a54d0f899 100644 --- a/config/_default/params.yaml +++ b/config/_default/params.yaml @@ -8,6 +8,15 @@ anniversaryBanner: - /paddle-checkout/ - /hub/billing/ +webinar: + webinarId: "6a0427f47bf7eebc0" + banner: + 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..87bce963c --- /dev/null +++ b/content/webinar.de.html @@ -0,0 +1,5 @@ +--- +title: "Webinar" +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..94f56ade5 --- /dev/null +++ b/content/webinar.en.html @@ -0,0 +1,5 @@ +--- +title: "Webinar" +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..8993756bf 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -1328,6 +1328,46 @@ - id: success_story_read_link translation: "Erfolgsgeschichte lesen" +# Live Webinar Banner +- id: webinar_banner + translation: "Live-Webinar – 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 / Organisation" +- 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_time_label + translation: "Uhrzeit" +- id: webinar_language_label + translation: "Sprache" +- id: webinar_language_en + translation: "Englisch" +- id: webinar_language_de + translation: "Deutsch" +- id: webinar_accept_privacy + translation: "Ich akzeptiere die Datenschutzerklärung." + # Sale - id: sale_off translation: "Rabatt" diff --git a/i18n/en.yaml b/i18n/en.yaml index 4bd58b66f..9a4ac4b63 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -1367,6 +1367,46 @@ - id: success_story_read_link translation: "Read success story" +# Live Webinar Banner +- id: webinar_banner + translation: "Live Webinar – 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 / Organization" +- 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_time_label + translation: "Time" +- id: webinar_language_label + translation: "Language" +- id: webinar_language_en + translation: "English" +- id: webinar_language_de + translation: "German" +- id: webinar_accept_privacy + translation: "I accept the Privacy Policy." + # Sale - id: sale_off translation: "Off" diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index e452eaa2f..46db7718c 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -76,13 +76,29 @@ {{- end -}} {{- end -}} {{- .Scratch.Set "anniversaryBannerActive" $showAnniversaryBanner -}} + {{- $webinarBanner := .Site.Params.webinar.banner -}} + {{- $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..fcf235b07 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -4,6 +4,11 @@ {{- $backgroundColor := cond .IsHome "bg-dark" "bg-white" -}} {{- $currentRelPermalink := .RelPermalink -}}