CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2024-03-13T16:13:06Zhttps://lab.civicrm.org/dev/core/-/issues/5092Logging Detail Report table view is broken2024-03-13T16:13:06ZElliott EgglestonLogging Detail Report table view is brokenOverview
----------------------------------------
The logging detail report in table view does not align the field names, old values, and new values, making it very hard to see what
Reproduction steps
----------------------------------...Overview
----------------------------------------
The logging detail report in table view does not align the field names, old values, and new values, making it very hard to see what
Reproduction steps
----------------------------------------
1. Edit several aspects of an existing contact's name in one action (for example, by clicking the edit icon by the name and changing first and last, adding a middle initial and a suffix)
2. Click on the change log tab
3. Click into the most recent 'Update' activity
Current behaviour
----------------------------------------
The table has three columns, each of which has a row for each aspect changed. Blank values are removed in the template, pushing any values below them up so the bottom values do not align with each other.
![image](/uploads/6928e87f7d7ce522a0c45bbde57ea1a0/image.png)
Expected behaviour
----------------------------------------
Space is left for blank values so field names, old values, and new values are aligned across all three columns.https://lab.civicrm.org/dev/core/-/issues/5093Pending From Wait List Link Not Functional if Event Maximum Attendee Number H...2024-03-16T15:51:44ZLKuttnerPending From Wait List Link Not Functional if Event Maximum Attendee Number Has Been Exceeded by a Certain AmountWhen you move a registrant from wait list to pending from wait list and send them a notification with a link, clicking that link may result in a event is full message, instead of the Confirm your registration message. I have not found wh...When you move a registrant from wait list to pending from wait list and send them a notification with a link, clicking that link may result in a event is full message, instead of the Confirm your registration message. I have not found where a limit is defined, but for example, if we are over the limit by just a few attendees, pending from wait list allows the person to complete their registration. If we are already over the maximum by a dozen or more, they instead get the event is full message when using their pending from wait list link. So, is this a hard coded number or a percentage or what?https://lab.civicrm.org/dev/core/-/issues/5094Formbuilder: Individual 1 fields are refreshed to their initial values (updat...2024-03-27T20:12:19ZNadaillacFormbuilder: Individual 1 fields are refreshed to their initial values (updates are lost) as soon as a Individual 2 contact is chosen in an existing contact fieldOverview
----------------------------------------
I have a form with an existing contact
![Civi_form_1](/uploads/e815efe6b8d3be57f2706e58ea31abe8/Civi_form_1.png)
And the screen
![Civi_form_2](/uploads/0b0b6c2db6c36fa935886a4b0d243d5...Overview
----------------------------------------
I have a form with an existing contact
![Civi_form_1](/uploads/e815efe6b8d3be57f2706e58ea31abe8/Civi_form_1.png)
And the screen
![Civi_form_2](/uploads/0b0b6c2db6c36fa935886a4b0d243d53/Civi_form_2.png)
https://chat.civicrm.org/civicrm/pl/7qss36x3mi8x5dmnnc5s4tjr4o
Reproduction steps
----------------------------------------
- Update the contact fields (for example the marital status from married - initial value- to Domestic partner - updated value-)
- Input something in the details field of the activity
- Choose a contact in the field "existing contact"
- As soon as the contact is chosen, the contact fields that were updated returned to their initial values , for example, for marital status -> married
- Activity field keep the updated value -> correct
Current behaviour
----------------------------------------
Expected behaviour
----------------------------------------
The contact fields updates by the user in te screen should not be refreshed to their initial values
Environment information
----------------------------------------
Tested in Wpmaster.
Comments
----------------------------------------
I am ok to fund the fix as i need it for a client :-)colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5095CRM_Report_Form_Activity: links to target / assigned contacts are often incor...2024-03-15T18:31:06ZAllenShawCRM_Report_Form_Activity: links to target / assigned contacts are often incorrect(I understand CiviReport is not getting active development; I'd still like to offer a PR for this fix.)
**To reproduce on dmaster (currently "Powered by CiviCRM 5.73.alpha1"):**
1. Create an activity with several (e.g. 5 or more) contac...(I understand CiviReport is not getting active development; I'd still like to offer a PR for this fix.)
**To reproduce on dmaster (currently "Powered by CiviCRM 5.73.alpha1"):**
1. Create an activity with several (e.g. 5 or more) contacts in each of "With Contact" and "Assigned to", specifying "Create one activity with all contacts together"
2. Run the report Activity Details Report, specifying filters that will include this new activity, and specifying display columns "Assignee Name" and "Target Name".
**Expected behavior:**
- The columns "Assignee Name" and "Target Name" should display multiple contacts, each linked to the corresponding contact record.
**Observed (bad) behavior:**
- The columns "Assignee Name" and "Target Name" correctly display multiple contacts, but **each link often points to the wrong contact (e.g. Contact A is linked to contact B, contact B is linked to contact A, etc.)**https://lab.civicrm.org/dev/core/-/issues/5096SearchKit displays break hook_civicrm_links implementations2024-03-20T02:49:14ZAndie HuntSearchKit displays break hook_civicrm_links implementations[hook_civicrm_links](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_links/) allows extension developers to modify the action links (e.g. View, Edit, Delete, etc.) at the ends of rows in a display. However, SearchKit doesn't se...[hook_civicrm_links](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_links/) allows extension developers to modify the action links (e.g. View, Edit, Delete, etc.) at the ends of rows in a display. However, SearchKit doesn't seem to have a way to handle this.
As a consequence, the project of marching through all of the listing displays and replacing them with SearchKit forms means that we're in the process of systematically breaking nearly every implementation of hook_civicrm_links and providing no way to resolve it.
Ideally, the same `$op` strings would be used so that existing extensions could continue working as-is, but I'm not seeing how to provide all the necessary arguments to the hook.
Alternatively, it would be very useful to have a way for an extension to modify the links without reimplementing the entire display (or else we'll inevitably see them start to clash).
But at the very least, we need to have clear guidance for how to reimplement an extension for more recent versions of CiviCRM. We've noticed it in contact summary Relationships tab extensions, but soon it will be a lot.https://lab.civicrm.org/dev/core/-/issues/5098Make all price fields visible on Event Info page2024-03-18T11:12:03ZyashodhaMake all price fields visible on Event Info pageToday, on the event info page, anonymous users (public) don't see the member price but admin does based on visibility.
In the extension, the field Visibility limits the display of the price optionnot only on the event registration page b...Today, on the event info page, anonymous users (public) don't see the member price but admin does based on visibility.
In the extension, the field Visibility limits the display of the price optionnot only on the event registration page but also on the event info page.
The limitation should not be applied to the event info page but only to the event registration page.
On the event info page, anyone should see all the price options.
The restriction to members should be only on event registration page. Since this is a display only page, it gives the user incentive to login if they want to avail the price configured for not just for public.https://lab.civicrm.org/dev/core/-/issues/5099SearchKit UX: Rename the query tabs2024-03-18T18:23:24ZJonGoldSearchKit UX: Rename the query tabsWhen I saw the new tabbed interface for SK queries, I meant to submit a UX note. Today, one of my savvier clients was tripped up by the tab labels, which reminded me to come back.
Their particular error - they tried to add new columns ...When I saw the new tabbed interface for SK queries, I meant to submit a UX note. Today, one of my savvier clients was tripped up by the tab labels, which reminded me to come back.
Their particular error - they tried to add new columns with the "Select Fields" tab.
* We should relabel that - I like "Field Transformations", but that conflicts with the rewrite on displays. Bikeshedding welcome, but this is better in than out.
* "Query Info" is ambiguous - I recommend "Debugging" or "Developer Info".
* "Configure Settings" is also ambiguous but I struggle for something better. This is query metadata, but I don't know a good non-technical term to unambiguously communicate that. The best I have is "Save Options" but most people would read "Save" as a verb, not a noun.
* You can select fields under the "Select Fields" tab that aren't a column in the search, which leads to a crash on save. Is there a valid case for that? If not, we should limit the list. But that probably should be its own issue.https://lab.civicrm.org/dev/core/-/issues/5102Allow access to API params from Api4Query2024-03-20T13:55:38ZMichael McAndrewAllow access to API params from Api4QueryContext:
* I am adding an 'extra' calculated field to a spec provider for a custom entity.
* The value of this extra calculated field depends on a parameter passed to the get action.
* I have access to the query in the setSqlRenderer me...Context:
* I am adding an 'extra' calculated field to a spec provider for a custom entity.
* The value of this extra calculated field depends on a parameter passed to the get action.
* I have access to the query in the setSqlRenderer method (which contains a _protected_ API object) but there doesn't appear to be a way to access the API parameters.
Adding the following method to Api4Query allows read only access to API params and seems inline with other methods like `getSelect()`, but feel free to let me know if I am doing it wrong and there is a better approach.
```php
/**
* @return mixed
*/
public function getParam(string $param) {
return call_user_func([$this->api, 'get'.ucfirst($param)]);
}
```
PR coming up...https://lab.civicrm.org/dev/core/-/issues/5103Saving checkbox custom fields via APIv4 fails for custom/dynamic entities2024-03-22T03:13:00ZjensschuppeSaving checkbox custom fields via APIv4 fails for custom/dynamic entities## Steps to reproduce
* For a custom/dynamic entity type (e.g. using the [_Entity Construction Kit_](https://github.com/systopia/de.systopia.eck)), add a custom field with HTML type `CheckBox`
* Try to create/save an entity with that fi...## Steps to reproduce
* For a custom/dynamic entity type (e.g. using the [_Entity Construction Kit_](https://github.com/systopia/de.systopia.eck)), add a custom field with HTML type `CheckBox`
* Try to create/save an entity with that field with APIv4, e.g. using the _ECK_ Afform forms (whether the field has a value is irrelevant)
## Expected behavior
Entity saved, field has selected (or no) value
## Actual behavior
Entity not saving, error is `Error: Class name must be a valid object or a string in civicrm_api3_generic_getoptions() (line 442 of /path/to/civicrm/civicrm-core/api/v3/Generic.php).`
## Technical details
* `DAOActionTrait` calls the global (APIv3) function `formatCheckBoxField()` for fields with an HTML type of `CheckBox` [here](https://github.com/civicrm/civicrm-core/blob/018741e09162a29f34a01d04141e3f96ddcade19/Civi/Api4/Generic/Traits/DAOActionTrait.php#L260-L263)
* That function calls APIv3 `getoptions` with the given entity (`Eck_*`)
* APIv3 "normalizes" entity names, stripping the `_` which results in the APIv3 entity being `Eck*`
* Resolving the entity to a DAO class fails at the latest in `_civicrm_api3_get_DAO()` due to the "normalized" entity name
* Finally, when calling `$dao::buildOptions()` on `null`, the error occurs
## Proposed solution
As commented in `DAOActionTrait` for the call of `formatCheckBoxField()`: `this function should be part of a class` - and re-implemented using APIv4 `getFields` with `loadOptions=TRUE` for the given `custom_field_id`.https://lab.civicrm.org/dev/core/-/issues/5104Formbuilder: when updating a relationship or an individual, a default value s...2024-03-27T20:10:34ZNadaillacFormbuilder: when updating a relationship or an individual, a default value set to "now" in a field (custom or not) does not appearOverview
----------------------------------------
Reproduction steps on Wpmaster
----------------------------------------
Create a form with
- individual1 (update, and URL) with fields name, marriage date (with default value set to now...Overview
----------------------------------------
Reproduction steps on Wpmaster
----------------------------------------
Create a form with
- individual1 (update, and URL) with fields name, marriage date (with default value set to now)
- relationship1 (update, and URL) with field relationship end date (with default value set to now)
![Civi_bug_2](/uploads/c274601cbe1e98140982c36d809fffe5/Civi_bug_2.png)
![Civi_bug_3](/uploads/3e926e8907b49c9c559123cf4bb04f6d/Civi_bug_3.png)
Create a relationship for example Employee (Julian Bachman=36) Employer (Bay ...). Let us say that the relationshipid=218
Call the form #?Individual1=36&Relationship1=218
Results
- The information (Name first name) are retrieved,
- Marriage date and relationship end date ("now" date) appears less that 1 second and then are left blank
![Civi_bug_1](/uploads/d050063465cd95d255ce402664ea11e9/Civi_bug_1.png)
This behavior appears only if the relationship (or individual) exists (it is an update). In case of creation, the "now" information is OK
Environment information
----------------------------------------
Wpmaster and also 5.70
Comments
----------------------------------------
I m ok to fund the fix:-). I need it for a client.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5105Extend FormBuilder conditional logic2024-03-27T12:31:45ZGuillaumeSorelExtend FormBuilder conditional logicI think the visibility condition could be improved with these new functions.
- allow to set if logic applies to show or hide element (until now it's a show per default, but it's useful to be able to hide some elements according to other ...I think the visibility condition could be improved with these new functions.
- allow to set if logic applies to show or hide element (until now it's a show per default, but it's useful to be able to hide some elements according to other values) a simple toggle or radio for `o show if | o hide if`
- add the maximum of options for the validity controls in the drodpwon like in SearchKit: contains, is empty/not empty, is between, regex... and not only maths operatorscolemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5106Admin UI extension breaks contact summary if CiviMember extension is disabled2024-03-27T15:25:42ZKurund JalmiAdmin UI extension breaks contact summary if CiviMember extension is disabledContact summary results in fatal error if Admin UI extension is enabled and CiviMember extension is disabled.
```bash
Civi\API\Exception\NotImplementedException: API (Membership, get) does not exist (or the extension it belongs to is no...Contact summary results in fatal error if Admin UI extension is enabled and CiviMember extension is disabled.
```bash
Civi\API\Exception\NotImplementedException: API (Membership, get) does not exist (or the extension it belongs to is not enabled). in Civi\API\Request::create() (line 51 of /var/www/html/sites/all/modules/civicrm/Civi/API/Request.php).
```https://lab.civicrm.org/dev/core/-/issues/5107Premiums configuration gives a 500 error2024-03-22T15:02:16ZJonGoldPremiums configuration gives a 500 errorOverview
----------------------------------------
In "Manage Contribution Pages", clicking on the "Premiums" page gives a 500 error. This happens in 5.71 and master, not in 5.70.
Reproduction steps
-------------------------------------...Overview
----------------------------------------
In "Manage Contribution Pages", clicking on the "Premiums" page gives a 500 error. This happens in 5.71 and master, not in 5.70.
Reproduction steps
----------------------------------------
See above.
Comments
----------------------------------------
This seems Smarty-related. I tried a `git bisect` but there's a different issue that breaks this page that makes that difficult. However, below is the error and backtrace I get when I set XDebug to pause on error:
```
"Type of SmartyCompilerException:: must be int (as in class Exception)"
include (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php:8)
Composer\Autoload\{closure:/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:575-577} (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:576)
Composer\Autoload\ClassLoader->loadClass (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:427)
Smarty_Internal_TemplateCompilerBase->trigger_template_error (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:1153)
Smarty_Internal_CompileBase->closeTag (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compilebase.php:196)
Smarty_Internal_Compile_Private_Block_Plugin->compile (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php:77)
Smarty_Internal_TemplateCompilerBase->callTagCompiler (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:768)
Smarty_Internal_TemplateCompilerBase->compileTag2 (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:1722)
Smarty_Internal_TemplateCompilerBase->compileTag (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:565)
Smarty_Internal_Templateparser->yy_r45 (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:2559)
Smarty_Internal_Templateparser->yy_reduce (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3481)
Smarty_Internal_Templateparser->doParse (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3573)
Smarty_Internal_SmartyTemplateCompiler->doCompile (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php:128)
Smarty_Internal_TemplateCompilerBase->compileTemplateSource (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:481)
Smarty_Internal_TemplateCompilerBase->compileTemplate (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:402)
Smarty_Template_Compiled->compileTemplateSource (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:184)
Smarty_Template_Compiled->process (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:141)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:105)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_Template->_subTemplateRender (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:385)
content_65fa056d841377_41904664 (/home/jon/local/civicrm-buildkit/app/private/dmaster/default/civicrm/templates_c/en_US/3f/b3/c1/3fb3c10824e8bcce0275790f5b54d852eeb8a4d7_0.file.default.tpl.php:53)
Smarty_Template_Resource_Base->getRenderedTemplateCode (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_Template->_subTemplateRender (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:385)
content_65fc658f02ae61_03133634 (/home/jon/local/civicrm-buildkit/app/private/dmaster/default/civicrm/templates_c/en_US/7e/52/3d/7e523d898add0d1ddbfb9d731ea772b38ca3b855_0.file.snippet.tpl.php:73)
Smarty_Template_Resource_Base->getRenderedTemplateCode (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_TemplateBase->_execute (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:232)
Smarty_Internal_TemplateBase->fetch (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:116)
CRM_Core_QuickForm_Action_Display->renderForm (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php:117)
CRM_Core_QuickForm_Action_Display->perform (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php:83)
HTML_QuickForm_Controller->handle (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php:203)
HTML_QuickForm_Page->handle (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php:103)
CRM_Core_Controller->run (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Controller.php:355)
CRM_Utils_Wrapper->run (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Wrapper.php:98)
CRM_Core_Invoke::runItem (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:298)
CRM_Core_Invoke::_invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:69)
CRM_Core_Invoke::invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:36)
civicrm_invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/drupal/civicrm.module:471)
menu_execute_active_handler (/home/jon/local/civicrm-buildkit/build/dmaster/web/includes/menu.inc:527)
{main} (/home/jon/local/civicrm-buildkit/build/dmaster/web/index.php:21)https://lab.civicrm.org/dev/core/-/issues/5108Inconsistent handling of tag name and tag label2024-03-23T14:15:54ZDetlev SieberInconsistent handling of tag name and tag label## Overview
When you change a tag in the tag tree, only the label is changed, the name remains the old entry. So after changing and reloading, in the tag tree the old entry is still shown - despite the previous change.
In the contact s...## Overview
When you change a tag in the tag tree, only the label is changed, the name remains the old entry. So after changing and reloading, in the tag tree the old entry is still shown - despite the previous change.
In the contact summary, the change is not reflected: Because there, the tag name is used, not the tag label. Which also seems, hmm..., interesting...
## Reproduction steps
1. Tag a contact with a specific tag from the tag tree
2. Click on **Contacts -\> Manage Tags**
3. Rename the previously selected tag
4. Reload the tag list -\> again, the old label/name is shown
5. Reload the contact from step 1.: -\> again, the old label/name is shown
## Current behaviour
Renaming the tag in the tag tree only changes the field civicrm_tag.label, not the field civicrm\_tag.name.
This "might" be what we want - however, on several occasions, the tag name is used instead of the tag name.
## Expected behaviour
I would recommend, that both name and label should be changed.
## Environment information
* **CiviCRM:** 5.69.5https://lab.civicrm.org/dev/core/-/issues/5109Smarty 3 causes crash if exception thrown, e.g. by crmAPI2024-03-22T15:10:45ZRichSmarty 3 causes crash if exception thrown, e.g. by crmAPIOverview
----------------------------------------
I think this is a general problem that could occur if a smarty function throws an exception. The page crashes with:
> undefined extension class 'Smarty_Internal_Method_Trigger_Error'
[...Overview
----------------------------------------
I think this is a general problem that could occur if a smarty function throws an exception. The page crashes with:
> undefined extension class 'Smarty_Internal_Method_Trigger_Error'
[chat mention](https://chat.civicrm.org/civicrm/pl/gnqn1rihnprc7er1fcssqd1j6r)
Reproduction steps
----------------------------------------
I edited EventInfo.tpl to put this in:
```
{crmAPI var='local_date_time' entity='Event' action='getvalue' return="custom_115" id=$event.id}
```
Note that I had a custom_115 field defined for all events, but this event did not have a value for that field.
Visit the page that uses that template.
Crash.
Environment information
----------------------------------------
* __CiviCRM:__ 5.70 - 5.71.1
* __PHP:__ 8.1
* __CMS:__ D7
Comments
----------------------------------------
I'm not sure, but from memory api3 getvalue has changed; it now gives an *error* saying:
> "error_message": "field custom_115 unset or not existing"
I'm sure before it just used to return nothing.
Or it could be that before Smarty 3, it was happy to treat nothing as '' and now it's more picky.
I think the main problem seems to be that the exception/error handling is broken in Smarty3. Obviously if there's a bug in the template, it's going not to work, but it oughtn't crash the whole page.
The code that throws the error that causes the crash is CRM/Core/Smarty/plugins/function.crmAPI.php L35:
$smarty->trigger_error('{crmAPI} ' . $e->getMessage());https://lab.civicrm.org/dev/core/-/issues/5110afform: Display option "Remember Filters" not keeping value2024-03-25T15:01:10Zjensschuppeafform: Display option "Remember Filters" not keeping value## Overview
The display option "Remember Filters" in search displays does not retain its value when the configuration form is being reloaded.
## Reproduction steps
1. Create a _SearchKit_ search with a search form
2. Add a form displa...## Overview
The display option "Remember Filters" in search displays does not retain its value when the configuration form is being reloaded.
## Reproduction steps
1. Create a _SearchKit_ search with a search form
2. Add a form display (e.g. _Table_)
3. add some exposed filters
4. Check _Remember Filters_
5. Reload the configuration form for that form display
## Current behaviour
The option seems to be stored and filter values are being stored per user. The option field (checkbox) however is not set when reloading the config form of the form display. Saving the config form without changing that option still seems to retain its value (still storing filter values). So the config form does not reflect the actual option value.
## Expected behaviour
The option should be set when re-visiting the form display config form. Saving the form should respect the value (unchecked: unset the option).
## Environment information
* **Browser:** _Chromium 123.0.6312.58_
* **CiviCRM:** _5.71.0_https://lab.civicrm.org/dev/core/-/issues/5111PHP8.1 Deprecated function: fseek():2024-03-26T21:44:23ZbobisHDPHP8.1 Deprecated function: fseek():Overview
----------------------------------------
On php8.1 the below error will appear:
```Deprecated function: fseek(): Passing null to parameter #2 ($offset) of type int is deprecated in FileReader->seekto() (line 125 of /opt/bitnam...Overview
----------------------------------------
On php8.1 the below error will appear:
```Deprecated function: fseek(): Passing null to parameter #2 ($offset) of type int is deprecated in FileReader->seekto() (line 125 of /opt/bitnami/apps/civicrm/htdocs/sites/all/modules/civicrm/packages/PHPgettext/streams.php)```
The code in this file that causes the error is:
```php
function seekto($pos) {
fseek($this->_fd, $pos);
$this->_pos = ftell($this->_fd);
return $this->_pos;
}
```
After changing this to
```php
function seekto($pos) {
fseek($this->_fd, $this->_pos);
$this->_pos = ftell($this->_fd);
return $this->_pos;
}
```
It seems to make the error go away.
If you have already posted on:
- https://civicrm.stackexchange.com
- https://chat.civicrm.org/civicrm/pl/yfx7e3un4f8nifxq1iknj5amjw
Environment information
----------------------------------------
* __Browser:__ Firefox
* __CiviCRM:__ 5.71.0
* __PHP:__ 8.1
* __CMS:__ Drupal 7.100
* __Database:__ MariaDB 10.6.16
* __Web Server:__ Apache/2.4.52https://lab.civicrm.org/dev/core/-/issues/5113Change Start Date link broken on open case activity edit2024-03-28T00:59:58ZDaveDChange Start Date link broken on open case activity editThere's a warning Undefined array key "changeStartURL" and clicking the link just reloads the page.There's a warning Undefined array key "changeStartURL" and clicking the link just reloads the page.https://lab.civicrm.org/dev/core/-/issues/5114Managed domain-aware entities with multisite configuration2024-03-28T12:37:16ZJKingsnorthManaged domain-aware entities with multisite configurationWe've come across an edge-case in a multi-site setup.
In our setup, we have a master domain which does not have 'Enable Multi Site Configuration' enabled. And subdomains which do.
This is allowed configuration according to the docs: ht...We've come across an edge-case in a multi-site setup.
In our setup, we have a master domain which does not have 'Enable Multi Site Configuration' enabled. And subdomains which do.
This is allowed configuration according to the docs: https://docs.civicrm.org/installation/en/latest/multisite/drupal/#:~:text=It%20is%20not,or%20website%20administrators.
We also have a managed 'job' entity (provided by https://lab.civicrm.org/extensions/mjwshared/-/blob/master/managed/ProcessPaymentprocessorWebhooks.mgd.php?ref_type=heads)
The managed entity is set to 'always' update.
---
1) We run Managed->Reconcile on domain ID 1 (multisite not enabled)
- The job row is created
- An entry in civicrm_managed is created
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1796', 'mjwshared', 'ProcessPaymentProcessorWebhooks', 'Job', '116', 'always', NULL
```
- The job in civicrm_job is created
```
# id, domain_id, run_frequency, last_run, scheduled_run_date, name, description, api_entity, api_action, parameters, is_active
'116', '1', 'Always', NULL, NULL, 'Process PaymentProcessor Webhooks', 'Process incomplete payment processor webhooks', 'Job', 'process_paymentprocessor_webhooks', 'delete_old=-3 month', '1'
```
2) Managed->Reconcile run on domain ID 43 (multisite enabled)
- The entries in civicrm_managed are converted into 'domain-aware' entries:
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1803', 'mjwshared', 'ProcessPaymentProcessorWebhooks_32', 'Job', '116', 'always', NULL
'1804', 'mjwshared', 'ProcessPaymentProcessorWebhooks_42', 'Job', '116', 'always', NULL
'1805', 'mjwshared', 'ProcessPaymentProcessorWebhooks_43', 'Job', '116', 'always', NULL
```
- The job in civicrm_job is 'moved' to another domain:
```
# id, domain_id, run_frequency, last_run, scheduled_run_date, name, description, api_entity, api_action, parameters, is_active
'116', '43', 'Always', NULL, NULL, 'Process PaymentProcessor Webhooks', 'Process incomplete payment processor webhooks', 'Job', 'process_paymentprocessor_webhooks', 'delete_old=-3 month', '1'
```
3) Managed->Reconcile run on domain ID 1 again (not multisite enabled)
- The entry in civicrm_job has been deleted - no more essential scheduled job!
- The entry in civicrm_managed changes back to not domain aware, and references a deleted row
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1796', 'mjwshared', 'ProcessPaymentProcessorWebhooks', 'Job', '116', 'always', NULL
```
---
So we need to either:
- Update the docs to say that the 'master' domain _does_ need to be multisite aware
- Update the handling of domain-aware managed entities to work correctly when reconciled in either domain