Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-03-28T00:43:35Zhttps://lab.civicrm.org/dev/core/-/issues/3807Download invoice button on contribution fails to attach it to activity on win...2024-03-28T00:43:35ZDaveDDownload invoice button on contribution fails to attach it to activity on windowsEverything else works, but the attachment doesn't get attached to the activity.
In https://github.com/civicrm/civicrm-core/blob/2aaf9d423288b5acb322379eb135324f380faca4/CRM/Core/BAO/File.php#L117-L130, it uses DIRECTORY_SEPARATOR when i...Everything else works, but the attachment doesn't get attached to the activity.
In https://github.com/civicrm/civicrm-core/blob/2aaf9d423288b5acb322379eb135324f380faca4/CRM/Core/BAO/File.php#L117-L130, it uses DIRECTORY_SEPARATOR when it should just always use '/', and in the one place it does need to use DIRECTORY_SEPARATOR it only checks '/':
```php
$path = explode('/', $data); // <--- THIS IS WRONG
$filename = $path[count($path) - 1];
// rename this file to go into the secure directory
if ($entitySubtype) {
$directoryName = $config->customFileUploadDir . $entitySubtype . DIRECTORY_SEPARATOR . $entityID;
}
else {
$directoryName = $config->customFileUploadDir;
}
CRM_Utils_File::createDir($directoryName);
if (!rename($data, $directoryName . DIRECTORY_SEPARATOR . $filename)) {
```https://lab.civicrm.org/dev/financial/-/issues/204Editing a line item on a membership extends the term of the membership2022-10-11T12:27:28ZkcristianoEditing a line item on a membership extends the term of the membershipCiviCRM 5.50+
Tested on WP Master
Required Line item editor extension and membership created from a price set.
wpcvmaster - 5.53
Steps to reproduce:
- Add a recurring membership
![image](/uploads/6bcad85c842288f49b37d665d4cf02a3...CiviCRM 5.50+
Tested on WP Master
Required Line item editor extension and membership created from a price set.
wpcvmaster - 5.53
Steps to reproduce:
- Add a recurring membership
![image](/uploads/6bcad85c842288f49b37d665d4cf02a3/image.png)
![image](/uploads/79381fa3d7cc4976f3df819fdb79c54e/image.png)
* Need to update rate for the next recurring membership payment
- click more on the recurring transaction that is in progress
![image](/uploads/3b1e39119d0eeb3ccd63ff6da8a72e67/image.png)
* view template
* then edit at bottom of screen
![image](/uploads/0c67dab579f9fd714b9fe3c7517e9750/image.png)
* edit line item
![image](/uploads/9eb56bec0334d8f389db8f5b68f0c33b/image.png)
* change amount
![image](/uploads/512f88dde2200e18efb8771bb3b73b7c/image.png)
- recurring is now updated:
![image](/uploads/4ffaae2bf8207c6b14f3f02d11e8f9aa/image.png)
Unintended consequence: Membership extended:
![image](/uploads/da6e71e2d4d2fbc7f9de4c2709691931/image.png)
cc @seamuslee @JoeMurray This _may_ be related to the 2.5 releaseMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3806Contribution Pages: Spread the Word show on Live Page from start if Enabled.2024-03-28T05:03:24ZBarijohnContribution Pages: Spread the Word show on Live Page from start if Enabled.Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the dona...Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the donation page, as you might have missed the opportunity when you complete it.
On Events this is showing as soon as you land on the Event Information Page and I suggest this would be a good improvement on Contribution Pages as well.
Example use-case
----------------------------------------
1. Click on Contribution Link - See Spread the Word. Can share directly from this page to Social Media.
May increase sharing of the page and increase donations. Also it will be shown to users when creating page and they can test it easily.
Current behaviour
----------------------------------------
Currently this ONLY appears when you have completed the full transaction and appears at the confirmation stage. Easy to skip past it as well.
![Contribution_Completed](/uploads/f1a68833823dec4ccd78bb4d12ab4cb8/Contribution_Completed.png)
Proposed behaviour
----------------------------------------
Show the Spread the Word on the main contribution page. As Per the Events Page.
![Screenshot_2022-08-16_at_12.31.16](/uploads/acaa5bedff273314189446561ca8c8be/Screenshot_2022-08-16_at_12.31.16.png)
Comments
----------------------------------------
Thoughts?https://lab.civicrm.org/dev/core/-/issues/3805Error on membership fee token when using Print/Merge Document2023-07-12T00:29:55ZgiammiError on membership fee token when using Print/Merge DocumentOverview
----------------------------------------
The issue has been reported on
https://civicrm.stackexchange.com/questions/42438/error-on-membership-fee-token-when-using-print-merge-document/42443#42443
Reproduction steps
------------...Overview
----------------------------------------
The issue has been reported on
https://civicrm.stackexchange.com/questions/42438/error-on-membership-fee-token-when-using-print-merge-document/42443#42443
Reproduction steps
----------------------------------------
I did a short test on the demo sandbox.
Selected "Find Membership" and selected one record. I then choose Print/Merge Document and added 2 tokens, {membership.id} and {membership.fee} Then clicked "Preview" to see the pdf outcome.
If I use only the token {membership.id} I do not get any error message and the preview is created.
Adding {membership.fee} I get the following error message below.
Current behaviour
----------------------------------------
```
The website encountered an unexpected error. Please try again later. TypeError: Return value of
CRM_Utils_Money::formatUSLocaleNumericRounded() must be of the type string, null returned in
CRM_Utils_Money::formatUSLocaleNumericRounded() (line 207 of /srv/buildkit/build/d9-master/vendor/civicrm/civicrm-
core/CRM/Utils/Money.php).
CRM_Utils_Money::formatUSLocaleNumericRounded() (Line: 249) CRM_Utils_Money::formatLocaleNumericRoundedByPrecision() (Line: 234)
CRM_Utils_Money::formatLocaleNumericRoundedByCurrency() (Line: 281)
CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency() (Line: 65) CRM_Member_Tokens->evaluateToken() (Line: 146)
Civi\Token\AbstractTokenSubscriber->evaluateTokens() (Line: 264) Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()
(Line: 239) Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (Line: 73)
Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (Line: 209) Civi\Core\CiviEventDispatcher->dispatch() (Line: 354)
Civi\Token\TokenProcessor->evaluate() (Line: 64) CRM_Core_TokenSmarty::render() (Line: 349)
CRM_Core_BAO_MessageTemplate::renderTemplateRaw() (Line: 271) CRM_Core_BAO_MessageTemplate::renderTemplate() (Line: 131)
CRM_Member_Form_Task_PDFLetter->generateHTML() (Line: 98) CRM_Member_Form_Task_PDFLetter->postProcessMembers() (Line: 75)
CRM_Member_Form_Task_PDFLetter->postProcess() (Line: 573) CRM_Core_Form->mainProcess() (Line: 56)
CRM_Core_QuickForm_Action_Submit->perform() (Line: 203) HTML_QuickForm_Controller->handle() (Line: 103) HTML_QuickForm_Page-
>handle() (Line: 355) CRM_Core_Controller->run() (Line: 319) CRM_Core_Invoke::runItem() (Line: 69) CRM_Core_Invoke::_invoke()
(Line: 36) CRM_Core_Invoke::invoke() (Line: 88) Drupal\civicrm\Civicrm->invoke() (Line: 80)
Drupal\civicrm\Controller\CivicrmController->main() call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber{closure}() (Line: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 80) Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48) Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85) Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51) Drupal\Core\StackMiddleware\NegotiationMiddleware-
>handle() (Line: 23) Stack\StackedHttpKernel->handle() (Line: 709) Drupal\Core\DrupalKernel->handle() (Line: 19)
```
Expected behaviour
----------------------------------------
No error message should appear and a PDF (and/or emailing) should be possible
Environment information
----------------------------------------
Demo Sandbox on CiviCRM Website5.63.0https://lab.civicrm.org/dev/core/-/issues/3804Civicase dashboard not displaying recently performed activities2023-03-30T09:37:49ZKurund JalmiCivicase dashboard not displaying recently performed activitiesCiviCase Dashboard does not display 'Recently Performed Activities` when there are no `Upcoming Activities`.CiviCase Dashboard does not display 'Recently Performed Activities` when there are no `Upcoming Activities`.5.61.0Kurund JalmiKurund Jalmihttps://lab.civicrm.org/dev/core/-/issues/3803DB Error when Create User Record2022-08-24T23:31:04ZolivierDB Error when Create User RecordOverview
----------------------------------------
When I try to create a user with "Create user Record", the CMS user is correctly created, but a new Civicrm user is added.
----------------------------------------
1. Check that eamil ad...Overview
----------------------------------------
When I try to create a user with "Create user Record", the CMS user is correctly created, but a new Civicrm user is added.
----------------------------------------
1. Check that eamil address is uniq
![image](/uploads/89c495169035d1a108c89c5ad8f6ca73/image.png)
2. And don't exist on CMS side
![image](/uploads/d00bae41921431beba67e8e2372793c6/image.png)
3. In Civicrm Contact view, click Actions/Create user record, fill password and click Add
![image](/uploads/9842df81c429868c64c3b1738857cfe3/image.png)
4. Got an error "**Fatal error: DB error**".
![image](/uploads/444c20f47378581115126e784456e75b/image.png)
5. CMS user is created
![image](/uploads/798e2941d70bb7895d109e81cab5e055/image.png)
6. but another Civicrm user is created vith the same email
![image](/uploads/32d8fc6c3bd36adf1c016618d40beb90/image.png)
![image](/uploads/97de7340588be1790285830adb029112/image.png)
![image](/uploads/9b40f9477af6f1bb7a1de7ddf95a5b0f/image.png)
7. CMS error :
![image](/uploads/b3fc540aeca5a43a222852c3ed3478ad/image.png)
Expected behaviour
----------------------------------------
No new user created and CMS userID should be associated to existing Civicrm
Environment information
----------------------------------------
* Civicrm 5.51.2 (but same behavior in previous versions)
* PHP 7.4.19
* Drupal 9.4.5
Comments
----------------------------------------
In /vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php, line 250, ll the information on the Civicrm account is deleted, and only the email address is present. In the continuation of the treatment, it is not possible any more to find the account thus a new account is created in /vendor/civicrm/civicrm-coreCRM/CoreBAO/CMSUser.php
Proposal
----------------------------------------
Replace in /vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php, line 250
$params = ['email' => $primary_email];
by
$params['email'] = $primary_email;5.53.0https://lab.civicrm.org/dev/core/-/issues/3802Symfony 6 can't find the EventDispatcher when adding hooks that are defined i...2022-08-15T02:11:04ZDaveDSymfony 6 can't find the EventDispatcher when adding hooks that are defined in getSubscribedEventsThey did this, and also a little higher up you can see they removed the constructor: https://github.com/symfony/event-dispatcher/commit/0bc2e0d8ba8a6eb353a42d19890f57a3dee410a5#diff-f3f413e17bbd20e345b3721f9c4556ed5e319d133c32bf7492dffd5...They did this, and also a little higher up you can see they removed the constructor: https://github.com/symfony/event-dispatcher/commit/0bc2e0d8ba8a6eb353a42d19890f57a3dee410a5#diff-f3f413e17bbd20e345b3721f9c4556ed5e319d133c32bf7492dffd55a024d0efR57
So what happens is this https://github.com/civicrm/civicrm-core/blob/da21dc84950b013a03d3fe5e72e12e7d652cce7f/Civi/Core/Container.php#L93 is expecting it to be called `dispatcher`, but this https://github.com/symfony/event-dispatcher/commit/0bc2e0d8ba8a6eb353a42d19890f57a3dee410a5#diff-f3f413e17bbd20e345b3721f9c4556ed5e319d133c32bf7492dffd55a024d0efR57 is expecting it to be called `event_dispatcher`, so that returns early and never calls `$container->findTaggedServiceIds('kernel.event_listener'`, so doesn't pick up any of the getSubscribedEvents hooks, e.g. civi.token.eval and others.
The naive fix of calling `$container->setAlias('event_dispatcher', 'dispatcher')` doesn't seem to be enough and causes a crash later which I haven't tracked down yet.5.54.0https://lab.civicrm.org/dev/core/-/issues/3801Blank Invoice.pdf attached when not needed2022-10-21T20:05:30ZkonadaveBlank Invoice.pdf attached when not neededOverview
----------------------------------------
When the option to send email invoices is turned on, if the workflow sending the invoice doesn't have an associated contribution, e.g. when registering a participant for an unpaid event, ...Overview
----------------------------------------
When the option to send email invoices is turned on, if the workflow sending the invoice doesn't have an associated contribution, e.g. when registering a participant for an unpaid event, an Invoice.pdf is attached containing a single blank page.
It's been reported on SE: https://civicrm.stackexchange.com/questions/41933/how-can-i-stop-blank-invoices-being-sent-out-with-confirmation-emails-for-non-pa
Reproduction steps
----------------------------------------
1. Execute one of the workflows that sends an invoice, in such a way that doesn't generate a contribution. Relevant workflows are Contribution/Event/Membership Online/Offline Receipt.
2. Check email for Invoice.pdf. It will be blank.
Current behaviour
----------------------------------------
User receives an email with a blank invoice attached, and gets confused.
Expected behaviour
----------------------------------------
No contribution, no invoice attached, user not confused.
Comments
----------------------------------------
[no-blank-invoice.diff](/uploads/e2ed615092a6976effd92916551d639b/no-blank-invoice.diff) is probably the simplest solution. Another option would be to find everywhere `isEmailPdf` is set (half dozen files), and then add logic to make sure there's a contribution before setting it.https://lab.civicrm.org/dev/core/-/issues/3800FormBuilder: after submit the page is not rebuild after an error2022-08-14T15:24:08ZTobias KrauseFormBuilder: after submit the page is not rebuild after an errorI created a form with FormBuilder by choosing "Person" under "New Submission Form". I kept it as is and added a path "civicrm/testform". When I go to this page and submit a form with let's say "Bernd" as first name and "Meyer" as last na...I created a form with FormBuilder by choosing "Person" under "New Submission Form". I kept it as is and added a path "civicrm/testform". When I go to this page and submit a form with let's say "Bernd" as first name and "Meyer" as last name the page is greyed out and the "Saved" message appears - but the form still has the values in the field. When I click submit again the page is greyed out and nothing happens.
1. I would suggest that the user comes to the newly created contact instead of just showing the unchanged form with all values still in the fields
2. The error in the logs: DB Error: already exists . I think the form should properly handle errors and give an error message to the user instead of just not stopping loading?!https://lab.civicrm.org/dev/core/-/issues/3799CiviCRM Reports, setting the Report option "Available for Dashboard?" will no...2022-08-14T03:14:20Zjustinfreeman (Agileware)CiviCRM Reports, setting the Report option "Available for Dashboard?" will now add the Report to all users Dashboards, which is new and undesirable behaviourAs observed in CiviCRM 5.51.2 when updating a CiviCRM Report. Setting the Report option "Available for Dashboard?" will now add the Report to all users Dashboards, which is new and undesirable behaviour. If lots of new reports are being ...As observed in CiviCRM 5.51.2 when updating a CiviCRM Report. Setting the Report option "Available for Dashboard?" will now add the Report to all users Dashboards, which is new and undesirable behaviour. If lots of new reports are being added, this quickly SPAMs all the existing Dashboards with the new reports.
The previous behaviour was that the report would not be displayed on the Dashboard until it was manually added.
Screen recording of this behaviour on https://dmaster.demo.civicrm.org/civicrm/dashboard - CiviCRM 5.54.alpha1
![Peek_2022-08-12_15-55](/uploads/4f8ab99408be96a25e3aa0259646c4bf/Peek_2022-08-12_15-55.gif)
Agileware Ref: CIVICRM-20325.52.2https://lab.civicrm.org/dev/core/-/issues/3798Thank-You page not displaying when donor uses the 'Pay-Later' option on a con...2022-08-15T15:28:34ZDonAlejandroThank-You page not displaying when donor uses the 'Pay-Later' option on a contribution pageRecently while testing a [new contribution page](https://wvecouncil.org/summit) I noticed that CiviCRM was no longer displaying a thank-you page when the ‘Pay later’ option was selected. Instead of a Thank-You page, CiviCRM now goes dire...Recently while testing a [new contribution page](https://wvecouncil.org/summit) I noticed that CiviCRM was no longer displaying a thank-you page when the ‘Pay later’ option was selected. Instead of a Thank-You page, CiviCRM now goes directly to a fresh (unpopulated) contribution page. All contribution pages on two WordPress sites I manage now act this way. The Thank-You page displays as usual if a payment portal such as PayPal is selected.
Pending donations are properly recorded in the database, and CiviCRM sends a Thank-You email, but the missing Thank-You page often confuses donors into thinking there was a glitch, some of whom immediately make a second pending donation. Also, the Thank-You page normally shows the Pay-later instructions, which is important given that Thank-You emails often end up in junk folders.
I don’t know when the Thank-You page ceased to appear for Pay-later donors, but I see duplicate Pay-later donations back as far as Nov.30, 2021, a day after updating my sites to CiviCRM version 5.43.2, though we are currently running 5.50.2. The last time I tested a contribution page on either site the Thank-You page worked normally, but that has probably been over a year ago.
I [asked about this on stackexchange](https://civicrm.stackexchange.com/questions/42405/thank-you-page-not-displaying-for-pay-later-contributions) last week, but no one has commented yet on whether the thank-you page works for them or not (perhaps most sites don't enable that option). [There is one other post on stackexchange ](https://civicrm.stackexchange.com/questions/41771/display-thank-you-page-for-offline-contributions-civicontribute)that seems to be a result of the same issue,https://lab.civicrm.org/dev/financial/-/issues/203False-positive duplicate detection caused by webform not passing correct par...2024-01-16T19:36:50ZAllenShawFalse-positive duplicate detection caused by webform not passing correct parameters to Authorize.net - it needs to pass contributionID(Joinery internal reference: "Trello#142: Membership Application and Payment Process Not Working")
From what I understand so far, it seems there's a well-thought effort to use propertybag to standardize parameter names in payment proces...(Joinery internal reference: "Trello#142: Membership Application and Payment Process Not Working")
From what I understand so far, it seems there's a well-thought effort to use propertybag to standardize parameter names in payment processors. Here's one area where this effort seems incomplete and easily improved:
There are a few places in `CRM_Core_Payment_AuthorizeNet::doPayment()` where directly accessing `$params` could (and does) cause problems; it seems right to switch these to `$propertybag`. (BTW I think that usage of `propertybag` in the context of alterPaymentProcessorParams hook is still not appropriate, so I'm not suggesting changes to that usage within this method.)
**Specific observable problem:**
(I can create a more detailed and stripped-down recipe if needed, but hoping to avoid the effort.)
- On a site with: D7, civicrm 5.49.5, webform_civicrm.module, and contributiontransactlegacy extension
- We have a webform which accepts membership signups, payable through the core Authorize.net payment processor.
- Payments made through this webform are actually transacted in Authorize.net, but the user is given the error, 'It appears that this transaction is a duplicate. Have you already submitted the form once? If so there may have been a connection problem. Check your email for a receipt from Authorize.net. If you do not receive a receipt within 2 hours you can try your transaction again. If you continue to have problems please contact the site administrator.'
- FWIW I have observed that the below corrective measure fixes this problem for this site.
**Why this error happens:**
- `CRM_Core_Payment_AuthorizeNet::doPayment()` calls `$this->checkDupe($authorizeNetFields['x_invoice_num'], $params['contributionID'] ?? NULL)` (see [line 171](https://github.com/civicrm/civicrm-core/blob/a1278f71bd804c8013600793916a692b4345e4a2/CRM/Core/Payment/AuthorizeNet.php#L171)) to detect a duplicate transaction.
- However, `$params['contributionID']` is undefined. (On the other hand, `$params['contribution_id']` is defined, as is `$propertyBag->getContributionID( )`).
- Since `checkDup()` gets a NULL value for `$contributionId`, it always thinks the contribution is a duplicate, so we get the above error message.
**Corrective measueres**
1. Seems like the intent of `propertybag` is to clear up exctly this kind of naming inconsistency. I suggest changing Line 171 to use `$propertyBag->getContributionID( )` instaed of `$params['contributionID']`.
2. [Line 146](https://github.com/civicrm/civicrm-core/blob/a1278f71bd804c8013600793916a692b4345e4a2/CRM/Core/Payment/AuthorizeNet.php#L146), which tries to read `$params['is_recur']` and `$params['contributionRecurID']`, is probably also a good candidate for similar cleanup?
Should I go head with a PR or is more discussion needed?https://lab.civicrm.org/dev/core/-/issues/3797Not a Valid Integer - Bug 5.52.02022-08-11T18:08:22ZsavionleeNot a Valid Integer - Bug 5.52.0Overview
----------------------------------------
_Please describe your problem or bug in detail._
When making a traditional mailing or Mosaico mailing on CiviMail, I am trying to create a mailing but my select2 dropdowns are not interpr...Overview
----------------------------------------
_Please describe your problem or bug in detail._
When making a traditional mailing or Mosaico mailing on CiviMail, I am trying to create a mailing but my select2 dropdowns are not interpreting the options correctly so it is display as blanks.
When i try to update them, it says the id is not valid.
Reproduction steps
----------------------------------------
1. Click on **Mailings -> New Mailing (Traditional) or New Mailing**.
1. Click on **Responses** or **Publication** and wait for the event listener to fire off.
1. Got an error "**optout_id is not a valid integer**" or something similar.
Current behaviour
----------------------------------------
_What happens currently. Please provide error messages, screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
![image](/uploads/42c808b2cbd0e079ee686d8988abf49a/image.png)
When i try setting them i get these errors:
![image](/uploads/6afba3e6c5b30d76853a063c7a4e8baf/image.png)
Looking at my debug console and network request, the following POST errors are generated:
`{"error_field":"optout_id","type":"integer","error_code":2001,"entity":"Mailing","action":"create","is_error":1,"error_message":"optout_id is not a valid integer"}`
with the payload sending this in the optout_id slot of the json payload
`"optout_id":"string:7"`
Clearly i believe that the value should be 7, but it is coded as a `string:7`
I suspect that this is a parsing issue with a JS resource sent to me because the GET response of:
`page: CiviCRM
q: civicrm/ajax/rest
entity: Mailing
action: getsingle
json: {"id":"ID#"}`
returns valid integers:
` "reply_id": "8",
"unsubscribe_id": "5",
"resubscribe_id": "6",
"optout_id": "7",`
Expected behaviour
----------------------------------------
_What should happen._
The event listener should pass an integer instead of a string saying `string:7`
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:__ _Edge 104.0.1293.47/Firefox 103.0.2_
* __CiviCRM:__ _Master/5.52.0..._ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _7.0/7.1/7.2/7.3/...__
* __CMS:__ _WordPress 5.9.3..._
* __Database:__ _MariaDB 10.8/..._
* __Web Server:__ _Apache ..._
Comments
----------------------------------------
_Anything else you would like the reviewer to note._https://lab.civicrm.org/dev/core/-/issues/3796Custom Groups should not exclude activity types where filter > 0 if in manage...2022-08-11T01:07:11ZherbdoolCustom Groups should not exclude activity types where filter > 0 if in managed entities## Overview
`CRM_Core_BAO_CustomGroup::getSubTypes()` excludes all subtypes where filter is not zero. This is a problem for managed entities where an activity type is defined with `filter = 1` for example.
It uses this deprecated funct...## Overview
`CRM_Core_BAO_CustomGroup::getSubTypes()` excludes all subtypes where filter is not zero. This is a problem for managed entities where an activity type is defined with `filter = 1` for example.
It uses this deprecated function `$activityType = CRM_Core_PseudoConstant::activityType(FALSE, TRUE, FALSE, 'label', TRUE);`
https://chat.civicrm.org/civicrm/pl/oy16q7rrgbrppqyi69dw6a5waa
## Reproduction steps
1. Put an activity type into a managed entity; make sure 'filter' => 1.
1. Then create a custom group and have it extend that activity type.
1. Put that custom group in a managed entity.
1. Delete the manually made activity type and custom group so they'll properly be created with managed entity.
1. Now run flush and reconciling the managed entities fails: get error: "Supplied Sub type is not valid for the specified entitiy"
## Current behaviour
Managed entity reconciliation fails with error: "Supplied Sub type is not valid for the specified entitiy"
## Expected behaviour
Should run.
## Environment information
* **CiviCRM:** 5.52.x
* **PHP:** 7.4
* **CMS:** Drupal 9.4.x5.54.0https://lab.civicrm.org/dev/core/-/issues/3795Custom Groups should not exclude activity types where filter > 0 if in manage...2022-08-10T18:27:55ZherbdoolCustom Groups should not exclude activity types where filter > 0 if in managed entitiesOverview
----------------------------------------
CRM_Core_BAO_CustomGroup::getSubTypes() excludes all subtypes where filter is not zero. This is a problem for managed entities where an activity type is defined with `filter = 1` for exa...Overview
----------------------------------------
CRM_Core_BAO_CustomGroup::getSubTypes() excludes all subtypes where filter is not zero. This is a problem for managed entities where an activity type is defined with `filter = 1` for example.
It uses this deprecated function $activityType = CRM_Core_PseudoConstant::activityType(FALSE, TRUE, FALSE, 'label', TRUE);
https://chat.civicrm.org/civicrm/pl/oy16q7rrgbrppqyi69dw6a5waa
Reproduction steps
----------------------------------------
1. Put an activity type into a managed entity; make sure 'filter' => 1.
2. Then create a custom group and have it extend that activity type.
3. Put that custom group in a managed entity.
4. Delete the manually made activity type and custom group so they'll properly be created with managed entity.
5. Now run flush and reconciling the managed entities fails: get error: "Supplied Sub type is not valid for the specified entitiy"
Current behaviour
----------------------------------------
Managed entity reconciliation fails with error: "Supplied Sub type is not valid for the specified entitiy"
Expected behaviour
----------------------------------------
Should run.
Environment information
----------------------------------------
* __CiviCRM:__ 5.52.x
* __PHP:__ 7.4
* __CMS:__ Drupal 9.4.xhttps://lab.civicrm.org/dev/core/-/issues/3794civicrm_admin_ui: Changes custom field groups to extend Contacts2022-08-11T01:07:11ZJonGoldcivicrm_admin_ui: Changes custom field groups to extend ContactsOverview
----------------------------------------
I have incomplete information, but it seems serious enough to report anyway.
Current behaviour
----------------------------------------
My client informed me that custom field groups ha...Overview
----------------------------------------
I have incomplete information, but it seems serious enough to report anyway.
Current behaviour
----------------------------------------
My client informed me that custom field groups had all changed to extend Contacts. I confirmed this. I then compared the advanced log tables to Apache logs.
There are a large number of calls to `POST /wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fajax%2Fapi4`. Based on the advanced logs, I'm reasonably sure this was my client adjusting the weight of various fields. The first "real" GET request preceding this was `GET /wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fcustom%2Fgroup%2Fedit&action=update&reset=1&id=3&snippet=json`.
I'll also note that my client deleted some custom field groups just prior to this.
I'm uncertain of the version, since we had to switch to a beta to fix a different urgent issue, but it should be close to stock 5.51.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3793Path for imports through the UI causes permission issues2022-08-10T04:15:54ZbriennePath for imports through the UI causes permission issuesImports through the UI (such as Import Contributions from the Contributions menu) use the same path for the import summary page as the Import Contacts summary page in the UI (civicrm/import/contacts/summary). This causes the import to fa...Imports through the UI (such as Import Contributions from the Contributions menu) use the same path for the import summary page as the Import Contacts summary page in the UI (civicrm/import/contacts/summary). This causes the import to fail if the user does not have the "Import Contacts" permission, even if they do have the proper permissions for other imports.
I am currently working on a fix for this and should have a PR in the next few hours for the release candidate 5.53.
**Steps to Replicate:**
1. Login as a user who does not have the Import Contacts permission
2. Go to **Contributions > Import Contributions**
3. Go through the process of importing a csv file with a test contribution
4. After clicking **import now**, a queue runner will briefly pop up, and then the page will show an error message: "you are not authorized to access this page."
5. Note that the url is civicrm/import/contacts/summary
**Why:**
PR #23669 seems to have introduced this bug (in version 5.51), specifically in the [Import.xml file, lines 20-27](https://github.com/civicrm/civicrm-core/blob/d7a8ffbdd8ee5cf98f712358f261f023f7ebf015/CRM/Core/xml/Menu/Import.xml#L21)5.53.0https://lab.civicrm.org/dev/core/-/issues/3792Search Kit: HTML markup is visible to the end user2022-08-18T16:28:34ZjhungerfordSearch Kit: HTML markup is visible to the end userOverview
----------------------------------------
Currently, if you create a Form from a SearchKit search, HTML markup stored in displayed fields will be shown to the user. For example, Activity Details generally contain markup, so the e...Overview
----------------------------------------
Currently, if you create a Form from a SearchKit search, HTML markup stored in displayed fields will be shown to the user. For example, Activity Details generally contain markup, so the end user will see something like "<p>Example details</p>".
Example use-case
----------------------------------------
1. Create a new SearchKit search
1. Search for: Activities
1. Where: Details contains <p>
1. Add Details column to the output table
1. Save
1. press Search
1. Observe that HTML markup is visible
2. click "Create form for search results table"
2. Assign a Title and Page route
2. Save
2. Click View Page
2. Observe that HTML markup is also visible in the Form
Current behaviour
----------------------------------------
HTML is shown to the end user.
Proposed behaviour
----------------------------------------
Ideally, the HTML would be rendered. Failing that, simply stripping out HTML tags would provide a better user experience.
Comments
----------------------------------------
There was a small amount of discussion about this in the chat, in which it was noted that it would be good if the schema knew which fields could contain HTML:
https://chat.civicrm.org/civicrm/pl/1f67mo4kkfgbbbuaksf9i1rceh
In a development environment, I tried replacing this line:
https://lab.civicrm.org/dev/core/-/blob/master/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js#L173
As a proof of concept, I added some code which strips out all HTML tags if the string begins with "<", but this is obviously improper. I didn't find a way to get it to render the HTML by intervening at that point. For reference, this is the code I inserted in place of line 173, but I'm not suggesting this as a solution:
```
let stringData = angular.isArray(colData.val) ? colData.val.join(', ') : colData.val;
if (typeof(stringData) == "string" && stringData.startsWith('<')) {
let cleanText = stringData.replace(/<\/?[^>]+(>|$)/g, "");
return cleanText;
}
else {
return stringData;
}
```
I tried a few variations on this suggestion for rendering HTML instead of displaying it verbatim, but in that context, my attempts just resulted in the addition of more HTML tags to the output:
https://stackoverflow.com/questions/50749487/rendering-data-with-html-tags-rendering-themhttps://lab.civicrm.org/dev/core/-/issues/3791Wizard: Navigation buttons have weird activation2024-03-27T05:03:23ZtottenWizard: Navigation buttons have weird activationOverview
----------------------------------------
A wizard, such as "New A/B Test", allows you proceed through multiple steps sequentially. Every step in a wizard should be completed in order, although it is also valid to return to a pr...Overview
----------------------------------------
A wizard, such as "New A/B Test", allows you proceed through multiple steps sequentially. Every step in a wizard should be completed in order, although it is also valid to return to a prior step and revise it.
The current behavior of the navigation-bar does not correctly implement this.
Reproduction steps
----------------------------------------
* Click on "**Mailings -> New A/B Test**."
* Within "__1. Setup__"
1. Fill in a **Name**
1. Observe: In the navbar, you are now allowed to jump from step 1 to step 2 or 3 or 4. (*Proceeding to the next step is fine, but you should not be allowed to go step 3 or 4 -- that is premature.*)
![Screenshot_from_2022-08-08_22-26-01](/uploads/eb0c0043394dcd12da65947a1dbd0571/Screenshot_from_2022-08-08_22-26-01.png)
1. Click **Next** (or click the `2. Target` link)
* Within "__2. Target__"
1. Observe: In the navbar, you cannot jump to *any* other step. (*Proceeding to step 3 would be premature, but you should be allowed to go back to step 1.*)
![Screenshot_from_2022-08-08_22-27-06](/uploads/2e70548c9d47577ae369e3e506b7bb02/Screenshot_from_2022-08-08_22-27-06.png)
1. Fill in **Recipients**
1. Observe: In the navbar, you are now allowed to jump to any other step. (*Proceeding to step 3 is OK, but you should not be allowed to jump to step 4.*)
Current behaviour
----------------------------------------
You may jump to any step *if the current step is complete*.
Expected behaviour
----------------------------------------
You may jump to any step *if its predecessors have valid complete/data* (ie *if the prerequisites for the selected step are met*).
Comments
----------------------------------------
The behavior of the "Previous" and "Next" buttons is OK. It's just the top navbar that has the quirk.
This gets to the basic difference between a "wizard" and "tab set". A "tab set" is free-form, so you may navigate to any tab at any time. A "wizard" is sequential, and the steps build upon each other. (In fact, steps may be added or removed as you go through.)
This appears to have regressed in 4.7.28 via https://github.com/civicrm/civicrm-core/commit/5919adff1dc7a531d426c211baf65d8c9b538eeb. I suspect that dev+review focused on "New Mailing", which is deceptively simple use-case (*static 2-step wizard*). The "New A/B Test" is a representative use-case (*dynamic, 4/5-step wizard*).https://lab.civicrm.org/dev/core/-/issues/3790Pledge status is missing on View Pledge page2022-09-09T23:27:08ZyashodhaPledge status is missing on View Pledge pageWhen clicking on View Pledge, pledge status is blank.
![pledge_Status_missing](/uploads/7a9246fce9427cdc7a23c2b6fe11ddfd/pledge_Status_missing.png)
Fix this bug to display the pledge status.When clicking on View Pledge, pledge status is blank.
![pledge_Status_missing](/uploads/7a9246fce9427cdc7a23c2b6fe11ddfd/pledge_Status_missing.png)
Fix this bug to display the pledge status.5.54.0yashodhayashodha