Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-03-07T13:38:52Zhttps://lab.civicrm.org/dev/core/-/issues/5056Theming of remote oEmbed / iFrame2024-03-07T13:38:52ZJoeMurrayTheming of remote oEmbed / iFrameWe are adding the ability to publish eEmbed / iFrame functionality from CiviCRM to remote sites. (https://github.com/totten/civicrm-core/blob/master-oembed/ext/oembed/README.md#issues--todos). The backend CiviCRM site is a provider or pu...We are adding the ability to publish eEmbed / iFrame functionality from CiviCRM to remote sites. (https://github.com/totten/civicrm-core/blob/master-oembed/ext/oembed/README.md#issues--todos). The backend CiviCRM site is a provider or publisher of content, typically forms. We're going to call front end sites that consume this content consumer sites.
Two prototypical use cases are:
1. An organization uses a Standalone backend CiviCRM instance to publish public facing pages on their public WordPress site (contribution page, newsletter subscription page, event registration pages) which is the only consumer site.
2. An organization publishes some content that it encourages aligned partners to display on their sites, e.g. a FormBuilder based petition that needs to appear on many consumer sites with different themes including colour schemes, fonts, etc.
In both cases there is a need to make the content inside the oEmbed/iFrame look okay or even good on the consumer sites.
There is a need to develop approaches to theming the content that will be presently remotely on consumer sites.
In case 1, it may be reasonable for the organization to create a theme on the backend publisher site that matches the front end theme. However, the backend CiviCRM publisher may be a locked down site like Spark which does not provide this level of access.
As of March 1, 2024 it is possible on backend site to select a site-wide theme, and for parameters in the oEmbed/iFrame requests to include width and height for the window of content.
@kcristiano has had success in using css on a consumer site to theme the content inside an iFrame (target the selectors).
Many sites that publish pages in iFrames for remote consumption allow small theming choices to be made, eg foreground and background colour, etc.
As of March 1, 2024, selected content on a CiviCRM site can expose urls for oEmbed and iFrame references to that content.
It might be desirable to have a consumer choose to make some small theming adjustments to the CiviCRM content that will be rendered on their site, adjusting the url for the oEmbed or iFrame. The url could get key-value pairs for the theming adjustments or perhaps they could be stored in a record in a database or used to create a css file on disk that would be requested with a single key-value pair in the url.
What are the considerations and desiderata for providing a simple usable approach to end users to get an iFrame reference that provides some theming of the content? For example, what is a reasonable set of end user oriented settings that are not overwhelming that could be made available? Foreground colour, background colour, font, etc?
Should there be a different set that would make available a fairly full set of tags for CiviCRM forms, including h1, h2, etc all the way to styling of selects, buttons, checkboxes, etc.?JoeMurrayJoeMurrayhttps://lab.civicrm.org/dev/core/-/issues/5055Does anyone use CRM_Mailing_Form_Approve?2024-03-07T13:37:04ZherbdoolDoes anyone use CRM_Mailing_Form_Approve?As part of clean up of accordions, we noticed that it's hard to test template for `civicrm/mailing/approve` which calls `CRM_Mailing_Form_Approve`. Is this being used? There's a permission as well which seems like it can't even be set. U...As part of clean up of accordions, we noticed that it's hard to test template for `civicrm/mailing/approve` which calls `CRM_Mailing_Form_Approve`. Is this being used? There's a permission as well which seems like it can't even be set. Unless I'm missing something.https://lab.civicrm.org/dev/user-interface/-/issues/68Do these really need to be accordions?2024-03-07T13:35:48ZshaneonabikeDo these really need to be accordions?During the work in #67 there was some discussion that the following accordions should perhaps be removed since they aren't that useful (they could be set back to something else).
* [ ] This shouldn't be accordion - Financial/Form/Financ...During the work in #67 there was some discussion that the following accordions should perhaps be removed since they aren't that useful (they could be set back to something else).
* [ ] This shouldn't be accordion - Financial/Form/FinancialAccount.tpl - civicrm/admin/financial/financialAccount?reset=1 + add
* [ ] Does this need to be an accordion? - Case/Form/CaseFilter.tpl - civicrm/case
* [ ] Does this need to be an accordion? - Contribute/Form/ContributionPage/Premium.tpl - civicrm/admin/contribute/custom?action=update&reset=1&id=1&selectedChild=premium
* [ ] Does this need to be an accordion? - SMS/Form/Group.tpl - civicrm/sms/send?reset=1 (install & config SMS dummy ext)
* [ ] Does this need to be an accordion? - SMS/Form/Schedule.tpl - civicrm/sms/send?reset=1
cc @nicol @noah @herbdoolhttps://lab.civicrm.org/dev/core/-/issues/5054Add postal address columns to soft credit report2024-03-07T13:35:18ZyashodhaAdd postal address columns to soft credit reportAdd postal address columns for both `Soft Credit` and `Contributor`contacts to soft credit report .Add postal address columns for both `Soft Credit` and `Contributor`contacts to soft credit report .yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/5053Formbuilder/ event tab: Add the possibility to create or select a location2024-03-07T13:34:54ZNadaillacFormbuilder/ event tab: Add the possibility to create or select a locationIn the tab event, there should be the possibility to select a location or create a location, and in that case set all location fields. Similarly to the current backend form.
This enhancement could be funded.
Discussed with @colemanwIn the tab event, there should be the possibility to select a location or create a location, and in that case set all location fields. Similarly to the current backend form.
This enhancement could be funded.
Discussed with @colemanwhttps://lab.civicrm.org/dev/core/-/issues/5052drupal 8 - php warnings on every page: html_entity_decode(): Passing null to ...2024-03-02T20:06:02ZDaveDdrupal 8 - php warnings on every page: html_entity_decode(): Passing null to parameter #1 ($string) of type string is deprecatedThis just started last night. I'm guessing from https://github.com/civicrm/civicrm-core/pull/29496This just started last night. I'm guessing from https://github.com/civicrm/civicrm-core/pull/29496https://lab.civicrm.org/dev/core/-/issues/5050Message Templates: Membership Receipt, On-line and Contribution Receipt, On-l...2024-03-01T04:21:49Zjustinfreeman (Agileware)Message Templates: Membership Receipt, On-line and Contribution Receipt, On-line - both include userText ("Receipt Message") which is not used for these workflows.Message Templates: Membership Receipt, On-line and Contribution Receipt, On-line - both include userText ("Receipt Message”) which is not used for these workflows. The userText ("Receipt Message") is only used when recording a Contributi...Message Templates: Membership Receipt, On-line and Contribution Receipt, On-line - both include userText ("Receipt Message”) which is not used for these workflows. The userText ("Receipt Message") is only used when recording a Contribution, off-line.
userText ("Receipt Message") is not set for the following workflows:
- Membership, Off-line
- Membership, On-line
- Contribution, On-line
To summarise when a Receipt Message is set or available:
- Membership, Off-line - When the user sets the Receipt Message field
- Membership, On-line - On the related Contribution Page
- Contribution, Off-line - No ability to set a Receipt Message, field is not available
- Contribution, On-line - On the related Contribution Page
Agileware Ref: CIVICRM-2226https://lab.civicrm.org/dev/core/-/issues/5048Unstyled error message for end, when adding recurring start date, but no end.2024-02-29T21:29:35ZherbdoolUnstyled error message for end, when adding recurring start date, but no end.Create an activity, enter a recurring start date and leave the end blank. Attempt to save. An unstyled error message will appear next to the end options. Hard to notice.
![2024-02-29_16.21.51_foodbank-demo.lndo.site_d204c5cf45eb](/uploa...Create an activity, enter a recurring start date and leave the end blank. Attempt to save. An unstyled error message will appear next to the end options. Hard to notice.
![2024-02-29_16.21.51_foodbank-demo.lndo.site_d204c5cf45eb](/uploads/427dc932af3388533c868137eefe47cf/2024-02-29_16.21.51_foodbank-demo.lndo.site_d204c5cf45eb.png)
It should be generated like other inline error messages and also show up in the corner popup.https://lab.civicrm.org/dev/core/-/issues/5047Custom Fields appear to be unavailable under 5.70.12024-03-07T13:34:08ZspalmstromCustom Fields appear to be unavailable under 5.70.1Overview
----------------------------------------
When you navigate to CiviCRM -> Administer -> Custom Data and Screens -> Custom Fields, you don't see any and the Action button is disabled.
Reproduction steps
-------------------------...Overview
----------------------------------------
When you navigate to CiviCRM -> Administer -> Custom Data and Screens -> Custom Fields, you don't see any and the Action button is disabled.
Reproduction steps
----------------------------------------
1. CiviCRM -> Administer -> Custom Field Groups
1. You get the behaviour described above.
Current behaviour
----------------------------------------
![image](/uploads/160d43a48d3da9cf85027bd00173b7e7/image.png)
Notice, no custom field group and the greyed out Action.
Expected behaviour
----------------------------------------
The custom field groups should be listed and the Action button enabled.
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ _MS Edge_ but probably irrelevant.
* __CiviCRM:__ _5.70.1_
* __PHP:__ _8.3.1__ but probably irrelevant.
* __CMS:__ _Drupal 10.2.3_
* __Database:__ _MySQL 8.3.0/8.0.36_
* __Web Server:__ _IIS 10_
Comments
----------------------------------------
_Anything else you would like the reviewer to note._
I have tried debugging this, but have so far not succeeded, so I haven't been able to generate a PR. There will be others with more knowledge than I who can probably point to where to look. 5.72.alpha1 does not show the issue, neither does our production system stuck on 5.68.1 because our test system is displaying the above issue among others.https://lab.civicrm.org/dev/core/-/issues/5046Batch Membership Form: displayed total incorrect when numbers localized2024-03-07T13:33:05ZjamesbugdenBatch Membership Form: displayed total incorrect when numbers localizedOverview
----------------------------------------
Total calculation uses parseFloat which ignores localization settings.
This creates a display issue.
Batch Data Entry for Contributions / Total Amount Entered does not display correc...Overview
----------------------------------------
Total calculation uses parseFloat which ignores localization settings.
This creates a display issue.
Batch Data Entry for Contributions / Total Amount Entered does not display correctly when localized
![image](/uploads/6dd56b9e04871d1cc985ad0b3d1a1675/image.png)
Reproduction steps
----------------------------------------
1. Change Thousands and Decimal separators to space and comma
- Changing Default Language has no effect on issue.
- Default Language should determine thousands separator and decimal delimiter (but it doesn't).
2. Go to Batch Data Entry for Contributions form
3. Enter Number of Items equals 1 and a Total Amount containing a decimal and Save
4. On next form, enter the Amount with a decimal
- Total Amount Entered does not show the decimal
Current behaviour
----------------------------------------
Total Amount Entered is calculated using using JS parseFloat, which ignores localization.
The total does not show any decimal amount, and if the thousands separator is used, is even worse.
For example, in a French locale, 1000,10 & 1000,10 will total to 2000,00
And 1 000,10 & 1 000,10 will total to 2,00
Expected behaviour
----------------------------------------
The total calculation needs to use a locale aware method.
Suggested solution
---
Use localized input (parseMoney) and output (formatMoney) functions.
parseMoney replaces parseFloat but needs to be written.
https://github.com/eileenmcnaughton/civicrm-core/blob/7fd53dcad9604faff6b377a251f7227ab7f6d909/templates/CRM/Batch/Form/Entry.tpl#L287
```
function calculateActualTotal() {
var total = 0;
cj('input[id*="_total_amount"]').each(function () {
if (cj(this).val()) {
total += CRM.parseMoney(cj(this).val());
}
});
cj('.batch-actual-total').html(CRM.formatMoney(total));
}
```https://lab.civicrm.org/dev/core/-/issues/5045CiviCRM 5.70.0 - CiviCRM 5.72.alpha1, Manage Groups page (not SearchKit) the...2024-03-18T15:30:58Zjustinfreeman (Agileware)CiviCRM 5.70.0 - CiviCRM 5.72.alpha1, Manage Groups page (not SearchKit) the "quick edit" feature for the Group Title will include the "Child of" details in the editable fieldCiviCRM 5.70.0 - CiviCRM 5.72.alpha1, Manage Groups page (not SearchKit) the "quick edit" feature for the Group Title will include the "Child of" details in the editable field.
- Instead of editing: "Advisory Board"
- The text edited i...CiviCRM 5.70.0 - CiviCRM 5.72.alpha1, Manage Groups page (not SearchKit) the "quick edit" feature for the Group Title will include the "Child of" details in the editable field.
- Instead of editing: "Advisory Board"
- The text edited is: "Advisory BoardChild of: Summer Program Volunteers"
As shown below in screenshot from CiviCRM 5.72.alpha1 - https://dmaster.demo.civicrm.org/civicrm/group?reset=1
![image](/uploads/56206568c0a4103b7fa27f30602156d0/image.png)
Agileware Ref: CIVICRM-2224https://lab.civicrm.org/dev/core/-/issues/5044CiviCRM 5.70.0, When doing a back-end event registration for an Event which u...2024-03-18T15:30:22Zjustinfreeman (Agileware)CiviCRM 5.70.0, When doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line itemsWhen doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line items. This causes Priceset related errors when generating the emails using t...When doing a back-end event registration for an Event which uses a Priceset, the event registration allows a $0 registration fee which does not record any line items. This causes Priceset related errors when generating the emails using the Message Template. Event registration will just “hang” and the following logged to the error log.
```
An error of type E_ERROR was caused in line 474 of the file civicrm/CRM/Financial/BAO/Order.php. Error message: Uncaught TypeError: CRM_Financial_BAO_Order::getPriceSetID(): Return value must be of type int, null returned in
CRM/Financial/BAO/Order.php:474
```
CiviCRM 5.70.0
Agileware Ref: CIVICRM-2220https://lab.civicrm.org/dev/core/-/issues/5042Website examples with accessibility options2024-03-07T13:31:28Zaydunsaidan.saunders@squiffle.ukWebsite examples with accessibility options(Not a typical issue, but not sure where better to put it.)
For those working on theming and accessibility, here are two example sites of interest:
https://visibilityscotland.org.uk/ The stick figure top left gives accessibility optio...(Not a typical issue, but not sure where better to put it.)
For those working on theming and accessibility, here are two example sites of interest:
https://visibilityscotland.org.uk/ The stick figure top left gives accessibility options for:
- Increase and decrease text
- Grayscale
- High contrast
- Negative contrast
- Light background
- Links underline
- Readable font
https://www.macularsociety.org/ Different options available under Accessibility Options (top left)https://lab.civicrm.org/dev/core/-/issues/5040Events - Registration Confirmation and Receipt (on-line) template fails to co...2024-03-12T00:54:25ZspalmstromEvents - Registration Confirmation and Receipt (on-line) template fails to compileOverview
----------------------------------------
The default `Events - Registration Confirmation and Receipt (on-line)` fails to compile, giving this error:
`"Syntax error in template "eval:{crmScope extensionKey=""}<!DOCTYPE html..."...Overview
----------------------------------------
The default `Events - Registration Confirmation and Receipt (on-line)` fails to compile, giving this error:
`"Syntax error in template "eval:{crmScope extensionKey=""}<!DOCTYPE html..." on line 471 "{capture assign=selfservice_preposition}{if 0 && > 0}{ts}before{/ts}{else}{ts}after{/ts}{/if}{/capture}" - Unexpected "> ""`
|----------------------------------------------------------|
Reproduction steps
----------------------------------------
1. Attempt to register for an event.
1. Enter details.
1. Click on Review.
1. Click on Register.
1. You get an error message.
Current behaviour
----------------------------------------
This error message is generated internally, but was only visible when debugging because of [Call to SmartyCompilerException fails in <drupal root>/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on template compiler error.
](https://lab.civicrm.org/dev/core/-/issues/5039)
```
"Syntax error in template "eval:{crmScope extensionKey=""}<!DOCTYPE html..." on line 471 "{capture assign=selfservice_preposition}{if 0 && > 0}{ts}before{/ts}{else}{ts}after{/ts}{/if}{/capture}" - Unexpected "> ""
```
Expected behaviour
----------------------------------------
You get a registration confirmation page.
Environment information
----------------------------------------
* __Browser:__ _MS Edge_ but probably irrelevant
* __CiviCRM:__ _5.70.1_
* __PHP:__ _8.3.1__
* __CMS:__ _Drupal 10.2.3_
* __Database:__ _MySQL 8.0.36_ but probably irrelevant.
* __Web Server:__ _IIS_ but probably irrelevant.
Comments
----------------------------------------
The 'offending' code is somewhere here, I suspect (lines 461 - 471) but I haven't been able to discover it.
```
{if {event.allow_selfcancelxfer|boolean}}
<tr>
<td colspan="2" {$valueStyle}>
{capture assign=selfservice_preposition}{if {event.selfcancelxfer_time|boolean} && {event.selfcancelxfer_time} > 0}{ts}before{/ts}{else}{ts}after{/ts}{/if}{/capture}
{ts 1="{event.selfcancelxfer_time}" 2="$selfservice_preposition"}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts}
{if {contribution.paid_amount|boolean}}{ts}Cancellations are not refundable.{/ts}{/if}<br/>
{capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture}
<a href="{$selfService}">{ts}Click here to transfer or cancel your registration.{/ts}</a>
</td>
</tr>
{/if}
```5.71.0https://lab.civicrm.org/dev/core/-/issues/5039Call to SmartyCompilerException fails in <drupal root>/vendor/civicrm/civicrm...2024-03-07T13:30:53ZspalmstromCall to SmartyCompilerException fails in <drupal root>/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on template compiler error.Overview
----------------------------------------
When `<drupal root>/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php` fails to compile a template, it attempts to cre...Overview
----------------------------------------
When `<drupal root>/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php` fails to compile a template, it attempts to create a `SmartyCompilerException` by calling this code:
```
$e = new SmartyCompilerException($error_text);
$e->line = $line;
$e->source = trim(preg_replace('![\t\r\n]+!', ' ', $match[ $line - 1 ]));
$e->desc = $args;
$e->template = $this->template->source->filepath;
throw $e;
```
It crashes on the first line giving this message instead.
```
PHP Fatal error: Type of SmartyCompilerException::$line must be int (as in class Exception) in D:\CiviCRM_Custom.git\drupal_test\vendor\civicrm\civicrm-packages\smarty3\vendor\smarty\smarty\libs\sysplugins\smartycompilerexception.php on line 8
```
Reproduction steps
----------------------------------------
1. Attempt to register for an event on line.
1. Enter details.
1. Click Review.
1. Click Register.
Current behaviour
----------------------------------------
With the current (5.70.1) `Events - Registration Confirmation and Receipt (on-line)` template, you get the above error.
|----------------------------------------------------------
Expected behaviour
----------------------------------------
You get a successful registration.
Environment information
----------------------------------------
* __Browser:__ _MS Edge_ but probably irrelevant
* __CiviCRM:__ _5.70.1_
* __PHP:__ _8.3.1__
* __CMS:__ _Drupal 10.2.3_
* __Database:__ _MySQL 8.0._
* __Web Server:__ _IIS_
Comments
----------------------------------------
The fatal error occurs in the first line of the code snippet (line 1153) before the line number is entered. I have been unable to determine which Exception is being extended. This will, of course, only be an issue if there is a problem compiling a template.https://lab.civicrm.org/dev/core/-/issues/5038Default admin when installing2024-03-07T21:36:59ZErikHommelDefault admin when installingWhen installing standalone a user name and password can be entered. These fields have defaults, which led to confusions by 2 installers. They did not notice this and left the default values, and later on could not log in as they did not ...When installing standalone a user name and password can be entered. These fields have defaults, which led to confusions by 2 installers. They did not notice this and left the default values, and later on could not log in as they did not know user nor passwords. Defaults should be removed and fields mandatory.
Also I need to be able to add an email address. If I now did not notice the user and password and then click on the "forgot password" link an email will be sent to a localdomain e-mail address which is not very helpful.https://lab.civicrm.org/dev/core/-/issues/5037Standalone: installation of CiviCRM in another language2024-03-12T13:23:06ZjaapjansmaStandalone: installation of CiviCRM in another languageThe installer for CiviCRM standalone gives an error message when you select another language then English.
The installer is capable of downloading the translation files however this is not implemented yet in the standalone installer.The installer for CiviCRM standalone gives an error message when you select another language then English.
The installer is capable of downloading the translation files however this is not implemented yet in the standalone installer.jaapjansmajaapjansmahttps://lab.civicrm.org/dev/core/-/issues/5036Database Error Using Include/Exclude Search With Long Group Names2024-03-02T03:28:20ZLKuttnerDatabase Error Using Include/Exclude Search With Long Group NamesA database error occurs when attempting to do an Include/Exclude search with a group name over 64 characters in length.
[error]
$Fatal Error Details = array:3 [
"message" => "DB Error: unknown error"
"code" => null
"exception...A database error occurs when attempting to do an Include/Exclude search with a group name over 64 characters in length.
[error]
$Fatal Error Details = array:3 [
"message" => "DB Error: unknown error"
"code" => null
"exception" => Civi\Core\Exception\DBQueryException {
-errorData: array:2 [
"exception" => DB_Error {
+error_message_prefix: ""
+mode: 16
+level: 1024
+code: -1
+message: "DB Error: unknown error"
+userinfo: """
INSERT INTO civicrm_tmp_e_iggroup_1d303da385fcd81408e677514935ea99 (contact_id, group_names)
SELECT civicrm_contact.id as contact_id, civicrm_group.title as group_name
FROM civicrm_contact
INNER JOIN civicrm_group_contact
ON civicrm_group_contact.contact_id = civicrm_contact.id
LEFT JOIN civicrm_group
ON civicrm_group_contact.group_id = civicrm_group.id WHERE
civicrm_group_contact.status = 'Added' AND
civicrm_group_contact.group_id IN(3058) [nativecode=1406 ** **Data too long for column** 'group_names' at row 1]
"""
+backtrace: array:29 [
0 => array:6 [
"file" => ".../modules/civicrm/vendor/pear/db/DB.php"
"line" => 997
"function" => "__construct"
"class" => "PEAR_Error"
"type" => "->"
"args" => array:5 [
0 => "DB Error: unknown error"
1 => -1
2 => 16
3 => array:2 [
0 => "CRM_Core_Error"
1 => "exceptionHandler"
]
4 => """
INSERT INTO civicrm_tmp_e_iggroup_1d303da385fcd81408e677514935ea99 (contact_id, group_names)
SELECT civicrm_contact.id as contact_id, civicrm_group.title as group_name
FROM civicrm_contact
INNER JOIN civicrm_group_contact
ON civicrm_group_contact.contact_id = civicrm_contact.id
LEFT JOIN civicrm_group
ON civicrm_group_contact.group_id = civicrm_group.id WHERE
civicrm_group_contact.status = 'Added' AND
civicrm_group_contact.group_id IN(3058) [nativecode=1406 ** **Data too long for column** 'group_names' at row 1]
"""
]
]https://lab.civicrm.org/dev/user-interface/-/issues/67Tracker for making CiviCRM's accordions accessible2024-03-06T20:54:20ZnicolTracker for making CiviCRM's accordions accessibleIn #60 at least eight accordion markup patterns were identified, demonstrated in ThemeTest. This issue is to track progress on updating all Civi accordion markup to being accessible.
The table below tracks the progress of all of these p...In #60 at least eight accordion markup patterns were identified, demonstrated in ThemeTest. This issue is to track progress on updating all Civi accordion markup to being accessible.
The table below tracks the progress of all of these patterns: bundling pattern 1 and 8 which use the same JS, then there's just three patterns left to make accessible (four, if another instance of an accordion fieldset can be found).
Statuses are either:
- Recommended - a new/agreed pattern, themes should support
- Supported - old pattern but it's still being used, so themes need to support
- Deprecated - old pattern, not being used, so themes can drop support
| Pattern | Status | Initial PR | Current PR |
|---------|--------|------------|------------|
| 1\. crm-accordion-wrapper & crm-accordion-master-wrapper | Supported | [28415](https://github.com/civicrm/civicrm-core/pull/28415) | 64 instances - [29448](https://github.com/civicrm/civicrm-core/pull/29448) |
| 2\. crm-dashlet | Supported | [29613](https://github.com/civicrm/civicrm-core/pull/29613) | (only instance, so same) |
| 3\. crm-collapsible | Supported | [28430](https://github.com/civicrm/civicrm-core/pull/28430) | 9 instances - 8 fixed in [29533](https://github.com/civicrm/civicrm-core/pull/29533) |
| 4\. fieldset | Deprecated (?) | [28441](https://github.com/civicrm/civicrm-core/pull/28441) | That PR might have been only instance |
| 5\. Extensions table | Deprecated | [28473](https://github.com/civicrm/civicrm-core/pull/28473) | Was only instance |
| 6\. Angular directive | Deprecated | [28467](https://github.com/civicrm/civicrm-core/pull/28467) | Was only instance |
| 7\. FormBuilder generated accordion | Deprecated | [28449](https://github.com/civicrm/civicrm-core/pull/28449) | Was only instance |
| 8\. crm-accordion-master-wrapper | Supported | [28421](https://github.com/civicrm/civicrm-core/pull/28421) | Bundled with pattern 1 |
Testing of new patterns should be on all CMSs with their default admin theme (e.g. Claro on Drupal 9+) and Civi's Greenwich (default) theme.
### Testing [29533](https://github.com/civicrm/civicrm-core/pull/29533)
| File | Testing URL | UI works? | likely related JS? | status | notes |
|------|-------------|-----------|--------------------|--------|-------|
| templates/CRM/Admin/Form/ScheduleReminders.tpl | civicrm/admin/scheduleReminders?reset=1 & click 'add reminder' | yes: d7+d10+sa+wp | none | functional | tested with and without an sms provider enabled |
| templates/CRM/Admin/Page/APIExplorer.tpl | civicrm/api3 & then select an Entity, such as ACLRole | breaks: d7+d10+sa+wp | yes, [APIExplorer.js](https://github.com/civicrm/civicrm-core/blob/735b4e27d76f8cc9f0da3c573217eb35a6250720/templates/CRM/Admin/Page/APIExplorer.js), broken | broken | documentation tab content appears below explorer tab content; entity dropdowns don't have intended behavior |
| templates/CRM/Case/Form/ActivityTab.tpl | civicrm/contact/view/case?reset=1 under Activities/SearchFilters | yes: d7 | none that controls the accordion | functional | some extra borders appear around the details |
### Testing [29448](https://github.com/civicrm/civicrm-core/pull/29448)
Would remove all instances of pattern 1 and pattern 8 (the majority of Civi's accordions).
- [x] CRMAccordionToggle - Contact/Import/Form/Preview.tpl - civicrm/import/contact \> page 3
- [x] CRMAccordionToggle - Financial/Form/BatchTransaction.tpl - civicrm/batchtransaction?reset=1&bid=1 (after creating a batch)
- [x] Contact dashboard issues - Contact/Form/Contact.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/Address.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/CommunicationPreferences.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/CustomData.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/Demographics.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/Notes.tpl
- [x] Contact dashboard issues - Contact/Form/Edit/TagsAndGroups.tpl
- [x] Doesn't open on validation error - Activity/Form/FollowUp.tpl - civicrm/activity?reset=1&action=add&context=standalone
- [x] Doesn't open on validation error - Core/Form/RecurringEntity.tpl - civicrm/activity?reset=1&action=add&context=standalone
- [x] Doesn't open on validation error - Form/attachment.tpl - civicrm/activity?reset=1&action=add&context=standalone, civicrm/activity/email/add
- [x] Other issue - common/fatal.tpl - make an error, ie civicrm/payment
- [x] Other markup issue - Contribute/Form/AdditionalPayment.tpl - civicrm/payment?action=add&reset=1&id=1
- [x] Other markup issue - Custom/Page/CustomDataView.tpl - tested by @shaneonabike and requesting feedback (seems ok)
- [x] Other markup issue - Contribute/Form/Contribution.tpl - civicrm/contribute/add
- [x] Other UX issue - Case/Form/Activity.tpl - civicrm/contact/view/case (add activity modal)
- [x] Other tiny issue - Pledge/Form/Search.tpl - civicrm/pledge/search?reset=1 - tested by @shaneonabike and requesting feedback (seems ok)
- [x] Ajax issue - Contact/Page/View/GroupContact.tpl - civicrm/contact/view -\> Groups
- [x] Ajax issue - Pledge/Form/Pledge.tpl - civicrm/pledge/add?reset=1&action=add&context=standalone
- [x] Remove from PR - Case/Form/ActivityTab.tpl - civicrm/contact/view/case
- [ ] ~~This shouldn't be accordion - Financial/Form/FinancialAccount.tpl - civicrm/admin/financial/financialAccount?reset=1 + add~~ see #68
- [ ] ~~Does this need to be an accordion? - Case/Form/CaseFilter.tpl - civicrm/case~~ see #68
- [ ] ~~Does this need to be an accordion? - Contribute/Form/ContributionPage/Premium.tpl - civicrm/admin/contribute/custom?action=update&reset=1&id=1&selectedChild=premium~~ see #68
- [ ] ~~Does this need to be an accordion? - SMS/Form/Group.tpl - civicrm/sms/send?reset=1 (install & config SMS dummy ext)~~ see #68
- [ ] ~~Does this need to be an accordion? - SMS/Form/Schedule.tpl - civicrm/sms/send?reset=1~~ see #68
- [x] Custom/Form/Search.tpl (e.g. civicrm/activity/search?reset=1)
- [ ] ~~Cannot find to test - Mailing/Form/Approve.tpl~~ (there is a path but class isn't called anywhere, does it do anything? New issue https://lab.civicrm.org/dev/core/-/issues/5055)
- [x] Create membership, and then click Edit/View and see the Related Contributions - Member/Form/Membership.tpl
- [x] Create report, click a report like Constituent Summary, and view Custom fields in Field selection- Report/Form/Tabs/FieldSelection.tpl
- [x] Create report, click a report like Constituent Summary, and view fields in Filter - Report/Form/Tabs/Filters.tpl
Edit: moved review summary to a comment.
#### Related class issues
These files are not affected by [29448](https://github.com/civicrm/civicrm-core/pull/29448) but have references to `.crm-accordion-wrapper`, `.crm-accordion-header` or `.crm-master-accordion-header` and need attention to eliminate those classes.
- Activity/Form/Search.tpl
- Case/Form/CaseView.js
- Campaign/Form/Gotv.tpl
- Contact/Form/Search/AdvancedCriteria.tpl
- Contact/Page/View/CustomDataView.tpl
- Contact/Page/View/Summary.js
- Dashlet/Page/Blog.tpl
- Financial/Form/FinancialAccount.tpl - see above
We will need to merge [29563](https://github.com/civicrm/civicrm-core/pull/29563) as well for theming issue fix.Improve Civi's front-endnicolnicolhttps://lab.civicrm.org/dev/core/-/issues/5035Editing an unpaid event registration to add a partial payment crashes2024-02-26T22:27:11ZDaveDEditing an unpaid event registration to add a partial payment crashesI think this is at least semi-recent since I know one site that uses this workflow regularly.
1. Create a backend event registration.
2. Uncheck the record payment checkbox.
3. Save.
4. Edit the registration.
5. Check the record payment...I think this is at least semi-recent since I know one site that uses this workflow regularly.
1. Create a backend event registration.
2. Uncheck the record payment checkbox.
3. Save.
4. Edit the registration.
5. Check the record payment checkbox and put in a partial payment.
6. Crash - Mandatory key(s) missing from params array: trxn_date. Note that on edit the Contribution Date field in the payment section is blank, as opposed to when first creating it. But note also that entering a full payment does not crash.
`civicrm_api3('Payment', 'create', Array) at /CRM/Event/Form/Participant.php:1095`5.71.0