Skip to content

Rock: Form Actions Refresh#2999

Open
shervElmi wants to merge 252 commits into
masterfrom
rock/form-actions-refresh
Open

Rock: Form Actions Refresh#2999
shervElmi wants to merge 252 commits into
masterfrom
rock/form-actions-refresh

Conversation

@shervElmi
Copy link
Copy Markdown
Contributor

@shervElmi shervElmi commented Mar 5, 2026

Figma Design

https://www.figma.com/design/QnMV8Njb7k5hDSdgrvNveY/Form-Actions-Refresh?node-id=2522-4144&t=WoMZkL9AfPzAzRph-1

Add-Ons PRs

@shervElmi shervElmi self-assigned this Mar 5, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 5, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Redesigned the form-actions picker into a tabbed/filter UI with Pro gating, centralized action descriptions, icon/markup refactors, new JS modules (filter + visibility observer), many CSS/SCSS utility additions and adjustments, and build/watch config updates.

Changes

Cohort / File(s) Summary
Form Actions Controller & Models
classes/controllers/FrmFormActionsController.php, classes/models/FrmFormAction.php, classes/models/FrmOnSubmitAction.php
Added Pro gating for unlicensed actions, per-action filters & learn‑more helpers, centralized default descriptions, icon-attribute helper, unique-title helper, and changed render_conditional_logic_call_to_action() signature to accept $action_key.
Form Actions Views & Templates
classes/views/frm-form-actions/_action_icon.php, _action_inside.php, form_action.php, _email_settings.php, on_submit_redirect_settings.php, on_submit_settings.php, settings.php, default_actions.php, email_action.php
Reworked picker to card-style UI and tabbed/filter layout, updated markup/classes/empty-state, moved description/learn-more handling into views, changed icons/colors and several default action options, and updated upgrade/CTA markup.
Forms Settings & Addons Helpers
classes/controllers/FrmFormsController.php, classes/helpers/FrmAddonsHelper.php
Swapped multiple settings tab icon tokens and added an outlined variant class for single addon cards.
Admin JS — Tabs, Filtering & Actions
js/src/components/tabs/class-tabs-navigator.js, js/src/components/tabs/filter.js, js/src/admin/admin.js, js/src/settings-components/components/formActionsSearch.js, js/src/settings-components/index.js, js/formidable-settings-components.js, js/formidable_dashboard.js
Added data-filter/data-group flow, new filter module, wired search to auto-select "All", refactored tab navigator for filtering and visibility observation, and updated action add/copy/remove and conditional-logic row flows.
Visibility Observer Utility
js/src/core/utils/visibilityObserver.js
New IntersectionObserver utility (isSupported, observeVisibility one-shot notify, disconnect).
Upgrade / One-click JS tweaks
js/src/admin/upgrade-popup.js, js/frm_testing_mode.js
Made learn-more link href/visibility conditional on dataset.learnMore (hide when absent).
Web Component Import Path Updates
js/src/dashboard.js, js/src/settings-components/components/tabs-component.js, js/src/web-components/frm-tab-navigator-component/frm-tab-navigator-component.js
Updated import paths for relocated tabs navigator module; runtime behavior unchanged.
SCSS/CSS — Card & Form Actions Styling
resources/scss/admin/components/form/_form-actions.scss, resources/scss/admin/components/card/_card-item.scss, resources/scss/admin/components/icons/_circled-icons.scss, css/admin/addons-page.css
Major style refactor for card/filter layout, added .frm-card-item--outlined and .frm-border-icon--small, simplified action-list styling and removed old addons card rules.
Design Tokens & Utilities
resources/scss/admin/base/_variables.scss, resources/scss/admin/utilities/*
Added --x-small-radius token and multiple utility classes (spacing, display, border, flex, typography), with some rules strengthened via !important.
Component CSS Adjustments
js/src/web-components/*/*.css, css/admin/animations.css, css/frm_testing_mode.css, css/admin/frm-settings-components.css
Propagated --x-small-radius, converted animation durations to CSS vars, adjusted testing-mode variables/toggles, and normalized component styles.
SCSS Misc & Spacing Tweaks
many resources/scss/admin/components/* files
Various spacing/layout selector updates (tab nowrap, cursor tweaks, removed some widget-top rotation rules, margin/padding adjustments).
Stripe Integration Markup/Styles
stripe/helpers/FrmStrpLiteAppHelper.php, stripe/models/FrmTransLiteAction.php, stripe/views/action-settings/*.php
Removed inline icon from lite warning, changed stripe action color to hex literal, and adjusted spacing classes in payment templates.
Dev/Build Config & Linting
webpack.dev.js, phpcs.xml
Updated dev server env/ports/watch behavior (SITE_DOMAIN, ports 8880/8881, ENABLE_WATCH, ignored paths); added FrmFormActionsController.php to PHPCS file-length excludes.
Small/meta/frontmatter
.windsurf/rules/formidable/frm-css.md
Frontmatter trigger value changed from quoted "glob" to unquoted glob.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Nav as Tab Nav
participant Filter as Filter Module
participant Content as Actions Container (data-group)
participant Observer as VisibilityObserver
Nav->>Filter: click (data-filter)
Filter->>Content: set data-active-filter / toggle .frm_hidden on [data-group]
Filter->>Nav: update active state
Nav->>Observer: ensure observer active
Observer->>Nav: notify when visible → reposition underline

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • Crabcyborg
  • lauramekaj1

Poem

🐰 I hopped through tabs and cardly lands,

Filters in paw, with tiny hands.
Icons tucked in outlined frames,
Observer blinks and finds the names.
Webpack hums; the styles take stands.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 23.64% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title "Rock: Form Actions Refresh" directly aligns with the PR's primary objective: implementing a refreshed Form Actions UI following the Figma design. It concisely captures the main change without unnecessary details.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rock/form-actions-refresh

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@deepsource-io
Copy link
Copy Markdown

deepsource-io Bot commented Mar 5, 2026

DeepSource Code Review

We reviewed changes in f42ed06...e1563e4 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

Important

Some issues found as part of this review are outside of the diff in this pull request and aren't shown in the inline review comments due to GitHub's API limitations. You can see those issues on the DeepSource dashboard.

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
PHP May 7, 2026 12:57p.m. Review ↗
JavaScript May 7, 2026 12:57p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

shervElmi added 23 commits March 6, 2026 14:54
…, add grid layout class to action lists, and move search box class to frm-ml-auto-force
Add data-filter attributes to tab navigation for filtering actions.
Include data-filter-target for targeting filter content area.
Add group key iteration for proper filter mapping.
Wrap action groups in data-group divs for filter targeting.
Remove show/hide buttons and clear divs.
Simplify layout structure for better filtering functionality.
Check for data-filter-target before switching action classes.
Skip frm-all-actions/frm-limited-actions toggle when filter tabs are present.
Add filterTarget detection and applyFilter method for content filtering.
Handle data-filter attributes on nav items to show/hide content groups.
Set activeFilter dataset for CSS-driven visibility changes.
@garretlaxton
Copy link
Copy Markdown

I am seeing one last little visual issue when you unselect the advanced scoring option in the quiz action.

2026-04-21.16-27-45.mp4

Copy link
Copy Markdown

@garretlaxton garretlaxton left a comment

Choose a reason for hiding this comment

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

Thanks @shervElmi, this looks good to me! I haven't been able to find anything else.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 27, 2026

Codecov Report

❌ Patch coverage is 7.01754% with 159 lines in your changes missing coverage. Please review.
✅ Project coverage is 26.42%. Comparing base (269bbea) to head (7802e2e).
⚠️ Report is 51 commits behind head on master.

Files with missing lines Patch % Lines
classes/controllers/FrmFormActionsController.php 6.29% 119 Missing ⚠️
classes/models/FrmFormAction.php 7.40% 25 Missing ⚠️
classes/controllers/FrmFormsController.php 0.00% 8 Missing ⚠️
classes/helpers/FrmOnSubmitHelper.php 0.00% 4 Missing ⚠️
classes/controllers/FrmAddonsController.php 0.00% 2 Missing ⚠️
classes/helpers/FrmAddonsHelper.php 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2999      +/-   ##
============================================
- Coverage     26.51%   26.42%   -0.10%     
- Complexity     9105     9138      +33     
============================================
  Files           149      149              
  Lines         30607    30752     +145     
============================================
+ Hits           8115     8125      +10     
- Misses        22492    22627     +135     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants