Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-02-04T00:04:15Zhttps://lab.civicrm.org/dev/core/-/issues/4411Standalone language support2024-02-04T00:04:15ZRichStandalone language supportStandalone allows users to set their language, but does nothing with that information; languageNegotiationURL() does nothing.Standalone allows users to set their language, but does nothing with that information; languageNegotiationURL() does nothing.https://lab.civicrm.org/dev/core/-/issues/2727Automatic discounts not being applied to event registration forms2024-02-03T21:01:25ZLKuttnerAutomatic discounts not being applied to event registration formsOverview
----------------------------------------
Following updates to PHP 7.3.29 and MySQL 5.7.34, we discovered that event registration forms are no longer having discounts automatically applied on public pages or back-end. The discoun...Overview
----------------------------------------
Following updates to PHP 7.3.29 and MySQL 5.7.34, we discovered that event registration forms are no longer having discounts automatically applied on public pages or back-end. The discount codes do work when applied manually. No errors are being logged.
Price sets appear to be a determining factor, as any price sets that were created before 2019 are still displaying discounts properly. If I copy or try to update an old price set, they then stop displaying the discount.
Other inquiries have been posted here:
https://github.com/civicrm/org.civicrm.module.cividiscount/issues/266
https://civicrm.stackexchange.com/questions/40054/cividiscount-automatic-discounts-not-being-applied-after-server-updates
Reproduction steps
----------------------------------------
1. Create new price set for an event registration
2. Create new CiviDiscount or use an existing one with automatic discount for current members
3. Set the price set in the fees tab for the event
4. View the registration form
Current behaviour
----------------------------------------
When using a new or recently modified price set, the discount is not displayed on the registration form.
If you submit the discount code manually, it does get applied and displayed on the form.
The occurs on both our production and dev servers with the versions listed below.
Expected behaviour
----------------------------------------
The discount should be displayed on the form in the format: Conference Pass (Includes automatic member discount of: 10% ) - $ 135.00
Environment information
----------------------------------------
- CiviCRM 5.33.5
- Drupal 7.8.1.
- PHP 7.3.29
- MySQL 5.7.34
- CentOS 7.9
Dev server with same OS, PHP, and MySQL
- CiviCRM 5.39
- CiviDiscount 3.8.4
Comments
----------------------------------------
We have investigated for several days and not found any other clues.
I have tried disabling other relevant extensions without seeing any change.https://lab.civicrm.org/dev/core/-/issues/4966Packaged SearchKit cannot be multilingual2024-02-03T18:48:06ZbgmPackaged SearchKit cannot be multilingualPackaged SearchKits, such as CiviCampaign, support translation into a single language, but not into multiple languages.
For example:
- Go to Admin > Localization > Languages
- Enable a second language (such as French), no need to enabl...Packaged SearchKits, such as CiviCampaign, support translation into a single language, but not into multiple languages.
For example:
- Go to Admin > Localization > Languages
- Enable a second language (such as French), no need to enable multi-lingual
- Enable the "language switcher" extension
- Leave the default site language to English
Then go to the Campaign Dashboard, and switch the language to French. The UI will still be mostly in English.
While still being in French, go to Administer > System Settings > Cleanup Cache: flush the cache.
Then reload the Campaign Dashboard, and it will be in French, but only in French.
CiviCRM stores the evaluated strings in the civicrm_search_display` table.https://lab.civicrm.org/dev/backdrop/-/issues/81Add Backdrop Telemetry2024-02-03T12:28:03ZherbdoolAdd Backdrop TelemetryIt would be nice to have the module report to Backdrop how many Backdrop sites, out of all Backdrop sites (with Telemetry enabled), have CiviCRM installed.It would be nice to have the module report to Backdrop how many Backdrop sites, out of all Backdrop sites (with Telemetry enabled), have CiviCRM installed.https://lab.civicrm.org/dev/core/-/issues/3488Minor Search Kit bug: Map Contacts does not update2024-02-03T05:03:23ZAndrew WestMinor Search Kit bug: Map Contacts does not updateOverview
----------------------------------------
If you run Map Contacts in Search Kit, then change the search critiera and run it again, you get the original results.
Reproduction steps
----------------------------------------
1. Sear...Overview
----------------------------------------
If you run Map Contacts in Search Kit, then change the search critiera and run it again, you get the original results.
Reproduction steps
----------------------------------------
1. Search for some contacts
2. Select all, then Map Contacts
3. Close the popup
4. Change the criteria considerably and run the search
5. Select all, then Map Contacts
6. The original results appear
Environment information
----------------------------------------
5.50 with the [proximity patch](https://github.com/civicrm/civicrm-core/pull/23597) applied
Comments
----------------------------------------
The test sites don't have a geocoding provider set up so I can't say for sure it's not something on our setup.https://lab.civicrm.org/dev/core/-/issues/1304Define more usable queue DX for multithreaded background work2024-02-03T05:03:22ZtottenDefine more usable queue DX for multithreaded background work> See also: [dev-docs#674](https://github.com/civicrm/civicrm-dev-docs/pull/674) [dev-docs#676](https://github.com/civicrm/civicrm-dev-docs/pull/676)
Today, if you want to do background work, the general expectation among Civi devs is t...> See also: [dev-docs#674](https://github.com/civicrm/civicrm-dev-docs/pull/674) [dev-docs#676](https://github.com/civicrm/civicrm-dev-docs/pull/676)
Today, if you want to do background work, the general expectation among Civi devs is that you need to create a cron job which queries some bespoke data-structure - and, consequently, the general default is for people to do work synchronously. The aim of this ticket is to reduce the barrier to doing asynchronous work.
Queues are particularly useful for doing expensive background work and deferred work. The `CRM_Queue` drivers were based on Drupal's interface, and they were originally added to support certain upgrade/frontend tasks. However, the docs and original built-in helpers were focused on blocking, single-threaded, foreground usage - they need revision to be pleasant for multiprocess background work.
## General sketch of usage
```php
// Send an email in the background...
Civi::queue()->createItem(new CRM_Queue_Task(
['CRM_Core_BAO_MessageTemplates', 'sendTemplate'],
[[
'groupName' => 'foo',
'messageTemplateID' => 123,
...
]],
));
// Process imports in the background
for ($offset = 0; $offset < $importRows; $offset += $pageSize) {
Civi::queue()->createItem(new CRM_Queue_Task(
['CRM_Import_Processor', 'importRows'],
[$offset, $pageSize, ...]
));
}
```
The `Civi::queue($name = 'default?open,multi')` would use the `$name` expression to find or create the queue. The name includes a brief type expression to indicate how one expects the queue to operate.
```php
Civi::queue('db-upgrader?closed,single')
Civi::queue('email/thankyou?open,multi')
Civi::queue('import/1234abcd?closed,single')
Civi::queue('import/4567efgh?closed,multi')
```
Notes:
* `import/1234abcd` and `import/4567efgh` would be different queues for different tasks.
* `?open`: The task-list is open-ended. You may add more tasks to the queue at any time. There is no "last" task.
* `?closed`: The task-list is pre-planned at the start. Some task will be "last". This means that you may have an 'on-complete' type item.
* `?single`: The runner(s) may only execute one task from this queue at any given time.
* `?multi`: The runner(s) may execute multiple tasks from this queue at any given time.
To run a queue, one could use an API like:
```
## Run any/all known queues
cv api4 Queue.run maxTime=300 maxTasks=20 +w 'name like "%"'
## Run only the import-related queues
cv api4 Queue.run maxTime=300 maxTasks=20 +w 'name like "import/%"'
```
## Some tasks
* Add a variant of `CRM_Queue_Queue_Sql` which supports non-blocking/parallel-processing behavior (e.g. `CRM_Queue_Queue_ParaSql`). @artfulrobot reported working on an implementation of htis.
* Add a facade `Civi::queue($name)` to create-or-load a queue.
* Add an API call and default cron job which can work on tasks from the queue
* Add an example of a dedicated worker script which runs continuously in the background
* Add some drivers that use dedicated queuing systems instead of MySQL
* For `CRM_Queue_Task`, add an on-error callbackhttps://lab.civicrm.org/dev/core/-/issues/4960Regression: 5.70 active relationships not loading when Civi Case not enabled2024-02-03T02:54:13ZElliott EgglestonRegression: 5.70 active relationships not loading when Civi Case not enabledDisable CiviCase and navigate to a summary screen contact with relationships. In the tab list the Relationships tab is missing the count that shows up when CiviCase is enabled. If you click onto the tab you see the disabled relationships...Disable CiviCase and navigate to a summary screen contact with relationships. In the tab list the Relationships tab is missing the count that shows up when CiviCase is enabled. If you click onto the tab you see the disabled relationships but no enabled relationships load.
In the browser console you can see the following:
Post to https://dmaster.localhost:32353/civicrm/ajax/api4
with payload '{"run":["SearchDisplay","run",{"return":"page:1","savedSearch":"Contact_Summary_Relationships","display":"Contact_Summary_Relationships_Active","sort":{},"limit":50,"seed":1706885943746,"filters":{"near_contact_id":161,"is_current":true},"afform":"afsearchTabRel"}]}'
Comes back with 500 error
Object { error_code: 0, error_message: "API (Case, getLinks) does not exist (or the extension it belongs to is not enabled).", status: 500 }5.70.0https://lab.civicrm.org/dev/core/-/issues/4961SearchKit/API4: 'getFieldValue failed' error for group contacts2024-02-02T22:16:09Zaydunsaidan.saunders@squiffle.ukSearchKit/API4: 'getFieldValue failed' error for group contactsOverview
----------------------------------------
SearchKit/API4 fails with 'getFieldValue failed'
Reproduction steps
----------------------------------------
1. Create a new SearchKit search
1. Set 'Search for' to 'Groups'
1. Search a...Overview
----------------------------------------
SearchKit/API4 fails with 'getFieldValue failed'
Reproduction steps
----------------------------------------
1. Create a new SearchKit search
1. Set 'Search for' to 'Groups'
1. Search and confirm groups are shown
2. Add 'With (optional)' 'Group Contacts'
3. Search and observe no results
4. Open browser tools, search again, note '500':
Request is:
{"run":["SearchDisplay","run",{"return":"page:1","savedSearch":{"api_entity":"Group","displays":[],"groups":[],"tag_id":[],"api_params":{"version":4,"select":["id","title","description","is_active","Group_GroupContact_Contact_01.sort_name"],"orderBy":{},"where":[],"groupBy":[],"join":[["Contact+AS+Group_GroupContact_Contact_01","LEFT","GroupContact",["id","=","Group_GroupContact_Contact_01.group_id"]]],"having":[]},"label":"Group+Search+by+demo@example.com"},"sort":[],"limit":50,"seed":1706887602244,"filters":{},"afform":null,"debug":true}]}
Response is:
{
"run": {
"error_code": 0,
"error_message": "getFieldValue failed",
"status": 500
}
}
Environment information
----------------------------------------
* __CiviCRM:__ _Master_
Comments
----------------------------------------
This is currently failing on dmaster but works correctly on 5.65.0
Might be wider issue, but noted on groups.https://lab.civicrm.org/dev/user-interface/-/issues/65Button row overlaps the table on view contribution2024-02-02T06:01:54ZDaveDButton row overlaps the table on view contributionStarted in 5.70. Turn on tax+invoicing to see all the buttons.
There's some discussion at https://github.com/civicrm/civicrm-core/pull/28907
![untitled3](/uploads/4f99d9d8bccdcd9a0aca2aaa51ba37df/untitled3.png)Started in 5.70. Turn on tax+invoicing to see all the buttons.
There's some discussion at https://github.com/civicrm/civicrm-core/pull/28907
![untitled3](/uploads/4f99d9d8bccdcd9a0aca2aaa51ba37df/untitled3.png)5.70.0seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/2873Exporting related contact's information on a contact that is a subtype fails2024-02-02T05:03:23Zfabian_SYSTOPIAExporting related contact's information on a contact that is a subtype failsOverview
----------------------------------------
There is an old bug described on the old issue tracker that prevents related contact information to be exported via the UI if one of the contacts is a subtype.
https://issues.civicrm.org/...Overview
----------------------------------------
There is an old bug described on the old issue tracker that prevents related contact information to be exported via the UI if one of the contacts is a subtype.
https://issues.civicrm.org/jira/browse/CRM-16693
Reproduction steps
----------------------------------------
1. Search for any contacts, e.g. a subtype
1. Select at least one contact and choose "export contacts"
1. choose select fields for export
1. select display name or anything else of the contact (will be exported correctly)
1. select a field of a related contact (relationship) e.g. display name
Current behaviour
----------------------------------------
If one of the contacts is a contact subtype or the relationship is defined to be only allowed among subtypes the exported columns won't contain any data (data of the "main contact" will be exported correctly).
Expected behaviour
----------------------------------------
Data of related contact should be exported as well.
Environment information
----------------------------------------
* Browser: all
* CiviCRM: Since 4.6.x still occuring in 5.35.x
Comments
----------------------------------------
We may have funding to fix this bug and would appreciate an estimate from the core team.Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3458CiviCRM 5.49.1 - CiviCRM Event, Scheduled Reminders that are created with rep...2024-02-02T05:03:22Zjustinfreeman (Agileware)CiviCRM 5.49.1 - CiviCRM Event, Scheduled Reminders that are created with repetition and "also Include" criteria crash the database during cron run, with error: "Not unique table/alias: 'r'"CiviCRM Event, Scheduled Reminders that are created with repetition and "also Include" criteria crash the database during cron run, with error: "Not unique table/alias: 'r'"
This stems from the CRM_Event_ActionMapping class, which speci...CiviCRM Event, Scheduled Reminders that are created with repetition and "also Include" criteria crash the database during cron run, with error: "Not unique table/alias: 'r'"
This stems from the CRM_Event_ActionMapping class, which specifies a base table as "civicrm_event r" when it probably should be "civicrm_participant e", and a query is generated in the repetition check phase like
"INSERT into civicrm_event r INNER JOIN civicrm_event r ..."
This only seems to apply to Scheduled Reminders created for the Event ("Event Reminders"?).
This is initially evidenced by Scheduled Reminders job failure as follows:
```
Entity: Job Action: send_reminder
Summary
Finished execution of Send Scheduled Reminders with result: Failure, Error message: DB Error: unknown error
Details
Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}
Full message:
Finished execution of Send Scheduled Reminders with result: Failure, Error message: DB Error: unknown error
```
It looks like this problem has been around since 2015.
As observed on CiviCRM 5.49.1
Agileware Ref: CIVICRM-1981https://lab.civicrm.org/dev/core/-/issues/3779Add display only field support for formbuilder2024-02-02T01:19:18ZKurund JalmiAdd display only field support for formbuildercolemanwcolemanwhttps://lab.civicrm.org/dev/release/-/issues/245.69.1 critical error: Undefined array key "crmSearchTasks" in "ext/search_ki...2024-02-01T22:42:39ZDmitry Smirnov5.69.1 critical error: Undefined array key "crmSearchTasks" in "ext/search_kit/search_kit.php" on line 61```
PHP Warning: Undefined array key "crmSearchTasks" in ext/search_kit/search_kit.php on line 61
PHP Warning: Trying to access array offset on value of type null in ext/search_kit/search_kit.php on line 61
PHP Fatal error: Uncaught T...```
PHP Warning: Undefined array key "crmSearchTasks" in ext/search_kit/search_kit.php on line 61
PHP Warning: Trying to access array offset on value of type null in ext/search_kit/search_kit.php on line 61
PHP Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array, null given in ext/search_kit/search_kit.php:61
```https://lab.civicrm.org/dev/core/-/issues/3904SearchKit: Active Relationship filter doesn't work in Form Builder2024-02-01T11:35:21ZGhost UserSearchKit: Active Relationship filter doesn't work in Form BuilderOverview
----------------------------------------
When you create a report with Search Kit and Form Builder to view the current Active Relationships, when you filter by "Is Active: Yes" it messes up and shows you the inactive Relationsh...Overview
----------------------------------------
When you create a report with Search Kit and Form Builder to view the current Active Relationships, when you filter by "Is Active: Yes" it messes up and shows you the inactive Relationships.
Reproduction steps
----------------------------------------
1. Create a Search Kit with Related Contacts such as Below
![image](/uploads/76051b5efdcbe35c7ae8f8d0f06ef021/image.png)
2. In the Form Builder add the "Relationship is Active" Field to be able to filter by it.
![image](/uploads/973c5d23ca11fece04f5eb86e957bbbe/image.png)
3. In the Report just filter by active Relationhsips. It will show you the inactive relationships.
![image](/uploads/bca81addc8e401ebf691152bfe62b44f/image.png)
Current behaviour
----------------------------------------
When you filter in the Search Kit Form it filters correctly.
![image](/uploads/089efa35f6f7bbb42836608e7e9e6ad2/image.png)
But when you filter in the Form, it shows you the inactive relationships, as showed above.
When you filter by Inactive relationships they are showed correctly.
![image](/uploads/226ea4dd88937432a00b3db138d5ff69/image.png)
But when you filter by both, it shows only Inactive Relationships.
![image](/uploads/e06ba811de15c17b6db2439a6243727d/image.png)
When you leave the filtering empy it works fine. It shows Active and Inactive Relationships.
Expected behaviour
----------------------------------------
Filter by Active relationships when you input "Yes".
Filter by Inactive relationships when you input "No".
Environment information
----------------------------------------
* __CiviCRM:__ dmaster v.5.56https://lab.civicrm.org/dev/core/-/issues/4939Logged in user who has an existing membership is not seeing this mentioned on...2024-02-01T01:29:08ZpetednzLogged in user who has an existing membership is not seeing this mentioned on a Membership pagePREVIOUS
If logged in/checksum user who has a membership visits a membership page offering that Membership Type they were greeted with "Your XX Membership expires on YY"
CURRENT
Replicated on dmaster - no such message is showingPREVIOUS
If logged in/checksum user who has a membership visits a membership page offering that Membership Type they were greeted with "Your XX Membership expires on YY"
CURRENT
Replicated on dmaster - no such message is showing5.69.4https://lab.civicrm.org/dev/core/-/issues/4879Duplicate declaration of static variable under PHP 8.32024-01-31T22:30:42ZspalmstromDuplicate declaration of static variable under PHP 8.3Overview
----------------------------------------
_Please describe your problem or bug in detail._
_If you have already posted on https://civicrm.stackexchange.com or https://chat.civicrm.org, please include the link to that conversatio...Overview
----------------------------------------
_Please describe your problem or bug in detail._
_If you have already posted on https://civicrm.stackexchange.com or https://chat.civicrm.org, please include the link to that conversation._
Reproduction steps
----------------------------------------
1. Go to the web site.
1. The site crashes with
```
PHP Fatal error: Duplicate declaration of static variable $fields in <drupal root>/vendor/civicrm/civicrm-core/CRM/Mailing/Event/BAO/MailingEventForward.php on line 236
```
Current behaviour
----------------------------------------
```
PHP Fatal error: Duplicate declaration of static variable $fields in <drupal root>/vendor/civicrm/civicrm-core/CRM/Mailing/Event/BAO/MailingEventForward.php on line 236
```
Once the static declaration has been removed, you get.
```
PHP Fatal error: Duplicate declaration of static variable $fields in <D:\CiviCRM_Custom.git\drupal8>drupal root>/vendor/civicrm/civicrm-core/CRM/Import/Parser.php on line 1131
```
Expected behaviour
----------------------------------------
The home page should appear.
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 not relevant
* __CiviCRM:__ _Master/5.68.x..._ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _8.3_ and I suspect very relevant.
* __CMS:__ _Drupal 10.2.0_ but may not be relevant
* __Database:__ _MySQL 8.0.35_ but probably not relevant.
* __Web Server:__ _IIS 10_ but probably not relevant.
Comments
----------------------------------------
Cannot reproduce in Demo as it is running PHP 8.1.x. Drupal now wants at least 8.2 if my understanding is correct.5.69.2https://lab.civicrm.org/dev/core/-/issues/4805[PHP 8.3] static fields syntax error2024-01-31T22:30:17Zjofranzfranz@systopia.de[PHP 8.3] static fields syntax error
```bash
civicrm-core (f8a214edfd8c888dec0922e2622d3e8a9ff66eb2) parallel-lint --no-progress -p php8.3 .
PHP 8.3.0 | 10 parallel jobs
Checked 4242 files in 11.2 seconds
Syntax error found in...
```bash
civicrm-core (f8a214edfd8c888dec0922e2622d3e8a9ff66eb2) parallel-lint --no-progress -p php8.3 .
PHP 8.3.0 | 10 parallel jobs
Checked 4242 files in 11.2 seconds
Syntax error found in 2 files
------------------------------------------------------------
Parse error: ./CRM/Mailing/Event/BAO/MailingEventForward.php:236
> 236 | static $fields = NULL;
Duplicate declaration of static variable $fields in ./CRM/Mailing/Event/BAO/MailingEventForward.php
------------------------------------------------------------
Parse error: ./CRM/Import/Parser.php:1131
> 1131 | static $fields = NULL;
Duplicate declaration of static variable $fields in ./CRM/Import/Parser.php
```
Slightly related: #3958https://lab.civicrm.org/dev/core/-/issues/4928Event registration crashes under Windows - is this a Smarty3 issue?2024-01-31T17:12:28ZspalmstromEvent registration crashes under Windows - is this a Smarty3 issue?## Overview
I raised this in Stackexchange and have had some feedback ([Is this the end of the road for CiviCRM under Windows?](https://civicrm.stackexchange.com/questions/46268/is-it-the-end-of-the-road-for-civicrm-under-windows?noredi...## Overview
I raised this in Stackexchange and have had some feedback ([Is this the end of the road for CiviCRM under Windows?](https://civicrm.stackexchange.com/questions/46268/is-it-the-end-of-the-road-for-civicrm-under-windows?noredirect=1#comment55813_46268))
## Reproduction steps
1. Create an event.
2. Fill in details for two people and click Review.
3. Click Register.
4. Got a cannot write file error:
```plaintext
SmartyException: "unable to write file <Drupal root>\web\sites\default\files\civicrm\templates_c\en_GB\c3\0d\eb\c30deb6712dca60a591491c1b9b34a88872d619f_0.string.{eval var=$smartySingleUseString|smarty:nodefaults}.php"
```
5. After replacing string: with eval: in line 1040 of \`\`\`\\vendor\\civicrm\\civicrm-core\\CRM\\Utils\\String.php\`\` got
```plaintext
Civi\Crypto\Exception\CryptoException: Failed to find key by ID or tag (z6BNl0_wDYQft0x4mbQidOEKlHk) in <Drupal root>\vendor\civicrm\civicrm-core\Civi\Crypto\CryptoToken.php on line 143
```
## Current behaviour
See above. The file write error is because Windows doesn't support colons and other unusual characters in file names.
## Expected behaviour
Registration should be successful.
## Environment information
* **Browser:** _IIS_ but probably not relevant.
* **CiviCRM:** _5.71.Alpha1 but also seen in 5.69.2_ The issue in the latter is stopping us updating our live environment.
* **PHP:** \_8.3.1_\_
* **CMS:** _Drupal 10.2.2_
* **Database:** _MySQL 8.0_
* **Web Server:** _IIS 10_
## Comments
Smarty is clearly intended to support Windows as there are references to it in the code. It looks as though the syntax for smartySingleUseString requires file names that are incompatible with running under Windows, or maybe I have misunderstood something. My knowledge of the mail system doesn't readily lend itself to discovering where the encryption keys or tags should be found, but maybe somebody reading this has a better knowledge than I.
I have not cluttered the issue with the long stack traces.5.71.0https://lab.civicrm.org/dev/core/-/issues/4937(regression) FormBuilder forms with yes/no and autocomplete fail in Firefox2024-01-31T08:51:22ZJonGold(regression) FormBuilder forms with yes/no and autocomplete fail in FirefoxOverview
----------------------------------------
In Civi 5.69 (and master) forms that meet certain criteria fail to submit in Firefox. I believe there are scenarios other than the one I describe below, but this represents a relatively ...Overview
----------------------------------------
In Civi 5.69 (and master) forms that meet certain criteria fail to submit in Firefox. I believe there are scenarios other than the one I describe below, but this represents a relatively simple replicable case.
I did a `git bisect` and tracked it down to https://github.com/civicrm/civicrm-core/pull/28452 (no Gitlab bot that's not a pull request for this issue).
Reproduction steps
----------------------------------------
I've attached a FormBuilder form that's a relatively simple replication case. This requires a field of type "Yes/No" called `yesno` in a custom group with name `contact_fields2`.
Select "yes" or "no" on the custom field, press "Submit".
Current behaviour
----------------------------------------
If you submit this form in Firefox, you see the error "Sorry an error occurred and your information was not saved.", but then the page reloads, though the URL changes:
e.g.:
```
# original
http://dmaster.localhost/civicrm/org-member-renewal
# post-submit
http://dmaster.localhost/civicrm/org-member-renewal?contact-fields-2-yesno-1=0
```
In Chrome, the page submits successfully.
There's also a ton of JS console errors.
On my civicrm-buildkit site, they looked like this:
```
Error: [$rootScope:infdig] http://errors.angularjs.org/1.8.2/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%7D%5D%5D
Angular 41
jQuery 2
<anonymous> Angular
jQuery 7
<anonymous> Common.js:1659
jQuery 8
angular.js:15697:15
```
On my 5.69.2 non-buildkit site, it looked like this:
```
Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: fn","newVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":{}},"oldVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":"..."}}],[{"msg":"fn: fn","newVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":"..."},"oldVal":"..."}],[{"msg":"fn: fn","newVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":"..."},"oldVal":"..."}],[{"msg":"fn: fn","newVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":"..."},"oldVal":"..."}],[{"msg":"fn: fn","newVal":{"formName":"afform:afformOrganizationMembershipRenewal","fieldName":"Organization2:id","values":"..."},"oldVal":"..."}]]
https://errors.angularjs.org/1.8.2/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%7B%7D%7D%2C%22oldVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%22...%22%7D%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%22...%22%7D%2C%22oldVal%22%3A%22...%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%22...%22%7D%2C%22oldVal%22%3A%22...%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%22...%22%7D%2C%22oldVal%22%3A%22...%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20fn%22%2C%22newVal%22%3A%7B%22formName%22%3A%22afform%3AafformOrganizationMembershipRenewal%22%2C%22fieldName%22%3A%22Organization2%3Aid%22%2C%22values%22%3A%22...%22%7D%2C%22oldVal%22%3A%22...%22%7D%5D%5D
Angular 8
$onChanges http://reamp.local/wp-content/plugins/civicrm/civicrm/ang/crmUi.js?r=GUtKAen_US:789
Angular 34
jQuery 2
<anonymous> Angular
jQuery 7
<anonymous> http://reamp.local/wp-content/plugins/civicrm/civicrm/js/Common.js?r=GUtKAen_US:1659
jQuery 8
angular.js:138:12
```
Expected behaviour
----------------------------------------
Form should always submit successfully.
Environment information
----------------------------------------
* __Browser:__ Firefox 120.0.1
* __CiviCRM:__ master
* __PHP:__ 8.1
* __CMS:__ Drupal 7
* __Database:__ Replicated w/ MariaDB 10.6 and 10.11
* __Web Server:__ Apache 2.45.69.4https://lab.civicrm.org/dev/core/-/issues/3472Event participant selection gets lost when changing page2024-01-31T05:03:27ZPhilipp MichaelEvent participant selection gets lost when changing pageOverview
----------------------------------------
On the find participant lists you are unable to select multiple rows across several pages.
Reproduction steps
----------------------------------------
1. Click on **Events -> Find Partic...Overview
----------------------------------------
On the find participant lists you are unable to select multiple rows across several pages.
Reproduction steps
----------------------------------------
1. Click on **Events -> Find Participants**.
1. Click on **Search** to get a list of all participants (you need at least 25 to get paging).
1. Select at least one participant
1. Notice that the radio button "Selected records only" gets updated accordingly to the selection.
1. Click on **Next** to change page.
1. Notice that the radio button "Selected records only" contains "0".
1. Click on **Back** to change to previous page.
1. Notice that the selection is lost.
Current behaviour
----------------------------------------
If you search for participants (or list participants of a certain event) and select some rows to make some bulk changes, selected rows get lost when using the pagination.
![Participant-Selection](/uploads/3d580a599058faec2cbf42bf9458bc57/Participant-Selection.gif)
Expected behaviour
----------------------------------------
The selection should be persistant across pages.
Environment information
----------------------------------------
* __Browser:__ Firefox 100.0.1
* __CiviCRM:__ _5.47.4_
* __PHP:__ _7.4.29__
* __CMS:__ _Drupal 7_
Comments
----------------------------------------
* The problem does not occur on contact search pages.
* There is a similar issue which has been fixed but seems to be occurring again: https://lab.civicrm.org/dev/core/-/issues/990