CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2021-06-30T15:07:09Zhttps://lab.civicrm.org/dev/core/-/issues/542Case Manager is not shown for closed cases.2021-06-30T15:07:09ZjitendraCase Manager is not shown for closed cases.Current Status
-----
When closing a case, all case roles (relationships) are given an end date. This keeps them from cluttering up core screens (e.g. contact summary activity tab) where only active relationships should be shown. However...Current Status
-----
When closing a case, all case roles (relationships) are given an end date. This keeps them from cluttering up core screens (e.g. contact summary activity tab) where only active relationships should be shown. However it causes undesired behavior when viewing closed cases: all the case roles are gone.
One proposed solution is to show all disabled relationships when viewing a closed case. However this isn't quite right as it is then impossible to distinguish current roles from roles that ended before the case was closed.
Proposal
-----
(after discussion at NY Sprint btw @eileen @colemanw & @DaveD)
1. Stop ending/disabling relationships when a case is closed.
2. Update core screens to filter out relationships from closed cases when displaying active relationships (e.g. contact summary activity tab)
3. Add upgrade script to reactivate & remove end date from all activities that ended on the same date their case was closed.
Further reading
-------
Past discussions of this at https://civicrm.stackexchange.com/questions/27215/case-roles-on-closed-cases5.40.0jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/541Contact custom fields are not imported when basic type custom field is includ...2022-12-04T05:03:21ZjitendraContact custom fields are not imported when basic type custom field is included in import fileTo replicate -
1. Create a custom group which extends `Contact`. Add some fields to it.
2. Create a custom group which extends `Individual`. Similarly, add some fields.
3. Import contact with a csv file holding values of both the above ...To replicate -
1. Create a custom group which extends `Contact`. Add some fields to it.
2. Create a custom group which extends `Individual`. Similarly, add some fields.
3. Import contact with a csv file holding values of both the above custom fields.
4. Only custom fields that extends `Contact` will be imported. The one created at step 2 will be ignored.jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/522Add case tokens to email activities2021-09-13T00:04:33ZeileenAdd case tokens to email activitieshttps://lab.civicrm.org/dev/core/-/issues/521PCP Owner notification email sending before payment2023-08-14T05:03:17Zrita_compucorpPCP Owner notification email sending before paymentHi there,
When you are the owner of a fundraising page, you are supposed to receive a notification email after a successful donation has been made to your fundraising page. However when you are using a payment processor that navigates y...Hi there,
When you are the owner of a fundraising page, you are supposed to receive a notification email after a successful donation has been made to your fundraising page. However when you are using a payment processor that navigates you out from civicrm to its own payment page (like sagepay, or paypal standard) the owner notification is sent before the payment has been made.
Steps:
- create a contribution page and enable fundraising pages to be created under it
- make the payment processor to be Sagepay or Paypal standard
- create a fundraising page
- then log out and start donating to the fundraising page
- when you click confirm button on the fundraising page, you will get navigated to the payment processor you set up for the contribution page --> this is the point when the notification email is sent to the fundraiser
Expected result: notification for the owner is sent only after a successful donation to the fundraising pagehttps://lab.civicrm.org/dev/core/-/issues/519Event receipts for paid events contains extraneous information2022-09-15T05:03:47ZmadhaviEvent receipts for paid events contains extraneous informationCurrently using CiviCRM 5.3.2 and drupal 7.60
Receipts for events paid via PayPal have extra information related to contribution.
**To reproduce issue:**
1. Add custom fields of your choice for Contributions
2. Create a paid event a...Currently using CiviCRM 5.3.2 and drupal 7.60
Receipts for events paid via PayPal have extra information related to contribution.
**To reproduce issue:**
1. Add custom fields of your choice for Contributions
2. Create a paid event and assign `PayPal Standard` payment processor.
3. Enable online registration for the event and set `Send Confirmation Email` to `Yes`.
4. Register a participant for the event.
5. Check the receipt received and see if you get Contribution related custom fields in the email.
Anyone is facing this issue? May be with other payment processor?https://lab.civicrm.org/dev/core/-/issues/512Cannot update checkbox fields in activities using "Update Multiple Activities"2022-10-25T05:03:40ZalarmingcodCannot update checkbox fields in activities using "Update Multiple Activities"Error found on client site (5.3.1) replicated on sandbox today
Updating activity custom data via "Update multiple activities" (Batch update via profile)
When data in a checkbox field is updated, error message appears
```
CiviCRM_API3_...Error found on client site (5.3.1) replicated on sandbox today
Updating activity custom data via "Update multiple activities" (Batch update via profile)
When data in a checkbox field is updated, error message appears
```
CiviCRM_API3_Exception: "'' is not a valid option for field custom_15"
#0 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Activity/Form/Task/Batch.php(242): civicrm_api3("activity", "create", (Array:7))
#1 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Form.php(489): CRM_Activity_Form_Task_Batch->postProcess()
#2 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#3 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Activity_Form_Task_Batch), "next", "Next")
#4 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Activity_Form_Task_Batch), "next")
#5 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Activity_Form_Task_Batch), "next")
#6 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#7 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Invoke.php(309): CRM_Core_Controller->run((Array:3), (Array:1))
#8 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#9 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#10 /srv/buildkit/build/dmaster/sites/all/modules/civicrm/drupal/civicrm.module(445): CRM_Core_Invoke::invoke((Array:3))
#11 /srv/buildkit/build/dmaster/includes/menu.inc(527): civicrm_invoke("activity", "search")
#12 /srv/buildkit/build/dmaster/index.php(21): menu_execute_active_handler()
#13 {main}
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
'' is not a valid option for field custom_15
Return to home page.
```
Text fields, radio fields, select fields update without issue.
Issue does not arise when updating contact records via profilehttps://lab.civicrm.org/dev/core/-/issues/500CiviCase: dashboard summary count includes cases from inactive relationships2019-11-24T19:59:34ZbgmCiviCase: dashboard summary count includes cases from inactive relationshipsHow to reproduce:
* Create a case
* Assign it to someone, view their dashboard, it will show X cases
* Then re-assign it to someone else, view their dashboard, it will still show X cases (instead of X-1).How to reproduce:
* Create a case
* Assign it to someone, view their dashboard, it will show X cases
* Then re-assign it to someone else, view their dashboard, it will still show X cases (instead of X-1).5.11bgmbgmhttps://lab.civicrm.org/dev/core/-/issues/495CQ: Migrate simple Preferences & Settings forms to using a Generic class.2023-06-27T05:03:25ZeileenCQ: Migrate simple Preferences & Settings forms to using a Generic class.Per https://github.com/civicrm/civicrm-core/pull/13023 @mattwire & myself have recently worked on consolidating some of the setting form metadata handling. This is mostly done however our end goal is worth spelling out.
Basically the cl...Per https://github.com/civicrm/civicrm-core/pull/13023 @mattwire & myself have recently worked on consolidating some of the setting form metadata handling. This is mostly done however our end goal is worth spelling out.
Basically the class 'CRM_Admin_Form_Preferences_Event' and all classes that don't need special sauce would be removed & the xml would be altered to
```
<item>
<path>civicrm/admin/setting/preferences/event</path>
<title>CiviEvent Component Settings</title>
<page_callback>CRM_Admin_Form_Generic</page_callback>
</item>
```
This page would load settings based on filtering setting metadata - so any fields with a key in their metadata like this
```
settings_pages => [
'event' => ['weight' => 10]
]
```
would show up at the url above (note the last value on the url is the filter).
Extensions could use the existing alterSettingMetadata hook to add & remove fields from any pages that use the Generic form to choose their settings and extensions could add settings pages by just adding an xml entry & their metadata
We would convert simple forms & for more complex forms we would attempt to break the inheritance on the 2 existing forms (CRM_Admin_Form_Preferences & CRM_Admin_Form_Setting) in favour of using just the CRM_Admin_Form_SettingTrait in an attempt to grandfather them out.https://lab.civicrm.org/dev/core/-/issues/489Contribution reports don't show Custom Field Sets that extend Organizations o...2022-09-07T05:03:51ZguyiacContribution reports don't show Custom Field Sets that extend Organizations or HouseholdsNone of the contribution reports will show any custom field sets that are used explicitly for extending Organization or Household contact types. The same custom field set will show up if you change it in the database to extend All Contac...None of the contribution reports will show any custom field sets that are used explicitly for extending Organization or Household contact types. The same custom field set will show up if you change it in the database to extend All Contacts or Individuals.
I experienced this on a client site running CiviCRm 5.3.1 under WordPress, and tested it on the WordPress Civi master running 5.8.alpha1 at https://wpmaster.demo.civicrm.org/.https://lab.civicrm.org/dev/core/-/issues/479Contribution Summary report throw DB error with custom data and soft credit f...2018-10-27T14:14:22ZyashodhaContribution Summary report throw DB error with custom data and soft credit fieldsSteps to replicate :
1. Go to Contribution Summary report, select column Soft Credit Amount Stats
2. Select filter criteria on any custom field, and search.
It throws DB error:
```
Database Error Code: Unknown column 'value_constituent...Steps to replicate :
1. Go to Contribution Summary report, select column Soft Credit Amount Stats
2. Select filter criteria on any custom field, and search.
It throws DB error:
```
Database Error Code: Unknown column 'value_constituent_information_1_civireport.most_important_issue_1' in 'where clause', 1054
Additional Details:
Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -19
[message] => DB Error: no such field
[mode] => 16
[debug_info] => SELECT SQL_CALC_FOUND_ROWS contact_civireport.id as civicrm_contact_id, DATE_SUB(contribution_civireport.receive_date, INTERVAL (DAYOFMONTH(contribution_civireport.receive_date)-1) DAY) as civicrm_contribution_receive_date_start, MONTH(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_subtotal, MONTHNAME(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_interval, contribution_civireport.currency as civicrm_contribution_currency, COUNT(contribution_civireport.total_amount) as civicrm_contribution_total_amount_count, SUM(contribution_civireport.total_amount) as civicrm_contribution_total_amount_sum, ROUND(AVG(contribution_civireport.total_amount),2) as civicrm_contribution_total_amount_avg, COUNT(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_count, SUM(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_sum, ROUND(AVG(contribution_soft_civireport.amount),2) as civicrm_contribution_soft_soft_amount_avg FROM civicrm_contact contact_civireport
INNER JOIN civicrm_contribution contribution_civireport
ON contact_civireport.id = contribution_civireport.contact_id AND
contribution_civireport.is_test = 0
LEFT JOIN civicrm_contribution_soft contribution_soft_civireport
ON contribution_soft_civireport.contribution_id = contribution_civireport.id AND contribution_soft_civireport.id = (SELECT MIN(id) FROM civicrm_contribution_soft cs WHERE cs.contribution_id = contribution_civireport.id)
LEFT JOIN civicrm_financial_type financial_type_civireport
ON contribution_civireport.financial_type_id =financial_type_civireport.id
WHERE ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_constituent_information_1_civireport.most_important_issue_1 IN ( 'Edu') ) ) GROUP BY YEAR(contribution_civireport.receive_date), MONTH(contribution_civireport.receive_date) WITH ROLLUP LIMIT 0, 50 [nativecode=1054 ** Unknown column 'value_constituent_information_1_civireport.most_important_issue_1' in 'where clause']
[type] => DB_Error
[user_info] => SELECT SQL_CALC_FOUND_ROWS contact_civireport.id as civicrm_contact_id, DATE_SUB(contribution_civireport.receive_date, INTERVAL (DAYOFMONTH(contribution_civireport.receive_date)-1) DAY) as civicrm_contribution_receive_date_start, MONTH(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_subtotal, MONTHNAME(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_interval, contribution_civireport.currency as civicrm_contribution_currency, COUNT(contribution_civireport.total_amount) as civicrm_contribution_total_amount_count, SUM(contribution_civireport.total_amount) as civicrm_contribution_total_amount_sum, ROUND(AVG(contribution_civireport.total_amount),2) as civicrm_contribution_total_amount_avg, COUNT(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_count, SUM(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_sum, ROUND(AVG(contribution_soft_civireport.amount),2) as civicrm_contribution_soft_soft_amount_avg FROM civicrm_contact contact_civireport
INNER JOIN civicrm_contribution contribution_civireport
ON contact_civireport.id = contribution_civireport.contact_id AND
contribution_civireport.is_test = 0
LEFT JOIN civicrm_contribution_soft contribution_soft_civireport
ON contribution_soft_civireport.contribution_id = contribution_civireport.id AND contribution_soft_civireport.id = (SELECT MIN(id) FROM civicrm_contribution_soft cs WHERE cs.contribution_id = contribution_civireport.id)
LEFT JOIN civicrm_financial_type financial_type_civireport
ON contribution_civireport.financial_type_id =financial_type_civireport.id
WHERE ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_constituent_information_1_civireport.most_important_issue_1 IN ( 'Edu') ) ) GROUP BY YEAR(contribution_civireport.receive_date), MONTH(contribution_civireport.receive_date) WITH ROLLUP LIMIT 0, 50 [nativecode=1054 ** Unknown column 'value_constituent_information_1_civireport.most_important_issue_1' in 'where clause']
[to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT SQL_CALC_FOUND_ROWS contact_civireport.id as civicrm_contact_id, DATE_SUB(contribution_civireport.receive_date, INTERVAL (DAYOFMONTH(contribution_civireport.receive_date)-1) DAY) as civicrm_contribution_receive_date_start, MONTH(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_subtotal, MONTHNAME(contribution_civireport.receive_date) AS civicrm_contribution_receive_date_interval, contribution_civireport.currency as civicrm_contribution_currency, COUNT(contribution_civireport.total_amount) as civicrm_contribution_total_amount_count, SUM(contribution_civireport.total_amount) as civicrm_contribution_total_amount_sum, ROUND(AVG(contribution_civireport.total_amount),2) as civicrm_contribution_total_amount_avg, COUNT(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_count, SUM(contribution_soft_civireport.amount) as civicrm_contribution_soft_soft_amount_sum, ROUND(AVG(contribution_soft_civireport.amount),2) as civicrm_contribution_soft_soft_amount_avg FROM civicrm_contact contact_civireport
INNER JOIN civicrm_contribution contribution_civireport
ON contact_civireport.id = contribution_civireport.contact_id AND
contribution_civireport.is_test = 0
LEFT JOIN civicrm_contribution_soft contribution_soft_civireport
ON contribution_soft_civireport.contribution_id = contribution_civireport.id AND contribution_soft_civireport.id = (SELECT MIN(id) FROM civicrm_contribution_soft cs WHERE cs.contribution_id = contribution_civireport.id)
LEFT JOIN civicrm_financial_type financial_type_civireport
ON contribution_civireport.financial_type_id =financial_type_civireport.id
WHERE ( contribution_civireport.contribution_status_id IN (1) ) AND ( ( value_constituent_information_1_civireport.most_important_issue_1 IN ( 'Edu') ) ) GROUP BY YEAR(contribution_civireport.receive_date), MONTH(contribution_civireport.receive_date) WITH ROLLUP LIMIT 0, 50 [nativecode=1054 ** Unknown column 'value_constituent_information_1_civireport.most_important_issue_1' in 'where clause']"]
)
```yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/477Print Summary is missing some contact info2018-10-29T20:49:47ZJonGoldPrint Summary is missing some contact infoFrom Stack Exchange: https://civicrm.stackexchange.com/q/27063/12
To replicate:
* Open any individual's contact.
* From the "Actions" button, select "Print Summary".
**Expected**
The contact's employer/job title should be in the print...From Stack Exchange: https://civicrm.stackexchange.com/q/27063/12
To replicate:
* Open any individual's contact.
* From the "Actions" button, select "Print Summary".
**Expected**
The contact's employer/job title should be in the print summary.
**Actual**
It's not.
The last line of `<civiroot>/templates/CRM/Contact/Page/View/Print.tpl` is:
```js
cj('#contact-summary' ).children(':first').remove();
```
The reason for this is lost to the ages, but I suspect this referred to some other DOM element that's long since been removed.
Personally I'd deprecate this whole functionality - but apparently folks are using it, so let's make it work.
If someone wants to mark this "concept: approved" I'll submit the PR.5.8https://lab.civicrm.org/dev/core/-/issues/468Missing transaction ids on reports2023-09-10T05:03:24ZfrancescbassasMissing transaction ids on reports**How to reproduce**
1. Create `contributionA` on `contactA` without assigning any *transaction_id*. A record on `civicrm_contribution` is created with `transaction_id = NULL`
2. Modify `contributionA` to assign a *transaction_id = aaaa...**How to reproduce**
1. Create `contributionA` on `contactA` without assigning any *transaction_id*. A record on `civicrm_contribution` is created with `transaction_id = NULL`
2. Modify `contributionA` to assign a *transaction_id = aaaaaa*. The record previously created on `civicrm_contribution` stills have `transaction_id = ǸULL`
3. Create `contributionB` on `contactA` with a *transaction_id = bbbbbb*
4. Visualize a *Contribution Details* report with column *transaction_id* enabled and filtering results for `contactA`
5. Note that *transaction_id* column for `contributionA` is *empty* instead of *aaaaaa* and *transaction_id* column for `contributionB` is *bbbbbb*
Same happens on *Event Participants List* report for event related contributions in which the *transaction_id* was edited a posteriori.https://lab.civicrm.org/dev/core/-/issues/465Multiselect for Event Type in Advanced Search2023-06-03T05:03:27ZfrancescbassasMultiselect for Event Type in Advanced SearchOriginal issue: https://issues.civicrm.org/jira/browse/CRM-20183
Affected versions: at least from 4.7.16
[Richard](https://issues.civicrm.org/jira/secure/ViewProfile.jspa?name=magnolia61) reports:
> Hello there, for creating a specifi...Original issue: https://issues.civicrm.org/jira/browse/CRM-20183
Affected versions: at least from 4.7.16
[Richard](https://issues.civicrm.org/jira/secure/ViewProfile.jspa?name=magnolia61) reports:
> Hello there, for creating a specific smartgroup I want to be able to select multiple event types from the advanced search page.
>
> The event type is currently a one value field. I would love to make it behave like the participant status or role so more than one can be selected.
>
> Who can point me in the right direction. When I know which files are involved and see some examples I think I can create the PR myself.
>
> This would definitely make our life easier, since the difference search options (the builder, participant search and advanced search are so different in behavior
![Screenshot_from_2017-02-26_17-02-54](/uploads/83d2cb5614dade321364c4fab597dc79/Screenshot_from_2017-02-26_17-02-54.png)https://lab.civicrm.org/dev/core/-/issues/462Export temporary tables cause Advanced Logging warning of missing log tables2018-12-12T22:29:36ZbgmExport temporary tables cause Advanced Logging warning of missing log tables`CRM/Utils/SQL/TempTable.php` was introduced around CiviCRM 5.3. It creates temp tables such as:
* `civicrm_tmp_d_{12}_{32}` (temporary tables, but created as ordinary tables)
* `civicrm_tmp_e_{12}_{32}` (ephemeral temp tables, automati...`CRM/Utils/SQL/TempTable.php` was introduced around CiviCRM 5.3. It creates temp tables such as:
* `civicrm_tmp_d_{12}_{32}` (temporary tables, but created as ordinary tables)
* `civicrm_tmp_e_{12}_{32}` (ephemeral temp tables, automatically deleted by mysql)
After a while, depending on cleanup, users of CiviCRM using Advanced Logging will see warnings that there are missing log tables.
cc @jackrabbithanna @totten5.7bgmbgmhttps://lab.civicrm.org/dev/core/-/issues/445Proposal - Custom Fields, Is this Field Searchable? option should be enabled ...2021-04-13T03:25:40Zjustinfreeman (Agileware)Proposal - Custom Fields, Is this Field Searchable? option should be enabled by default, currently it is disabled by defaultWhen creating Custom Fields the option **Is this Field Searchable?** is **disabled by default** and as a result any new Custom Field is not searchable. This is frustrating since there is rarely a case when you would not want a field to b...When creating Custom Fields the option **Is this Field Searchable?** is **disabled by default** and as a result any new Custom Field is not searchable. This is frustrating since there is rarely a case when you would not want a field to be available in search. For end users the experience of adding a Custom Field in CiviCRM is like this:
1. Add the Custom Field
1. Add some data to CiviCRM using the new Custom Field
1. Open Search and try to search using the new Custom Field, it is not shown
1. Confusion about why it is not shown in Search
1. Finally, navigate back to the Custom Field and enable the option, Is this Field Searchable?
1. Return to Search and bingo! There it is.
1. Repeat steps for every Custom Field created.
**Proposed Change**
The **Is this Field Searchable?** option should be **enabled by default**, making new Custom Fields available in Search when created - reducing potential confusion as noted above. The user would then have to explicitly disable this option to remove from search.
Agileware Ref: CIVICRM-964https://lab.civicrm.org/dev/core/-/issues/444Updated alterReportVars or new hook for reports2023-08-31T08:51:04ZJoeMurrayUpdated alterReportVars or new hook for reportsThere is no way to currently change a core report to get it to expose custom fields for a component if it does not do it already. It's not unusual an unusual use case to combine creating a custom field with exposing it in a core report....There is no way to currently change a core report to get it to expose custom fields for a component if it does not do it already. It's not unusual an unusual use case to combine creating a custom field with exposing it in a core report. What's needed is to be able to use a hook to add values to $_customGroupExtends. This would also allow extensions to define their own custom fields and add them to a report.
The alterReportVar hook is one place where this functionality could be added https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterReportVar/. The current three supported varTypes, columns, rows and sql, could be extended by a new one, customFields, or some similar name.
There has been criticism in the past of this hook. IIRC @eileen the concern was especially around how it was not well designed for the sql argument, but I don't recall the details. Perhaps it was that the hook was trying to do too many things and provided too broad a surface.
Rather than further complexifying this hook, an alternative approach would be to create a new one focussed exclusively on the issue of changing custom field exposed by a report. Perhaps it could be call alterReportCustomFields.
So we'd like feedback on
1. Should there be hook support for changing the custom fields exposed by reports?
2. If so, should we change alterReportVar or create a new hook, alterReportCustomFields?https://lab.civicrm.org/dev/core/-/issues/442Misc form issues2018-12-08T21:12:48ZAkA84Misc form issuesFound a handful of form-related issues that are pretty quick to fix, just wanted to have the green light on them before opening the PR. All screenshots are taken from https://dmaster.demo.civicrm.org (`v5.8.alpha1`)
## Wrong layout in "...Found a handful of form-related issues that are pretty quick to fix, just wanted to have the green light on them before opening the PR. All screenshots are taken from https://dmaster.demo.civicrm.org (`v5.8.alpha1`)
## Wrong layout in "Tags and Groups" accordion of "New Individual" form
The "Tag(s)" label+select group is missing a `<br>`
*Before*
![tags-before](/uploads/69da499d7792714de2dcf417981cfab7/tags-before.png)
*After*
![tags-after](/uploads/1fc640e4a276e0e0e6b7d70917d7337a/tags-after.png)
## Missing class on text fields in "Dedupe exceptions"
The input fields are missing the standard `crm-form-text class
*Before*
![dedupe-before](/uploads/0861f7c3c98f5b0a8a722b98a858fe92/dedupe-before.png)
*After*
![dedupe-after](/uploads/ca670378bf85ed8b3b8d8caba04764d4/dedupe-after.png)
## Wrong class on `<select>`s in "Submit Credit Card Contribution" modal
The <select> elements have the wrong class: `crm-form-date`
![contribute-select-before](/uploads/09ec405fac0bac56fe5c5cd10db1589f/contribute-select-before.png)
Applying the correct class, `crm-form-select` doesn't change much, but allows Shoreditch to style the selects correctly
![contribute-select-after](/uploads/3fd8125dcae0301d83381e329f543a3e/contribute-select-after.png)
## Textareas instead of text input in "Word Replacements" form
This one I'm not really sure is really a markup error, but it looks to me that instead of `<textarea>` elements, the form would benefit by using `input[type="text"]` fields instead (see how the checkboxes get a vertical alignment, for example)
*Before*
![replacement-before](/uploads/47d5a07307d2bb2d2a19850626ad8ee3/replacement-before.png)
*After*
![replacement-after](/uploads/362b5b8591a1171121562e31ca46dded/replacement-after.png)5.9https://lab.civicrm.org/dev/core/-/issues/434Scheduled Reminder Error On Using Absolute Date With Repeat2019-01-08T07:47:10ZvarshithScheduled Reminder Error On Using Absolute Date With RepeatOverview
--------
When adding a scheduled reminder with an 'absolute_date' initially and then enabling 'Repeat'and adding conditions results in an SQL error when executed.
Technical Details
-----------------
A function in RecipientBuild...Overview
--------
When adding a scheduled reminder with an 'absolute_date' initially and then enabling 'Repeat'and adding conditions results in an SQL error when executed.
Technical Details
-----------------
A function in RecipientBuilder.php, 'prepareRepetitionEndFilter' expects a date field which would be empty when using an 'absolute_date'. This causes the SQL query to be constructed with an empty string inside thus creating a syntax error.5.11https://lab.civicrm.org/dev/core/-/issues/427Let CiviCRM accept unix domain sockets for the database URL.2022-09-03T05:03:50ZatheiaLet CiviCRM accept unix domain sockets for the database URL.Currently the database address input of the onboarding page expects an address of the format of $host:$port number.
The issue is that some databases may be set up instead to communicate through a unix domain socket.
A solution would be...Currently the database address input of the onboarding page expects an address of the format of $host:$port number.
The issue is that some databases may be set up instead to communicate through a unix domain socket.
A solution would be to allow for additional address parsing that would recognise the use of a socket instead of a port number.
This address format is supported by mysqli_connect already, so we just need to adapt our handling of the input field. The solution would allow the user to specify the address something like unix:///var/run/mysql-socket.
Best wishes,
Alexhttps://lab.civicrm.org/dev/core/-/issues/425"Force Secure URLs" setting sometimes does not behave as expected, deprecate ...2022-08-30T05:03:32Zxurizaemon"Force Secure URLs" setting sometimes does not behave as expected, deprecate it ... Slowly :)Various issues have reported over time that the SSL enforcement doesn't work as expected.
* [CRM_Core_Invoke::runItem()](https://github.com/civicrm/civicrm-core/blob/ae3dbe533c627d8882a59f15502ebeb1a60376f8/CRM/Core/Invoke.php#L188) cal...Various issues have reported over time that the SSL enforcement doesn't work as expected.
* [CRM_Core_Invoke::runItem()](https://github.com/civicrm/civicrm-core/blob/ae3dbe533c627d8882a59f15502ebeb1a60376f8/CRM/Core/Invoke.php#L188) calls CRM_Utils_System::redirectToSSL()
* [CRM_Utils_System::redirectToSSL()](https://github.com/civicrm/civicrm-core/blob/7a47ff14f4553230ff12ae19337ba750a421a898/CRM/Utils/System.php#L1177) uses [CRM_Utils_System::isSSL()](https://github.com/civicrm/civicrm-core/blob/7a47ff14f4553230ff12ae19337ba750a421a898/CRM/Utils/System.php#L1164)
* The setting is named "enableSSL" but it kind of works like "enforce SSL" (you can enable SSL and have it set to false, and if it's true then it will try to *enforce* SSL)
For some hosting environments, this (in particular the method of detecting whether a request is SSL or not) leads to confusing behaviour where a site will reject attempts to visit particular pages (`civicrm/admin/*` but not `civicrm/*`?), and show "access denied" in Drupal logs, and serve circular 302 redirects.
What we have apparently may not work if you are behind an SSL terminator, and probably for other setups which aren't accounted for.
Previous issues / PRs / work on that setting:
* [GH#9452](https://github.com/civicrm/civicrm-core/pull/9452) (see here for me going :shrug: :angry: about how we verify SSL)
* [CRM-11160](https://issues.civicrm.org/jira/browse/CRM-11160), [GH#1098](https://github.com/civicrm/civicrm-core/pull/1098)
* [CRM-16639](https://issues.civicrm.org/jira/browse/CRM-16639)
* [CRM-20448](https://issues.civicrm.org/jira/browse/CRM-20448)
* [CRM-19609](https://issues.civicrm.org/jira/browse/CRM-19609)
My opinion is that it's tricky to work out in CiviCRM whether the request is being served via SSL or not and that this is best resolved at the most user-facing layer - it can be tricky to resolve in Drupal too if you're behind haproxy+varnish etc, and for @alexymik it seemed to be raising issues under Docker ([1](https://chat.civicrm.org/civicrm/pl/sbadqkybzjgh9biadb46776fbe), [2](https://chat.civicrm.org/civicrm/pl/8izphwoi9ifa7gs7br5y4k1tyo)).
### How @xurizaemon thinks you should ensure CiviCRM is SSL'd
* Enforce SSL at the client-facing proxy, if you have one. Terminating SSL here is fine.
* If clients talk directly to nginx / apache / what have you, try to enforce SSL here as part of canonical URL config.
* .htaccess is next best after webserver config if you're using a server that supports it. Fine for small sites.
* If you can't do that, enforce SSL in the CMS using a module like Drupal's Securepages.
* Last resort should be CiviCRM, but we should really encourage people to do any of the above (in that order).
* Since you aren't any more relying on CiviCRM to enforce SSL, you can now set "enableSSL" to NO as it's a poorly named setting which may have unfortunate side-effects. Visit CiviCRM > Settings > Resource URLs and set " Force Secure URLs (SSL)" to "No".
So - I get that people are using this setting, I don't want to break things for them (that'll reduce security), but I did want to write up my reasoning behind why we should not encourage relying on that setting.
I propose we start defaulting it to off and aim to hide / deprecate / remove the config over time.
As a first step, I'm going to PR a log message that would have saved @alexymik a few hours of painful debugging today :grin:5.7