Skip to content

Features & tips page (/features) admin-editable - #2170

Merged
maebeale merged 24 commits into
mainfrom
maebeale/features-protips-page
Aug 16, 2026
Merged

Features & tips page (/features) admin-editable#2170
maebeale merged 24 commits into
mainfrom
maebeale/features-protips-page

Conversation

@maebeale

@maebeale maebeale commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

🤖 suggested review level: 5 Inspect 🔬 new DB model + policy (audience gating), controller CRUD, WYSIWYG form, a public-facing page, and a 132-entry content seed

Screenshot 2026-08-12 at 11 42 27 AM

What is the goal of this PR and why is this important?

  • A login-gated Features & tips page (/features) so facilitators and admins can browse what the portal does, newest first, with pro tips.
  • DB-backed and admin-editable in-app (super-admins) — rich WYSIWYG description (screenshots), an in-app "Check out this feature" link, a GitHub PR link, external doc link, brief summary, area, pro tips, release date.
  • display_status gates visibility: everyone signed in sees public-/user-facing features; admin-facing is admin-only (enforced in FeaturePolicy relation scope, not just hidden in JS).

How did you approach the change?

  • config/features.yml is a checked-in seed of 132 curated user-facing features mined from the full git history (2025-09 → 2026-08), grouped by the nine areas; each carries an action_path and 101 carry a pr_number.
  • "Sync latest updates" button (FeatureCatalog#import!): adds newly-shipped features and fills in blank fields on existing ones — never overwrites an admin's edits; returns created/updated counts.
  • Index: full-width row cards; a feature-list Stimulus controller does client-side search (name + tips), area/audience dropdowns, date range, and newest/oldest sort. Title truncates with the two chips to its right.
  • Detail page: a person-show-style colored topper (area banner + audience chip), title with the date far right, "Check out this feature" + "View the pull request" + "Full guide" links, and admin-blue Edit/Delete buttons.
  • Link lives in the Help menu (desktop + mobile), signed-in only. AI instruction files updated so new features get appended to the seed as we go.

Anything else to add?

  • Rebased on latest main; folds the newest features (payment due date, bulk invite mode, WordPress story import) into the seed.

Copilot AI lite review requested due to automatic review settings August 11, 2026 15:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 11, 2026 16:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale
maebeale force-pushed the maebeale/features-protips-page branch from 496c16d to ded33b7 Compare August 12, 2026 13:22
Copilot AI review requested due to automatic review settings August 12, 2026 13:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 14:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 14:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 14:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 14:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 14:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 12, 2026 15:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale maebeale changed the title Add admin-editable Features & tips page (/features) EXTRA: Features & tips page (/features) admin-editable Aug 13, 2026
@maebeale
maebeale force-pushed the maebeale/features-protips-page branch from 76df140 to bc7c566 Compare August 15, 2026 22:48
Copilot AI review requested due to automatic review settings August 15, 2026 22:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 16, 2026 13:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings August 16, 2026 13:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale
maebeale requested a review from jmilljr24 August 16, 2026 13:51
@maebeale maebeale changed the title EXTRA: Features & tips page (/features) admin-editable JM: Features & tips page (/features) admin-editable Aug 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

maebeale and others added 24 commits August 16, 2026 18:31
A login-gated, filterable "Features & tips" page so facilitators and admins can
see what the portal can do. DB-backed Feature model (rich WYSIWYG description for
screenshots, external doc link, audience/display status, area, pro tips, release
date), edited in-app by super-admins. config/features.yml is the starter seed an
admin "Import from seed" button hydrates (create-missing-only, never clobbers
in-app edits). Client-side search + area/audience dropdowns + date range + sort.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Model/decorator/service/policy/request/routing specs, factory, and page_bg_class
mappings. Document the seed-append workflow in CLAUDE.md, AGENTS.md, and the
Copilot instructions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Grow config/features.yml from the initial 15 to 132 curated user-facing features
mined from the full git history (2025-09 → 2026-08), grouped by area. Switch the
features index from a 2-up grid to full-width row cards (pro tips move to a right
rail on wide screens).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Detail page gets a person-show-style colored topper (area colour banner with the
  area identity + audience chip), title on its own line with the date far right.
- Add per-feature "Check out this feature" in-app link (action_path) and a GitHub
  PR link (pr_number); seed carries both (action_path on all 132, PR # on 101).
- "Import from seed" → "Sync latest updates": now also fills BLANK fields on
  existing features (never overwrites in-app edits); returns created/updated.
- Edit/Delete buttons carry the admin-blue themselves (no background block).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… top-right

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- "Check out this feature" now targets the actual feature page with sample id 1
  (e.g. org-autofill → /events/1/registrants), falling back to the resource index
  when id 1 is absent (FeatureDecorator#resolved_action_url). Re-curated all 132
  action_paths to real routes.
- Audit display_status: Topic subscriptions, Communications, Workshop ideas are
  admin-only (→ admin_facing); CE requests are public (→ public_facing).
- "Sync latest updates" now re-aligns catalog classification (area, audience,
  links, date, PR) so seed corrections propagate, while still only filling blank
  admin content (summary/tips/guide/description) — never overwriting it.
- Search box + Clear button match the community-news look (live filter, btn-utility).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CE attendance tracking (#2075), CE/licenses browse indexes (#2208), payments
Stripe/metadata/amount search (#2210), grant sector+category tagging (#2199),
richer communications log (#2177), and topic-subscription recipient filter (#2179).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fold action_path + pr_number into the create_features migration and drop the two
follow-up add-column migrations; it's all shipping in this PR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the bespoke client-side feature_list Stimulus controller with the app's
standard server-side pattern: a _search_boxes form (query + area/audience selects
+ date range + sort) driving a :features_results Turbo frame via the shared
collection controller. Controller filters/sorts server-side; no custom JS.

Removes feature_list_controller.js and the decorator's client-only search_text/
released_iso helpers. Docs updated (lazy-frame list, controller count).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply the "default to no comment" rule across the feature model/decorator/service/
controller/policy/view — keep only genuine gotchas (Tailwind safelist, rhino_
convention, the id-1 action_path fallback, the catalog-vs-content sync contract).
Add a "Features & tips" card to the admin home's Additional data section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Card title/Details links inside the features_results Turbo frame now set
  data-turbo-frame="_top" so they open the show page instead of erroring with a
  "content missing" frame swap.
- Gate the Help-menu "Features & tips" link on admin (allowed_to?(:create?,
  Feature)) and give it the admin-only bg-blue-100 styling, desktop + mobile.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e to a ticket

- Feature::AREAS now maps each area to a shared `domain` key; FeatureDecorator
  resolves colour via DomainTheme.color_for and icon via INDEX_BUTTON_ICONS
  (content/reporting keep a manual colour+icon since they have no model).
- Ticket/callout features use a "/registration/sample" action_path that resolves
  to a real registrant's ticket, else a sample ticket, else /events.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Split the admin-home Deprecated data row to 50% and add a 50% Actions section
holding the "Sync features & tips" button; remove that button from the /features
index (New feature stays). Add an admin-home render spec.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reuse the expandable-card/expandable-cards controllers: index cards collapse to
their header row (name, chips, date) with a top-right chevron to expand each, plus
a bulk Expand all / Collapse all toggle above the list. Cards start collapsed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
md:flex overrode the hidden class at the md breakpoint, so card bodies never
collapsed. Move md:flex to an inner div so the target carries only hidden.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Seed the file-upload form field (#2136), professional-license management (#2218),
person history/activity filter (#2207), planned-giving grant flag (#2203), story
image carousel (#2221), story-idea promotion email (#2213), and payments recent-
period default (#2216). Hide the detail-page "View the pull request" link behind
admin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 16, 2026 22:32
@maebeale
maebeale force-pushed the maebeale/features-protips-page branch from dcb26ed to f4fbf9c Compare August 16, 2026 22:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@maebeale
maebeale merged commit c8e0910 into main Aug 16, 2026
3 checks passed
@maebeale
maebeale deleted the maebeale/features-protips-page branch August 16, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants