CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-07-15T12:58:42Zhttps://lab.civicrm.org/dev/core/-/issues/4423Slow contact lookup query in SearchKit2023-07-15T12:58:42ZeileenSlow contact lookup query in SearchKitI think we might be doing something weird when we query for an id in search kit / api4
It takes about 30 seconds to return here - that is what I might expect if I was waiting for it to search without an index (ie a pre-pended wildcard) ...I think we might be doing something weird when we query for an id in search kit / api4
It takes about 30 seconds to return here - that is what I might expect if I was waiting for it to search without an index (ie a pre-pended wildcard) but of course we turned that off using the site setting
![image](/uploads/acb69198d4abda193d10b5e2fd103252/image.png)https://lab.civicrm.org/dev/core/-/issues/4422Is there any reason to save both html and text versions of Inbound Emails?2023-07-13T17:33:27ZlarsssandergreenIs there any reason to save both html and text versions of Inbound Emails?For Email-to-Activity processing, when the email being processed has both html and text versions, both are saved to the details for the activity using the `-ALTERNATIVE ITEM 0-` ... `-ALTERNATIVE ITEM 1-` delimiters (depending on the det...For Email-to-Activity processing, when the email being processed has both html and text versions, both are saved to the details for the activity using the `-ALTERNATIVE ITEM 0-` ... `-ALTERNATIVE ITEM 1-` delimiters (depending on the details of the email, sometimes it seems to fail to recognize that both are present). This is handled while viewing activities (you only get the first version, which is not ideal as it is often the text version), but not in SearchKit.
I don't see any reason to keep two versions of the same email, so my proposal is just to keep the html version if both are present. Simple is better here unless there is some use case for having both.
If there is a need for the text version, perhaps we could add a setting for the mail account that would select text or html if both are present.https://lab.civicrm.org/dev/core/-/issues/4421Scheduled jobs stopped working after an update last week - error in MailingEv...2023-11-23T06:34:09ZTobias KrauseScheduled jobs stopped working after an update last week - error in MailingEventUnsubscribe.phpI realized this morning that the CiviCRM cron job for the scheduled jobs stopped working after we updated last week from CiviCRM 5.61.2 to 5.61.4. Today I updated to the most current version 5.63.1 but the error still exists.
The proble...I realized this morning that the CiviCRM cron job for the scheduled jobs stopped working after we updated last week from CiviCRM 5.61.2 to 5.61.4. Today I updated to the most current version 5.63.1 but the error still exists.
The problem became obvious as the message "Cron job not running" appeared when I logged in this morning (I did not so for the whole last week). When I checked the list of scheduled jobs I found out that the "Bounces fetcher" job run successfully but all the other jobs did not. So I run our cron job task
`/var/www/civi_live/vendor/civicrm/cv/bin/cv api job.execute --user=admin --cwd=/var/www/civi_live/httpdocs`
manually in CLI and got the following error:
```
In MailingEventUnsubscribe.php line 47:
count(): Argument #1 ($value) must be of type Countable|array, null given
```
The following file is the one: vendor/civicrm/civicrm-core/api/v3/MailingEventUnsubscribe.php
Here it is the following code part in the function civicrm_api3_mailing_event_unsubscribe_create:
```
$groups = CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing($job, $queue, $hash);
if (count($groups)) {
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::send_unsub_response($queue, $groups, FALSE, $job);
return civicrm_api3_create_success($params);
}
```
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing can return an array or NULL. I am not sure why this error appeared after the last update as neither CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing nor civicrm_api3_mailing_event_unsubscribe_create() has changed but it may be related to some other changes somewhere.
When I change this code part to the following the scheduled jobs are finished:
```
$groups = CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing($job, $queue, $hash);
if ($groups && count($groups)) {
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::send_unsub_response($queue, $groups, FALSE, $job);
return civicrm_api3_create_success($params);
}
```https://lab.civicrm.org/dev/core/-/issues/4420crmDate support for Date Preferences2023-07-10T06:21:42ZlarsssandergreencrmDate support for Date Preferences[crmDate](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Smarty/plugins/modifier.crmDate.php) only supports Date Formats, not the confusingly separate Date Preferences, which include creditCard format. It would be nice to b...[crmDate](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Smarty/plugins/modifier.crmDate.php) only supports Date Formats, not the confusingly separate Date Preferences, which include creditCard format. It would be nice to be able to use `crmDate:'creditCard'` on Contribution Page Review and Thank You pages, etc.
Or maybe we should use tokens for credit_card_expiration_date instead, @DaveD thinks they support the Preferences.https://lab.civicrm.org/dev/core/-/issues/4419Membership tab on contribution page config broken2023-08-08T22:21:51ZDaveDMembership tab on contribution page config brokenI'm not sure of the details yet but `TypeError: Cannot access offset of type string on string in include() (line 95 of .../templates_c/en_US/%%B4/B40/B407902D%%MembershipBlock.tpl.php)`I'm not sure of the details yet but `TypeError: Cannot access offset of type string on string in include() (line 95 of .../templates_c/en_US/%%B4/B40/B407902D%%MembershipBlock.tpl.php)`5.63.1https://lab.civicrm.org/dev/core/-/issues/4418Accepted credit cards not saved when creating or editing a payment processor2023-08-08T22:21:51ZlarsssandergreenAccepted credit cards not saved when creating or editing a payment processor[This change](https://github.com/civicrm/civicrm-core/pull/25873/commits/df3b3799337a18ef22e059681ca36784d66f0f1b) in 5.61 makes it so that if you create or save a payment processor, accepted_credit_cards is not saved correctly. The prob...[This change](https://github.com/civicrm/civicrm-core/pull/25873/commits/df3b3799337a18ef22e059681ca36784d66f0f1b) in 5.61 makes it so that if you create or save a payment processor, accepted_credit_cards is not saved correctly. The problem is that the save was changed to API 4, which doesn't [properly handle JSON](https://lab.civicrm.org/dev/core/-/issues/4417) and accepted_credit_cards is one of the few JSON fields we have.
I think for now, we should just go back to API 3 and then we can switch back to API 4 when the JSON issue is resolved.https://lab.civicrm.org/dev/core/-/issues/4417API 4 Explorer output is inconsistent for serialized fields in JSON view2023-07-07T15:10:50ZlarsssandergreenAPI 4 Explorer output is inconsistent for serialized fields in JSON viewEdit: See discussion below.
~~If we use API 4 to save JSON values for a JSON field, the JSON gets mucked up because the API expects an array. I suppose this works in a sense, but in another sense it is weird that you can't, for example,...Edit: See discussion below.
~~If we use API 4 to save JSON values for a JSON field, the JSON gets mucked up because the API expects an array. I suppose this works in a sense, but in another sense it is weird that you can't, for example, copy an entity by getting it from API 4 and then creating with the same values (because the API gives you JSON, but won't accept it).~~
~~If this is the expected behaviour, at least I can document it.~~
----
~~If we pass in `{"something": "thing"}`, what gets saved in the database is `[{"something": "thing"}]`.~~
~~If we use a save action and pass in a `records` array with a JSON value, what gets saved in the database is `["{\"something\": \"thing\"}"]`.~~https://lab.civicrm.org/dev/core/-/issues/4416🌶️ CiviCRM 5.63.0 - Regression, Mailing click tracking now returns: Error 500...2023-07-06T22:46:14Zjustinfreeman (Agileware)🌶️ CiviCRM 5.63.0 - Regression, Mailing click tracking now returns: Error 500 malformed header from script 'url.php': Bad header for all tracked URLsRegression, Mailing click tracking now returns: Error 500 malformed header from script 'url.php': Bad header for all tracked URLs
As a result, Mailing click tracking no longer works. This bug warrants a new CiviCRM release IMHO.
eg, ht...Regression, Mailing click tracking now returns: Error 500 malformed header from script 'url.php': Bad header for all tracked URLs
As a result, Mailing click tracking no longer works. This bug warrants a new CiviCRM release IMHO.
eg, https://flippythongs.org.au/wp-content/plugins/civicrm/civicrm/extern/url.php?u=4238&qid=201344 returns **Error 500**
Patch submitted, https://github.com/civicrm/civicrm-core/pull/26747/
Version: CiviCRM 5.63.05.63.1https://lab.civicrm.org/dev/core/-/issues/4415FormBuilder: Add 'is empty' filter2023-07-20T22:00:28Zaydunsaidan.saunders@squiffle.ukFormBuilder: Add 'is empty' filterOverview
----------------------------------------
In FormBuilder, add `Is Empty` / `Is Not Empty` for filter fields.
Booleans can be represented as Yes/No radios. This would let other fields be represented in the same way based on whet...Overview
----------------------------------------
In FormBuilder, add `Is Empty` / `Is Not Empty` for filter fields.
Booleans can be represented as Yes/No radios. This would let other fields be represented in the same way based on whether they are empty or not.
Example use-case
----------------------------------------
1. On the current Contribution Search form there is a 'Contribution is Recurring?' Yes/No which is based on whether the `recur_id` is empty or not.
Current behaviour
----------------------------------------
FormBuilder can add a filter for a specific value of recur_id but not 'is empty'/'is not empty'
Proposed behaviour
----------------------------------------
Allow 'is empty'/'is not empty' to be used with any filter field and be configured as booleans.
Comments
----------------------------------------
General 'is empty'/'is not empty' is available in Apiv4 'where' clauses and SearchKit, so this is about extending to FormBuilder.
See https://chat.civicrm.org/civicrm/pl/js843u3qz3f6pgc8ay183bhuzocolemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4414CiviCRM 5.62.1 - CiviCRM core extension: Greenwich, Bootstrap CSS tries to lo...2023-08-08T22:21:55Zjustinfreeman (Agileware)CiviCRM 5.62.1 - CiviCRM core extension: Greenwich, Bootstrap CSS tries to load glyphicons fonts from the incorrect paths returns 404 and icons do not displayCiviCRM core extension: Greenwich, Bootstrap CSS tries to load glyphicons fonts from the incorrect paths returns 404 and icons do not display.
- civicrm/ext/greenwich/fonts/glyphicons-halflings-regular.woff2
- civicrm/ext/greenwich/font...CiviCRM core extension: Greenwich, Bootstrap CSS tries to load glyphicons fonts from the incorrect paths returns 404 and icons do not display.
- civicrm/ext/greenwich/fonts/glyphicons-halflings-regular.woff2
- civicrm/ext/greenwich/fonts/glyphicons-halflings-regular.woff
- civicrm/ext/greenwich/fonts/glyphicons-halflings-regular.ttf
Correct path is:
civicrm/ext/greenwich/extern/bootstrap3/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
This error is shown in the Web Console when loading the Mosaico Template Editor to create or edit a Mailing.
civicrm/ext/greenwich/dist/bootstrap3.css
```
@font-face {
font-family: "Glyphicons Halflings";
src: url("../fonts/glyphicons-halflings-regular.eot");
src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg");
}
```
Version: CiviCRM 5.62.1
Agileware Ref: CIVICRM-2149https://lab.civicrm.org/dev/core/-/issues/4413Disabling and re-enabling a core extension removes it from the navigation men...2023-08-08T22:21:49ZlarsssandergreenDisabling and re-enabling a core extension removes it from the navigation menu and from SKIf you disabled and re-enable a core extension, you lose the relevant navigation menu item and you lose some of the relevant entities in SK. For example, if you disable and re-enable civi_mail, you lose the Mailing menu item and the Mail...If you disabled and re-enable a core extension, you lose the relevant navigation menu item and you lose some of the relevant entities in SK. For example, if you disable and re-enable civi_mail, you lose the Mailing menu item and the Mailings and Outbound Mailings entities disappear from SearchKit (but Mailing Bounces, etc are still present). Similar with civi_member. Cache clearing or menu rebuilding doesn't help. On dmaster.https://lab.civicrm.org/dev/core/-/issues/4412Add something like API 3 Attachments to API 42023-07-06T06:35:00ZlarsssandergreenAdd something like API 3 Attachments to API 4We can't get the full URL for a file from API 4 File and there is no API 4 Attachments, so API 3 must be used — which seems like a significant gap.
Thought this was worth noting as it has come up [twice](https://civicrm.stackexchange.co...We can't get the full URL for a file from API 4 File and there is no API 4 Attachments, so API 3 must be used — which seems like a significant gap.
Thought this was worth noting as it has come up [twice](https://civicrm.stackexchange.com/questions/45209/get-uploaded-file-full-url-via-api-v4/45210) on [SE](https://civicrm.stackexchange.com/questions/45179/civi-crm-apiv4-image-retrieval) recently.https://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/4410Standalone timezone support2024-02-07T10:31:42ZRichStandalone timezone supportIn standalone we have defined a timezone field on the user table, with the design that it should store data like `Europe/London`.
It seems that there's a `civicrm_timezones` table that, if populated, would provide suitable pseudoconstan...In standalone we have defined a timezone field on the user table, with the design that it should store data like `Europe/London`.
It seems that there's a `civicrm_timezones` table that, if populated, would provide suitable pseudoconstants.
For now the afform offers a free text field, which is going to be very fragile.
We need to understand what the process is for populating/updating the `civicrm_timezones` table, and then point to the `name` values in there for our `User.timezone` values.https://lab.civicrm.org/dev/core/-/issues/4409Translation for site default language not loaded2023-08-08T22:21:51ZeileenTranslation for site default language not loadedWhen configuring message templates the translation system allows for draft and approved statuses. However, these apply to the the translations, not the message templates.
In order to use the approval flow it is necessary to create a tra...When configuring message templates the translation system allows for draft and approved statuses. However, these apply to the the translations, not the message templates.
In order to use the approval flow it is necessary to create a translation for the site default language - at which point you would expect it to be used.
However, this line https://github.com/civicrm/civicrm-core/pull/26232/files#diff-466bc3af8c09d1d88e212c1465c6586e2d7187d27397e75f02e67436b1d4be13L181 currently causes the message template, not the tranlation to be called when the site default language is whistled up.
It's pretty clear that if you configure an English (United States) template you want it to be used but it gets more confusing for the expected behaviour for other languages - which should they fall back to. From a code / UI point of view this is not obvious but from a site usage point of view it is - ie
1) the whole reason for creating the translation for the site default language is to have the approval work flow - you don't want it to by bypassed for other languages that fall back to it and ...
2) you don't really want to have to be maintaining 2 templates for no added value.
The underlying issue is the lack of the statuses on the message templates and for any larger effort on this it would make sense to add it there & make the template obsolete.
It would perhaps also be possible to add a hook so that the message template is updated whenever the site default template with status=approved is updated. I worry a bit this could get confusing because there is an idea it could be turned back into a draft & then it would fall back on the message template again - but that would already have been updated.
It would also be possible to add more documentation / perhaps more UI notifications - although with little evidence other sites are using this and even if they have, have added translations for the default language I'm inclined to go with 'if someone translates the default language they did it so that it would be the one used' and make that work5.64.0https://lab.civicrm.org/dev/core/-/issues/4408Case Detail Report Template Missing City Field2023-07-05T03:43:28ZLKuttnerCase Detail Report Template Missing City FieldThe Case Detail report template is missing {contact.city} while all the other address fields are available. I do not know how long this has been like this, since we just began using this report. One thought I had was that this might be ...The Case Detail report template is missing {contact.city} while all the other address fields are available. I do not know how long this has been like this, since we just began using this report. One thought I had was that this might be caused by our using the Word replacement feature for City > Town, but disabling it did not help. This is with 59.5.4.
![Missing-City-Field](/uploads/d206a1e64547bdf40a778cd71f19a8c4/Missing-City-Field.PNG)https://lab.civicrm.org/dev/core/-/issues/4407SearchKit: Option to apply style to whole row2023-07-04T23:49:12Zaydunsaidan.saunders@squiffle.ukSearchKit: Option to apply style to whole rowThe most common use of `Style` conditionals for me is setting the `Style` to `Disabled` based on the `Enabled` field.
Currently this requires adding the same conditional to every field in the display.
Suggestion: allow a style to be ap...The most common use of `Style` conditionals for me is setting the `Style` to `Disabled` based on the `Enabled` field.
Currently this requires adding the same conditional to every field in the display.
Suggestion: allow a style to be applied to the whole row.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4406SearchKit: make 'inplace edit' conditional2023-07-09T03:06:31Zaydunsaidan.saunders@squiffle.ukSearchKit: make 'inplace edit' conditionalSuggestion: apply conditional rules (like those on the `Style` option) to `In-place edit`
Use case:
On a listing of Participant Status Types, we want to enable in-place edit if the type is not `Reserved`Suggestion: apply conditional rules (like those on the `Style` option) to `In-place edit`
Use case:
On a listing of Participant Status Types, we want to enable in-place edit if the type is not `Reserved`colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4405SearchKit: prevent Smarty parsing content in 'rewrite text'2023-07-04T21:43:41Zaydunsaidan.saunders@squiffle.ukSearchKit: prevent Smarty parsing content in 'rewrite text'Overview
----------------------------------------
The 'Rewrite Text' option in SearchKit tables allows use of Smarty, but Smarty attempts to parse the content of the tokens sometimes resulting in Smarty errors and no results being shown....Overview
----------------------------------------
The 'Rewrite Text' option in SearchKit tables allows use of Smarty, but Smarty attempts to parse the content of the tokens sometimes resulting in Smarty errors and no results being shown.
Reproduction steps
----------------------------------------
1. Create a SearchKit for Job Logs
1. Add `Description` and `Extended data`
1. Add a table with default fields
Check you have data!
1. Enable 'Rewrite Text' on `Description` or `Extended Data` - leave the tokens as provided.
Current behaviour
----------------------------------------
Depending on your job log content there may be no results showing.
My data included a description of `Finished execution of Civirules cron with result: Success (a:0:{}) `
The webserver log shows:
```
[Tue Jul 04 17:14:10.938281 2023] [php7:error] [pid 1081743] [client 127.0.0.1:42138] PHP Fatal error: Smarty error: [in string:Finished execution of Civirules cron with result: Success (a:0:{}) line 1]: syntax error: unrecognized tag: (Smarty_Compiler.class.php, line 440) in /opt/buildkit/build/adminui/web/wp-content/plugins/civicrm/civicrm/packages/Smarty/Smarty.class.php on line 1100, referer: http://adminui.localhost/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsearch
```
Expected behaviour
----------------------------------------
The tokens should be displayed without Smarty attempting to parse the content.
And relatedly, if using 'Rewrite Text' to combine multiple fields, you may want to enable HTML (eg to add bold or line breaks) without having the token content itself rendered as HTML.
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. -->
* __CiviCRM:__ _Master_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
Comments
----------------------------------------https://lab.civicrm.org/dev/core/-/issues/4404Possibility to reuse the list of languages available for "Preferred language"2023-07-06T06:36:35ZquimgilPossibility to reuse the list of languages available for "Preferred language"Overview
----------------------------------------
Out of the box, CiviCRM comes with a full list of languages used for the field "Preferred language". Right now, there is no way to reuse this list in custom fields. Admins must create the...Overview
----------------------------------------
Out of the box, CiviCRM comes with a full list of languages used for the field "Preferred language". Right now, there is no way to reuse this list in custom fields. Admins must create their own list of languages manually or use different unsupported approaches to reuse the one CiviCRM already has.
Example use-case
----------------------------------------
An international organization working with volunteers wants to know in which languages they have basic, advanced, and native/professional fluency, in separate questions.
Current behaviour
----------------------------------------
The list of languages available in CiviCRM's database cannot be reused for custom fields.
Proposed behaviour
----------------------------------------
Make the "Preferred language" list of languages available to custom fields, just like you can create any list that is then available to other custom fields.
Comments
----------------------------------------
See examples of ad hoc solutions admins are recurring to on https://civicrm.stackexchange.com/questions/6604/how-to-reuse-preferred-language-select