CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2024-03-07T13:41:11Zhttps://lab.civicrm.org/dev/core/-/issues/5058FormBuilder "magic" links should log in the user so that User-based Entity se...2024-03-07T13:41:11ZKeith NunnFormBuilder "magic" links should log in the user so that User-based Entity security behaves as expectedOverview
----------------------------------------
When sending a link to a Form Builder form to a user by token (e.g. {afform.afformSubmissionLink}), the generated URL provides information that allows the form to auto-populate. It should...Overview
----------------------------------------
When sending a link to a Form Builder form to a user by token (e.g. {afform.afformSubmissionLink}), the generated URL provides information that allows the form to auto-populate. It should also log in the specific contact who received the link similarly to the behaviour of the contact_id and checksum tokens when used together.
Reproduction steps
----------------------------------------
1. create a new basic submission form
1. set 'Expose to:' to include 'Message Tokens'
1. set 'Individual 1' Security to 'User-based'
1. set 'Autofill' to 'current user'
1. Go to a contact summary page and merge document to use the exposed token.
1. Follow the link in the merged document
Current behaviour
----------------------------------------
Sometimes the form will throw an error, other times if the overall display permissions are open enough, the form will display and auto-populate, but any changes to the Individual 1 contact record will fail.
Expected behaviour
----------------------------------------
CiviCRM should recognize the user as a logged-in contact because we have sent them a 'magic' link.
Environment information
----------------------------------------
https://wpmaster.demo.civicrm.org test environment via firefox 123
Comments
----------------------------------------https://lab.civicrm.org/dev/core/-/issues/5057Make descriptions visible in drop down2024-03-22T18:22:38ZyashodhaMake descriptions visible in drop downAll the select2 drop-down are mostly option values which do have a description field in the database.
It will be useful to use this for display in select2 drop-downs.
We already show description for entities like events. It will be help...All the select2 drop-down are mostly option values which do have a description field in the database.
It will be useful to use this for display in select2 drop-downs.
We already show description for entities like events. It will be helpful to choose options for the user(if options do indeed explanation and are configured as such)https://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/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/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/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/5034Schedule Reminders task for Events fail to complete when Event tokens used in...2024-02-28T12:49:12ZmarcusjwilsonSchedule Reminders task for Events fail to complete when Event tokens used in combination with "Also include" ContactsOverview
----------------------------------------
When Scheduled Reminders are set up for an Event in CiviCRM, and the content of that email includes Tokens relating to the Event (Event Title, Start Date, etc.) AND the user includes addi...Overview
----------------------------------------
When Scheduled Reminders are set up for an Event in CiviCRM, and the content of that email includes Tokens relating to the Event (Event Title, Start Date, etc.) AND the user includes additional Contacts to include in the Scheduled Reminder (in the "Also include" field), this breaks the Scheduled Reminder scheduled task, and it fails to complete.
Reproduction steps
----------------------------------------
1. From an event, set up a Scheduled Reminder to send based on the Event, i.e. 24 hours before the Start Date
2. In the body content of the Scheduled Reminder email, include one or more Tokens related to the Event (Event Title, Event Start Date)
3. In the "Limit or Add Recipients" field for the Scheduled Reminder "Also include" a Contact who is NOT registered as a Participant for the given event
Current behaviour
----------------------------------------
When the scenario above is in place, Scheduled Reminder task trigger by the CiviCRM Cron starts to fail and not complete.
Expected behaviour
----------------------------------------
Scheduled Reminder tasks should continue to run, complete and include the additional Contacts in the Reminder email as well as the Event Participants.
Environment information
----------------------------------------
* __CiviCRM:__ 5.64.4
* __PHP:__ _7.4/8.0__
* __CMS:__ _WordPress 6.4.3_
Comments
----------------------------------------
Tested and reproduced on production site and on a clean Civi+WP site using CiviBuild in test CiviCRM site.https://lab.civicrm.org/dev/core/-/issues/5033Fatal error visiting event registration page with a disabled pricefield2024-02-28T17:30:52Zmagnolia61Fatal error visiting event registration page with a disabled pricefieldOverview
----------------------------------------
Opening a registration page with a priceset with one of the pricefields disabled results in a fatal error.
TypeError: Argument 1 passed to CRM_Event_Form_Registration::getUsedSeatsCount(...Overview
----------------------------------------
Opening a registration page with a priceset with one of the pricefields disabled results in a fatal error.
TypeError: Argument 1 passed to CRM_Event_Form_Registration::getUsedSeatsCount() must be of the type int, null given, called in /var/www/vhosts/xyz/web/sites/all/modules/civicrm/CRM/Event/Form/Registration.php on line 956 in CRM_Event_Form_Registration->getUsedSeatsCount() (line 1040 of /var/www/vhosts/xyz/web/sites/all/modules/civicrm/CRM/Event/Form/Registration.php).
The problem for us is somewhere in the function isOptionFullID.
Something in our priceset does not resolve to valid value for $optId = $option['id'];
when from IsOptionFullID the function getUsedSeatsCount is called it results in an error because it expects an int value for priceFieldValueID
protected function getUsedSeatsCount(int $priceFieldValueID) : int {
Reproduction steps
----------------------------------------
1. An event has a priceset with one of the pricefields disabled
2. Opening the registration page results in a fatal error
Current behaviour
----------------------------------------
![image](/uploads/041bb8c19666fc3f99c3f5bec78606bb/image.png)
![image](/uploads/2ff1b9c96e300515694d0a6930409328/image.png)
Expected behaviour
----------------------------------------
The registration page would show, with the pricefield disabled
Environment information
----------------------------------------
Current master / sandbox
Comments
----------------------------------------
My limited detective and coding skills enable me to reach this far, I have no clue on where to search further and what piece of code is the root cause of this.5.71.0https://lab.civicrm.org/dev/core/-/issues/5031Standalone - multi-lingual fatals when accessing OptionValues2024-03-06T15:18:42ZufundoStandalone - multi-lingual fatals when accessing OptionValues@bgm :
> if we enable multi-lingual (tested on 5.72/master), it fatals because it tries to access Option Values before i18n dbLocale seems to have been set (i.e. I see it querying civicrm_option_value and not civicrm_option_value_en_US)...@bgm :
> if we enable multi-lingual (tested on 5.72/master), it fatals because it tries to access Option Values before i18n dbLocale seems to have been set (i.e. I see it querying civicrm_option_value and not civicrm_option_value_en_US).
> It happens immediately after enabling multi-lingual: ex: https://smaster.demo.civicrm.org/civicrm/admin/setting/localization?reset=1
>
> Go to Administer > Localization > Translation. Enable multi-lingual, fatals.
>
> I haven't dug into it, but part of me would be pretty happy to deprecate multi-lingual mode, and not support it in Standalone. I do use it, but there are other ways we could support config translation.https://lab.civicrm.org/dev/core/-/issues/5028Add CKEditor/WYSIWYG to the Event Confirmation Email Text Field2024-02-28T12:47:28ZpbarmakAdd CKEditor/WYSIWYG to the Event Confirmation Email Text FieldPer a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and b...Per a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and branding) without the need to learn HTML. Given the Registration Screen Introductory Text and Thank-you Screen text both have this option, it seems like a good idea to also have it for the confirmation email.https://lab.civicrm.org/dev/core/-/issues/5027Event Confirmation Email Text Token Should be Set as text/html2024-02-28T12:46:59ZpbarmakEvent Confirmation Email Text Token Should be Set as text/htmlPer a chat with Eileen and Seamus, adding a ticket here. The Event confirmation email text is currently not rendering any input HTML tags. It seems this is because the token is not set as "text/html".
Seamus recommended changing https:/...Per a chat with Eileen and Seamus, adding a ticket here. The Event confirmation email text is currently not rendering any input HTML tags. It seems this is because the token is not set as "text/html".
Seamus recommended changing https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Tokens.php#L239 from this:
```
else {
$tokens[$fieldName]['text/plain'] = $event[$fieldName];
}
```
to this:
```
else {
$type = ($fieldName === 'confirm_email_text' ? 'text/html' : 'text/plain');
$tokens[$fieldName][$type] = $event[$fieldName];
}
```
For my testing, I just added this line around line 227:
`$tokens['confirm_email_text']['text/html'] = $event['confirm_email_text'];`
Either of those seem to solve the issue, converting the value of that field to actual html code.https://lab.civicrm.org/dev/core/-/issues/5024FormBuilder: "edit" and "clone" broken for Core Packaged forms2024-02-26T13:16:50ZnoahFormBuilder: "edit" and "clone" broken for Core Packaged formsTo reproduce:
1. Go to https://dmaster.demo.civicrm.org/civicrm/admin/afform
2. On the Submission Forms tab, click "Edit" or "Clone" next to afformQuickAddIndividual or afformQuickAddOrganization.
What happens:
A blank FormBuilder con...To reproduce:
1. Go to https://dmaster.demo.civicrm.org/civicrm/admin/afform
2. On the Submission Forms tab, click "Edit" or "Clone" next to afformQuickAddIndividual or afformQuickAddOrganization.
What happens:
A blank FormBuilder config screen appears.
What should happen:
The config & elements from the selected form should load.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5023Add aria-label to CheckBox, Radio and EntityRef in FormBuilder2024-02-21T17:59:01ZJoeMurrayAdd aria-label to CheckBox, Radio and EntityRef in FormBuilderModify
- [ ] CheckBox.html,
- [ ] Radio.html and
- [ ] EntityRef.html
in ext/afform/ang/af/fields/ to add aria-label="{{$ctrl.defn.label}} {{opt.label}}" to the input element's definition.
AGH tested these successfully with VoiceOve...Modify
- [ ] CheckBox.html,
- [ ] Radio.html and
- [ ] EntityRef.html
in ext/afform/ang/af/fields/ to add aria-label="{{$ctrl.defn.label}} {{opt.label}}" to the input element's definition.
AGH tested these successfully with VoiceOver on Safari on a Mac.
See Accessibility notes discussion of https://chat.civicrm.org/civicrm/pl/un7ajre7mbyc3fis4qebnczpse .JoeMurrayJoeMurray