From 972cc6e5d9e17be0e80002b03db2ecd3c2186a7c Mon Sep 17 00:00:00 2001 From: Kris Date: Tue, 18 Nov 2025 09:03:41 -0500 Subject: [PATCH] UX: restyling for 2025 (#28) This generally updates the styles for the 2025 version. I also made more features work in development environments (so it's easier to test) and fixed an issue with invites that was causing the report to not show. image image image image image --- .../discourse_rewind/rewinds_controller.rb | 5 +- .../discourse_rewind/action/invites.rb | 8 +- .../action/most_viewed_categories.rb | 3 +- .../action/most_viewed_tags.rb | 3 +- .../discourse_rewind/fetch_reports.rb | 2 +- .../discourse/components/reports/header.gjs | 44 +++++-- .../reports/most-viewed-categories.gjs | 11 +- .../components/reports/most-viewed-tags.gjs | 16 ++- .../reports/top-words/word-card.gjs | 12 +- .../discourse/components/rewind.gjs | 22 ++-- .../after-header-panel/rewind-decoration.gjs | 5 +- .../before-panel-body/rewind-callout.gjs | 79 ++++++++++-- assets/stylesheets/common/_index.scss | 1 + .../stylesheets/common/activity-calendar.scss | 9 +- assets/stylesheets/common/best-posts.scss | 109 +++++++++------- assets/stylesheets/common/best-topics.scss | 110 ++++++++++------- assets/stylesheets/common/card.scss | 3 - assets/stylesheets/common/fbff.scss | 18 ++- assets/stylesheets/common/folder-styles.scss | 73 +++++++++++ assets/stylesheets/common/fonts.scss | 3 + .../common/most-viewed-categories.scss | 14 ++- .../stylesheets/common/most-viewed-tags.scss | 19 ++- .../common/post-received-reactions.scss | 14 ++- .../common/post-used-reactions.scss | 67 +++++++++- assets/stylesheets/common/reading-time.scss | 9 +- assets/stylesheets/common/report.scss | 10 ++ assets/stylesheets/common/rewind-callout.scss | 116 ++++++++++++------ assets/stylesheets/common/rewind-header.scss | 34 ++++- assets/stylesheets/common/rewind.scss | 110 +++++++++++++---- assets/stylesheets/common/top-words.scss | 59 ++++++--- assets/stylesheets/common/variables.scss | 16 ++- config/locales/client.en.yml | 2 + plugin.rb | 4 +- public/images/blur-bg.png | Bin 1296915 -> 0 bytes public/images/cards/01-robot.gif | Bin 0 -> 12103 bytes public/images/cards/02-castle.gif | Bin 0 -> 5177 bytes public/images/cards/04-hand.gif | Bin 0 -> 11795 bytes public/images/cards/06-nature.gif | Bin 0 -> 8280 bytes public/images/cards/07-beach.gif | Bin 0 -> 12871 bytes public/images/discourse-rewind-logo-dark.png | Bin 27547 -> 0 bytes public/images/discourse-rewind-logo.png | Bin 26941 -> 0 bytes public/images/pixel-discourse-rewind.png | Bin 5303 -> 0 bytes spec/services/fetch_reports_spec.rb | 7 +- 43 files changed, 737 insertions(+), 280 deletions(-) create mode 100644 assets/stylesheets/common/folder-styles.scss delete mode 100644 public/images/blur-bg.png create mode 100644 public/images/cards/01-robot.gif create mode 100644 public/images/cards/02-castle.gif create mode 100644 public/images/cards/04-hand.gif create mode 100644 public/images/cards/06-nature.gif create mode 100644 public/images/cards/07-beach.gif delete mode 100644 public/images/discourse-rewind-logo-dark.png delete mode 100644 public/images/discourse-rewind-logo.png delete mode 100644 public/images/pixel-discourse-rewind.png diff --git a/app/controllers/discourse_rewind/rewinds_controller.rb b/app/controllers/discourse_rewind/rewinds_controller.rb index 5d3d7aa..fb7871e 100644 --- a/app/controllers/discourse_rewind/rewinds_controller.rb +++ b/app/controllers/discourse_rewind/rewinds_controller.rb @@ -10,10 +10,7 @@ module ::DiscourseRewind DiscourseRewind::FetchReports.call(service_params) do on_model_not_found(:year) { raise Discourse::NotFound } on_model_not_found(:user) { raise Discourse::NotFound } - on_success do |reports:| - @reports = reports - render json: MultiJson.dump(reports), status: :ok - end + on_success { |reports:| render json: MultiJson.dump(reports), status: :ok } end end end diff --git a/app/services/discourse_rewind/action/invites.rb b/app/services/discourse_rewind/action/invites.rb index dc2feae..8c720e9 100644 --- a/app/services/discourse_rewind/action/invites.rb +++ b/app/services/discourse_rewind/action/invites.rb @@ -13,7 +13,7 @@ module DiscourseRewind return if total_invites == 0 # Redeemed invites (users who actually joined) - redeemed_count = invites.where.not(redeemed_at: nil).count + redeemed_count = invites.where("redemption_count > 0").count # Get the users who were invited (via InvitedUser or redeemed invites) invited_user_ids = InvitedUser.where(invite: invites).pluck(:user_id).compact @@ -22,11 +22,7 @@ module DiscourseRewind # Calculate impact of invitees invitee_post_count = - Post - .where(user_id: invited_user_ids) - .where(created_at: date) - .where(deleted_at: nil) - .count + Post.where(user_id: invited_user_ids).where(created_at: date).where(deleted_at: nil).count invitee_topic_count = Topic diff --git a/app/services/discourse_rewind/action/most_viewed_categories.rb b/app/services/discourse_rewind/action/most_viewed_categories.rb index 6aa6ebe..d473306 100644 --- a/app/services/discourse_rewind/action/most_viewed_categories.rb +++ b/app/services/discourse_rewind/action/most_viewed_categories.rb @@ -10,7 +10,6 @@ module DiscourseRewind { category_id: 2, name: "dogs" }, { category_id: 3, name: "countries" }, { category_id: 4, name: "management" }, - { category_id: 5, name: "things" }, ], identifier: "most-viewed-categories", } @@ -26,7 +25,7 @@ module DiscourseRewind .where(categories: { id: user.guardian.allowed_category_ids }) .group("categories.id, categories.name") .order("COUNT(*) DESC") - .limit(5) + .limit(4) .pluck("categories.id, categories.name") .map { |category_id, name| { category_id: category_id, name: name } } diff --git a/app/services/discourse_rewind/action/most_viewed_tags.rb b/app/services/discourse_rewind/action/most_viewed_tags.rb index a11661e..0552961 100644 --- a/app/services/discourse_rewind/action/most_viewed_tags.rb +++ b/app/services/discourse_rewind/action/most_viewed_tags.rb @@ -10,7 +10,6 @@ module DiscourseRewind { tag_id: 2, name: "dogs" }, { tag_id: 3, name: "countries" }, { tag_id: 4, name: "management" }, - { tag_id: 5, name: "things" }, ], identifier: "most-viewed-tags", } @@ -28,7 +27,7 @@ module DiscourseRewind .where(tags: { id: Tag.visible(user.guardian).pluck(:id) }) .group("tags.id, tags.name") .order("COUNT(DISTINCT topic_views.topic_id) DESC") - .limit(5) + .limit(4) .pluck("tags.id, tags.name") .map { |tag_id, name| { tag_id: tag_id, name: name } } diff --git a/app/services/discourse_rewind/fetch_reports.rb b/app/services/discourse_rewind/fetch_reports.rb index c959a24..79f0049 100644 --- a/app/services/discourse_rewind/fetch_reports.rb +++ b/app/services/discourse_rewind/fetch_reports.rb @@ -81,7 +81,7 @@ module DiscourseRewind reports = Discourse.redis.get(key) if !reports - reports = REPORTS.map { |report| report.call(date:, user:, guardian:) } + reports = REPORTS.map { |report| report.call(date:, user:, guardian:) }.compact Discourse.redis.setex(key, CACHE_DURATION, MultiJson.dump(reports)) else reports = MultiJson.load(reports, symbolize_keys: true) diff --git a/assets/javascripts/discourse/components/reports/header.gjs b/assets/javascripts/discourse/components/reports/header.gjs index 55ad458..9d2e373 100644 --- a/assets/javascripts/discourse/components/reports/header.gjs +++ b/assets/javascripts/discourse/components/reports/header.gjs @@ -1,13 +1,41 @@ +import { i18n } from "discourse-i18n"; + const RewindHeader = ; diff --git a/assets/javascripts/discourse/components/reports/most-viewed-categories.gjs b/assets/javascripts/discourse/components/reports/most-viewed-categories.gjs index 5d72a85..15c2be7 100644 --- a/assets/javascripts/discourse/components/reports/most-viewed-categories.gjs +++ b/assets/javascripts/discourse/components/reports/most-viewed-categories.gjs @@ -10,11 +10,12 @@ const MostViewedCategories =