CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-06-23T17:54:21Zhttps://lab.civicrm.org/dev/core/-/issues/12Improvement: for crmUiWizard-driven workflows, scroll back to top between steps2023-06-23T17:54:21ZginkgofjgImprovement: for crmUiWizard-driven workflows, scroll back to top between stepsSome "steps" in a wizard are fairly long and require scrolling to reach all the required fields. See the CiviMail wizard (civicrm/a/#/mailing) for example.
Differences in height between the steps can make clicking the buttons that contr...Some "steps" in a wizard are fairly long and require scrolling to reach all the required fields. See the CiviMail wizard (civicrm/a/#/mailing) for example.
Differences in height between the steps can make clicking the buttons that control the workflow (back, forward, etc.) at the bottom of the wizard a jarring experience. Sometimes the next step is significantly shorter than the previous one, and the user is left looking at white space. Sometimes the next step is very similar to the previous step, and it is unclear that anything occurred after the user's click because the user's view hasn't changed.
In any case, a better user experience would be to move the user to the top of the wizard at each transition.5.0.0ginkgofjgginkgofjghttps://lab.civicrm.org/dev/core/-/issues/18log tables for CiviCRM Drupal Modules can cause WSODs after running upgrades ...2023-06-23T17:54:21Zseamusleelog tables for CiviCRM Drupal Modules can cause WSODs after running upgrades when re-calculatingAfter every upgrade if you have detailed logging enabled then the log_tables are recalculated and any differences fixed up. This is to ensure that the triggers on the log tables work fine.
There is an issue with CiviCRM drupal modules ...After every upgrade if you have detailed logging enabled then the log_tables are recalculated and any differences fixed up. This is to ensure that the triggers on the log tables work fine.
There is an issue with CiviCRM drupal modules and it comes down to a miss calculation between the create schema for the intitial log table v the compare differences function.
An example is
```sql
CREATE TABLE civicrm_member_roles_rules (
rule_id int(11) NOT NULL AUTO_INCREMENT,
rid int(10) unsigned NOT NULL,
type_id int(10) unsigned NOT NULL,
status_codes text NOT NULL,
PRIMARY KEY (rule_id)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
```
When the log table for that is created the AUTO_INCREMENT is correctly handled through https://github.com/civicrm/civicrm-core/blob/master/CRM/Logging/Schema.php#L709 However when the schema diff code runs. We only exclude the column `id` https://github.com/civicrm/civicrm-core/blob/master/CRM/Logging/Schema.php#L628 as we assume that the id column will always be the AUTO_INCREMENT column whereas in the member_roles_rules example the AUTO INCREMENT column is actually `role_id`seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/25Wrap split_jobs in a transaction2023-06-23T17:54:22ZseamusleeWrap split_jobs in a transactionThe split_jobs function should be wrapped in a MySQL transaction to ensure that no mailing can be delivered whilst we are still trying to populate the mailing_job table with all the necessary jobs.The split_jobs function should be wrapped in a MySQL transaction to ensure that no mailing can be delivered whilst we are still trying to populate the mailing_job table with all the necessary jobs.5.1.0seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/3626"New Mailing" prematurely schedules blasts and old mailings can be resent2022-06-11T14:57:24Ztotten"New Mailing" prematurely schedules blasts and old mailings can be resent## Steps to reproduce
* Open a MySQL console where you can monitor the content of `civicrm_mailing_job`.
* Make a `Mailing => New Mailing`
* Fill in name/subject/recipients/body on the first page.
* Go to the second page
* __Observe__:...## Steps to reproduce
* Open a MySQL console where you can monitor the content of `civicrm_mailing_job`.
* Make a `Mailing => New Mailing`
* Fill in name/subject/recipients/body on the first page.
* Go to the second page
* __Observe__: In the MySQL console, observe that there are no jobs scheduled for this mailing.
* Set a delivery time. *But don't hit `Submit`*. (You're just thinking about delivery... but not actually sending yet.)
* Open an HTML or plain-text preview.
* __Observe__: In the MySQL console, observe that there is now a scheduled job for this mailing.
To resend an old mailing:
* Any mailing will be queued for redelivery if a user with permission to use CiviMail visits URL `civicrm/a/#/mailing/<MAILING_ID>` (we've seen several users end up on this URL, apparently via browser history)
## Mitigating factors
The only way I've found to trigger the premature mailing (so far) has been to explicitly set the delivery date. It's quite bad to be sending prematurely, but I think it's taken a while to recognize because the delivery date is *the last thing* in the entire process -- *most of the time*, one doesn't set the delivery date until everything else has been settled. This probably means the real-world impact hasn't been as bad one might fear.
## Context
This appears to be a regression in 4.7.31. Related PRs:
* https://issues.civicrm.org/jira/browse/CRM-21260
* https://issues.civicrm.org/jira/browse/CRM-21316
* https://issues.civicrm.org/jira/browse/CRM-21749
* https://github.com/civicrm/civicrm-core/pull/11142/
* https://github.com/civicrm/civicrm-core/pull/11653/
## Solution
* Because the fix is in javascript, resolving this bug requires flushing CiviCRM caches (`cv flush` command) after upgrading to CiviCRM 5.0.05.0.0https://lab.civicrm.org/dev/core/-/issues/42On multilingual mode, choosing mailing group doesn't affect recipient count a...2018-03-31T09:48:01ZMonish DebOn multilingual mode, choosing mailing group doesn't affect recipient count and list## Steps to reproduce
1. Enable multilingual mode
2. Go to `Mailing => New Mailing`
3. Choose one or more mailing group.
__Observe__: The recipient count doesn't affect
## Context
This appears to be a regression in 4.7.31. Related...## Steps to reproduce
1. Enable multilingual mode
2. Go to `Mailing => New Mailing`
3. Choose one or more mailing group.
__Observe__: The recipient count doesn't affect
## Context
This appears to be a regression in 4.7.31. Related PRs:
* https://issues.civicrm.org/jira/browse/CRM-21260
* https://issues.civicrm.org/jira/browse/CRM-21316
* https://issues.civicrm.org/jira/browse/CRM-21749
* https://github.com/civicrm/civicrm-core/pull/11142/
* https://github.com/civicrm/civicrm-core/pull/11653/5.0.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3549On multilingual mode, choosing mailing group doesn't affect recipient count a...2022-06-11T14:50:42ZMonish DebOn multilingual mode, choosing mailing group doesn't affect recipient count and list## Steps to reproduce
1. Enable multilingual mode
2. Go to `Mailing => New Mailing`
3. Choose one or more mailing group.
__Observe__: The recipient count doesn't affect
## Context
This appears to be a regression in 4.7.31. Related...## Steps to reproduce
1. Enable multilingual mode
2. Go to `Mailing => New Mailing`
3. Choose one or more mailing group.
__Observe__: The recipient count doesn't affect
## Context
This appears to be a regression in 4.7.31. Related PRs:
* https://issues.civicrm.org/jira/browse/CRM-21260
* https://issues.civicrm.org/jira/browse/CRM-21316
* https://issues.civicrm.org/jira/browse/CRM-21749
* https://github.com/civicrm/civicrm-core/pull/11142/
* https://github.com/civicrm/civicrm-core/pull/11653/5.0.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3554On 'New Mailing' review page, it doesn't show recipients count2022-06-11T14:50:56ZMonish DebOn 'New Mailing' review page, it doesn't show recipients countSimply visit the second page of `New Mailing` and you will notice that 'Recipients' section has an inappropriate message instead of recipient count.
## Context
This appears to be a regression in 4.7.31. Related PR - https://github.com/...Simply visit the second page of `New Mailing` and you will notice that 'Recipients' section has an inappropriate message instead of recipient count.
## Context
This appears to be a regression in 4.7.31. Related PR - https://github.com/civicrm/civicrm-core/pull/110915.0.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/53Add in Mailing % stats to AB tests and include a opened rate and clickthrough...2018-04-09T09:03:55ZseamusleeAdd in Mailing % stats to AB tests and include a opened rate and clickthrough rate stat to mailing reportsseamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/3582Using ACL to restrict mailing recipients leads to fatal error2022-06-11T14:54:50ZMonish DebUsing ACL to restrict mailing recipients leads to fatal errorSteps to replicate:
1. Assign an ACL permission for one or more contacts
2. Compose a mailing and select a recipient group. Ensure that those contacts are included in that group
3. Submit and Send Mailing immediately
Result into fatal ...Steps to replicate:
1. Assign an ACL permission for one or more contacts
2. Compose a mailing and select a recipient group. Ensure that those contacts are included in that group
3. Submit and Send Mailing immediately
Result into fatal error - https://pastebin.com/aMa2KYy0
## Context
This appears to be a regression in 4.7.31. Related PRs:
* https://issues.civicrm.org/jira/browse/CRM-21260
* https://github.com/civicrm/civicrm-core/pull/11142/
5.1.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/68DB Error on 'Find Participant' page when MySQL FULL_GROUP_BY_MODE is enabled2018-05-17T11:38:27ZMonish DebDB Error on 'Find Participant' page when MySQL FULL_GROUP_BY_MODE is enabledSteps to replicate:
1. Ensure that FULL_GROUP_BY_MODE is enabled in MySQL
2. Go to 'Find Participant' search form and do a simple search
This leads to
DB Error - https://pastebin.com/jxbaAbpSSteps to replicate:
1. Ensure that FULL_GROUP_BY_MODE is enabled in MySQL
2. Go to 'Find Participant' search form and do a simple search
This leads to
DB Error - https://pastebin.com/jxbaAbpS5.1.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/70On any custom search 'Print selected rows' action doesn't retain columns/values2018-04-26T17:31:14ZMonish DebOn any custom search 'Print selected rows' action doesn't retain columns/valuesSteps to replicate:
* Go to any custom search
* Choose any or all record
* Then choose 'Print selected rows'
Actual Result: There are different headers and except name all values are empty
Expected Result: The print screen should th...Steps to replicate:
* Go to any custom search
* Choose any or all record
* Then choose 'Print selected rows'
Actual Result: There are different headers and except name all values are empty
Expected Result: The print screen should the headers chosen for that Custom search and its corresponding values under itMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/98Searching by any Address fields with location type other than primary throw D...2018-05-03T18:23:08ZMonish DebSearching by any Address fields with location type other than primary throw DB errorSteps to replicate:
1. Go to `Search Builder`
2. Choose Contact >> Street Address (or any address field) >> Home (as location type) >> NOT EMPTY (or any other operator)
3. Submit
Throw DB Error:
```
Database Error Code: Unknown column '...Steps to replicate:
1. Go to `Search Builder`
2. Choose Contact >> Street Address (or any address field) >> Home (as location type) >> NOT EMPTY (or any other operator)
3. Submit
Throw DB Error:
```
Database Error Code: Unknown column 'Home-location_type.id' in 'field list', 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 contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, `Home-location_type`.id as `Home-location_type_id`, `Home-location_type`.name as `Home-location_type`, `Home-address`.id as `Home-address_id`, `Home-address`.street_address as `Home-street_address` FROM civicrm_contact contact_a LEFT JOIN civicrm_address `Home-address` ON ( contact_a.id = `Home-address`.contact_id ) and `Home-address`.location_type_id = 1 WHERE ( ( (NULLIF(LOWER(`Home-address`.street_address), '') IS NOT NULL) ) ) AND (contact_a.is_deleted = 0) GROUP BY contact_a.id ORDER BY UPPER(LEFT(contact_a.sort_name, 1)) asc [nativecode=1054 ** Unknown column 'Home-location_type.id' in 'field list']
[type] => DB_Error
[user_info] => SELECT contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, `Home-location_type`.id as `Home-location_type_id`, `Home-location_type`.name as `Home-location_type`, `Home-address`.id as `Home-address_id`, `Home-address`.street_address as `Home-street_address` FROM civicrm_contact contact_a LEFT JOIN civicrm_address `Home-address` ON ( contact_a.id = `Home-address`.contact_id ) and `Home-address`.location_type_id = 1 WHERE ( ( (NULLIF(LOWER(`Home-address`.street_address), '') IS NOT NULL) ) ) AND (contact_a.is_deleted = 0) GROUP BY contact_a.id ORDER BY UPPER(LEFT(contact_a.sort_name, 1)) asc [nativecode=1054 ** Unknown column 'Home-location_type.id' in 'field list']
[to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, `Home-location_type`.id as `Home-location_type_id`, `Home-location_type`.name as `Home-location_type`, `Home-address`.id as `Home-address_id`, `Home-address`.street_address as `Home-street_address` FROM civicrm_contact contact_a LEFT JOIN civicrm_address `Home-address` ON ( contact_a.id = `Home-address`.contact_id ) and `Home-address`.location_type_id = 1 WHERE ( ( (NULLIF(LOWER(`Home-address`.street_address), '') IS NOT NULL) ) ) AND (contact_a.is_deleted = 0) GROUP BY contact_a.id ORDER BY UPPER(LEFT(contact_a.sort_name, 1)) asc [nativecode=1054 ** Unknown column 'Home-location_type.id' in 'field list']"]
)
```Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/99Search builder doesn't retain selected (boolean) option after searching2018-05-06T01:04:55ZMonish DebSearch builder doesn't retain selected (boolean) option after searchingSteps to replicate:
1. Go to `Search Builder`
2. Choose Contact >> Do not email (or any other Boolean field) >> = >> Select `Yes`
3. Submit
After submit, you will see the select option is replaced by text field with 1 as it's value:
![t...Steps to replicate:
1. Go to `Search Builder`
2. Choose Contact >> Do not email (or any other Boolean field) >> = >> Select `Yes`
3. Submit
After submit, you will see the select option is replaced by text field with 1 as it's value:
![test-multiple-before](/uploads/eea36e30389dcb871e0765137fc81150/test-multiple-before.gif)5.3.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/119Notice error2018-11-09T22:11:44ZJoeMurrayNotice errorhttp://dmaster.demo.civicrm.org/civicrm/contact/map/event?eid=3&reset=1
Notice: Undefined variable: is_public in CRM_Contact_Form_Task_Map_Event->preProcess() (line 54 of /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Contact/...http://dmaster.demo.civicrm.org/civicrm/contact/map/event?eid=3&reset=1
Notice: Undefined variable: is_public in CRM_Contact_Form_Task_Map_Event->preProcess() (line 54 of /srv/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Contact/Form/Task/Map/Event.php).5.8Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/134Search Builder broken filter for Source Contact ID2018-06-08T04:12:28ZMonish DebSearch Builder broken filter for Source Contact IDSearch Builder lists the 'Source Contact ID' field but doesn't populate the information nor filter things appropriately. Use any filter in Search Builder with Activity >> Source Contact ID criteria, it will always show empty value below ...Search Builder lists the 'Source Contact ID' field but doesn't populate the information nor filter things appropriately. Use any filter in Search Builder with Activity >> Source Contact ID criteria, it will always show empty value below this column.
https://issues.civicrm.org/jira/secure/attachment/63475/Search%20Builder.pngMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3627Only add closing quote to href token output when necessary2022-06-11T14:57:26ZMichael McAndrewOnly add closing quote to href token output when necessary[Lines 1345 to 1350 of CRM/Mailing/BAO/Mailing.php](https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/BAO/Mailing.php#L1345-L1350) add a trailing quote to tokens of 'type' `embedded_url` as according to the code:
```
...[Lines 1345 to 1350 of CRM/Mailing/BAO/Mailing.php](https://github.com/civicrm/civicrm-core/blob/master/CRM/Mailing/BAO/Mailing.php#L1345-L1350) add a trailing quote to tokens of 'type' `embedded_url` as according to the code:
```
// add trailing quote since we've gobbled it up in a previous regex
// function getPatterns, line 431
```
In my testing, sometimes the trailing quote is not gobbled, e.g. in this example `<p><a href="https://example.org/communication-preferences?cid1={contact.contact_id}&{contact.checksum}">Click here to select your communication preferences</a></p>`.
As a fix, I am proposing to only add a closing quote if the url does not already have one.https://lab.civicrm.org/dev/core/-/issues/142States and Counties don't chain in Search Builder2022-07-01T20:25:48ZMonish DebStates and Counties don't chain in Search BuilderMany states and counties have common names. Maryland could be in Liberia or the United States. There are 3 states named "Distrito Federal". Within the US, there are 18 counties named Montgomery.
The Search Builder state and county field...Many states and counties have common names. Maryland could be in Liberia or the United States. There are 3 states named "Distrito Federal". Within the US, there are 18 counties named Montgomery.
The Search Builder state and county fields don't filter with reference to the country or state fields that are within the same AND grouping. The state field displays the states from the countries that have states enabled, and the county field displays all counties in alphabetical order.
This presents two problems:
1. If you have multiple options with the same name, you have no idea which is which. Is "Distrito Federal" in Brazil, Mexico, or Venezuela? Which of the 31 "Washington" counties is the right one? There's no way to input the ID anymore if you happen to know.
2. If you are looking for a state that's not in one of the countries you have set for "available states and provinces", you're out of luck.
Two proposed alternatives:
1. Make the states drop-down depend upon a country of the same location type, within the same "AND" grouping. Do the same for the counties with regard to the states. This would require some kind of parameter to be sent to the address/getoptions API to filter the list, but it would make them work in the same way as elsewhere in CiviCRM.
2. Have a new context for address/getoptions that prefixes the state name with the country and prefixes the county name with the state. (We can probably safely assume that the same county/state combinations appear in multiple countries--no Montgomery County, Maryland, Liberia.) This means that a user doesn't need to add redundant criteria to the search.
For the second option, that doesn't solve the problem of picking states in other countries, but maybe a checkbox could alternate between showing all countries' states (maybe setting the context as "get" instead of "search").
JIRA ticket : https://issues.civicrm.org/jira/browse/CRM-17572Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/143Contact 'World Region' Field not functioning properly in Search Builder2018-05-28T02:48:08ZMonish DebContact 'World Region' Field not functioning properly in Search BuilderTo reproduce:
'Search' -> 'Search Builder'.
Search for 'Contacts' -> 'World Region' -> '='.
Upon doing the above, the user is presented with a text box instead of the expected dropdown <select> menu.
If the user proceeds to use the une...To reproduce:
'Search' -> 'Search Builder'.
Search for 'Contacts' -> 'World Region' -> '='.
Upon doing the above, the user is presented with a text box instead of the expected dropdown <select> menu.
If the user proceeds to use the unexpected textbox and manually type in the World Region they are searching for, they get an error of the following kind:
Europe and Central Asia is not of the type Positive
This has been reproduced successfully on the test site at http://wpmaster.demo.civicrm.org
JIRA - https://issues.civicrm.org/jira/browse/CRM-203955.3.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/147One of parameters is not of the type MysqlColumnNameOrAlias when using Non-AS...2019-04-29T20:20:11ZMonish DebOne of parameters is not of the type MysqlColumnNameOrAlias when using Non-ASCII display names.To reproduce, change Display Name of a location type (http://dmaster.demo.civicrm.org/civicrm/admin/locationType) to some Non-ASCII text (or just install civicrm on some Non-ASCII language, in my case Russian). When go to Search Builder ...To reproduce, change Display Name of a location type (http://dmaster.demo.civicrm.org/civicrm/admin/locationType) to some Non-ASCII text (or just install civicrm on some Non-ASCII language, in my case Russian). When go to Search Builder (http://dmaster.demo.civicrm.org/civicrm/contact/search/builder) and try to search contacts with phone, or email, or address of that location type.
Get an error message:
Sorry but we are not able to provide this at the moment.
One of parameters (value: Дом-email) is not of the type MysqlColumnNameOrAlias
Ref : https://issues.civicrm.org/jira/browse/CRM-19089Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3628Add pre/post hook for CRM_Mailing_BAO_MailingJob2022-06-15T11:19:25ZMonish DebAdd pre/post hook for CRM_Mailing_BAO_MailingJobThis ticket is about adding pre, post hook to MailingJob and it involve:
1. Call the pre/post hook inside `CRM_Mailing_BAO_MailingJob::create()`
2. Add `CRM_Mailing_BAO_MailingJob::deleteMailingJob` to delete Mailing Jobs and add pre/pos...This ticket is about adding pre, post hook to MailingJob and it involve:
1. Call the pre/post hook inside `CRM_Mailing_BAO_MailingJob::create()`
2. Add `CRM_Mailing_BAO_MailingJob::deleteMailingJob` to delete Mailing Jobs and add pre/post delete hook
3. Replace all the DAO call with corresponding create and delete fn in the codebase.Monish DebMonish Deb