From 9c91f2a26ea335c49539366524627762575b2429 Mon Sep 17 00:00:00 2001 From: Dries Peeters Date: Thu, 13 Nov 2025 09:56:56 +0100 Subject: [PATCH] feat: Enhance BuyMeACoffee visibility with multiple non-intrusive touchpoints Improve donation visibility by adding multiple strategic placement options while maintaining a non-intrusive user experience. Removed footer bar that was causing layout issues and replaced with better alternatives. Changes: - Remove footer bar from all pages to fix layout positioning issues - Add "Support" button in header (visible on md+ screens) with amber gradient styling - Add dismissible support banner that appears after 2 seconds with 7-day cooldown - Enhance sidebar BuyMeACoffee link with gradient background and hover effects - Keep existing dashboard widget for BuyMeACoffee (gradient card in sidebar) - Add translation strings for new support-related UI elements The new approach provides multiple touchpoints: 1. Header button - Always visible but subtle 2. Dismissible banner - Appears occasionally, respects user choice 3. Dashboard widget - Contextual placement on main dashboard 4. Sidebar link - Always accessible in navigation This ensures users can easily find the donation option without being overwhelmed by intrusive prompts. --- app/templates/base.html | 100 +++++++++++++++++++++++- app/templates/main/dashboard.html | 23 ++++++ translations/en/LC_MESSAGES/messages.po | 36 +++++++++ 3 files changed, 155 insertions(+), 4 deletions(-) diff --git a/app/templates/base.html b/app/templates/base.html index a641309..79cdd3f 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -73,6 +73,22 @@ .sidebar-collapsed #sidebar { width: 4rem !important; overflow-x: hidden; } /* Shared bulk menu */ .bulk-menu { z-index: 50; max-height: 16rem; overflow-y: auto; } + /* Layout fixes */ + #mainContent { + display: flex !important; + flex-direction: column !important; + overflow-x: hidden; + width: 100%; + } + #mainContentAnchor { + flex: 1 0 auto; + min-height: 0; + width: 100%; + overflow-x: auto; + } + /* Ensure body and html don't cause horizontal overflow */ + html, body { overflow-x: hidden; } + #appShell { overflow-x: hidden; width: 100%; } diff --git a/app/templates/main/dashboard.html b/app/templates/main/dashboard.html index 3eb71b2..026ead8 100644 --- a/app/templates/main/dashboard.html +++ b/app/templates/main/dashboard.html @@ -239,6 +239,29 @@ {% endif %} + + +
+
+
+

+ + {{ _('Support TimeTracker') }} +

+

+ {{ _('Enjoying TimeTracker? Consider buying me a coffee to support continued development!') }} +

+
+
+ + + {{ _('Buy me a coffee') }} + + +
{% for entry in recent_entries %} diff --git a/translations/en/LC_MESSAGES/messages.po b/translations/en/LC_MESSAGES/messages.po index 9bc8043..bdf738b 100644 --- a/translations/en/LC_MESSAGES/messages.po +++ b/translations/en/LC_MESSAGES/messages.po @@ -1433,6 +1433,42 @@ msgstr "Help" msgid "Buy me a coffee" msgstr "Buy me a coffee" +#: app/templates/main/dashboard.html:249 +msgid "Support TimeTracker" +msgstr "Support TimeTracker" + +#: app/templates/main/dashboard.html:252 +msgid "Enjoying TimeTracker? Consider buying me a coffee to support continued development!" +msgstr "Enjoying TimeTracker? Consider buying me a coffee to support continued development!" + +#: app/templates/base.html:577 +msgid "Made with" +msgstr "Made with" + +#: app/templates/base.html:577 +msgid "by" +msgstr "by" + +#: app/templates/base.html:509 +msgid "Support TimeTracker development" +msgstr "Support TimeTracker development" + +#: app/templates/base.html:511 +msgid "Support" +msgstr "Support" + +#: app/templates/base.html:594 +msgid "Enjoying TimeTracker?" +msgstr "Enjoying TimeTracker?" + +#: app/templates/base.html:597 +msgid "Support continued development with a coffee" +msgstr "Support continued development with a coffee" + +#: app/templates/base.html:610 +msgid "Dismiss" +msgstr "Dismiss" + #: app/templates/base.html:438 app/templates/base.html:439 #: app/templates/tasks/my_tasks.html:115 msgid "Search"