Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-03-15T02:24:51Zhttps://lab.civicrm.org/dev/core/-/issues/5091crm.ajax.js uses synchronous XHR2024-03-15T02:24:51ZJonGoldcrm.ajax.js uses synchronous XHROverview
----------------------------------------
When editing a contribution loaded in a modal, if the server is configured to disallow synchronous XHR, the "Cancel" and "Save" buttons don't appear.
Example use-case
------------------...Overview
----------------------------------------
When editing a contribution loaded in a modal, if the server is configured to disallow synchronous XHR, the "Cancel" and "Save" buttons don't appear.
Example use-case
----------------------------------------
1. In your web server config, modify your Permissions-Policy or add one that disables synchronous XHR, e.g. for Apache:
```
Header always set Permissions-Policy "sync-xhr=()"
```
1. Click **Edit** next to a contribution (without opening in a new tab, so it appears in a modal).
Current behaviour
----------------------------------------
"Cancel" and "Save" buttons are missing.
Proposed behaviour
----------------------------------------
"Cancel" and "Save" buttons should appear.
Comments
----------------------------------------
The console error is:
```
[Violation] Permissions policy violation: Synchronous requests are disabled by permissions policy.
```
It faults `crm.ajax.js` line 329 (currently: `that.element.html(data.content);`).
Per the [XHR spec](https://xhr.spec.whatwg.org/#the-open()-method):
> Synchronous XMLHttpRequest outside of workers is in the process of being removed from the web platform as it has detrimental effects to the end user’s experience. (This is a long process that takes many years.) Developers must not pass false for the async argument when the current global object is a Window object. User agents are strongly encouraged to warn about such usage in developer tools and may experiment with throwing an "InvalidAccessError" DOMException when it occurs.
This isn't urgent - most folks aren't blocking Synchronous XHR - but since this is the only issue I've seen in months of having this permissions policy, it seems like we can get atop things.https://lab.civicrm.org/dev/core/-/issues/5086Ability to export FormBuilder forms from the UI2024-03-18T15:35:22ZherbdoolAbility to export FormBuilder forms from the UIWe've got an export link for SearchKit, but if a saved search is wrapped up in a FormBuilder form there's no easy way to also export those files. I can imagine a modal with the text from the forms files (`*.html`, `*.json`) and a link to...We've got an export link for SearchKit, but if a saved search is wrapped up in a FormBuilder form there's no easy way to also export those files. I can imagine a modal with the text from the forms files (`*.html`, `*.json`) and a link to copy it. Or even ability to save the files as a zip file.
And I suppose we'd need an import link as well to import on a different site (similar to SearchKit's link).https://lab.civicrm.org/dev/core/-/issues/5085Incorrect fee level saved when editing event participant2024-03-18T19:23:47Zchrisgaraffachris@aghstrategies.comIncorrect fee level saved when editing event participantOverview
----------------------------------------
Editing an event participant changes the fee level and amount listed, seemingly at random.
Reproduction steps
----------------------------------------
- Register a contact for an event ...Overview
----------------------------------------
Editing an event participant changes the fee level and amount listed, seemingly at random.
Reproduction steps
----------------------------------------
- Register a contact for an event that uses a price set for fees (I'm using Summer Solstice Day Concert from dmaster in this example). Doesn't matter if they register online or an admin adds their registration
- Select Bass - $ 25.00
- Save the event registration
- Edit the event registration
- Change nothing
- Click Save
Current behaviour
----------------------------------------
The Fee level on the participant changes to something else - the specific value seems random on the first save, then doesn't seem to change.
Settings for adding the event registration:
![image](/uploads/04829e0ca7f423daf94a29b56883da07/image.png)
Display after creating the registration:
![image](/uploads/028cb9da80776075397f2df2541ee7a5/image.png)
Display after editing the registration, changing nothing, and saving:
![image](/uploads/5e63e0f24e9de983944a6c0e5873e577/image.png)
Expected behaviour
----------------------------------------
The fee level shouldn't change
Environment information
----------------------------------------
* __CiviCRM:__ Reproduced on 5.70.2, 5.71.0, dmaster (5.73.alpha1)https://lab.civicrm.org/dev/core/-/issues/5084Custom search profile no longer works with quick search2024-03-15T02:43:17ZjamieCustom search profile no longer works with quick searchIf you set a custom default search profile via `Adminster -> Customize Data and Screens -> Search Preferences` and then do a "quick search" (a search via the magnifying glass field in the top left), the results are mis-aligned with the h...If you set a custom default search profile via `Adminster -> Customize Data and Screens -> Search Preferences` and then do a "quick search" (a search via the magnifying glass field in the top left), the results are mis-aligned with the header (and don't actually reflect the fields in the default profile):
![image](/uploads/279e2eed33a67ab12e6e95cf58eafbb5/image.png)
Also, the default profile is not displayed in the "Views for Display Contacts" field if you edit the search criteria, so I think somehow the default search profile is not being communicated between the quick search and the advanced search display.
I tried to figure out what was going on but got a bit lost. I do suspect, however, that is is a regression from [390820a1bd90c9be51ca8f236cecdebfbefc8342](https://github.com/civicrm/civicrm-core/commit/390820a1bd90c9be51ca8f236cecdebfbefc8342). Do you have any thoughs @eileen?
Thank you!https://lab.civicrm.org/dev/core/-/issues/5083SearchKit: It's not possible to uppercase countries and states/provinces2024-03-12T13:30:39ZfrancescbassasSearchKit: It's not possible to uppercase countries and states/provincesReproduced on dmaster.demo.civicrm.org at 5.73.alpha1
![imatge](/uploads/92832dc535bb7b462cd714cc3b58dec5/imatge.png)Reproduced on dmaster.demo.civicrm.org at 5.73.alpha1
![imatge](/uploads/92832dc535bb7b462cd714cc3b58dec5/imatge.png)https://lab.civicrm.org/dev/core/-/issues/5081Event Online Receipt can yield Smarty error2024-03-12T19:26:34ZJonGoldEvent Online Receipt can yield Smarty errorCurrently, the `selfcancelxfer_time` field in Civi can be `NULL`. But if it's set to `NULL` then submitting an online event registration crashes because you can't compare it to an integer in this template line in `event_reg_online`:
```...Currently, the `selfcancelxfer_time` field in Civi can be `NULL`. But if it's set to `NULL` then submitting an online event registration crashes because you can't compare it to an integer in this template line in `event_reg_online`:
```
{capture assign=selfservice_preposition}{if {event.selfcancelxfer_time|boolean} && {event.selfcancelxfer_time} > 0}{ts}before{/ts}{else}{ts}after{/ts}{/if}{/capture}
```https://lab.civicrm.org/dev/core/-/issues/5077civicrm.css loaded on front end when frontend theme set to 'None - Unstyled'2024-03-19T07:32:11ZMichael McAndrewcivicrm.css loaded on front end when frontend theme set to 'None - Unstyled'Wondering if I have found a bug or am just misunderstanding/mistaken or I have missed a decision to change things but I have reproduced this on 5.70 and 5.71. It was not happening in 5.64.4
Steps to reproduce:
1. Clean CiviCRM on WordP...Wondering if I have found a bug or am just misunderstanding/mistaken or I have missed a decision to change things but I have reproduced this on 5.70 and 5.71. It was not happening in 5.64.4
Steps to reproduce:
1. Clean CiviCRM on WordPress install
2. Set front end theme to **automatic**
3. Go to a front end page, e.g. /civicrm/mailing/subscribe
4. Notice that /wp-content/plugins/civicrm/civicrm/css/civicrm.css has been loaded - **good!**
5. Set front end theme **none - unstyled**
6. Go to a front end page, e.g. /civicrm/mailing/subscribe
7. Notice that /wp-content/plugins/civicrm/civicrm/css/civicrm.css has been loaded **- bad!**https://lab.civicrm.org/dev/core/-/issues/5076Error on install2024-03-12T13:27:18ZJonGoldError on installI just attempted to install via the normal web UI for the first time in a very long time. Brand new D7 site, brand new Civi. Disabled all components but CiviEvent and CiviMail. On install, I received this message:
```
CRM_Extension_E...I just attempted to install via the normal web UI for the first time in a very long time. Brand new D7 site, brand new Civi. Disabled all components but CiviEvent and CiviMail. On install, I received this message:
```
CRM_Extension_Exception_DependencyException: Cannot disable extension due to dependencies. Consider disabling all these: civi_campaign,civi_case,civi_contribute,civi_member,civi_pledge,civi_report,financialacls in CRM_Extension_Manager->disable() (line 387 of /var/www/mysite.org/web/sites/all/modules/civicrm/CRM/Extension/Manager.php).
```
Reloading the page got me past the error but since it's the first thing a new admin will see it's worth fixing IMO.https://lab.civicrm.org/dev/core/-/issues/5075When adding fields to a profile if you choose Contact as the entity the dropd...2024-03-12T13:26:32ZDaveDWhen adding fields to a profile if you choose Contact as the entity the dropdown includes Grant fieldsThis sounds familiar but I'm not sure if it's something new or something that came back. I can't find a ticket about it with a quick search.This sounds familiar but I'm not sure if it's something new or something that came back. I can't find a ticket about it with a quick search.https://lab.civicrm.org/dev/core/-/issues/5074Standalone installer header squished on wide screens2024-03-12T13:25:50ZufundoStandalone installer header squished on wide screensOn screens wider than 2000px the installer title overlaps the logo:
![image](/uploads/5bdae7eb821fc67c637939d2abc7f983/image.png)
Minor but it's not the best intro for new people to CiviCRM!
(Maybe it is a good intro :eyes: )On screens wider than 2000px the installer title overlaps the logo:
![image](/uploads/5bdae7eb821fc67c637939d2abc7f983/image.png)
Minor but it's not the best intro for new people to CiviCRM!
(Maybe it is a good intro :eyes: )https://lab.civicrm.org/dev/core/-/issues/5072SearchKit: Ghost custom data2024-03-12T15:46:29ZfrancescbassasSearchKit: Ghost custom dataHow to reproduce:
1. Create a custom field for a membership type.
2. Create a membership type and fill the custom field.
3. Change the membership type for the previous membership. Membership no longer have custom field, at least at UI l...How to reproduce:
1. Create a custom field for a membership type.
2. Create a membership type and fill the custom field.
3. Change the membership type for the previous membership. Membership no longer have custom field, at least at UI level, data remains in database tables.
4. Create a SearchKit to list memberships and custom field created in step 1.
5. The SearchKit results show data for non-applicable field for the membership created in step 2.
I suspect it's applicable for custom data groups associated with other entities (contact subtypes, participants, etc)https://lab.civicrm.org/dev/core/-/issues/5071TypeError when trying to use checkboxes with default non-membership options i...2024-03-08T04:07:50ZFrancis (Agileware)TypeError when trying to use checkboxes with default non-membership options in the Membership section of Contribution PagesOverview
----------------------------------------
If you have a PriceSet with a checkboxes field, that has default options set that **don't** have a membership type associated with them, trying to use it on a Contribution Page causes th...Overview
----------------------------------------
If you have a PriceSet with a checkboxes field, that has default options set that **don't** have a membership type associated with them, trying to use it on a Contribution Page causes that page to crash.
Observed on PHP 8.0, may not be an issue on 7.4 -
Reproduction steps
----------------------------------------
1. Create a membership price set
2. Include in this price set a Checkboxes fields with a default option that does not select a membership type, e.g.
Membership Type
[ ] General - $100
[ ] Student - $50
Be awesome
[ X ] Donate $150 to save the Northern White Rhino
3. Use this price set in the membership context of a Contribution page
4. View the contribution page on the front-end
Current behaviour
----------------------------------------
Contribution page does not load, crashes with TypeError:
```
PHP Fatal error: Uncaught TypeError: strtolower(): Argument #1 ($string) must be of type string, array given in /.../public_html/ontarget/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php:1419
```
Backtrace shows this is called from `CRM_Contribute_Form_Contribution_Main->setDefaultValues()`:
https://github.com/civicrm/civicrm-core/blob/4b75775/CRM/Contribute/Form/Contribution/Main.php#L270
(Ref 4b75775 is master at time of this report)
Expected behaviour
----------------------------------------
Contribution page should load, with defaults for all fields correctly applied
Environment information
----------------------------------------
* __CiviCRM:__ _Master, 5.70.2_
* __PHP:__ _8.0+_
Comments
----------------------------------------
I have a working patch for this, however I'm not sure the approach is entirely correct. The code in question appears to be trying to insinuate a Membership Type ID for, again an option (PriceFieldValue) which doesn't specify a membership type. Perhaps this line could... just be removed?5.72.0https://lab.civicrm.org/dev/user-interface/-/issues/70Test & resolve final accordion markup pattern rewrite: CRMDashlet (pattern 2)2024-03-07T13:51:41ZnicolTest & resolve final accordion markup pattern rewrite: CRMDashlet (pattern 2)The accordion issue #60 has just one pattern left remaining, which appears in one part of CiviCRM, the dashboard. This is more complex than other accordions as the summary bar needs to be drag-and-drop, as well as have function buttons f...The accordion issue #60 has just one pattern left remaining, which appears in one part of CiviCRM, the dashboard. This is more complex than other accordions as the summary bar needs to be drag-and-drop, as well as have function buttons for refresh, close, and expand-to-modal.
There's a WIP PR for it here: https://github.com/civicrm/civicrm-core/pull/29613 – which has two outstanding issues:
- the expand-to-modal duplicates the title.
- the refresh js in `crmDashlet.component.js` needs to be updated
In addition, testing needs to confirm on several CMS the following still work:
- [ ] drag,
- [ ] drop,
- [ ] expand fullscreen,
- [ ] expand/collapse accordion,
- [ ] refresh,
- [ ] remove dashlet
- [ ] inactive dashlet state (when clicking 'available dashlet')Improve Civi's front-endhttps://lab.civicrm.org/dev/core/-/issues/5070Contribution pending status wrong2024-03-07T18:16:21Zaydunsaidan.saunders@squiffle.ukContribution pending status wrong## Overview
After creating a Pending Contribution it lists as `Pending (Incomplete Transaction)`, not `Pending (Pay Later)`, but editing and saving with no changes causes it to show correctly.
## Reproduction steps
1. Choose a contact...## Overview
After creating a Pending Contribution it lists as `Pending (Incomplete Transaction)`, not `Pending (Pay Later)`, but editing and saving with no changes causes it to show correctly.
## Reproduction steps
1. Choose a contact.
2. `Actions` \> `Add Contribution` (or `Contributions` tab \> `Record Contribution`, or API4)
3. Choose any Financial Type and Amount, set Status to `Pending`
4. View the Contributions list
## Current behaviour
The status shows as `Pending (Incomplete Transaction)`
Then `Edit` the contribution, don't make any changes, just hit `Save`
Note that the status is now `Pending (Pay Later)`
## Expected behaviour
Should be `Pending (Pay Later)`
## Environment information
* **CiviCRM:** _Master & 5.70.0 - maybe others_
Reproducible on dmaster.demo.civicrm.org
## Comments
_See_ https://chat.civicrm.org/civicrm/pl/qcmoueddmfbm7bpfq4uauympcwhttps://lab.civicrm.org/dev/core/-/issues/5069standalone: permanent "session already active" errors2024-03-26T14:20:29ZRichstandalone: permanent "session already active" errorsEvery page, including the login form has:
* session_set_save_handler(): Session save handler cannot be changed when a session is active [2]
/var/www/standalone.localhost/web/core/CRM/Utils/System/Standalone.php line 567
* sessi...Every page, including the login form has:
* session_set_save_handler(): Session save handler cannot be changed when a session is active [2]
/var/www/standalone.localhost/web/core/CRM/Utils/System/Standalone.php line 567
* session_start(): Ignoring session_start() because a session is already active [8]
/var/www/standalone.localhost/web/core/CRM/Utils/System/Standalone.php line 580
I first encountered this while reviewing https://github.com/civicrm/civicrm-core/pull/29352 but after experiencing it once, I could not get it to repeat, so thought it was a random local thing. But now it's back.
I have some installs that don't have it, and others that do; I'm trying to figure out how to reproduce/what makes the difference.https://lab.civicrm.org/dev/core/-/issues/5068Do we need the qfkey in group urls?2024-03-07T13:49:27ZAndrew WestDo we need the qfkey in group urls?My users are forever emailing each other broken links to Civi groups, due to the qfkey in the URL. This doesn't seem to be needed in most of the rest of Civi - is it worth my investigating how to remove it? Or would we aim to replace tha...My users are forever emailing each other broken links to Civi groups, due to the qfkey in the URL. This doesn't seem to be needed in most of the rest of Civi - is it worth my investigating how to remove it? Or would we aim to replace that page with a search kit version soon anyway?https://lab.civicrm.org/dev/core/-/issues/5067Docker image - initial version2024-03-08T09:40:10ZMichael McAndrewDocker image - initial versionFor the initial image, we will focus on CiviCRM Standalone with a simple implementation of layer 3 (see #5066). While we are retaining a narrow focus for the initial release, the Design principles and scope #5066 are an attempt to future...For the initial image, we will focus on CiviCRM Standalone with a simple implementation of layer 3 (see #5066). While we are retaining a narrow focus for the initial release, the Design principles and scope #5066 are an attempt to future proof this work by considering a wider set of use cases.https://lab.civicrm.org/dev/core/-/issues/5066Docker image - design principles and scope2024-03-13T16:58:38ZMichael McAndrewDocker image - design principles and scope**_This text is draft - feedback welcome_**
We are creating CiviCRM Docker image designed to be used as a building block in the _production hosting_ of CiviCRM (see #5064 for more details). It will support both CiviCRM Standalone and Ci...**_This text is draft - feedback welcome_**
We are creating CiviCRM Docker image designed to be used as a building block in the _production hosting_ of CiviCRM (see #5064 for more details). It will support both CiviCRM Standalone and CiviCRM alongside a CMS.
We expect the image to be used as part of a wider set of tools to create reliable, performant, scalable hosting infrastructure. Creating that infrastructure is outside of the scope of this image and we are agnostic on what tools used to do so. Commonly used tools include Kubernetes, Docker swarm, etc.
The image can also be used as part of a development environment to enable 'dev prod parity'. When we say development environment we are referring specifically to a development environment for production hosting, not a development environment for core CiviCRM development (buildkit etc.).
Note: we will likely encounter limitations in making each CMS 'Docker friendly' that are outside of our control.Note: support for core development workflows (buildkit, etc.) is outside of the scope of this project.
It is based on the following **principles**:
**No surprises**. We'll follow the well trodden path. Use CiviCRM defaults and recommendations, and Docker and cloud best practices, e.g. https://12factor.net/. There are many different opinions about the best way to deploy CiviCRM and we won't be able to please everyone. If you want to do something extra special or clever, then this _might_ not be for you.
**Be conservative about options**. Each option that we add multiplies complexity and increases the chance of bugs and breakages and we'll avoid adding them unless there is a compelling reason. That said, where possible we'll design the image in such a way that it can be used as a base for more opinionated solutions (e.g. by breaking the Docker image into layers).
### Build process
A possible architecture is as follows:
* Layer 1: CiviCRM Dependencies and tools
* Layer 2: CMS/standalone dependencies and tools
* Layer 3: Application source code
Consumers can choose the image that is the most appropriate jumping off point for their infrastructure.
We expect many consumers of this repository will roll their own Layer 3 that makes sense for their own own build process. A simple approach to building a Layer 3 would be to copy a source code tree from a repository. Other options include using CMS tools such as `drush` or `wp` or dependency managers like `composer`.
We could consider swapping the order of Layers 1 and 2 and rely on official CMS builds as the base layer. This would save time but mean we were reliant on the upstream base images and need to deal with any variance between them. It is worth noting that the Drupal and WordPress images on Docker hub are maintained by the Docker community, not the projects themselves.
### Configuration
We should consider patching CiviCRM to allow it to consume settings passed as environment variables (or similar).
### Backing services
All 'backing services', including MySQL, email delivery, payment providers, etc, are outside the scope of this image and are expected to be configured via environment variables or similar.
We may consider creating recommended images for backing services (e.g. MySQL, email services) further down the line.
### Admin processes
We will include existing tools like `cv` and `civix` to assist with the execution of one off admin processes (e.g. upgrades, config changes, etc.) These tools are also useful during development.
There are some admin processes, e.g. backups, snapshots, for which there are currently no official tools. We should consider creating these as part of this project.
We may also include cron for scheduled tasks.
### Port binding
The image wil expose CiviCRM (and the CMS via http on a specific port. Reverse proxies, caches, firewalls, etc. are outside of the scope of this project.
### Concurrency
The image will be designed to support horizontal scaling, i.e. running multiple instances of the image in parallel.
### Logs
All logs (CiviCRM, Apache, PHP) will be sent to stdout/stderr.https://lab.civicrm.org/dev/core/-/issues/5065Docker image - review of existing CiviCRM Docker codebases2024-03-13T21:32:52ZMichael McAndrewDocker image - review of existing CiviCRM Docker codebasesAs part of https://lab.civicrm.org/dev/core/-/issues/5064 we would like to review existing CiviCRM Docker codebases **_that are currently being used for production hosting_** in order to distil existing best practice and also to not repe...As part of https://lab.civicrm.org/dev/core/-/issues/5064 we would like to review existing CiviCRM Docker codebases **_that are currently being used for production hosting_** in order to distil existing best practice and also to not repeat previous mistakes.
If you have an existing CiviCRM Docker based solution that you would be willing to share, please add a link below with some narrative and pointers for us.
Some questions it would be great if you could answer:
- What is working well for you in your current set up?
- What the challenges have you experienced? / what problems are yet to be solved?
- Are the any Docker APIs or features that you are not making use of that you think would be useful
- anything else you think is relevanthttps://lab.civicrm.org/dev/core/-/issues/5064An official CiviCRM docker image2024-03-12T16:30:24ZMichael McAndrewAn official CiviCRM docker imageWe'd like to create an official CiviCRM Docker image that people can use as a building block when creating CiviCRM hosting infrastructure.
This issue is as an overview with links to various sub-tasks, some of which have issues linked be...We'd like to create an official CiviCRM Docker image that people can use as a building block when creating CiviCRM hosting infrastructure.
This issue is as an overview with links to various sub-tasks, some of which have issues linked below.
1. Review existing Docker based set ups and collect best practice #5065
2. Design principles and scope #5066
3. Develop initial version of the image #5067
4. Create publishing infrastructure
5. Sketch roadmap for further development
6. Document how to use and contribute to the project
This project has received funding from SFE's CiviClick project (thank you SFE!) which will help kick start things but won't cover everything we need to do.
SFE are also funding improvements to CiviCRM to make it more Docker friendly and a project to orchestrate CiviCRM using Kubernetes. See https://cloud.software-fuer-engagierte.de/index.php/s/KrTmxnxH5AZYzg4 for the users stories that this work is intended to cater for.