CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2024-02-09T14:12:15Zhttps://lab.civicrm.org/dev/core/-/issues/2998Epic: Re-implement CiviCRM Standalone (CMS-less CiviCRM)2024-02-09T14:12:15ZbgmEpic: Re-implement CiviCRM Standalone (CMS-less CiviCRM)Follow-up to dev/core#1153, and [more context in this wiki page](https://lab.civicrm.org/dev/core/-/wikis/standalone), this is an epic to track the main tasks to implement CiviCRM Standalone.
- [x] Base classes (Hook, System, Permission...Follow-up to dev/core#1153, and [more context in this wiki page](https://lab.civicrm.org/dev/core/-/wikis/standalone), this is an epic to track the main tasks to implement CiviCRM Standalone.
- [x] Base classes (Hook, System, Permission and css/tpl so that Standalone can boot / proof-of-concept [PR22227](https://github.com/civicrm/civicrm-core/pull/22227)
- [x] Basic composer project to handle the code-case (see: https://github.com/civicrm/civicrm-standalone)
- [x] Composer template project that follows best-practices (see: https://github.com/civicrm/civicrm-core/pull/26771)
- [x] Implement a breadcrumb (see: https://github.com/civicrm/civicrm-core/pull/26782)
- [x] Login page (standaloneusers ext now included in core)
- [x] dev/core#4053 User management and permissions
- [x] initial user roles dev/core#4466
- [x] Password reset by email [PR28505](https://github.com/civicrm/civicrm-core/pull/28505), [PR27681](https://github.com/civicrm/civicrm-core/pull/28505)
- [x] Clean URLs
- [x] [Language switcher](https://civicrm.org/extensions/language-switcher) - language links are missing `lcMessages=xx_YY` and session change is not sticky. See #4425 and [PR#27040](https://github.com/civicrm/civicrm-core/pull/27040)
- [x] GenCode
- [x] Installer (using 'civicrm-setup')
- [x] Buildkit (mostly, requires `cv` support, see: https://github.com/civicrm/civicrm-buildkit/pull/662)
- [x] cv (workaround: `CIVICRM_SETTINGS="/var/www/standalone/data/civicrm.settings.php" cv sql:cli`)
- [x] Backend themes (test [known themes](https://civicrm.org/extensions?field_extension_civi_use_target_id=356))
- [x] Releaser support (create tar.gz for official downloads) - https://github.com/civicrm/civicrm-core/pull/27104
- [x] Demo site (https://github.com/civicrm/civicrm-buildkit/pull/794)
- [X] Installation documentation https://docs.civicrm.org/installation/en/latest/standalone/
- [x] Getting started dashlet - alert.civicrm.org needs to be updated to understand "uf=Standalone" since it currently gives error 500, e.g. `https://alert.civicrm.org/welcome?prot=1&ver=5.46.alpha1&uf=Standalone&sid=blah&lang=en_US&co=`
- [x] https://lab.civicrm.org/infra/community-messages/-/merge_requests/2
- [x] High-level error handler. https://github.com/civicrm/civicrm-core/pull/26965
- [x] How to treat cms.root. The rest of the work so far is treating "standalone" as if it were a cms, so it should probably return _something_ for it.
- [x] Nicer Role/Permission UI, permission for adding users
Known minor bugs:
- [x] On the `/civicrm/admin` page, the links are missing the leading `/`
- [x] Because CRM/Utils/System/Standalone.php automatically sets `userID = 1`, that CID is the default org record, so some public forms such as Event Registrations, behave incorrectly. Will be fixed when we implement users.
- [x] Might be a local issue but I [DaveD] get the old files system status warning. There's an open ticket somewhere about this happening for drupal 8 sometimes so might be similar.
Nice to haves, but not release-critical:
- [ ] Front-end theme?https://lab.civicrm.org/dev/core/-/issues/1215PayPal Express recurring contributions are not recorded and no confirmation e...2023-10-21T05:03:21ZBobSPayPal Express recurring contributions are not recorded and no confirmation email is sentAn exception is thrown upon receiving an IPN for a PayPal Express recurring contribution.
The contribution is therefore not recorded and no confirmation email is sent.
There is nothing to indicate lack of support of this feature to a u...An exception is thrown upon receiving an IPN for a PayPal Express recurring contribution.
The contribution is therefore not recorded and no confirmation email is sent.
There is nothing to indicate lack of support of this feature to a user defining an event who might enable recurring contributions and enable the PayPal Express payment processor.
I will submit a PR shortly.https://lab.civicrm.org/dev/core/-/issues/2258Re-Thinking our Crypto implementation2023-07-09T05:03:24ZseamusleeRe-Thinking our Crypto implementation_Motivation_:
We need to move away from the usage of mcrypt code to a more modern way of handling crypto within the civicrm code base. Also there have been desire to have more fields other than just the SMTP password field encrypted wit..._Motivation_:
We need to move away from the usage of mcrypt code to a more modern way of handling crypto within the civicrm code base. Also there have been desire to have more fields other than just the SMTP password field encrypted within the database e.g. Payment Processor Passwords.
_Problems_:
1. Not easily able to determine what Crypto method has been used (Mcrypt or Base64 encoded only) to save the SMTP password.
2. Not easily to assess which extensions have had fields encrypted (e.g. know that Sparkpost has encrypted their API key but other than that unsure)
3. Relies on CIVICRM_SITE_KEY (which is maybe over-using that value).
4. Linked to Item 2, is there is no way for the API/DAO/Extensions to know what fields have been encrypted so to decrypt code appropriately.
_Potential ideas_:
1. Create a setting which stores the encryption class and use a factory / hooks to allow for extensions to customise which crypto library to use within CiviCRM
2. Have a hook / use some level of meta data to determine if a field is to be encrypted
_Discussion Questions_:
1. Should we completely break CRM_Utils_Crypt class as we re-work the encryption within the app
2. How should we handle switching between Crypto libraries?
3. Should extensions be able to use their own Crypto Library whilst leaving rest of the App to use a system specific Crypto?
4. Do we want to allow for civicrm.settings.php defines / environment variable overrides for encrypted fields / data points?https://lab.civicrm.org/dev/core/-/issues/1258Document CiviCRM Features (Maryland Sprint 2019)2022-12-19T05:03:21ZjcorlewDocument CiviCRM Features (Maryland Sprint 2019)# Process
* Canonical path
* Description of feature/function
* Category of usefulness
* A) Good as-is
* B) Needs work
* C) Necessarily complex
* D) Confusing / complex
* Recommendations
* Telemetric interest# Process
* Canonical path
* Description of feature/function
* Category of usefulness
* A) Good as-is
* B) Needs work
* C) Necessarily complex
* D) Confusing / complex
* Recommendations
* Telemetric interesthttps://lab.civicrm.org/dev/core/-/issues/1216When updating PayPal Pro recurring contribution, number of installments is ig...2022-12-11T05:03:25ZBobSWhen updating PayPal Pro recurring contribution, number of installments is ignored by PayPalCall to PayPal API incorrectly assigns value of "installments" to "BILLINGFREQUENCY" rather than "TOTALBILLINGCYCLES".
Will submit PR shortly.Call to PayPal API incorrectly assigns value of "installments" to "BILLINGFREQUENCY" rather than "TOTALBILLINGCYCLES".
Will submit PR shortly.https://lab.civicrm.org/dev/core/-/issues/3453Afform - relationships fill from other entity2022-12-07T01:43:54ZsamuelsovAfform - relationships fill from other entityFollow-up from https://github.com/civicrm/civicrm-core/pull/23296#issuecomment-1119014194
Let say we want to do a form that allow an employer to update :
- the main contact of the organization
- all the employees
Thanks to https://lab....Follow-up from https://github.com/civicrm/civicrm-core/pull/23296#issuecomment-1119014194
Let say we want to do a form that allow an employer to update :
- the main contact of the organization
- all the employees
Thanks to https://lab.civicrm.org/dev/core/-/issues/3117 it's now possible to do a form that will allow to create in one step :
- the organization
- the main contact as Individual 1 with a relationship between the organization and Individual 1
- the employees as Individual 2 with a relationship between the organization and Invividual 2 (which is multiple)
However, there is no way to have an edit mode for such a form. It's possible to add the organization id as an argument but we also need a way to pre-populate the main contacts / list of employees as an option based on the relationships definition.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3523Don't cache the full path of extensions so they don't break with dynamic paths2022-06-11T14:41:17ZherbdoolDon't cache the full path of extensions so they don't break with dynamic pathsExtension paths are cached as full paths, which are incompatible with cloud services that might have dynamic filepaths (such as Pantheon). Instead the full path can be determined by other means.
This is an example of what gets cached in...Extension paths are cached as full paths, which are incompatible with cloud services that might have dynamic filepaths (such as Pantheon). Instead the full path can be determined by other means.
This is an example of what gets cached in CRM_Extension_Mapper::getActiveModuleFiles:
```
a:6:{i:0;a:2:{s:6:"prefix";s:4:"iats";s:8:"filePath";s:101:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/com.iatspayments.civicrm/iats.php";}i:1;a:2:{s:6:"prefix";s:14:"extendedreport";s:8:"filePath";s:114:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/nz.co.fuzion.extendedreport/extendedreport.php";}i:2;a:2:{s:6:"prefix";s:12:"cividiscount";s:8:"filePath";s:116:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/org.civicrm.module.cividiscount/cividiscount.php";}i:3;a:2:{s:6:"prefix";s:9:"sumfields";s:8:"filePath";s:108:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/net.ourpowerbase.sumfields/sumfields.php";}i:4;a:2:{s:6:"prefix";s:4:"gdpr";s:8:"filePath";s:102:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/uk.co.vedaconsulting.gdpr/gdpr.php";}i:5;a:2:{s:6:"prefix";s:10:"l10nupdate";s:8:"filePath";s:107:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/com.cividesk.l10n.update/l10nupdate.php";}}
```
Previous solution was to use the patch in this issue https://www.drupal.org/node/2347897 but it meant there was a performance hit by always skipping cache.5.24.0https://lab.civicrm.org/dev/core/-/issues/3186SearchKit - Add "grand total" row2022-05-24T23:27:07ZcolemanwSearchKit - Add "grand total" rowcolemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3338Add 'membership start date' as an option when creating Scheduled Reminder bas...2022-04-22T16:17:42ZjitendraAdd 'membership start date' as an option when creating Scheduled Reminder based on MembershipThis is what we get as options
![image](/uploads/022c3bd1a4f8dbb12a4b6f034de33c55/image.png)
This ticket aims to add membership start date to the option list.
@eileen @totten I don't see any logical reason for not including it before....This is what we get as options
![image](/uploads/022c3bd1a4f8dbb12a4b6f034de33c55/image.png)
This ticket aims to add membership start date to the option list.
@eileen @totten I don't see any logical reason for not including it before. Have I missed something? Do you see any downsides on adding start date as an option?jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/3299Make alerts accessible2022-04-22T16:04:58ZJoeMurrayMake alerts accessibleFrom Clare comes a problem statement and some brainstorming ideas:
> A problem for our low vision users is alerts, their AT software doesn't recognise them, so they miss warnings and end up adding duplicates. It would be great to have s...From Clare comes a problem statement and some brainstorming ideas:
> A problem for our low vision users is alerts, their AT software doesn't recognise them, so they miss warnings and end up adding duplicates. It would be great to have some sort of per user control for setting how alerts display, perhaps even adding audio cues.
Use alert role approach suggested at https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/alert/index.html as this will allow audio cues to be given to users of screen readers.
Note more details at https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/#alert and also https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/#alertdialog
https://www.w3.org/TR/UNDERSTANDING-WCAG20/time-limits-no-exceptions.html indicates that there should be no time limits like quickly disappearing alerts.
As a first pass, let's implement a site wide setting to disable alerts from disappearing. We don't have a good design pattern currently for per user preferences. When we do move to per user preferences, the default should be to have alerts not disappear.justinfreeman (Agileware)justinfreeman (Agileware)https://lab.civicrm.org/dev/core/-/issues/3284APIv4 Query Improvements2022-04-22T15:53:45Zjoshjosh@civicrm.orgAPIv4 Query ImprovementsThis project will expand the query language of APIv4 to increase functionality. Implementing this will enhance the capabilities of APIv4-based Smart Groups; without this their utility will be limited to simple queries. This is also a pre...This project will expand the query language of APIv4 to increase functionality. Implementing this will enhance the capabilities of APIv4-based Smart Groups; without this their utility will be limited to simple queries. This is also a prerequisite to the Search Builder UI project.
Tasks:
- Implement Having, Group By parameters.
- Enable use of SQL Functions like SUM().
- Implement explicit joins.
- Implement a way to add subquery expressions to an API call.
Related pull-requests:
* [#16947 - Support GROUP BY and aggregate functions](https://github.com/civicrm/civicrm-core/pull/16947) (merged)
* [#17047 - Api4 Explorer: Support SQL functions and HAVING clause ](https://github.com/civicrm/civicrm-core/pull/17047) (merged)colemanwcolemanw2020-06-30https://lab.civicrm.org/dev/core/-/issues/3245Include random as an option when sorting displays2022-04-22T15:52:35Zjoshjosh@civicrm.orgInclude random as an option when sorting displaysCurrently on SearchKit displays, users can sort by a designated field using either "ascending" or "descending". I propose that we include an option to sort data in a "random" format.
![Screenshot_2021-__1_](/uploads/02ac6ff8f5609eddc51d...Currently on SearchKit displays, users can sort by a designated field using either "ascending" or "descending". I propose that we include an option to sort data in a "random" format.
![Screenshot_2021-__1_](/uploads/02ac6ff8f5609eddc51d64629d9e1ca1/Screenshot_2021-__1_.png)https://lab.civicrm.org/dev/core/-/issues/3243Search Builder UI2022-04-22T15:52:31Zjoshjosh@civicrm.orgSearch Builder UIThis project will create a unified interface that replaces the current Advanced Search and Search Builder forms. This requires the APIv4 Query Improvements project to be done (or at least underway). This is a prerequisite to the Form-Bui...This project will create a unified interface that replaces the current Advanced Search and Search Builder forms. This requires the APIv4 Query Improvements project to be done (or at least underway). This is a prerequisite to the Form-Builder-based reports and custom searches projects.
The mockup for this interface is available at the bottom of https://lab.civicrm.org/dev/report/-/wikis/Search-Builder-Overhaul
Tasks:
- Selection of base table + joins
- Drag-n-drop nested and/or where clauses supporting all fields and operators
- Controls for grouping and sorting
- Display and paging of search results
- Configurable output columns with drag-n-droppable table headers
- Selection of actions to act upon output rows (e.g. “Add Tags”)
- Button to save query as APIv4-based smart group.colemanwcolemanw2020-06-30https://lab.civicrm.org/dev/core/-/issues/3242APIv4-Based Smart(er) Groups2022-04-22T15:52:29Zjoshjosh@civicrm.orgAPIv4-Based Smart(er) GroupsThis project will allow smart groups to be built from APIv4 criteria. The MVP would include a button in the API Explorer to save an api4 query as a smart group. This will also connect with the new Search Builder UI when that project is c...This project will allow smart groups to be built from APIv4 criteria. The MVP would include a button in the API Explorer to save an api4 query as a smart group. This will also connect with the new Search Builder UI when that project is complete.
Tasks:
- Allow swappable backend to smart groups
- Extend smart group schema to store api4 query parameters
- Add support for saving smart groups to API explorer UI.colemanwcolemanw2020-06-30https://lab.civicrm.org/dev/core/-/issues/1818Upgrade Angular from 1.5 => 1.82021-05-07T02:27:09ZcolemanwUpgrade Angular from 1.5 => 1.8I'm not sure why CiviCRM core still ships with angular 1.5.
The latest in the 1.x branch is 1.8.
Looking over the [list of breaking changes](https://docs.angularjs.org/guide/migration#migrating-from-1-5-to-1-6) between 1.5 and 1.8, it ...I'm not sure why CiviCRM core still ships with angular 1.5.
The latest in the 1.x branch is 1.8.
Looking over the [list of breaking changes](https://docs.angularjs.org/guide/migration#migrating-from-1-5-to-1-6) between 1.5 and 1.8, it seems pretty minimal.
The biggest change that affects us is the route default has changed from `#` to `#!` https://github.com/angular/angular.js/blob/master/CHANGELOG.md#location-due-to-1https://lab.civicrm.org/dev/core/-/issues/1795Using Parent tag in search form doesn't pull contacts marked with child tag i...2021-04-01T11:40:23ZMonish DebUsing Parent tag in search form doesn't pull contacts marked with child tag in search form resultReproduction steps
----------------------------------------
Steps to replicate:
1. Create a parent tag A and child tag A1
2. Create/update contact and tag with A1
3. Go to 'Find Contacts' or 'Find Contributions' and search by Tag - A
...Reproduction steps
----------------------------------------
Steps to replicate:
1. Create a parent tag A and child tag A1
2. Create/update contact and tag with A1
3. Go to 'Find Contacts' or 'Find Contributions' and search by Tag - A
Current behaviour
----------------------------------------
```
1. In 'Find Contact' result, it doesn't show contact which is tagged with child tag A1
2. In 'Find Contributions' result, it doesn't pull contribution(s) of contact tagged with child tag A1
```
Expected behaviour
----------------------------------------
Searching using a parent tag should automatically include the contacts which are in parent tag A and in its n child tag(s) - An. In this use-case it should show contact tagged with child A1 tag.
Comments
----------------------------------------
ping @JoeMurray @eileen @seamuslee @lcdweb5.29.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/392Support MySQL 8.0 now that it is GA2021-04-01T01:52:03ZJoeMurraySupport MySQL 8.0 now that it is GA# Overview
MySQL 8.0 went General Availability on April 19, 2018. CiviCRM's aim is to support the latest GA for required infrastructure (MySQL, PHP) as soon as feasible.
In reviewing removed features that cause incompatibilities (htt...# Overview
MySQL 8.0 went General Availability on April 19, 2018. CiviCRM's aim is to support the latest GA for required infrastructure (MySQL, PHP) as soon as feasible.
In reviewing removed features that cause incompatibilities (https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html) I noticed a couple of issues that definitely require changes, one that might cause syntax errors that are easily fixed when found, and a fourth that we may want to change to improve our functionality and get current.
This is a meta issue for tracking what's needed for MySQL8. I have added a MySQL8 flag to lab for the moment to help in tracking. We can delete that flag after this issue is deemed complete.
# Related issue: Upgrade test infrastructure to enable testing against a version on the edge of being officially supported: https://lab.civicrm.org/dev/core/issues/1142
# Issue: Field Names now Reserved Words https://lab.civicrm.org/dev/core/issues/1143
# Testing issue: dependence on PHP version for MySQL authentication ~~https://lab.civicrm.org/dev/core/issues/1144~~
# Document dealing with changes to MySQL user password library https://lab.civicrm.org/dev/core/issues/1145
# Possible issue: Sort order on GROUP BY clauses
~~I don't think we have any code that tries to specify sort order on GROUP BY fields, but if so we will need to change to add an ORDER BY clause with the sort order. I think we should just try running tests on MySQL 8.0 and using it manually to determine locations in code with this issue, and play whack-a-mole on anything missed.~~
# Nice to have: Upgrade our text fields to support all utf8 characters https://lab.civicrm.org/dev/core/issues/339https://lab.civicrm.org/dev/core/-/issues/59scheduled reminders: add form validation to email field2021-03-23T02:27:09Zlcdwebscheduled reminders: add form validation to email fieldcurrently a person could put something other than an email address in the From email field and it doesn't throw a form validation error. as a result, no emails are delivered (silent failure).currently a person could put something other than an email address in the From email field and it doesn't throw a form validation error. as a result, no emails are delivered (silent failure).lcdweblcdwebhttps://lab.civicrm.org/dev/core/-/issues/914submitOnce revisited2021-03-22T11:50:00ZDaveDsubmitOnce revisited@mattwire
Follow-on to PR 13333 to make it work with multiple submit buttons.
WIP at https://github.com/civicrm/civicrm-core/compare/master...demeritcowboy:submit-once-again
Have minimally tested. Will give it some more testing but wor...@mattwire
Follow-on to PR 13333 to make it work with multiple submit buttons.
WIP at https://github.com/civicrm/civicrm-core/compare/master...demeritcowboy:submit-once-again
Have minimally tested. Will give it some more testing but works for the new case screen at least.https://lab.civicrm.org/dev/core/-/issues/2254Inline email edit form fails to set is_bulkmail flag2020-12-17T19:44:57ZRichInline email edit form fails to set is_bulkmail flagExpected behaviour: edit emails, check bulk on one of them, hit save: should show that that email is bulk.
Actual: no email is set bulk (and if one was, it's unset!)Expected behaviour: edit emails, check bulk on one of them, hit save: should show that that email is bulk.
Actual: no email is set bulk (and if one was, it's unset!)5.34.0RichRich