CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-09-20T02:39:21Zhttps://lab.civicrm.org/dev/core/-/issues/4490Feature request - Queue api should respect maintenance mode2023-09-20T02:39:21ZeileenFeature request - Queue api should respect maintenance modeProposal to add a maintenance mode setting that is respected by the Queue api such that it would not permit `claimItems` while this setting is enabled - except for possibly upgrade tasks?
Note that when coworker respects this it should ...Proposal to add a maintenance mode setting that is respected by the Queue api such that it would not permit `claimItems` while this setting is enabled - except for possibly upgrade tasks?
Note that when coworker respects this it should log a message with a priority of `warning` so that a sysadmin can see that although the process is running no tasks are.
Chat discussion to date https://chat.civicrm.org/civicrm/pl/9h93yabz33g17qa3apcet8irdy
The summary of the chat is that `claimItem` api should be the place where maintenance mode is checked & heeded. This would be for 'persistent queues' - ie `CRM_Queue_Queue_Memory` would not check it.
- [ ] The claim item/s functions should call a symfony listener - returning false in this piece of code if an external listener (threshold check) sets the status to false
- [ ] we should add a setting for Maintenance mode (keep it simple) - call it `queue_maintenance_mode`? ClaimItem should return FALSE if this is TRUE
**Notes**
1) the following query will determine whether all queues have finished once maintenance mode is enabled:
`SELECT * FROM civicrm_queue_item where release_time > NOW()`
If future scheduling is in use (civi-rules?) then this might not suffice and if that ever arises as a feature someone wants to work on they could add a suitable field to the `civicrm_queue_item` table (`is_future_scheduled` ?)
2) I can't recall what we decided re should claimItems support an override - ie if you took everything else down in order to keep one queue running & want that queue to still claim items.... perhaps I'll find ithttps://lab.civicrm.org/dev/core/-/issues/4581Define re-usable idiom for deferrable upgrade steps2023-09-19T13:05:13ZtottenDefine re-usable idiom for deferrable upgrade stepsOverview
----------------------------------------
In managing upgrade-steps, there is some tension between:
* Making the upgrades automatic for typical sysadmins
* Allowing very large deployments to schedule/manage expensive upgrade-st...Overview
----------------------------------------
In managing upgrade-steps, there is some tension between:
* Making the upgrades automatic for typical sysadmins
* Allowing very large deployments to schedule/manage expensive upgrade-steps
This proposes to balance those expectations by defining a _deferrable upgrade task_. Sysadmins can choose to approach them a few ways:
* "Just run the task like every other upgrade step" (*e.g. default; for average and small systems*)
* "Let me decide when to run it... but please don't make me figure out obscure incantations" (*for larger systems*)
* "Let me find a highly-optimized/bespoke way to accomplish the change" (*for extra-large systems with a team of admins*)
Example use-case
----------------------------------------
1. Take a table (like `civicrm_contact`, `civicrm_activity`, `civicrm_mailing_event_queue`) which can be very large on some deployments.
1. Define a schema change (e.g. add a column and an index)
1. Executing this change be quite slow.
1. In the long-term, all systems need the schema-change. If people skip it, then it will lead to problems/confusion/bug-reports/etc.
1. In the near-future, the schema change is not quite mandatory. (The new column isn't actively used; or its usages are limited+guarded.)
A sketch
----------------------------------------
* Designate a place to store a list of deferred upgrade steps (e.g. `civicrm_deferred_upgrade` or `civicrm_queue_item`)
* In the `CRM/Upgrade/` system, add some helpers to conditionally execute or defer a step. Ex:
```php
$this->addDeferrableTask(ts('Update CiviMail tracking'), 'doCiviMailQueueConversion');
```
```php
function addDeferrableTask($title, $funcName, $args) {
if (deferred upgrades enabled) {
// Add $title, $action, $args to a persistent TODO list
}
else {
$this->addTask($title, $funcName, $args);
}
}
```
* Add a system-status-check and post-upgrade message to warn if there are any of these things that need to run
* Add an API/job/command/UI to list/execute/skip/delete deferred stepshttps://lab.civicrm.org/dev/core/-/issues/4579Importing contribution with same transaction id as an existing contribution h...2023-09-18T21:27:34ZDaveDImporting contribution with same transaction id as an existing contribution hijacks the initial contribution1. Create a contribution.
2. Give it a trxn id, or note the trxn id if it was automatic.
3. Do a contribution import, choosing to insert new records, where you make the trxn id in the file the same as the one just created, and with some ...1. Create a contribution.
2. Give it a trxn id, or note the trxn id if it was automatic.
3. Do a contribution import, choosing to insert new records, where you make the trxn id in the file the same as the one just created, and with some different particulars.
4. Notice that the contribution with that transaction id has now moved to whatever contact was in your import file, and the details updated.
What I would expect is that it says it's a duplicate and doesn't import it.
----
Edited since originally it came up with a recurring contribution but it applies to all.https://lab.civicrm.org/dev/core/-/issues/4504Create new campaign "on the fly" when entering new contribution: custom field...2023-09-18T15:18:01ZDetlev SieberCreate new campaign "on the fly" when entering new contribution: custom fields are not supported## Overview
When I enter a new contribution as a CiviCRM Admin user, I can select a campaign - and, when the campaign is not found, I can add a new campaign.
However, the pop up screen for entering the new campaign does not include cam...## Overview
When I enter a new contribution as a CiviCRM Admin user, I can select a campaign - and, when the campaign is not found, I can add a new campaign.
However, the pop up screen for entering the new campaign does not include campaign custom fields - what makes this feature in certain use cases dysfunctional.
## Current behaviour
1. Create a custom field for a campaign.
2. Click on Campaigns -\> New Campaign: As you see on the screenshot, you can enter something in that custom field
![grafik.png](/uploads/82dd2d0b7dcf927ddef04e6cc6a60564/grafik.png)
3. Now, click on **Contributions -\> New Contributions**
4. Click on Campaigns and (1) enter some non-existent value. Now, you can click on "+" to enter a new campaign (2)
![grafik.png](/uploads/8aaf3446170f02b6fe7a0d9af8177431/grafik.png)
5. After Click on **New Campaign** a pop up opens where you can enter a new campaign - but here, the campaign's custom field is missing:
![grafik.png](/uploads/44069feb22709c809764a1db80d5d919/grafik.png)
## Proposed behaviour
It should be possible to access the custom fields in the same way as with **Campaign -\> New Campaign**
_What should happen? How is this better? If appropriate/available, include any wireframes or mockups._
##https://lab.civicrm.org/dev/core/-/issues/4221SearchKit: calculating average of money value does not result in money2023-09-18T12:49:57ZjmargrafSearchKit: calculating average of money value does not result in moneyOverview
----------------------------------------
We use SearchKit to calculate the average membership contribution.
The input values are in €. In Version 5.50.4 the result was presented as money [in €].
But with an update to Version 5.5...Overview
----------------------------------------
We use SearchKit to calculate the average membership contribution.
The input values are in €. In Version 5.50.4 the result was presented as money [in €].
But with an update to Version 5.58.1 the result is presented as a number instead of as money [in €].
The represenation of the mean value should als be as money [in €].
presentation in 5.50.4:
![mean-value-old](/uploads/9e17c1c2f8ea52b8aad08960fd9faeab/mean-value-old.png)
presentation in 5.58.1:
![mean-value-new](/uploads/22f212e498fe82dd0dac0b6291fc97f2/mean-value-new.png)
Reproduction steps
----------------------------------------
The following SearchKit configuration is used:
![searchkit](/uploads/f6f8ec275d84c34fff59e5edb341f5a0/searchkit.png)
Current behaviour
----------------------------------------
mean value is represented as a value
Expected behaviour
----------------------------------------
mean value should be represented as money [in €]
Environment information
----------------------------------------
* __CiviCRM:__ 5.58.1
* __CMS:__ Drupal 9.4.8https://lab.civicrm.org/dev/core/-/issues/4572Proposal: Retrieval of Defaults w/ Form Builder and Form Processor2023-09-18T12:24:16ZMariaVProposal: Retrieval of Defaults w/ Form Builder and Form ProcessorOverview
----------------------------------------
At the CiviSprint in Germany we found out that Submission forms (Form Builder) currently do not support use cases such as self-service forms that allow users to check and change their exi...Overview
----------------------------------------
At the CiviSprint in Germany we found out that Submission forms (Form Builder) currently do not support use cases such as self-service forms that allow users to check and change their existing contact data.
A lot of Wordpress projects use CalderaForms together with Form Processor to transfer the data to CiviCRM. In CalderaForms there is an option to activate Retrieval of Defaults:
![grafik](/uploads/912921154b32fbf34052c77dcf79b597/grafik.png)
As well as in Form Processor:
![grafik](/uploads/8802a13e8aa75798be4a25bfa9126fcf/grafik.png)
Caldera Forms allows passing URL parameters to the form processor – e.g. a contact CiviCRM ID along with a checksum to prove that the user is allowed to see and edit data for this particular contact, as a way of authentication without requiring a login. These URLs look as follows:
_https//link.org/example-page/cid={contact.contact_id}&{contact.checksum}_
With this information the form processor can retrieve data from within CiviCRM when the form is loaded and prefill fields in the form.
What works in the Form Builder already?
----------------------------------------
- Adding Form Processor as an entity
- Using Form Processor fields for a form
- Submitting/Creating data entered in submission form
- Using the entity id as an URL parameter (requires login)
What is missing?
----------------------------------------
- Option to enable retrieval of defaults (like in CalderaForms) to fill forms with existing data.
- Forms that work for anonymous users, using a checksum for authentication
Comments
----------------------------------------
If you need any further information, please let me know.
I could assist in setting up an example in a test environment since I am not able to implement this function myself.https://lab.civicrm.org/dev/core/-/issues/4452Message Admin doesn't show which message templates have been edited2023-09-18T12:15:28ZlarsssandergreenMessage Admin doesn't show which message templates have been edited~~It looks like Message Admin is now enabled by default, but~~ I've noticed that there is no indication in Message Admin of which templates have been edited or not. This is pretty important info for admins and should be available in the ...~~It looks like Message Admin is now enabled by default, but~~ I've noticed that there is no indication in Message Admin of which templates have been edited or not. This is pretty important info for admins and should be available in the UI.
Compare the old - very clear which has been edited:
![image](/uploads/43963f9cbbf0e08c5f1679056e4a2c35/image.png)
to the new - no indication which has been edited:
![image](/uploads/4a394422a26c4a1536306e96d3c77a7c/image.png)
I can't see anything on the edit page to indicate this either.
Edit: There is also no longer any way to revert a message to the default, other than by manually copying and pasting the template content. I think having the "Revert to default" link is useful, if you made a small change and have decided you no longer need it because there has been an upgrade.
~~Also, I guess the drafting process isn't implemented yet (or not accessible from the UI), so maybe it would make sense to hide the Draft column until that's ready.~~https://lab.civicrm.org/dev/core/-/issues/2546Add Settings, Disable, Delete buttons to group contacts listing page2023-09-14T15:09:10ZlarsssandergreenAdd Settings, Disable, Delete buttons to group contacts listing pageCurrently, you can only change settings, disable or delete a group from the Manage Groups page. It would make sense to be able to change the settings at least on the page that lists all the contacts in a group (disable and delete are les...Currently, you can only change settings, disable or delete a group from the Manage Groups page. It would make sense to be able to change the settings at least on the page that lists all the contacts in a group (disable and delete are less important, but I think they might as well be added as well). I often find I click into a group when I want to make it a mailing list and then realize I have to go back to the Manage Groups page and click settings.
I think this would make the most sense at the top of the page, maybe right below the "Add Contacts to this group" button or alternately, just above select records. Relatedly, I would also propose to put the "Edit Smart Group Criteria for this group" and "Add Contacts to this group" buttons on the same line, as they are currently on two.
For reference:
![image](/uploads/b7ed25111565401ddf2ae295795f3b8c/image.png)
I'll give this a go if it is supported.https://lab.civicrm.org/dev/core/-/issues/4569Proposal: Adding confirmation messages flexibly to Form Builder2023-09-14T15:03:30ZAndreasandreas.howiller@civiservice.deProposal: Adding confirmation messages flexibly to Form BuilderOverview
----------------------------------------
This issue explains a new proposal for the "Support more workflows" section in the [Form Builder roadmap](https://lab.civicrm.org/dev/core/-/issues/3761): Add confirmation messages flexib...Overview
----------------------------------------
This issue explains a new proposal for the "Support more workflows" section in the [Form Builder roadmap](https://lab.civicrm.org/dev/core/-/issues/3761): Add confirmation messages flexibly as we know it from Drupal webforms or Caldera Forms.
Current behaviour
----------------------------------------
Currently, there is no success message at all when I submit a form - as a user, I do not receive any feedback as to whether my data has really been processed.
Proposed behaviour
----------------------------------------
There should be a message for a successful submission resp. a message for errors.
For simple use cases such as editing data in the backend, the definition of messages per form (cf. #2957) is certainly sufficient. For more complex applications, more flexibility would also make sense in view of other features on the Form Builder roadmap, e.g. displaying messages after forwarding to a multi-step form (cf. #4574) or modal forwarding. To put it short: We should do it the way webforms does:
![confirmation_webforms](/uploads/74fa65d8d384b1f6b5de1da76be0e56c/confirmation_webforms.png)
Comments
----------------------------------------
1. There should probably be a translated fallback / standard message as well.
2. In order to be able to design success messages more individually, it should be possible to include form entries in the success message. Example: Dear Frank, thank you for signing our petition. In Caldera Forms, for example, this is comfortably solved via slugs / "magic tags":
![grafik](/uploads/097c919b39a4b575a524cf4b96b4f50a/grafik.png)
Cf. "post-submit tokens" on Form Builder roadmap and #4576https://lab.civicrm.org/dev/core/-/issues/4576Proposal: Unique Identifier/Field references for input fields in Form Builder2023-09-14T13:23:58Zsimon.hermannProposal: Unique Identifier/Field references for input fields in Form Builder## Overview
We propose to add a way to reference fields via an unique identifier in order to use the field value elsewhere on the field, e.g. the success page proposed in issue #4569 or on another page of a multi-page form.
Proposed use...## Overview
We propose to add a way to reference fields via an unique identifier in order to use the field value elsewhere on the field, e.g. the success page proposed in issue #4569 or on another page of a multi-page form.
Proposed uses of this feature are:
* setting the value of another field
* setting input fields in a form processor
The field reference should be automatically generated when creating a new field but be editable, if needed.
## Use case
Donation form:
* set default value for account holder based on field values “first name”, “last name”
* show chosen amount of donation on the next page
* use “first name” and “last name” as well as “donation amount” for success page to confirm donation and say thank you
## Current behavior
Not implemented
## Proposed behavior
Every field has an auto-generated field reference. Using the field reference, the field value can be shown on the form.https://lab.civicrm.org/dev/core/-/issues/4580Assignee not exposed in activity import2023-09-14T13:02:53ZandyburnsAssignee not exposed in activity importThe record_type_id allows for source and target but not assignee? Wondering the history and reasoning behind this? https://forum.civicrm.org/index.php?topic=29394.0
It is possible to use the API CSV Import extension instead which previo...The record_type_id allows for source and target but not assignee? Wondering the history and reasoning behind this? https://forum.civicrm.org/index.php?topic=29394.0
It is possible to use the API CSV Import extension instead which previously may have hit issues with this: https://civicrm.stackexchange.com/questions/42834/issue-with-api-csv-importer-and-activity-imports/45547#45547.https://lab.civicrm.org/dev/core/-/issues/4577Conditional use of Form Processors2023-09-14T13:01:14ZsebalisConditional use of Form ProcessorsOverview
----------------------------------------
This is a feature request somewhat related to conditional fields (see [PR #24699 on Github](https://github.com/civicrm/civicrm-core/pull/24699)), but this affects the backend as well: It ...Overview
----------------------------------------
This is a feature request somewhat related to conditional fields (see [PR #24699 on Github](https://github.com/civicrm/civicrm-core/pull/24699)), but this affects the backend as well: It should be possible to link a form to a Form Processor only if certain conditions are met. A way to link fields for that form processor to previous fields would be required.
Example use-case
----------------------------------------
A petition with a checkbox “Send me your newsletter as well”. If this is selected, a block for a corresponding form processor with any additional fields would appear depending, but some of these fields will be identical to previous fields (in the unconditional part of the form), such as the first name.
Proposed behaviour
----------------------------------------
It would have to be possible to fill these fields in the form processor block via identifiers (see other feature request #4576) that cause the values from the referred fields to be copied. Other fields that do not duplicate fields from the unconditional part of the form will have to appear as standard controls.
In the backend, the same condition will have to be used to decide whether that form processor should be used to process the submission.
Comments
----------------------------------------
This request is yet another result of this week’s CiviSprint in Zeitz near Leipzig, Germany. Forgive us :-)https://lab.civicrm.org/dev/core/-/issues/4575Proposal: Calculation element for Form Builder2023-09-14T13:00:10Zsimon.hermannProposal: Calculation element for Form Builder## Overview
We would like to have a new element that allows basic arithmetic operations with number fields.
The idea is to be able to sum up several number fields or compute an average. The implementation might make use of the field refe...## Overview
We would like to have a new element that allows basic arithmetic operations with number fields.
The idea is to be able to sum up several number fields or compute an average. The implementation might make use of the field references suggested in issue #4576.
It should also be possible to include constants in the computation.
## Use case
Trying to set up a scoring form for e.g. an event – it would be great to be able to compute the average score and store it in CiviCRM.
## Current behavior
No such behaviour currently exists.
## Proposed behavior
A computed form element is available that can use input fields as well as fixed values.https://lab.civicrm.org/dev/core/-/issues/4574Proposal: Suggestions for multi-page forms with Form Builder2023-09-14T12:59:56Zsimon.hermannProposal: Suggestions for multi-page forms with Form Builder## Overview
We are happy to see that there is a plan to implement multi-page forms. To enable the users to navigate the form efficiently, it would be great if the following two features are included
- Users should be allowed to navigat...## Overview
We are happy to see that there is a plan to implement multi-page forms. To enable the users to navigate the form efficiently, it would be great if the following two features are included
- Users should be allowed to navigate between pages, even if not all required fields on the current page are filled. This allows users to get an overview of the overall (multi-page) form.
- There should be an option to move to the next or previous page, but also an additonal menu that allows the users to move directly to a specific page of the form. It would also be great if the names of the pages could be set.
- (Optional) Have a representation of the current progress of the form. This should show on which page of the current form I am, in e.g. page 1 of 4 pages (maybe as a progress indicator as welll).
## Example use-case
1. Have additional buttons that allow moving forward or backward on the form
2. Have an option to add a navigation menu to a multi-page form where the names of the pages can be set as well.
3. Have an option for multi-page form, to add a progress indicator, with options to either show the current page number compared to the overall number of pages or similar to a graphical progress bar.
## Current behaviour
The option for multi page forms is not implemented yet.
## Proposed behaviour
Be able to separate the form into multiple pages. Have buttons to navigate to the next or previous page, even if not all required fields are filled and have an additional menu, which allows the user to navigate to one specific page. Have an option to add a progress indicator.https://lab.civicrm.org/dev/core/-/issues/4570Proposal: More logging in Form Builder2023-09-14T12:58:32ZAndreasandreas.howiller@civiservice.deProposal: More logging in Form BuilderOverview
----------------------------------------
This issue explains a new proposal for the "Other improvements" section in the [Form Builder roadmap](https://lab.civicrm.org/dev/core/-/issues/3761): Extending the existing submission lo...Overview
----------------------------------------
This issue explains a new proposal for the "Other improvements" section in the [Form Builder roadmap](https://lab.civicrm.org/dev/core/-/issues/3761): Extending the existing submission log and adding a debug log.
Current behaviour
----------------------------------------
Currently, there is a simple log for submissions that does not contain submission data.
Proposed behaviour
----------------------------------------
There is already a submission log per form, but it only records the submitter and the time.
With some additional capabilities of FormBuilder, it becomes more important for both reporting and debugging to capture more information about the submissions themselves on the one hand, but also about their processing on submission on the other hand (examples: deduplication, processing by Form Processor etc.).
There should therefore be two logs:
1. the submission log should contain the actual submission data in addition to the metadata (cf. #3744).
2. an additional debug log should contain information about the processing of the data (like the CMRF log in WordPress or Drupal for [CiviMcRestFace](https://github.com/CiviMRF) submissions).
Comments
----------------------------------------
For reasons of data protection, it should be configurable by form whether no logging, logging of metadata or extended logging is desired.https://lab.civicrm.org/dev/core/-/issues/4561On new mailing screen the widget for include/exclude double-escapes characters2023-09-13T12:22:17ZDaveDOn new mailing screen the widget for include/exclude double-escapes characters1. Create a group like "2023 Donated >$100". You don't have to actually create a search, just manually create a group with that title.
2. On the new mailing screen, try filtering by typing ">$100". It won't find it because the title disp...1. Create a group like "2023 Donated >$100". You don't have to actually create a search, just manually create a group with that title.
2. On the new mailing screen, try filtering by typing ">$100". It won't find it because the title displays as `>$100`. Searching for `gt;` will find it but that's silly.https://lab.civicrm.org/dev/core/-/issues/4564Idea: Smart groups without the cache2023-09-13T12:20:47ZAndrew WestIdea: Smart groups without the cacheJust throwing this out there as something we could maybe fund:
Current behaviour
----------------------------------------
Smart groups always write to the civicrm_group_contact_cache table
Proposed behaviour
---------------------------...Just throwing this out there as something we could maybe fund:
Current behaviour
----------------------------------------
Smart groups always write to the civicrm_group_contact_cache table
Proposed behaviour
----------------------------------------
Smart groups optionally write to the civicrm_group_contact_cache table (default: yes)
Overview
----------------------------------------
As I understand it, whenever you request a smart group it stores its contacts in civicrm_group_contact_cache. This is for good reason: it's a cache that means the smart groups aren't regenerated every time they're requested, which can be slow.
It also simplifies the code: you can effectively treat smart groups the same as non-smart groups - as it's just grabbing a list of contacts from a table.
But it's possible to set the cache to expire after 0 seconds, if you need your smart groups to be up to date: ie. they are regenerated each time they're requested. I think a fair few orgs do this.
If you have a 0s cache, you sometimes don't need the data written to a table at all. You just need a transient list of contacts that doesn't need to persist past the end of the request. And it's pretty slow to use the cache table: the 'INSERT INTO' command is slow relative to the original SELECT query. This time can add up if you're querying a bunch of groups at once, or have nested smart groups, or have a lot of contacts in the groups.
So I was tentatively wondering if there could be an API4 'no-smart-group-cache' parameter, that just runs the underlying query and stores it all in memory. I imagine this would only work for API4 smart groups, as it's super-easy to get their underlying search criteria.
The default would remain to use the cache, for full backwards-compatibility. But the parameter could be used in custom code.
Two questions:
1. Anyone else interested in this?
2. How hard would it be / how much of a can of worms is it?https://lab.civicrm.org/dev/core/-/issues/4558Proposal: setting to define alternative frontend URLs for when using a proxy2023-09-13T12:12:51ZbgmProposal: setting to define alternative frontend URLs for when using a proxyWhen CiviCRM runs behind another system, such as a reverse-proxy running on a separate domain that only exposes specific features, we do not have a way to define that URL.
For example:
- Staff access crm.example.org - the service is ru...When CiviCRM runs behind another system, such as a reverse-proxy running on a separate domain that only exposes specific features, we do not have a way to define that URL.
For example:
- Staff access crm.example.org - the service is running behind a VPN and not available to the general public
- However, they send mailings, which include unsubscribe and opt-out links. This feature is provided by a reverse-proxy that forwards those requests specifically.
[CRM/Mailing/BAO/Mailing.php](https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/BAO/Mailing.php#L1020) defines a few URLs and uses `CRM_Utils_System::url` to generate the links. In the example I found, they were overriding the core PHP file, in order to hardcode the domain.
~~I'm thinking mailing [hook_civicrm_links](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_links/) might be a good semantic fit, even if it's a bit of an odd case, but it is used is weird places, such as in the Extension Manager.~~
- `op` = `mailing.content.actions` ? (mailing.actions could be confusing with actions in the UI, such as edit/delete)
- `objectID` = `job_id` ?
~~Where it gets weirder, is that the array of `$urls` would have to be packaged into the format that the hook expects, then unpackaged back into the expected format from the parent function (unless we just send it as-is, because the fluff is not necessary, and it's up to the hook to check for the `$op`).~~
An alternative could be to add a special `CIVICRM_UF_BASEURL`, but then it would mean more params for `CRM_Utils_System::url` and it seems already messy enough.
Edit: based on Jaap's comment, it probably makes more sense to find a solution for a "reverse-proxy URL".https://lab.civicrm.org/dev/core/-/issues/2957Possibility to add a status message (alert box) after screen submission in Fo...2023-09-13T10:33:15ZErikHommelPossibility to add a status message (alert box) after screen submission in FormBuilderOverview
----------------------------------------
I would like to be able to send a status message (for example: Activity saved etc.) once a form that I have created with the FormBuilder is submitted.
Current behaviour
-----------------...Overview
----------------------------------------
I would like to be able to send a status message (for example: Activity saved etc.) once a form that I have created with the FormBuilder is submitted.
Current behaviour
----------------------------------------
At the moment I have created a form with FormBuilder which I use to add data, for example an activity. Right now once I have entered data and hit the "submit" button I am returned to whatever page I have entered at the Post Submit Page, but I do not get confirmation that my data has been saved.
Proposed behaviour
----------------------------------------
I would like to be able to specify that I want a status message when I have created, updated or deleted data.https://lab.civicrm.org/dev/core/-/issues/4385version=4 is not passed to Mailing.create on APIv4 so MailingJob gets scheduled2023-09-13T01:30:02ZSandor Semseyversion=4 is not passed to Mailing.create on APIv4 so MailingJob gets scheduledOverview
----------------------------------------
I'd like to create a single Mailing entity through APIv4 without scheduling a MailingJob and calculating recipients.
Reproduction steps
----------------------------------------
1. Call M...Overview
----------------------------------------
I'd like to create a single Mailing entity through APIv4 without scheduling a MailingJob and calculating recipients.
Reproduction steps
----------------------------------------
1. Call Mailing.create through API Explorer or `cv`
1. Notice that a MailingJob is created
Current behaviour
----------------------------------------
According to https://github.com/civicrm/civicrm-core/blob/94b9b95547d3f8292740c059f77f83cc45e57b57/CRM/Mailing/BAO/Mailing.php#L1622-L1629 this shouldn't happen by default, but it does: `$params['version']` is empty and `self::doSubmitActions()` is called.
Expected behaviour
----------------------------------------
`$params['version']` is populated so `CRM_Mailing_BAO_Mailing::doSubmitActions()` doesn't fire.
Comments
----------------------------------------
This is similar to https://github.com/civicrm/civicrm-core/blob/94b9b95547d3f8292740c059f77f83cc45e57b57/CRM/Member/BAO/Membership.php#L334-L343. In that case `Civi\Api4\Service\Spec\Provider\MembershipCreationSpecProvider` injects `version` parameter into the API call, but for Mailing such spec provider doesn't exists.
I can do some work with this, I'm just not sure if that spec provider is missing by design or not...
Also I can pass in `version=4` explicitly or use `_skip_evil_bao_auto_schedule_` and `_skip_evil_bao_auto_recipients_` to prevent submit actions to happen.