From 0a6bf39353036b6f1ea2359b7212725ac67529a2 Mon Sep 17 00:00:00 2001 From: timvisee Date: Mon, 30 Jun 2025 23:12:54 +0200 Subject: [PATCH 1/2] Add Thunderbird sponsorship banner to home, uploads and download page --- app/main.css | 4 +++ app/ui/archiveTile.js | 25 +++++++++++++- app/ui/home.js | 25 ++++++++++++++ app/ui/intro.js | 26 +++++++++++++++ assets/thunderbird-icon.svg | 65 +++++++++++++++++++++++++++++++++++++ server/clientConstants.js | 1 + server/config.js | 5 +++ 7 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 assets/thunderbird-icon.svg diff --git a/app/main.css b/app/main.css index e9f17be4..0b9bf723 100644 --- a/app/main.css +++ b/app/main.css @@ -171,6 +171,10 @@ footer li a:hover { text-decoration: underline; } +.d-block { + display: block; +} + .main { display: flex; position: relative; diff --git a/app/ui/archiveTile.js b/app/ui/archiveTile.js index fb14e54a..39ec82b3 100644 --- a/app/ui/archiveTile.js +++ b/app/ui/archiveTile.js @@ -578,6 +578,29 @@ module.exports.preview = function(state, emit) {

` : ''; + const sponsor = state.WEB_UI.SHOW_THUNDERBIRD_SPONSOR + ? html` + + + + + Sponsored by Thunderbird + + ` + : ''; return html` ${state.translate('downloadButtonLabel')} - ${notice} + ${notice} ${sponsor} `; diff --git a/app/ui/home.js b/app/ui/home.js index 63238266..4215fcb1 100644 --- a/app/ui/home.js +++ b/app/ui/home.js @@ -4,6 +4,7 @@ const { list } = require('../utils'); const archiveTile = require('./archiveTile'); const modal = require('./modal'); const intro = require('./intro'); +const assets = require('../../common/assets'); module.exports = function(state, emit) { const archives = state.storage.files @@ -30,6 +31,30 @@ module.exports = function(state, emit) { archives.reverse(); + if (archives.length > 0 && state.WEB_UI.SHOW_THUNDERBIRD_SPONSOR) { + archives.push(html` + + + + + Sponsored by Thunderbird + + `); + } + const right = archives.length === 0 ? intro(state) diff --git a/app/ui/intro.js b/app/ui/intro.js index dbdd3dc1..6fdbfd43 100644 --- a/app/ui/intro.js +++ b/app/ui/intro.js @@ -1,5 +1,6 @@ const html = require('choo/html'); const raw = require('choo/html/raw'); +const assets = require('../../common/assets'); module.exports = function intro(state) { const notice = state.WEB_UI.MAIN_NOTICE_HTML @@ -12,6 +13,30 @@ module.exports = function intro(state) { ` : ''; + const sponsor = state.WEB_UI.SHOW_THUNDERBIRD_SPONSOR + ? html` + + + + + Sponsored by Thunderbird + + ` + : ''; + return html` + ${sponsor} `; }; diff --git a/assets/thunderbird-icon.svg b/assets/thunderbird-icon.svg new file mode 100644 index 00000000..4f555086 --- /dev/null +++ b/assets/thunderbird-icon.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/clientConstants.js b/server/clientConstants.js index 6df763ec..b340f585 100644 --- a/server/clientConstants.js +++ b/server/clientConstants.js @@ -19,6 +19,7 @@ module.exports = { UPLOAD_AREA_NOTICE_HTML: config.upload_area_notice_html, UPLOADS_LIST_NOTICE_HTML: config.uploads_list_notice_html, DOWNLOAD_NOTICE_HTML: config.download_notice_html, + SHOW_THUNDERBIRD_SPONSOR: config.show_thunderbird_sponsor, COLORS: { PRIMARY: config.ui_color_primary, ACCENT: config.ui_color_accent diff --git a/server/config.js b/server/config.js index 1df07bad..07b94d61 100644 --- a/server/config.js +++ b/server/config.js @@ -284,6 +284,11 @@ const conf = convict({ default: '', env: 'SEND_DOWNLOAD_NOTICE_HTML' }, + show_thunderbird_sponsor: { + format: Boolean, + default: false, + env: 'SHOW_THUNDERBIRD_SPONSOR' + }, ui_color_primary: { format: String, default: '#0a84ff', From 154a8a90c13d02ff90642e88550cd0adea667d01 Mon Sep 17 00:00:00 2001 From: timvisee Date: Mon, 30 Jun 2025 23:25:43 +0200 Subject: [PATCH 2/2] Add sponsored by Thunderbird label to translations --- app/ui/archiveTile.js | 2 +- public/locales/en-CA/send.ftl | 2 ++ public/locales/en-GB/send.ftl | 2 ++ public/locales/en-US/send.ftl | 2 ++ public/locales/nl/send.ftl | 4 +++- 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/ui/archiveTile.js b/app/ui/archiveTile.js index 39ec82b3..e8d77900 100644 --- a/app/ui/archiveTile.js +++ b/app/ui/archiveTile.js @@ -597,7 +597,7 @@ module.exports.preview = function(state, emit) { height="30" /> - Sponsored by Thunderbird + ${state.translate('sponsoredByThunderbird')} ` : ''; diff --git a/public/locales/en-CA/send.ftl b/public/locales/en-CA/send.ftl index 35fd7ba7..a7b71adf 100644 --- a/public/locales/en-CA/send.ftl +++ b/public/locales/en-CA/send.ftl @@ -147,3 +147,5 @@ shareLinkButton = Share link shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing trailheadPromo = There is a way to protect your privacy. Join Firefox. learnMore = Learn more. + +sponsoredByThunderbird = Sponsored by Thunderbird diff --git a/public/locales/en-GB/send.ftl b/public/locales/en-GB/send.ftl index 1fb7a3f8..3b57c4e4 100644 --- a/public/locales/en-GB/send.ftl +++ b/public/locales/en-GB/send.ftl @@ -152,3 +152,5 @@ shareLinkButton = Share link shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing trailheadPromo = There is a way to protect your privacy. Join Firefox. learnMore = Learn more. + +sponsoredByThunderbird = Sponsored by Thunderbird diff --git a/public/locales/en-US/send.ftl b/public/locales/en-US/send.ftl index 36e482f4..f42090c7 100644 --- a/public/locales/en-US/send.ftl +++ b/public/locales/en-US/send.ftl @@ -143,3 +143,5 @@ shareLinkButton = Share link # $name is the name of the file shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing learnMore = Learn more. + +sponsoredByThunderbird = Sponsored by Thunderbird diff --git a/public/locales/nl/send.ftl b/public/locales/nl/send.ftl index ba738802..15f091d4 100644 --- a/public/locales/nl/send.ftl +++ b/public/locales/nl/send.ftl @@ -52,7 +52,7 @@ passwordSetError = Dit wachtwoord kon niet worden ingesteld -send-short-brand = Send -firefox = Firefox -mozilla = Mozilla -introTitle = Bestanden delen, eenvoudig en privé +introTitle = Bestanden delen, eenvoudig en privé introDescription = Met { -send-brand } kunt u bestanden delen met end-to-endversleuteling en een koppeling die automatisch verloopt. Hierdoor kunt u privé houden wat u wilt delen en er zeker van zijn dat uw zaken niet voor altijd online blijven. notifyUploadEncryptDone = Uw bestand is versleuteld en klaar voor verzending # downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes' @@ -152,3 +152,5 @@ shareLinkButton = Koppeling delen shareMessage = Download ‘{ $name }’ met { -send-brand }: eenvoudig, veilig bestanden delen trailheadPromo = Er is een manier om uw privacy te beschermen. Doe mee met Firefox. learnMore = Meer info. + +sponsoredByThunderbird = Gesponsord door Thunderbird