Released January 5, 2022
Does this version...? | |
---|---|
Fix security vulnerabilities? | no |
Change the database schema? | yes |
Alter the API? | yes |
Require attention to configuration options? | no |
Fix problems installing or upgrading to a previous version? | no |
Introduce features? | yes |
Fix bugs? | yes |
-
Add CiviX class in Core? (Work Towards civix#175: 22198 and 22199)
Adds support for mixins to civix and updates core extensions to use them.
-
Escape-on-Input => Escape-on-Output (Work Towards dev/core#1328: 21956)
Adds option to enable escape-on-output.
-
APIv4 Explorer - Optionally view results in PHP format (22010)
Improves the APIv4 Explorer UX by showing output in PHP format as well as JSON.
-
APIv4 - Add SortableEntity type which auto-adjusts weights (22137)
Gives APIv4 the ability to manage the "weight" of certain entities.
-
APIv4 - Add export action for managed entities (22014)
Adds a new APIv4 export action which generates an exportable array suitable for use in a .mgd.php file.
-
APIv4 - Opt-in more ManagedEntity types (22068)
Adds the ManagedEntity trait to a number of entities that are commonly used for configuration, making it possible to work with them as APIv4 managed entities.
-
SearchKit - Animated loading skeleton (22019)
Shows a wireframe "skeleton" while loading results in SearchKit. Improves the user perception of load times.
-
SearchKit - tabbed display for custom vs packaged searches (21986)
Splits the SearchKit admin UI in to 2 tabs - one for custom (locally-created) searches, and one for packaged searches (defined in extensions). Adds a "revert" button for packaged searches.
-
SearchKit - Add default text/image to displays; support custom file fields (21992)
Allows for "placeholder" text in a search display when a column value is empty. Also works for image fields. Image fields now support custom file fields to display images out-of-the-box.
-
SearchKit - Add drag-sortable weight functionality (22081)
Allows SearchKit table displays to be drag-sortable.
-
SearchKit - enable search by case role (22121)
Permits searching for contacts by case role in SearchKit.
-
SearchKit - Allow searches of OptionValues, LocationTypes, CustomFields (22151)
Flips the switch on a few entities to be searchable in SearchKit, with an eye toward more UIs being built with it.
-
SearchKit - Improve UX for refresh after editing (22125)
Makes editing records faster and easier, and fixes a bug where the pager count would not be correctly updated.
-
SearchKit - Improve search listing UI (22114)
Makes a few improvements to the main SearchKit screen (the tabbed listing of Saved Searches) specifically:
- More responsive switching between tabs
- Bookmarkable urls for each tab
- Fixes the "modified" column for packaged searches, only showing a value if the packaged version has been overridden
- Only shows "revert" button when a packaged search has been overridden
-
Update Afform & search kit info (22126)
Updates SearchKit and Afform info.xml files with more helpful and less confusing titles, descriptions and links.
-
Afform - Add table of submission results (22009)
Uses a SearchDisplay in an Afform to display form submissions.
-
Afform - Display the extension in which an Afform is packaged (21960)
Displays extension name in the UI for packaged Afforms.
-
Make more hardcoded strings available for translation (21994)
Improves translation.
-
Alter default frequency for scheduled reminders job (dev/core#2916: 21835)
Changes the scheduled reminder job to default to run hourly instead of daily.
-
Display higher severity status checks first (22143)
Improves user experience on the status page by displaying highest severity status checks first.
-
Sort list of extensions alphabetically in 'Extensions ok' check (22142)
Improves user experience by sorting the list of extensions alphabetically in the 'Extensions ok' check.
-
Email to Activity processing: If there's a matching org contact and no matching individual, then file on the org instead of creating a new individual (dev/core#2872: 21983)
-
Activity redirects to search instead of view (dev/core#2894: 22088)
-
Can't save extra custom fields when inline and required (dev/core#2912: 21936)
-
Hidden submit buttons are confusing for keyboard users (dev/core#2919: 21854)
-
some PDFs hard-code format to "a3 landscape", overriding default PDF format (dev/core#2959: 22098)
-
All custom fields broken on edit forms (dev/core#2973: 22178)
-
APIv4 Export - Fix logic for exporting pseudoconstant syntax (22201)
-
APIv4 - Add fixes & tests for domain-specific managed entities (22173)
-
Api v4 contact delete bug (dev/core#2757: 21232)
-
APIv4 - Delete unused OptionList trait (22158)
-
APIv4 - Treat navigation permissions as array, add pseudoconstant for operator (22160)
-
APIv4 - Fix checkAccess for CiviCase or other entities with nonstandard class names (22090)
-
SearchKit with Form Builder when viewed on the front-end displays a CiviCRM breadcrumb trail which can duplicate the existing website breadcrumb trail (22087)
-
SearchKit - Fix undefined variable for searches of Afforms etc. (22218)
-
[Smarty variables] Consistently assign isAdmin at php layer (22189)
-
Smarty variables] Remove isset from a.net (22191)
-
[Smarty variables] remove isset from Mail accounts (22190)
-
[Smarty variables] Remove another isset - user dashboard (22181)
-
Smarty variables] Remove isset from relationship tab (22177)
-
[Smarty variables] [CiviCase] remove isset from case dashboard (22176)
-
[Smarty variables] - remove isset (22185)
-
[Smarty variables] Fix contribution tab to work with escape by default (22179)
-
[Smarty variables] The last isset.... (22196)
-
Smarty variables] Prevent settings form assigned html from being escaped (22165)
-
[Smarty variable][Civicase] remove isset (22175)
-
[Smarty variables] Remove isset from add new group form (22184)
-
[Smarty Variables] Remove isset from location type form (22167)
-
[Smarty variables] Remove issets from scheduled job screen (22166)
-
[Smarty variables] [custom data form] Template notice cleanup - make sane (22138)
-
[Smarty variables] [report test]Ensure smarty variables are consistently assigned in report (22147)
-
[Smarty variables] [Activity form] Ensure separation,tag are assigned to the template (22152)
-
[Smarty variables] Specify isRepeatingEntity when including ConfirmRepeatMode.tpl (22155)
-
[Smarty variables] Ensure groupElementType is always set (22074)
-
[Smarty variables] [contact summary] Assign variable to determine whether to show email signature field (22132)
-
[Smarty variables] Use always-assigned isTagSet to determine if is tagset (22154)
-
[Smarty variables] [Activity form] Ensure activityTypeFile is always assigned (22153)
-
Remove issets from Activity search screen (22180)
-
Remove isset checks on isForm (22174)
-
Remove isset from custom data tpls (22124)
-
Remove issets from Options.tpl (22079)
-
Remove a bunch of isset from options.tpl (22111)
-
Remove isset from Datasource.tpl (21988)
-
Remove smarty isset in favour of always set (22084)
-
Escape-on-output: Cleanup addCampaignToSearch, remove isset (22035)
-
OptionValue - Fix checking if domain is set (22095)
-
Fix all the issets that affect ability to load contact summary page (22030)
-
Remove use of isset for info.tpl (22028)
-
Ensure smarty variable formTpl is set (22018)
-
Enotice fixes - ensure a couple more variables are consistently assigned (22148)
-
Fix broken extension page smarty assignment (22168)
-
Ensure custom fields properties are assigned to the template (22139)
-
Ensure context is always assigned (22141)
-
FormBuilder - Hide configuration options that do not apply to certain form types (22127)
-
Ensure CMSPrint variables are assigned to the template (22134)
-
Ensure tab headers are assigned, fix widget form test (22135)
-
Ensure buildForm is called to assign values (22128)
-
Update Fields.tpl (22129)
-
Add Colombia missing state (22007)
-
Use getEntityNameForTable() instead of getClassForTable(), as this might yield ambiguous results (22116)
-
Suppresses error logging on every page load when open_basedir restriction in effect: File(/CRM/Core/Smarty/plugins/) is not within the allowed path(s) (21589)
-
Bypass any default escaping for blog, getting started (22119)
-
Do not use default escaping on address display (22120)
-
Throw spaghetti (22070)
-
Allow "Download chart" text to be translated. (22106)
-
Contribution amounts configuration page is borked when translation contains apostrophe (22091)
-
Use smarty:nodefaults with smarty.get (22082)
-
Ensure masterAddress is always assigned (22076)
-
Ensure paramSubType is always set (22075)
-
Do not check is context is set, should always be (22069)
-
Fix typo in smarty template "gender_display" (22066)
-
Ensure context is always set (22056)
-
Ensure contactTag is always set (22055)
-
php8 - fix for breadcrumb fails during tests (22059)
-
Mark a few more token functions as deprected (22044)
-
Ensure gender_display is always set (22047)
-
ManagedEntities - Track modification and auto-update (21989)
-
Ensure userRecordUrl is always set- fixes enotice with escape-on-output (22042)
-
Fix tabs getting overwritten by double foreach loop (22040)
-
Ensure imageUrl is always set (22031)
-
Escape-on-output-proof enotice fixes (22036)
-
Do not smarty encode quicksearch html (22033)
-
Ensure action is set when loading contactFooter (22029)
-
Flip logic for determining if $section variable is set. (22027)
-
Ensure beginHookFormElements is assigned (22000)
-
CRM_Utils_File::isChildPath - Fix checking of non-existent paths (22021)
-
Ensure hookContentPlacement is assigned (22001)
-
Ensure that keys are set in tabValues before hitting smarty (21991)
-
Extract getGroupOrganizationUrl & ensure always assigned (22002)
-
Avoid default escaping for blog titles (22172)
-
PHP 8 compat - no optional param before required (22210)
-
tools/mixin/bin/test-all - Fix guard for EXT_DIR (22204)
-
DebugSubscriber - Fix test-suite compatibility with XDebug 3 (22197)
-
ManagedEntities - Fix permission error during uninstallation (regression-fix) (22188)
-
Fix two English strings (22097)
-
OptionValue - Fix incorrect update of
is_default
(22089) -
Fix missing currency for event registration when configured via "quick config" (21966)
-
don't overfill the prevnext cache when reserving for a survey. (22011)
-
Guard against passing empty values to CRM_Core_DAO::getFieldValue() (21998)
-
Tidy up title attributes (21995)
-
Enotice fixes in debug.tpl that are compatible with default escaping (21940)
-
Fix isForm to be always assigned, remove checks (21979)
-
Enotice fixes (21987)
-
Beautifier - avoid e_notice in php 7.4 when acting on first comment token (332)
- Assign cgCount in Case custom data form (22140)
-
Can't filter by anything other than contribution status in Contribution Aggregate by Relationship CiviReport (dev/report#77: 22041, 22024, 22015, 22016 and 22025)
-
Using GHC as a default currency causes a fatal error with Brick/Money (dev/financial#184: 21751)
Fixes the currency names for Ghana and Belarus.
-
Repeat Contributions CiviReport warnings: Formatting non-numeric values is no longer supported (dev/core#2982: 22216)
-
Expose contribution custom fields in LYBUNT report (dev/core#2951: 22038)
-
fix unit plural in contribution page (21944)
-
Update PayPalImpl.php - action on style test failure (22112)
-
Check the billing fields returned by each payment processor (20811)
-
Participant Listing report filters incorrectly on role ID (dev/report#18: 21975)
-
Remove broken dynamic title from event template (22113)
-
CRM/Event/BAO/Event: Fix ts usage on selfservice_preposition (22136)
-
Notice error Deprecated function CRM_Event_BAO_Event::checkPermission (dev/core#1529: 22017)
-
Custom data not available in the post hook after registering for an event (dev/core#2948: 22022)
-
CiviCRM Event, remove the superfluous "Are you sure you want to delete this Event?" confirmation for the Event delete action (22122)
-
Fix unencoded mailing url query param in Mailing report (22008)
-
CiviCRM Message Template, HTML Format and Text Format fields are listed in a different order on the Default Message Template (22110)
-
Fix message templates screen to work with escape enabled by default (22118)
-
CiviCRM Membership Status can never be deleted when logging is enabled (22032)
-
Fix membership test to use full flow (22162)
- Add back in body classes for themeing. (68)
-
CiviCRM WordPress shortcode remove the display of default text and instead just return blank if the shortcode cannot be rendered. (262)
-
Resolve conflict with AIOSEO stomping on CiviCRM Shortcode (263)
-
Prevent fatal error when the "the_title" filter has only one param (261)
-
APIv4 ConformanceTest - Demonstrate entity APIs which fail to emit
hook_civicrm_post(delete)
(22205) -
Move responsibilty for ensuring greeting parameters are set to
ensureGreetingParamsAreSet
(21912) -
Remove unused variable (21933)
-
Remove obsolete showVisibility (22102)
-
Remove empty check previously commented to be meaningless (22164)
-
[REF] Remove support for not-passed 'pledge' value (21908)
-
[REF] - Switch BAOs to use standard delete function which calls hooks (22207)
-
[REF] Remove usage of deprecated jqXHR.error in jQuery code (21919)
-
[REF] Preliminary cleanup in update greeting (21909)
-
REF: Switch to debug level logging for lock debugging (22026)
-
[REF] Fix Pledge Test failing on php8 by ensuring all payments have a status assigned and that customGroup is always assigned to the template and updating test to pass in some additional form values (22037)
-
[REF] Add in missing province for Philippines and update names to match ISO (22005)
-
[REF] "Your browser session has expired and we are unable to complete your form submission" on all D9.2 anonymous sessions (dev/drupal#169: 22080 and 335)
-
[NFC] Update System Uft8mb4 check to handle for the fact that MySQL8 outputs utf8mb3 when the charset has been set to utf8 as utf8mb3 is the underlyling charset for utf8 (22221)
-
[NFC] Remove Selenium WebTest code from CiviMailUtils (22219)
-
(NFC) tools/mixin/bin/test-all - Work-around segfault in CI (22215)
-
[NFC] Fix test failures for testRelativeDateRanges (22209)
-
[NFC] Add missing calls to parent::setUp and tearDown in unit tests (22073)
-
[NFC] Array formatting (22067)
-
[NFC] ENsure that formTpl is assigned in CRM_Custom_Form_OptionTest (22065)
-
[NFC] php8 assign formTpl in HookTest test (22061)
-
[NFC] php8 - set smarty null defaults for CRM_Core_SessionTest (22048)
-
[NFC] php8 - fix test fails for CRM_Contact_Page_View_UserDashBoardTest (22023)
-
[NFC] Fix test issue about trying to do array offset on NULL in Payment ProcessorFormTest (22020)
-
[NFC] Add in unit test to demonstate issue with API (dev/mail#103: 22045)
-
[NFC] Additional Fix on UserDashBoard Tests to assign action value to dashboard (22034)
-
Test fix - use more 'real' rendering function (22123)
-
Fix more tests to use full flow (22161)
-
[Test] Fix tests to use form helper (22157)
-
[Test] Test cleanup to use full-form methods (22156)
This release was developed by the following code authors:
AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; BrightMinded Ltd - Bradley Taylor; Christian Wach; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Lisandro; Coop SymbioTIC - Mathieu Lutfy; CSES (Chelmsford Science and Engineering Society) - Adam Wood; Dave D; Digitalcourage - Detlev Sieber; homotechsual - Mikey O'Toole; Jens Schuppe; JMA Consulting - Monish Deb, Seamus Lee; joapta; Joinery - Allen Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Third Sector Design - Kurund Jalmi, William Mortada; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:
Arnaud Broes; Artful Robot - Rich Lott; Asylum Seekers Centre; Australian Greens - John Twyman; Betty Dolfing; Blackfly Solutions - Alan Dixon; Carlos Capote; Guydn; JMA Consulting - Joe Murray; Lemniscus - Noah Miller; netzih; Nicol Wistreich; Richard van Oosterhout; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano;
These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
and contact @agh1
.