Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-06-29T12:55:38Zhttps://lab.civicrm.org/dev/core/-/issues/2114Trigger-based logging doesn't log if just changing a letter to upper/lower case2023-06-29T12:55:38ZDaveDTrigger-based logging doesn't log if just changing a letter to upper/lower case1. Turn on logging. (Admin - System Settings - Misc - Logging).
1. Change the first name of a contact just changing e.g. the first letter from upper to lower case.
1. Either look in the database in log_civicrm_contact or go to CiviReport...1. Turn on logging. (Admin - System Settings - Misc - Logging).
1. Change the first name of a contact just changing e.g. the first letter from upper to lower case.
1. Either look in the database in log_civicrm_contact or go to CiviReports - Contact Reports - Contact Logging.
1. Change has not been logged.
It's because the standard collation for civi is the case-insensitive xxx_unicode_ci or possibly xxx_general_ci. You might have also changed it manually to use the same as your CMS but is likely still case-insensitive. And in mysql 8 the default utf8mb4_0900_ai_ci is also accent-insensitive (i.e. `é` is treated the same as `e`), if you manually changed your civi tables to use that.
The logging triggers should probably use `xxx_bin`. Related but separate: https://github.com/civicrm/civicrm-core/pull/18721https://lab.civicrm.org/dev/translation/-/issues/74ts() - Allow symbolic placeholders2022-01-27T13:24:34Ztottents() - Allow symbolic placeholdersOverview
---------
When writing translatable strings, placeholders must be numeric.
This leads to some quirky strings - eg if you're outputting a title and subtitle ("Some Chapter: Some Section"), the only way to encode that is `ts('%1...Overview
---------
When writing translatable strings, placeholders must be numeric.
This leads to some quirky strings - eg if you're outputting a title and subtitle ("Some Chapter: Some Section"), the only way to encode that is `ts('%1: %2')`. This string should be translatable because the layout is language dependent (eg LTR/RTL; eg punctuation-preferences), but the exported string will become meaningless when presented in Transifex (or similar). And it may be confused with other/similar strings.
Current behavior
-----------------
The function `ts(string $str, array $params)` accepts the following `$params`:
* Functional params (`count`, `plural`, `context`, `domain`, `escape`, `skip_translation`)
* Substitution params (numeric keys; `0`, `1`, `2`, ...)
As in:
```php
echo ts('Hello, %1!', [
1 => $name,
]);
echo '<li>' . ts('%1: %2', [
1 => $title,
2 => $subtitle,
]) . '</li>';
echo ts('The directory %1 is not writable. Please check your file permissions.', [
'plural' => 'The following directories are not writable: %1. Please check your file permissions.',
'count' => count($notWritableDirs),
1 => implode(', ', $notWritableDirs),
]),
```
```smarty
{ts 1=Bob}Hello %1!{/ts}
<li>{ts 1="Title" 2="Subtitle"}%1: %2{/ts}</li>
```
~~Proposed behavior (draft 1; symbol-prefix)~~
-----------------
Any `$params` which begin with a symbol (`%`, `_`, `{`, `@`, etc) will be used for variable substitution.
The earlier examples remain valid. Additionally, these examples are also valid:
```php
echo ts('Hello, %name!', [
'%name' => $name,
]);
echo '<li>' . ts('%title: %subtitle', [
'%title' => $title,
'%subtitle' => $subtitle],
) . '</li>';
echo ts('The directory %dir is not writable. Please check your file permissions.', [
'plural' => 'The following directories are not writable: %dir. Please check your file permissions.',
'count' => count($notWritableDirs),
'%dir' => implode(', ', $notWritableDirs),
]),
```
```smarty
{ts _NAME_=Bob}Hello _NAME_!{/ts}
<li>{ts _title_="Foo" _subtitle_="Bar"}_title_: _subtitle_{/ts}</li>
```
Proposed behavior (draft 2; capitalization-based)
-----------------
Any `$params` which begin with a capital letter (`[A-Z]`) will be used for variable substitution.
```php
echo ts('Hello, %NAME!', [
'NAME' => $name,
]);
echo '<li>' . ts('%TITLE: %SUBTITLE', [
'TITLE' => $title,
'SUBTITLE' => $subtitle],
) . '</li>';
echo ts('The directory %DIR is not writable. Please check your file permissions.', [
'plural' => 'The following directories are not writable: %DIR. Please check your file permissions.',
'count' => count($notWritableDirs),
'DIR' => implode(', ', $notWritableDirs),
]),
```
```smarty
{ts NAME=Bob}Hello %NAME!{/ts}
<li>{ts TITLE="Foo" SUBTITLE="Bar"}%TITLE: %SUBTITLE{/ts}</li>
```
Comments
---------
Either draft (using symbol-prefix or using uppercase) should avoid conflicts with existing strings+params. (Existing params do not begin with symbols and they are not uppercase.)
A couple factors in choosing a symbol:
* Using `%` is most consistent with current `ts()` style.
* `ts()` is used in multiple programming languages. Each has different compatibility/constraints.
* Pure PHP and pure JS are fairly flexible (`%FOO`, `{{FOO}}`, `_FOO_`, etc)
* Smarty-HTML (`{ts KEY=VALUE}...{/ts}`) is pretty limited. The bottleneck is how it parses the `KEY`.
* Angular-HTML (`{{ts('...')}}`) is in the middle. It's OK for `{{ts('%FOO')}}`, `{{ts('_FOO_')}}`, but I wouldn't count on `{{ts('{{FOO}}')}}`.
* If you want one symbol that works everywhere, `_` is probably it.
* Being flexible about symbol may be good for compatibility in the most contexts.
I suppose that the uppercase approach constrains style a bit, but maybe that's a good thing - ie you get more consistency in how `ts()` looks across environments.
Questions
---------
Are there any constraints in other layers -- eg Transifex, civistrings -- which would prevent this?
As far as I know, the only constraints which require using numeric-keys are baked into `ts()` itself.https://lab.civicrm.org/dev/core/-/issues/3040UI allows creation of unresolvable failure for status check "Relationship Typ...2023-11-16T16:09:55ZAllenShawUI allows creation of unresolvable failure for status check "Relationship Type Internal Name Duplicates"Admittedly, "unresolvable" is a bit of an overstatement, but you can create this situation in the UI, and then the UI provides no way to resolve it (it is resolvable via the API).
**To reproduce:**
1. Visit https://dmaster.demo.civicrm....Admittedly, "unresolvable" is a bit of an overstatement, but you can create this situation in the UI, and then the UI provides no way to resolve it (it is resolvable via the API).
**To reproduce:**
1. Visit https://dmaster.demo.civicrm.org/civicrm/admin/reltype?reset=1
1. Create a new relationship type with Label A "Foobar" and Label B "Employee Of"
1. Visit https://dmaster.demo.civicrm.org/civicrm/a/#/status and observe error: "Relationship Type Internal Name Duplicates;
Relationship type Employee of has the same internal machine name as another type.": ![error](/uploads/6d2eb70ff9aac5ce16ca948faee6d077/error.png)
1. Visit https://dmaster.demo.civicrm.org/civicrm/admin/reltype?reset=1 and edit the offending relationship (created in step 1); you can edit the labels but not the name. Best you can do is change "Employee of" to something else, like "Foobar of".
1. Visit https://dmaster.demo.civicrm.org/civicrm/a/#/status and observe that the error persists, exactly the same as in Step 3.
There's no way to change the name in the UI; you must use the API to change it.
**Proposed solution:**
* Upon creating a relationship type (other than reserved types created upon installation), use centralized logic to derive unique name from label; i.e., opt-in to the new behavior provided by https://github.com/civicrm/civicrm-core/pull/22508.
Thoughts?https://lab.civicrm.org/dev/financial/-/issues/85UI in core for processing refunds2019-10-21T21:48:01ZeileenUI in core for processing refundsWe looked at adding the ability to process refunds via the UI at the sprint.
We looked at
1) Changing the existing record refund form (Additional Payment form) to provide the option of processing the refund if offered by the processor ...We looked at adding the ability to process refunds via the UI at the sprint.
We looked at
1) Changing the existing record refund form (Additional Payment form) to provide the option of processing the refund if offered by the processor if a check box was selected
1) Changing the existing record refund form (Additional Payment form) to provide the option of processing the refund if offered by the processor if a differently named button was pressed
1) Having a second action for 'Process Refund' or similar
Opinions at Barcelona were pretty evenly divided between the 3!
A couple of things that might make a difference
1) here is a screen shot of how adding a payment currently looks
![Screen_Shot_2019-10-21_at_7.57.12_PM](/uploads/08d0eb711f4dd11fe0a980b8f92f949c/Screen_Shot_2019-10-21_at_7.57.12_PM.png)
1) @JoeMurray was keen that it be a case of the option showing if ALL payments on a contribution could be refunded. In the edge case of payments from more than one processor the submit refund option would not show
1) @JoeMurray agreed that it is OK to ALWAYS show 'record payment' & 'record refund' as opposed to currently it only shows 'add payment' if there it a balance to pay & add 'record refund' if there is a balance to refund. However, we need to be able to overpay & over refund - I'm going to work on this issue & seeing the UI afterwards (just having the links more often visible) might affect what people think 'makes sense' - issue for that is https://lab.civicrm.org/dev/financial/issues/86https://lab.civicrm.org/dev/core/-/issues/4906UI to make multivalue custom field sets on any entity2024-01-17T18:16:59ZMichael McAndrewUI to make multivalue custom field sets on any entityFollowing https://github.com/civicrm/civicrm-core/pull/27549 it appears that the ability to make custom data multi-value is missing from the create custom data set UI
![image](/uploads/e6c5ab54c7c80e33b34c206c41c1339a/image.png)
The ab...Following https://github.com/civicrm/civicrm-core/pull/27549 it appears that the ability to make custom data multi-value is missing from the create custom data set UI
![image](/uploads/e6c5ab54c7c80e33b34c206c41c1339a/image.png)
The above screenshot shows the form with the missing field. I would expect all entities to now show the 'Does this Custom Field Set allow multiple records?' checkbox as per the screenshot below (taken when the entity was set to individual).
![image](/uploads/38e5b73c0ebf6f44638c36b8bf1e262e/image.png)
@colemanw - you might have some thoughts on this. Guessing it might have something to do with the ' (in theory)' ending to https://github.com/civicrm/civicrm-core/pull/27549https://lab.civicrm.org/dev/core/-/issues/3587Unable to load the recipients group when sending mailing with Civimail2023-10-05T15:41:24ZmarzastUnable to load the recipients group when sending mailing with CivimailI am running CiviCRM 5.17.4 on Wordpress 5.2.3. The problem I am facing is that I am unable to send mailing to mailing lists (defined as groups) via CiviMail.
When I try to enter the group in the Recipients box I get Loading Failed mess...I am running CiviCRM 5.17.4 on Wordpress 5.2.3. The problem I am facing is that I am unable to send mailing to mailing lists (defined as groups) via CiviMail.
When I try to enter the group in the Recipients box I get Loading Failed message and none of the available groups is loaded (see image below). The problem appears for existing and new mailings.
Interestingly when I re-use the existing mailing I can still send it to a previously used group (though I cannot change the recipient lists). The groups load normally in manage group page.
![aE8nz](/uploads/dca6a15c237cbb7612df433a31b769d5/aE8nz.png)
*Issue already reported on CiviCRM Stack Exchange: https://civicrm.stackexchange.com/questions/33070/unable-to-load-the-recipients-group-when-sending-mailing-with-civimail*https://lab.civicrm.org/dev/core/-/issues/4399Unable to merge incomplete memberships due to missing end_date2023-07-06T06:38:24Zfreeform.stephUnable to merge incomplete memberships due to missing end_dateWhen a contribution fails when purchasing a membership, a membership remains (as either pending or cancelled) that does not have an end date. When merging contacts any memberships are expected to have an end date.
`"UPDATE civicrm_membe...When a contribution fails when purchasing a membership, a membership remains (as either pending or cancelled) that does not have an end date. When merging contacts any memberships are expected to have an end date.
`"UPDATE civicrm_membership SET end_date = '' WHERE id=ID [nativecode=1292 ** Incorrect date value: '' for column `civicrm`.`civicrm_membership`.`end_date` at row 1]"`https://lab.civicrm.org/dev/core/-/issues/3313Unable to save a membership with a text price field2023-12-19T22:18:09ZDaveDUnable to save a membership with a text price fieldSame problem in 5.28 and master and can reproduce on dmaster.demo.civicrm.org. Or maybe I'm missing something.
1. Create a price set used for memberships.
1. Set financial type to member dues.
1. Add one text field (the default input fi...Same problem in 5.28 and master and can reproduce on dmaster.demo.civicrm.org. Or maybe I'm missing something.
1. Create a price set used for memberships.
1. Set financial type to member dues.
1. Add one text field (the default input field type).
1. Amount doesn't matter - put in some number.
1. Leave other fields at defaults.
1. Create a new membership.
1. Choose the price set.
1. Put in quantity 1.
1. Can leave the rest at defaults.
1. Click Save.
1. ERROR: Select at least one membership option.
It works with a radio field.https://lab.civicrm.org/dev/financial/-/issues/202Unable to update recurring amount when using Sales Tax2022-08-03T15:19:05ZKarinGUnable to update recurring amount when using Sales TaxHitting Edit on the template contribution (with or without line item editor extension - June 2022 version) -> saving it [multiple times] -> does not update the amount in the recurring series -> note the mismatches of amounts:
![image](/...Hitting Edit on the template contribution (with or without line item editor extension - June 2022 version) -> saving it [multiple times] -> does not update the amount in the recurring series -> note the mismatches of amounts:
![image](/uploads/8280ff94ddb4e66ba1368e64c1d4b72a/image.png)https://lab.civicrm.org/dev/core/-/issues/4293Uncaught SyntaxError: '#' not followed by identifier2023-11-23T07:47:01ZBastien HoUncaught SyntaxError: '#' not followed by identifierIn a contribution page, I get an `Uncaught SyntaxError: '#' not followed by identifier` error in the console.
Reproduction steps
----------------------------------------
1. Create a contribution page.
1. Insert it in a WordPress page.
1...In a contribution page, I get an `Uncaught SyntaxError: '#' not followed by identifier` error in the console.
Reproduction steps
----------------------------------------
1. Create a contribution page.
1. Insert it in a WordPress page.
1. Display the page.
1. Open the console of the navigator
In _templates/CRM/Contribute/Form/Contribution/Main.tpl_, the following lines are misinterpreted before being output:
```js
function useAmountOther() {
var priceset = {/literal}
{if $contriPriceset}'{$contriPriceset}'
{else}0
{/if}
{literal};
for (i = 0; i < document.Main.elements.length; i++) {
element = document.Main.elements[i];
if (element.type == 'radio' && element.name == priceset) {
if (element.value == '0') {
element.click();
} else {
element.checked = false;
}
}
}
}
```
In the source of the generated page:
```js
function useAmountOther() {
var priceset =
0
;
for (i = 0; i < document.Main.elements.length; i++) {
element = document.Main.elements[i];
if (element.type == 'radio' && element.name == priceset) {
if (element.value == '0') {
element.click();
} else {
element.checked = false;
}
}
}
}
```
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:__ _Firefox 112_
* __CiviCRM:__ _5.61.2_
* __PHP:__ _8.0_
* __CMS:__ _WordPress 6.2_
* __Database:__ _MariaDB 10.5_
* __Web Server:__ _Apache 2.4_https://lab.civicrm.org/dev/core/-/issues/4499Undefined array key 0 when sending offline event receipt2023-10-13T01:01:38ZDaveDUndefined array key 0 when sending offline event receiptIt seems to be $lineItem[0] at https://github.com/civicrm/civicrm-core/blob/44efaf52507df2445908e02c30caef62ada0100a/CRM/Event/Form/Participant.php#L1353. It looks like it might not always be defined if editing an existing participant. B...It seems to be $lineItem[0] at https://github.com/civicrm/civicrm-core/blob/44efaf52507df2445908e02c30caef62ada0100a/CRM/Event/Form/Participant.php#L1353. It looks like it might not always be defined if editing an existing participant. But it's also confusing because it looks like sometimes it will be 0 and sometimes the array is keyed on price set id.https://lab.civicrm.org/dev/core/-/issues/4312Undefined array key and deprecated warnings on contributions overview page2023-06-06T05:55:19ZTobias KrauseUndefined array key and deprecated warnings on contributions overview pageWhen going to /civicrm/contact/view/contribution many "array undefined" warnings appear in watchdog:
```
Warning: Undefined array key "selectedChild" in include() (Zeile 11 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\c...When going to /civicrm/contact/view/contribution many "array undefined" warnings appear in watchdog:
```
Warning: Undefined array key "selectedChild" in include() (Zeile 11 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%6F\6FD\6FDADEDF%%TabSelected.tpl.php)
Warning: Undefined array key "type" in include() (Zeile 17 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%3D\3D4\3D44E36C%%Selector.tpl.php)
**(I think this warning appears once for each contribution in the list)**
Warning: Undefined array key "softCredit" in include() (Zeile 93 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%84\843\843D5262%%Tab.tpl.php)
Warning: Undefined array key "payment_processor" in include() (Zeile 12 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%1B\1B6\1B6ACE3B%%ContributionRecurSelector.tpl.php)
Warning: Undefined array key "recurId" in include() (Zeile 12 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%1B\1B6\1B6ACE3B%%ContributionRecurSelector.tpl.php)
Deprecated function: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in smarty_modifier_replace() (Zeile 25 in C:\wamp64\www\civicrm\vendor\civicrm\civicrm-packages\Smarty\plugins\modifier.replace.php)
```https://lab.civicrm.org/dev/core/-/issues/4311Undefined array key warnings when entering a report page2023-06-06T05:54:40ZTobias KrauseUndefined array key warnings when entering a report pageWhen a report page is accessed several warnings appear in watchdog. For example the path of one of the reports is /civicrm/report/instance/3, the warnings are:
```
Warning: Undefined array key "batch_id_op" in include() (Zeile 42 in sit...When a report page is accessed several warnings appear in watchdog. For example the path of one of the reports is /civicrm/report/instance/3, the warnings are:
```
Warning: Undefined array key "batch_id_op" in include() (Zeile 42 in sites\default\files\private\civicrm\templates_c\en_US\%%E0\E0C\E0C36992%%Filters.tpl.php)
Warning: Trying to access array offset on value of type null in include() (Zeile 42 in sites\default\files\private\civicrm\templates_c\en_US\%%E0\E0C\E0C36992%%Filters.tpl.php)
Warning: Undefined array key "type" in include() (Zeile 48 in sites\default\files\private\civicrm\templates_c\en_US\%%1B\1BD\1BD7DE8F%%Statistics.tpl.php)
Warning: Undefined array key "type" in include() (Zeile 51 in sites\default\files\private\civicrm\templates_c\en_US\%%1B\1BD\1BD7DE8F%%Statistics.tpl.php)
```https://lab.civicrm.org/dev/core/-/issues/4313Undefined array keys warnings when activities of a contact are listed2023-06-06T05:55:14ZTobias KrauseUndefined array keys warnings when activities of a contact are listedWhen you open a contact and click on the tab "Activities" we see the following warnings in watchdog regardless of how many activities are listed there.
```
Warning: Undefined array key "addAssigneeContact" in include() (Zeile 7 in C:\wa...When you open a contact and click on the tab "Activities" we see the following warnings in watchdog regardless of how many activities are listed there.
```
Warning: Undefined array key "addAssigneeContact" in include() (Zeile 7 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%E3\E36\E366782B%%Tab.tpl.php)
Warning: Undefined array key "addTargetContact" in include() (Zeile 7 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%E3\E36\E366782B%%Tab.tpl.php)
Warning: Undefined array key "hideRelativeLabel" in include() (Zeile 9 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%48\480\480BECF5%%DatePickerRange.tpl.php)
```https://lab.civicrm.org/dev/core/-/issues/4315Undefined array warnings when editing the emails of a contact2023-06-06T05:54:59ZTobias KrauseUndefined array warnings when editing the emails of a contact- go to a contact
- click on "Add or edit email" when you hover over the email section
On click the following messages appear in watchdog:
```
Warning: Undefined array key "oplock_ts" in include() (Zeile 5 in C:\wamp64\www\civicrm\http...- go to a contact
- click on "Add or edit email" when you hover over the email section
On click the following messages appear in watchdog:
```
Warning: Undefined array key "oplock_ts" in include() (Zeile 5 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%97\973\973BB488%%Email.tpl.php)
Warning: Trying to access array offset on value of type null in include() (Zeile 5 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%97\973\973BB488%%Email.tpl.php)
```
When saving for each email the following error message appears in watchdog:
`Warning: Undefined array key "mailingOutboundOption" in include() (Zeile 37 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%09\098\0983F079%%Email.tpl.php)`https://lab.civicrm.org/dev/core/-/issues/4902Unnecessary Event Breadcrumb When Editing Event2024-02-01T10:45:52ZthemakUnnecessary Event Breadcrumb When Editing EventWhen editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have se...When editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have seen breadcrumbs include the current page you are on, usually they are not linked and sometimes greyed out. To stay consistent with other parts of civi, I would remove the last breadcrumb. If we decide to keep for some reason - at very least it should say Configure Event - not Manage Event.
5.69.1 - also replicated in 5.71.alpha1
![Screenshot_2024-01-10_at_12.52.30_PM](/uploads/d6048cb7a5167aab82e3dca9c2aba45d/Screenshot_2024-01-10_at_12.52.30_PM.png)https://lab.civicrm.org/dev/translation/-/issues/25Unselecting from 'Available languages' doesn't drop respective locale views f...2021-08-12T19:25:28ZMonish DebUnselecting from 'Available languages' doesn't drop respective locale views from DBSteps to replicate the issue:
1. Add more than one language from 'Add Language' list say English and French(Canada)
2. Then change civi instance to multilingual
3. DB creates views with locale suffix en_US and fr_CA
4. Now unselect Frenc...Steps to replicate the issue:
1. Add more than one language from 'Add Language' list say English and French(Canada)
2. Then change civi instance to multilingual
3. DB creates views with locale suffix en_US and fr_CA
4. Now unselect French(Canada) and save
Bug: This doesn't drop the fr_CA views from DB as it is not required.https://lab.civicrm.org/dev/core/-/issues/4526Unselecting price set discount set for back office event registration disappe...2023-08-23T02:51:57ZlarsssandergreenUnselecting price set discount set for back office event registration disappears fee block1. Add a discount set to a quick config price set for an event
2. Add new event registration from back office
3. Unselect the default discount set (which you would do if you wanted to charge the person full price)
The fee block disappea...1. Add a discount set to a quick config price set for an event
2. Add new event registration from back office
3. Unselect the default discount set (which you would do if you wanted to charge the person full price)
The fee block disappears, you cannot select any price options. The discount set is automatically re-selected, but the price options do not re-appear.https://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/4162Up/down arrow on pager on a contact's Events tab doesn't do the right thing.2023-03-07T07:27:22ZDaveDUp/down arrow on pager on a contact's Events tab doesn't do the right thing.1. Find a contact that has attended 51+ events. Note you can use the api Participant.create to quickly generate some records against the same event+contact since otherwise this is a lot of clicking.
* Note even if you change the defau...1. Find a contact that has attended 51+ events. Note you can use the api Participant.create to quickly generate some records against the same event+contact since otherwise this is a lot of clicking.
* Note even if you change the default pager size at search settings it seems hardcoded to 50.
1. Visit the contact's events tab.
1. Click the up arrow on the pager page control.
1. It takes you to a new register participant form instead of the next page.
The next/last links work ok.
What's interesting is that the url in the network tab seems correct, and if you visit it standalone it does seem to run the event search form correctly. So I suspect something about the context is getting lost in the session. The relevant code might be in CRM_Event_Page_Tab.