New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add user_dashboard core extension (alpha) #27792
Conversation
🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷 Introduction for new contributors...
Quick links for reviewers...
|
1901bbe
to
f368b40
Compare
As this is Alpha / disabled by default & does not affect anything outside the extension itself then merge at will @colemanw |
f368b40
to
beed9ba
Compare
@colemanw note that the built in dashboard has some self-service links for events, recurrings |
beed9ba
to
d16518f
Compare
@eileenmcnaughton I've just added the 2 missing tables so we've got parity on all the displays now. Just missing the self-service links. Maybe not too difficult, just need to figure out how to reproduce that functionality with... something. |
@mattwire @MegaphoneJon I feel like I've seen both of you work in this area? |
this is a cool extension complementary to the GDPR one so all contacts really know what's known and stored about them. |
Tried to enable this extension on the test server but got "No option list found for 'tags'" |
test this please |
It enables ok and looks great... until I tried disabling the Pledges component and got:
Likewise Member:
|
@aydun do you get those on the dashboard page itself or elsewhere on the site? |
@colemanw Just on the dashboard page |
d16518f
to
eb32414
Compare
@aydun ok, that's probably due to the 'cleanup' policy of the managed entities. I've switched it to "always" and that seems to fix it. |
Includes search displays to replace the user dashboard, minus the action links
eb32414
to
78a329c
Compare
@colemanw All looks good for the searching and display and disabling/enabling components works as expected. Could merge now or wait to add the self-service actions. |
Thanks @aydun aside from that it's pretty well complete so I'll merge now so people can play with it. |
Just a minor note on @colemanw's statement of:
One can at least enable/disable the sections that are shown on the dashboard via CiviCRM > Administer > Customize Data and Screens > Display Preferences, in the Contact Dashboard section, e.g., we currently only show contributions and memberships (though we may add events as we move from to Civi for events): Will be nice to see some configurability once the self-service options are added to the new user_dashboard core extension for membership renewal and events. |
Thanks @composerjk for pointing that out. I did notice that option while working on this and had updated the PR code to respect that setting but forgot to update the description. Updated it now. |
// Transition note: the legacy dashboard used a setting ('user_dashboard_options') | ||
// to control which panes are enabled. | ||
// This new extension uses a tag. | ||
// For the next year or so, we'll conditionally tag the searches in this extension based on that setting. | ||
// When the transition is complete, the setting can be deleted and this class can be simplified to unconditionally | ||
// tag all SavedSearches in this extension. | ||
$legacySetting = Civi\Api4\Setting::get(FALSE) | ||
->addSelect('user_dashboard_options:name') | ||
->execute() | ||
->first(); | ||
|
||
// If the legacy setting corresponding to this pane is enabled, tag it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@composerjk this
Overview
There is a hidden thing in CiviCRM called the "User Dashboard" (not to be confused with the "Home Dashboard" or any of the component dashboards like CiviEvent). There are no menu links to it so it's hard to find, but if you stumble upon it at
civicrm/user
a wonder of non-configurable hardcoded-ness awaits your users.Before
The user dashboard looks exactly like this. Aside from the ability to turn panes on and off, there are no configuration options (not even hooks for developers to make changes), so if this exact screen doesn't suit your idea of a delightfully user-friendly portal for your constituents, too bad:
After
If you enable the new "User Dashboard" extension,
civicrm/user
gives you this instead. It's an Afform of Search Displays, and absolutely everything about it can be configured via the FormBuilder and SeachKit UIs.Technical Details
The way this extension picks up Search Displays to go on the default version of the Afform is by tag. So any other extension could add a packaged SavedSearch simply by tagging it "User Dashboard".
Comments
This reproduces all the tables but not the self-service links so I've tagged this extension as "alpha" until we figure those out.