5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | **Require attention to configuration options?** | **yes** |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Configurable menubar color
29 ([13996](https://github.com/civicrm/civicrm-core/pull/13996))**
31 v5.12 introduced a new menu bar. The change also revised the default color
32 scheme (applying a more contemporary palette), but this created stress for
33 some users who were trained to recognize the old menu color. This exposes a
34 new setting for customizing the color scheme, and it changes the default to
35 match previous scheme (be black instead of beige).
37 - **Menu config screen improvements
38 ([14002](https://github.com/civicrm/civicrm-core/pull/14002))**
40 Improves the Menu configuration screen by: making changes to the menu (adding
41 or editing menu items) on the admin screen be reflected immediately, adding
42 links to the related settings pages to reduce confusion about how to configure
43 various aspects of the menu bar and fixing the broken icon picker and missing
46 - **What to do with the merge screen
47 ([dev/core#824](https://lab.civicrm.org/dev/core/issues/824):
48 [13898](https://github.com/civicrm/civicrm-core/pull/13898) and
49 [13895](https://github.com/civicrm/civicrm-core/pull/13895)) CONTINUES WORK**
51 Continues work to clean up the Merge screen by moving toward
52 using contact type icons in a standard way instead of the contact type names
53 and cleaning up alignment.
55 - **Mutliple activity type filters on activity tab on contact records
56 ([13873](https://github.com/civicrm/civicrm-core/pull/13873))**
58 Change include/exclude activity type filters to be multiple select2 widgets so
59 that users can filter my multiple activity types rather than only permitting
60 users to select one activity type with a traditional select field.
62 - **Added a DB check to prevent deleting exisiting CiviCRM data from database.
63 ([13944](https://github.com/civicrm/civicrm-core/pull/13944))**
65 When installing CiviCRM this change adds a check to see if there are existing
66 CiviCRM tables and requires users to manually remove any CiviCRM tables
67 before continuing to prevent users from accidentally deleting tables.
69 - **Encourage developers to use .then instead of .done
70 ([13982](https://github.com/civicrm/civicrm-core/pull/13982))**
72 This change makes it so the Api Explorer generates js code using `.then()`
73 (instead of `.done`) and demonstrates proper errQor handling to encourage
74 developers to use `.then()`.
76 - **Replace jcalendar instances with datepicker
77 ([dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
78 [13919](https://github.com/civicrm/civicrm-core/pull/13919),
79 [13855](https://github.com/civicrm/civicrm-core/pull/13855),
80 [13965](https://github.com/civicrm/civicrm-core/pull/13965),
81 [13950](https://github.com/civicrm/civicrm-core/pull/13950) and
82 [13918](https://github.com/civicrm/civicrm-core/pull/13918)) CONTINUES WORK**
84 Moves from jcalendar to datepicker in the following places: the fulfilled date
85 on the premium tab on back end contribution add/edit screens, the activity
86 tab, the receive_date and the renewal_date fields in Membership forms and the
87 transaction date field on the update pending status task. And updates tests to
88 reflect progress getting rid of jcalendar.
90 - **Expose sort_name as a dedupe-matchable field
91 ([13864](https://github.com/civicrm/civicrm-core/pull/13864))**
93 Allow sort_name to be used in dedupe rules.
95 - **Standardise setTitle method on forms
96 ([13781](https://github.com/civicrm/civicrm-core/pull/13781))**
98 Makes the title of a form available in the buildForm hook.
100 - **Send action links on any page that extends CRM_Core_Page_Basic thru
102 ([13068](https://github.com/civicrm/civicrm-core/pull/13068))**
104 Makes it so extension developers can use hook_civicrm_links to add or remove
105 links from the Relationship Types Administration Page (CiviCRM Navigation
106 Menu->Administer->Customize Data and Screens->Relationship Types) and any
107 other page that extends CRM_Core_Page_Basic.
109 - **Improve lock handling for mysql 5.7.5+
110 ([CRM-18011](https://issues.civicrm.org/jira/browse/CRM-18011):
111 [13854](https://github.com/civicrm/civicrm-core/pull/13854))**
113 Ensures mysql locks are supported on mysql 5.7.5+ and MariaDB '10.0.2'+.
115 - **Deploy PEAR Log package and upgrade to latest version in the process
116 ([13835](https://github.com/civicrm/civicrm-core/pull/13835))**
118 Upgrades the PEAR Log package version and deploys it via
121 - **Make cacheCode optional in CRM.loadScript
122 ([13824](https://github.com/civicrm/civicrm-core/pull/13824))**
124 A cacheCode was recently added to script urls fetched by CRM.getScript(). This
125 is not always desirable e.g. for scripts fetched from an external source, this
126 change makes it so the cacheCode is added by default but can be disabled.
128 - **Load hooks during upgrade mode
129 ([13551](https://github.com/civicrm/civicrm-core/pull/13551))**
131 Allow extensions to load hooks during an upgrade.
133 - **Checkbox to explicitly change employer when sharing address
134 ([CRM-21008](https://issues.civicrm.org/jira/browse/CRM-21008):
135 [13700](https://github.com/civicrm/civicrm-core/pull/13700))**
137 Before this change when an individual was set to share an address with an
138 organization, that organization was set as its current employer. This change
139 adds a checkbox that allows users to explicitly tell civicrm whether the
140 organization is the current employer or not when sharing an address.
142 - **Report improvements
143 ([CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677):
144 [13792](https://github.com/civicrm/civicrm-core/pull/13792),
145 [13790](https://github.com/civicrm/civicrm-core/pull/13790) and
146 [13780](https://github.com/civicrm/civicrm-core/pull/13780))**
148 These changes improve reports by removing redundant birth date and gender
151 - **Contact Subtype field at Reports does not support contacts with multiple
152 subtypes ([dev/core/544](https://lab.civicrm.org/dev/core/issues/544):
153 [13158](https://github.com/civicrm/civicrm-core/pull/13158) and
154 [13908](https://github.com/civicrm/civicrm-core/pull/13908))**
156 Makes reports support filtering on multiple contact subtypes.
158 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
159 ([dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
160 [13850](https://github.com/civicrm/civicrm-core/pull/13850)) CONTINUES WORK**
162 Updates Cancel Billing & Update Billing screens to use status bounce rather
163 than throw a fatal error.
165 - **Activity tab performance fix - switch to faster getActivities &
167 ([13768](https://github.com/civicrm/civicrm-core/pull/13768))**
169 Performance improvement when loading the activity tab for a contact.
171 - **Add hook findDuplicates
172 ([13234](https://github.com/civicrm/civicrm-core/pull/13234))**
174 Adds the hook findDuplicates which provides the ability for extensions to
175 intercept and/or override core duplicate checking when
176 registering/contributing.
178 - **Deadlocks and performance issues when using smartgroups / ACLs extensively
179 ([dev/core#748](https://lab.civicrm.org/dev/core/issues/748):
180 [13772](https://github.com/civicrm/civicrm-core/pull/13772)) CONTINUES WORK**
182 Improves performance by switching the alphabetQuery to use new
183 getSearchSQLParts() function.
185 - **Improve data when known time-dependent-failing test fails
186 ([13964](https://github.com/civicrm/civicrm-core/pull/13964))**
188 Improves output data when time dependent tests fail.
190 - **Use TempTable methods.
191 ([13880](https://github.com/civicrm/civicrm-core/pull/13880),
192 [13865](https://github.com/civicrm/civicrm-core/pull/13865),
193 [13819](https://github.com/civicrm/civicrm-core/pull/13819),
194 [13848](https://github.com/civicrm/civicrm-core/pull/13848),
195 [13847](https://github.com/civicrm/civicrm-core/pull/13847) and
196 [13703](https://github.com/civicrm/civicrm-core/pull/13703))**
198 These changes move towards using the TempTable class to improve
199 naming standards, including but not limited to the following places: when
200 creating the dedupe table, on the contribution detail report, on the
201 bookkeeping report and when debugging.
203 - **Allow extensions to enable validate.tpl
204 ([13961](https://github.com/civicrm/civicrm-core/pull/13961))**
206 This change makes it possible for extensions to add a validate.tpl which
207 provides front end javascript validation, which improves user experience by
208 making it so users do not have to refresh the page to see validation issues.
210 - **Promise polyfill for older browsers
211 ([13955](https://github.com/civicrm/civicrm-core/pull/13955))**
213 Loads a polyfill for IE aQnd other outdated browsers so developers can use
214 native js Promises in our code.
218 - **Case Activity Assignment Restriction
219 ([dev/core#641](https://lab.civicrm.org/dev/core/issues/641):
220 [13541](https://github.com/civicrm/civicrm-core/pull/13541))**
222 Makes it possible to restrict the assignment of case activities to
223 a group or to contacts having user accounts.
227 - **Add cancel_reason field to civicrm_contribution_recur table
228 ([dev/core#830](https://lab.civicrm.org/dev/core/issues/830):
229 [13930](https://github.com/civicrm/civicrm-core/pull/13930),
230 [13999](https://github.com/civicrm/civicrm-core/pull/13999), and
231 [14164](https://github.com/civicrm/civicrm-core/pull/14164))**
233 Adds a recur cancel reason field `civicrm_contribution_recur.cancel_reason
236 - **Add ID / Test ID for payment processors to list - makes setup of IPNs much
237 easier! ([13869](https://github.com/civicrm/civicrm-core/pull/13869))**
239 Adds a column for payment processor id and test payment processor id to the
240 table of "Settings - Payment Processors" page so that users can more easily
243 - **Add payment_processor column/filter to recurring contribution report
244 ([13699](https://github.com/civicrm/civicrm-core/pull/13699))**
246 On the "Recurring Contribution" report, this adds "Payment Processor" as an
247 option to the Column and Filter tabs enabling users to filter this report by
248 "Payment Processor" and/or include a column for "Payment Processor".
250 - **Payment processor names: separate internal and external usage
251 ([dev/financial#2](https://lab.civicrm.org/dev/financial/issues/2):
252 [13995](https://github.com/civicrm/civicrm-core/pull/13995) and
253 [13954](https://github.com/civicrm/civicrm-core/pull/13954))**
255 Adds the field `payment_processor.title` to the schema and makes it
258 - **Support paying refunds
259 ([dev/financial#38](https://lab.civicrm.org/dev/financial/issues/38):
260 [13952](https://github.com/civicrm/civicrm-core/pull/13952)) BEGINS WORK**
262 Adds a PaymentProcessor.refund API which makes it possible for payment
263 processor extension authors to have their extensions issue refund payments.
265 - **Add minimal PaymentProcessor.pay api
266 ([13953](https://github.com/civicrm/civicrm-core/pull/13953))**
268 Adds a new api PaymentProcessor.pay.
270 - **Include lower level data when throwing an exception on payment processor.pay
271 ([14006](https://github.com/civicrm/civicrm-core/pull/14006))**
273 Improves error processing when using the PaymentProcessor.pay api.
275 - **Add billingblock region to event registration thankyou to match contribution
276 thankyou ([13762](https://github.com/civicrm/civicrm-core/pull/13762))**
278 This change makes it so one can use the same method to
279 replace billingblock for both event and contribution thankyou workflows.
281 - **CQ: Refactor Recurring Contribution Forms
282 ([dev/core#846](https://lab.civicrm.org/dev/core/issues/846):
283 [13940](https://github.com/civicrm/civicrm-core/pull/13940)) BEGINS WORK**
285 Begins work to refactor recurring contribution forms specifically by
286 rationalizing url variables into shared parent for recurring contribution
289 - **Use label not name for payment processor type
290 ([13885](https://github.com/civicrm/civicrm-core/pull/13885))**
292 On the "Settings - Payment Processor" page changes the "Processor Type" column
293 to use the label instead of the name.
295 - **Improve ContributionPage.validate api
296 ([13798](https://github.com/civicrm/civicrm-core/pull/13798))**
298 Makes it so that one can use the ContributionPage validate api on POST, for
299 example when using Paypal Checkout which calls a Promise, the
300 ContributionPage.validate api could be called to determine whether to proceed
301 after the button is pushed.
303 - **Add pseudoconstant support for payment_processor_id on ContributionRecur
304 ([13698](https://github.com/civicrm/civicrm-core/pull/13698))**
306 - **Allow payment processor to determine the text around 'continue'
307 ([13787](https://github.com/civicrm/civicrm-core/pull/13787))**
312 - **Expose Registered by Participant Name field to participant report
313 ([dev/core#835](https://lab.civicrm.org/dev/core/issues/835):
314 [13936](https://github.com/civicrm/civicrm-core/pull/13936))**
316 Exposes "Registered by Participant Name" field to participant reports.
320 - **Report results don't show inactive campaigns
321 ([dev/core#491](https://lab.civicrm.org/dev/core/issues/491):
322 [13383](https://github.com/civicrm/civicrm-core/pull/13383))**
324 Standardizes the way campaign fields are added to the "Mailing Summary"
327 - **Use Mailing.preview API to display mailing in browser
328 ([14163](https://github.com/civicrm/civicrm-core/pull/14163))**
330 This resolves an error on sites with Flexmailer when an anonymous visitor
331 views a mailing in the browser.
335 - **Membership form address fields for payment processors
336 ([13802](https://github.com/civicrm/civicrm-core/pull/13802))**
338 Standardizes processing and validating address parameters on the
341 ### Wordpress Integration
343 - **Cleaner front-end URLs
344 ([144](https://github.com/civicrm/civicrm-wordpress/pull/144))**
346 Makes Wordpress URLs have the same structure as Drupal URLs ex:
347 `https://domain.tld/civicrm/contribute/transact/?reset=1&id=1 as opposed to
348 old` Wordpress URLs that looked like
349 `https://domain.tld/civicrm/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=1`
351 ## <a name="bugs"></a>Bugs resolved
355 - **Add a test matrix for E2E tests on each CMS
356 ([infra/ops#878](https://lab.civicrm.org/infra/ops/issues/878):
357 [13810](https://github.com/civicrm/civicrm-core/pull/13810),
358 [13826](https://github.com/civicrm/civicrm-core/pull/13826) and
359 [13811](https://github.com/civicrm/civicrm-core/pull/13811)) CONTINUES WORK**
361 These changes resolve bugs when running E2E tests on WordPress moving the
362 project towards the goal of having a test matrix for E2E tests for each CMS
363 that CiviCRM is compatible with.
365 - **Use the correct membership date for the notification that appear after
366 completing the membership payment in case pre hook is used
367 ([dev/core#288](https://lab.civicrm.org/dev/core/issues/288):
368 [12583](https://github.com/civicrm/civicrm-core/pull/12583))**
370 This change ensures that any changes made to the membership dates using
371 hook_civicrm_pre are taken into account when generating the membership payment
374 - **Custom Field checkbox value renders empty if the values are randomly sorted
375 ([dev/core#499](https://lab.civicrm.org/dev/core/issues/499):
376 [13051](https://github.com/civicrm/civicrm-core/pull/13051))**
378 This change ensures that the values selected by a user for alphanumeric
379 checkbox custom fields render properly in view mode.
381 - **New Organisation: "Check For Matching Contact (S)" button does not find
382 matching records ([dev/core#570](https://lab.civicrm.org/dev/core/issues/570):
383 [13398](https://github.com/civicrm/civicrm-core/pull/13398))**
385 This change ensures that "Check For Matching Contact(s)" retrieves
386 contacts for users with limited permissions.
388 - **Soft Credits Multiply GIft Amount in Contribution Detail Report
389 ([dev/core#655](https://lab.civicrm.org/dev/core/issues/655):
390 [13906](https://github.com/civicrm/civicrm-core/pull/13906))**
392 This change updates the Contribution Detail report so that the "Total Amount"
393 field is not summed because the summing of the "Total Amount" field was
394 leading to the "Total Amount" field for contributions with multiple soft
395 credits to be multiplied by the number of soft credits.
397 - **Add new indexes when updating log table schema regardless of engine change
398 ([dev/core#664](https://lab.civicrm.org/dev/core/issues/664):
399 [13462](https://github.com/civicrm/civicrm-core/pull/13462))**
401 This change makes it so that when the alterLogTables hook defines a new index
402 it is applied regardless of the engine.
404 - **Contacts -> New Email give Unknown Error in Smarty when Allow Mail to be
405 sent from logged in contact's email address disabled
406 ([dev/core#688](https://lab.civicrm.org/dev/core/issues/688):
407 [13508](https://github.com/civicrm/civicrm-core/pull/13508))**
409 This change fixes an error "Warning: Smarty error" when attempting to send an
410 email from Contacts -> New Email for sites with "Allow Mail to be sent from
411 logged in user" disabled.
413 - **Edit contribution : wrong decimal separator on total_amount for
414 participant(s) ([dev/core#706](https://lab.civicrm.org/dev/core/issues/706):
415 [13554](https://github.com/civicrm/civicrm-core/pull/13554))**
417 This change ensures that the decimal separator on total_amount field for
418 participant(s) is displayed as it is configured on the site.
420 - **Contact Report: The filter by the custom datetime field with "Today" option
421 doesn't find matching contacts
422 ([dev/core#709](https://lab.civicrm.org/dev/core/issues/709):
423 [13567](https://github.com/civicrm/civicrm-core/pull/13567))**
425 This change ensures that on the Contact Report, when using a filter for a
426 custom datetime field the "Today" option properly filters results.
428 - **Address API incorrectly sets state_province_id if multiple countries have
429 same state name / abbreviation
430 ([dev/core#725](https://lab.civicrm.org/dev/core/issues/725):
431 [13938](https://github.com/civicrm/civicrm-core/pull/13938))**
433 This change fixes a regression so that the Address API country_id parameter
434 works with an abbreviation or numeric id.
436 - **Advanced Search: There is an Internal Server Error (500) when the user tries
437 to search by the "Mailing List" group type
438 ([dev/core#726](https://lab.civicrm.org/dev/core/issues/726):
439 [13603](https://github.com/civicrm/civicrm-core/pull/13603) and
440 [13888](https://github.com/civicrm/civicrm-core/pull/13888))**
442 Fixes a bug where searching by a group type (ex: Mailing List) on the Advanced
443 Search form would result in a fatal error so that this search runs as
446 - **Notes: It isn't possible to edit note if the user uploaded an image larger
447 than 3 MByte(s) ([dev/core#740](https://lab.civicrm.org/dev/core/issues/740):
448 [13640](https://github.com/civicrm/civicrm-core/pull/13640))**
450 This change makes it so that it is possible to edit a note field
451 that includes images larger than 3 MByte(s).
453 - **Custom field caching is not group-specific
454 ([dev/core#755](https://lab.civicrm.org/dev/core/issues/755):
455 [13900](https://github.com/civicrm/civicrm-core/pull/13900))**
457 Adds the $groupTitle parameter to the cache key for custom fields, so field
458 names that exist in multiple groups will be cached separately.
460 - **Warning: A non-numeric value encountered in ...
461 ([dev/core#788](https://lab.civicrm.org/dev/core/issues/788):
462 [13795](https://github.com/civicrm/civicrm-core/pull/13795))**
464 This change fixes several warnings "Warning: A non-numeric value encountered
465 in ..." on contribution pages & event registrations forms.
467 - **PHP Warning "explode() expects parameter 2 to be string, array given" for
468 multi-value country fields
469 ([dev/core#795](https://lab.civicrm.org/dev/core/issues/795):
470 [13858](https://github.com/civicrm/civicrm-core/pull/13858))**
472 Fixes a PHP warning when updating a multiselect country field.
474 - **Prefix/suffix select2 renders oddly on public-facing pages
475 ([dev/core#798](https://lab.civicrm.org/dev/core/issues/798):
476 [13816](https://github.com/civicrm/civicrm-core/pull/13816))**
478 This change makes the Prefix/suffix select2's render full height (as opposed
479 to squished) in contribution/event profiles.
481 - **DB Error:: Already exists during renewing membership automatically
482 ([dev/core#806](https://lab.civicrm.org/dev/core/issues/806):
483 [13852](https://github.com/civicrm/civicrm-core/pull/13852))**
485 Fixes a DB error "already exists" when recording recurring payments with taxes
488 - **Autocomplete select list disabled options
489 ([dev/core#811](https://lab.civicrm.org/dev/core/issues/811):
490 [13859](https://github.com/civicrm/civicrm-core/pull/13859))**
492 This change ensures that for select fields with autocomplete, only enabled
493 options autocomplete.
495 - **Search results: Actions: Export contacts: DB Error: Syntax error occurs when
496 not all necessary fields are selected
497 ([dev/core#819](https://lab.civicrm.org/dev/core/issues/819):
498 [13889](https://github.com/civicrm/civicrm-core/pull/13889))**
500 Resolves a fatal database error when attempting to export contacts without
501 selecting any fields to be exported.
503 - **Value in the "Contact Type" field disappears when the user tries to edit
504 Contact Details ([dev/core#823](https://lab.civicrm.org/dev/core/issues/823):
505 [13945](https://github.com/civicrm/civicrm-core/pull/13945))**
507 Ensures that when a user uses a profile with a contact sub type field to
508 update a contact that the contact sub type field pre-populates as expected.
510 - **Notice error while creating smart group using Contribution Aggregate custom
511 search ([dev/core#837](https://lab.civicrm.org/dev/core/issues/837):
512 [13921](https://github.com/civicrm/civicrm-core/pull/13921))**
514 Resolves "Notice: Undefined index:" errors when creating a smart group using
515 Contribution Aggregate custom search.
517 - **Notice error when deleting profile
518 ([dev/core#840](https://lab.civicrm.org/dev/core/issues/840):
519 [13926](https://github.com/civicrm/civicrm-core/pull/13926))**
521 Resolves a "Undefined property" notice when deleting a profile.
523 - **CQ: Use Guzzle as our preferred way to retrieve via http
524 ([dev/core#849](https://lab.civicrm.org/dev/core/issues/849):
525 [13946](https://github.com/civicrm/civicrm-core/pull/13946))**
527 Replaces get_headers functions call with Guzzle HTTP request to prevent timing
530 - **Queries combining multiple text labels using REGEXP do not escape regular
531 expression metacharacters
532 ([dev/core#433](https://lab.civicrm.org/dev/core/issues/433):
533 [12998](https://github.com/civicrm/civicrm-core/pull/12998))**
535 Ensures that querying for fee levels that contain regex metacharacters will
538 - **Fix status type (error, not fail) for CRM_Core_Session::setStatus
539 ([13943](https://github.com/civicrm/civicrm-core/pull/13943))**
541 Fixes an incorrect status for setMessage which was using 'fail' (which is not
542 a valid status) instead of 'error'.
544 - **Covert the CRM_Core_Error::fatal calls to exceptions when trying to access
545 Contact Photos ([13917](https://github.com/civicrm/civicrm-core/pull/13917))**
547 Cleaner errors when attempting to access contact photos fails.
549 - **CiviCRM API, lookup state_province_id options based on country parameter if
550 present, or default country
551 ([13596](https://github.com/civicrm/civicrm-core/pull/13596))**
553 Ensures the CiviCRM Address API correctly sets state_province_id for states
554 whose name/abbreviation exist in multiple countries.
556 - **Fix php 7.2 count notice
557 ([13877](https://github.com/civicrm/civicrm-core/pull/13877))**
559 Fixes a "Warning: count()" error on the "Import Contacts" Summary step screen.
561 - **New Organisation: "Contact Type" dropdown disappears when fields validation
562 occurs ([dev/core#699](https://lab.civicrm.org/dev/core/issues/699):
563 [13545](https://github.com/civicrm/civicrm-core/pull/13545))**
565 Fixes a bug where when creating a new organization, if the form fails
566 validation the "Contact Sub Type" dropdown disappears.
568 - **Fix contact.merge api to pass check_permissions parameter through to the
569 deeper layer ([13807](https://github.com/civicrm/civicrm-core/pull/13807))**
571 Fixes a bug where calling Contact.merge from php will leave the merged contact
572 unmerged if the logged in user does not have the delete contacts permission
574 - **checkEditInboundEmailsPermissions should be a static function
575 ([13805](https://github.com/civicrm/civicrm-core/pull/13805))**
577 - **DB error "no such field" when executing actions on a sorted contact search
578 result with search profile
579 ([dev/core#502](https://lab.civicrm.org/dev/core/issues/502):
580 [13884](https://github.com/civicrm/civicrm-core/pull/13884))**
582 - **Transfer picks up the deleted contact ID basically transferring to the wrong
583 contact ([dev/core#314](https://lab.civicrm.org/dev/core/issues/314):
584 [12639](https://github.com/civicrm/civicrm-core/pull/12639))**
586 - **Fix bug whereby sorting by state province gives an error in search builder
587 ([13748](https://github.com/civicrm/civicrm-core/pull/13748))**
589 - **Fix Contact.create calls to respect passed in variables & variables set via
590 hook for sort_name & display_name
591 ([13863](https://github.com/civicrm/civicrm-core/pull/13863))**
593 - **Do not cause a fatal error if no contact_id field for a note is filled in
594 when viewing contact notes
595 ([13910](https://github.com/civicrm/civicrm-core/pull/13910))**
597 - **Disable phpcs checking in the Crypt files where mcrypt functions are
598 ([14031](https://github.com/civicrm/civicrm-core/pull/14031))**
600 - **Fix 4.7.31 Upgrade in multilingual mode
601 ([14003](https://github.com/civicrm/civicrm-core/pull/14003))**
603 - **Optimise the loading of the CiviCRM Deduplication Exception page
604 ([13435](https://github.com/civicrm/civicrm-core/pull/13435))**
606 - **Unfork Zetacomponents mail and use patch to apply differences
607 ([13934](https://github.com/civicrm/civicrm-core/pull/13934))**
609 - **Update lockfile to take into account of civicrm/zetacomponents-mail#4 being
610 merged ([13822](https://github.com/civicrm/civicrm-core/pull/13822))**
612 - **Upgrade zetacomponents/base and zetacomponents/mail
613 ([13799](https://github.com/civicrm/civicrm-core/pull/13799))**
615 - **Smart group with uf_group_id does not load contacts with same search profile
616 ([dev/core#771](https://lab.civicrm.org/dev/core/issues/771):
617 [13742](https://github.com/civicrm/civicrm-core/pull/13742))**
619 - **Fix Deprecation notice for use of `while` in PHP7.2 in bin/cli.class.php
620 ([dev/core#907](https://lab.civicrm.org/dev/core/issues/907):
621 [14155](https://github.com/civicrm/civicrm-core/pull/14155))**
625 - **PR 13333 breaks the Save and New button on a new case
626 ([dev/core#904](https://lab.civicrm.org/dev/core/issues/904):
627 [14145](https://github.com/civicrm/civicrm-core/pull/14145))**
629 This reverts a change making the Save and New button `submitOnce`, as that
630 prevented the button from opening a new case form after saving.
632 - **Creating a new relationship type while editing case type definition adds a
633 blank row in the roles section
634 ([dev/core#784](https://lab.civicrm.org/dev/core/issues/784):
635 [13785](https://github.com/civicrm/civicrm-core/pull/13785))**
637 - **PHP warnings on Case Dashboard and Find Cases
638 ([13998](https://github.com/civicrm/civicrm-core/pull/13998))**
642 - **Can't self-service cancel a recurring contribution made while you're logged
643 in ([dev/core#571](https://lab.civicrm.org/dev/core/issues/571):
644 [13237](https://github.com/civicrm/civicrm-core/pull/13237))**
646 This change makes it so that users without "edit contributions" permission can
647 edit their own recurring contribution subscriptions if they are logged in,
648 before this change they could only edit their own contribution subscriptions
649 thru a checksum link.
651 - **Possible paypal fix to avoid sending 500 errors from ipn triggerred by
653 ([13867](https://github.com/civicrm/civicrm-core/pull/13867))**
655 Fixes paypal system sending a warning email when there is a failed IPN call
656 (500 errors from ipn triggered by non-recurring payment).
658 - **Missing links to cancel recurring payments (regression .. sorta)
659 ([dev/core#704](https://lab.civicrm.org/dev/core/issues/704):
660 [13935](https://github.com/civicrm/civicrm-core/pull/13935))**
662 Fixes a 5.8 regression where the cancel link became unavailable on recurring
663 contributions with no attached payment processor id.
665 - **Improve flushing after creating a processor so it can be used for a
666 recurring in the same run
667 ([14009](https://github.com/civicrm/civicrm-core/pull/14009))**
669 This change ensures tests run properly by flushing caches when creating a
672 - **Flush ContributionRecur static cache when flushing processors
673 ([13962](https://github.com/civicrm/civicrm-core/pull/13962))**
675 Ensures a (new) static cache is flushed when creating a processor, mostly
676 useful for unit testing.
678 - **Display test contributions when viewing contributions related to a test
679 recurring contribution
680 ([13779](https://github.com/civicrm/civicrm-core/pull/13779))**
684 - **Cancelling or An Error during event registration payment should cancel all
685 additional participates
686 ([dev/core#253](https://lab.civicrm.org/dev/core/issues/253):
687 [12457](https://github.com/civicrm/civicrm-core/pull/12457))**
689 This fixes a bug where if a user was registering for an event with additional
690 participants, and for some reason the payment failed or the user decided to
691 cancel the payment, only the main user participant record was set to
692 "canceled", the rest of the additional participants would have the status
693 "pending incomplete transaction" so that all participant statuses are changed
696 - **Event Cart: Fix PHP 7.2 fatal error (pass by ref)
697 ([13927](https://github.com/civicrm/civicrm-core/pull/13927))**
699 Fixes a Fatal error when using Event cart and PHP 7.2, specifically when
702 - **CRM/Event - Fix participant note search parameter being ignored
703 ([13697](https://github.com/civicrm/civicrm-core/pull/13697))**
705 This change ensures that when searching by "Participant Note" on the "Search
706 Builder form the filter is applied.
708 - **BAO_Participant - Use default status if not specified for create
709 ([13875](https://github.com/civicrm/civicrm-core/pull/13875))**
711 This change fixes a api4 test failure by ensuring that the default value of
712 'status_id' is respected by the Participant BAO. Before this change the
713 'status_id' had a default value and thus was not required but the BAO would
714 not work correctly if a 'status_id' was not supplied. After this change the
715 'status_id' default is respected and the BAO works regardless of whether the
716 'status_id' is supplied.
720 - **PHP Error on Grant Detail Report
721 ([13883](https://github.com/civicrm/civicrm-core/pull/13883))**
723 Fixes a PHP error when viewing the "Grant Detail Report" for sites running PHP
728 - **Do not track CSS URLs
729 ([dev/core#836](https://lab.civicrm.org/dev/core/issues/836):
730 [13920](https://github.com/civicrm/civicrm-core/pull/13920))**
732 Ensures CiviMail does not convert css URLs into trackable URLs.
734 - **Restore support for preview of "mailing"/"action" tokens via
735 TokenProcessor/Flexmailer
736 ([14156](https://github.com/civicrm/civicrm-core/pull/14156))**
740 - **Disabling or deleting Expired status breaks membership status update
741 ([13259](https://github.com/civicrm/civicrm-core/pull/13259))**
743 This change ensures that deleting, disabling or renaming the "Expired"
744 membership status does not cause issues when running the "Membership status
745 processor" scheduled job. Before this change deleting, disabling or renaming
746 the "Expired" membership status would result in the "Membership status
747 processor" scheduled job failing with the message `Finished execution of
748 Membership status processor with result: Failure, Error message: A fatal error
749 was triggered: One of parameters (value: ) is not of the type Integer`.
751 - **Fatal error to exception on Membership BAO
752 ([13774](https://github.com/civicrm/civicrm-core/pull/13774))**
754 This change improves experience by throwing an exception instead of a fatal
757 ### Backdrop Integration
759 - **civicrm/admin/setting/uf - Fix advice about Backdrop Views
761 ([13803](https://github.com/civicrm/civicrm-core/pull/13803))**
763 This change updates the advice for configuring views on the
764 `civicrm/admin/setting/uf` form so that it works for Backdrop sites.
766 ### Drupal Integration
768 - **Drupal8: Can't upload images via CKEditor/kcfinder
769 ([dev/drupal#42](https://lab.civicrm.org/dev/drupal/issues/42):
770 [242](https://github.com/civicrm/civicrm-packages/pull/242))**
772 Makes it so on Drupal 8 sites users can upload and browse images in KCFinder.
774 ## <a name="misc"></a>Miscellany
776 - **Fix e-notice in IDS
777 ([247](https://github.com/civicrm/civicrm-packages/pull/247))**
779 - **Update 7.x Drupal code to be that of the new coder style
780 ([571](https://github.com/civicrm/civicrm-drupal/pull/571))**
782 - **Fix up to newer coder style
783 ([69](https://github.com/civicrm/civicrm-backdrop/pull/69))**
785 - **Remove now-obsolete additionalFromClause parameter from prepareOrderBy
786 ([13874](https://github.com/civicrm/civicrm-core/pull/13874))**
788 - **Remove switch statement that no longer switches
789 ([13886](https://github.com/civicrm/civicrm-core/pull/13886))**
791 - **Add unit test for exporting with incomplete data
792 ([13904](https://github.com/civicrm/civicrm-core/pull/13904))**
795 ([13861](https://github.com/civicrm/civicrm-core/pull/13861))**
797 - **Add a class to handle test entities consistently
798 ([13814](https://github.com/civicrm/civicrm-core/pull/13814))**
800 - **Fix up composer for composer 2.0 compatibility
801 ([13872](https://github.com/civicrm/civicrm-core/pull/13872))**
803 - **Remove log files as now supplied by composer
804 ([244](https://github.com/civicrm/civicrm-packages/pull/244), [245](https://github.com/civicrm/civicrm-packages/pull/245))**
806 - **Remove htmlpurifier from within the IDS to facilitate it being provided by
807 composer ([246](https://github.com/civicrm/civicrm-packages/pull/246))**
809 - **Remove Log.php require_once statements
810 ([13842](https://github.com/civicrm/civicrm-core/pull/13842))**
812 - **Remove amavisd now that it is removed from the packages repository
813 ([243](https://github.com/civicrm/civicrm-packages/pull/243), [13841](https://github.com/civicrm/civicrm-core/pull/13841))**
815 - **Upgrade htmlpurifier to 4.10 to support PHP7.2 and install via composer
816 ([13840](https://github.com/civicrm/civicrm-core/pull/13840))**
818 - **Refactor CRM_Contact_Form_Task_PDFLetterCommon
819 ([13892](https://github.com/civicrm/civicrm-core/pull/13892))**
821 - **Reformat test files for array format
822 ([13862](https://github.com/civicrm/civicrm-core/pull/13862))**
824 - **Logging - attempt to fix tests
825 ([13832](https://github.com/civicrm/civicrm-core/pull/13832))**
827 - **Try Reverting commit removing require once to see if it fixes the problem
828 for api4 ([13870](https://github.com/civicrm/civicrm-core/pull/13870))**
831 ([13823](https://github.com/civicrm/civicrm-core/pull/13823))**
833 - **Add shared parent for ContributionRecur forms
834 ([13931](https://github.com/civicrm/civicrm-core/pull/13931))**
836 - **Update PHPWord Patches to match the latest versions of their code
837 ([13923](https://github.com/civicrm/civicrm-core/pull/13923))**
839 - **Extract assignPaymentFields
840 ([13957](https://github.com/civicrm/civicrm-core/pull/13957))**
842 - **Move code to assign tax information into shared parent
843 ([13899](https://github.com/civicrm/civicrm-core/pull/13899))**
845 - **Update test to reflect recently merged PR lower permission to access
846 dedupecheck ([13866](https://github.com/civicrm/civicrm-core/pull/13866))**
848 - **Test fix ([13856](https://github.com/civicrm/civicrm-core/pull/13856))**
850 - **Add unit testing for activity creation when cancelling a recurring, related
851 cleanup ([14000](https://github.com/civicrm/civicrm-core/pull/14000))**
853 - **Improve test coverage for CRM_Utils_Color::getRgb()
854 ([14007](https://github.com/civicrm/civicrm-core/pull/14007))**
856 - **Add in tests of purifying HTML output
857 ([13845](https://github.com/civicrm/civicrm-core/pull/13845))**
859 - **Remove more instances of ->free()
860 ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
861 [13786](https://github.com/civicrm/civicrm-core/pull/13786)) CONTINUES WORK**
863 - **(NFC) Ensure phpcs ignores eval notice in these files as it is required
864 ([14032](https://github.com/civicrm/civicrm-core/pull/14032))**
866 - **(NFC) Lint additional php files up to the new coder standard
867 ([14025](https://github.com/civicrm/civicrm-core/pull/14025))**
869 - **Port code style fixes to 5.13 from master
870 ([14026](https://github.com/civicrm/civicrm-core/pull/14026))**
872 - **(NFC) Update CRM/Core CRM/Custom CRM/Dedupe to match the new coder style
873 ([14023](https://github.com/civicrm/civicrm-core/pull/14023))**
875 - **(NFC) Update CRM/Event folder for the new coder style
876 ([14019](https://github.com/civicrm/civicrm-core/pull/14019))**
878 - **(NFC) update CRM/Contribute to be the new coder standard
879 ([14021](https://github.com/civicrm/civicrm-core/pull/14021))**
881 - **(NFC) Update CRM/Friend CRM/Grant CRM/Group CRM/Mailing to be up to d…
882 ([14016](https://github.com/civicrm/civicrm-core/pull/14016))**
884 - **(NFC) Update CRM/Badge CRM/Campaign CRM/Case to be up to date with a …
885 ([14017](https://github.com/civicrm/civicrm-core/pull/14017))**
887 - **(NFC) Update CRM/Cxn CRM/Dashlet CRM/Export CRM/Extension and CRM/Fin…
888 ([14018](https://github.com/civicrm/civicrm-core/pull/14018))**
890 - **[NFC] Short array syntax - auto convert settings dir
891 ([14005](https://github.com/civicrm/civicrm-core/pull/14005))**
893 - **(NFC) SchemaStructure.php - Fix up mismatch between stored+generated code
894 ([14046](https://github.com/civicrm/civicrm-core/pull/14046))**
896 - **Arg I put these fixes in 5.12 & master while trying for 5.13
897 ([14036](https://github.com/civicrm/civicrm-core/pull/14036))**
899 - **(NFC) Update CRM/Member CRM/Note CRM/Logging CRM/Import and CRM/Price…
900 ([13992](https://github.com/civicrm/civicrm-core/pull/13992))**
902 - **(REF) CRM_Core_Resources - Move hook declaration from addCoreResources() to
903 Container.php ([14008](https://github.com/civicrm/civicrm-core/pull/14008))**
905 - **(NFC) Update CRM/Activity CRM/Admin and CRM/Batch folders to be the f…
906 ([13990](https://github.com/civicrm/civicrm-core/pull/13990))**
908 - **(NFC) Update coding style in PCP, Pledge, Profile, Queue, Report folders
909 ([13987](https://github.com/civicrm/civicrm-core/pull/13987))**
911 - **(NFC) Update CRM/SMS/ CRM/UF/ CRM/Upgrade/ CRM/Tag/ to be up to speed…
912 ([13986](https://github.com/civicrm/civicrm-core/pull/13986))**
914 - **(NFC) Bring CRM/Utils folder up to future coder standards
915 ([13985](https://github.com/civicrm/civicrm-core/pull/13985))**
917 - **(NFC) Set _log and _tableName variables to be public
918 ([13988](https://github.com/civicrm/civicrm-core/pull/13988))**
921 ([13960](https://github.com/civicrm/civicrm-core/pull/13960))**
923 - **Update Unit test styling to cover the future coder version
924 ([13983](https://github.com/civicrm/civicrm-core/pull/13983))**
926 - **(NFC) Fix location of comment to match future coder version
927 ([13984](https://github.com/civicrm/civicrm-core/pull/13984))**
929 - **(NFC) Bring up API folder to style of future coder checker
930 ([13980](https://github.com/civicrm/civicrm-core/pull/13980))**
932 - **(NFC) Upgrade Civi Folder to the new coder version
933 ([13981](https://github.com/civicrm/civicrm-core/pull/13981))**
935 - **(NFC) Update various files to pass future civicrm/coder ruleset
936 ([13979](https://github.com/civicrm/civicrm-core/pull/13979))**
938 - **(NFC) Update various files to pass current phpcs
939 ([13978](https://github.com/civicrm/civicrm-core/pull/13978))**
941 - **[NFC] Reformat tricksy file CRM_Mailing_BAO_Mailing
942 ([13973](https://github.com/civicrm/civicrm-core/pull/13973))**
944 - **[NFC] Reformat tricksy file CRM/Contribute/Import/Form/MapField
945 ([13974](https://github.com/civicrm/civicrm-core/pull/13974))**
947 - **[NFC] short array syntax Autoformat - just the tricksy bits of CRM/Activity
948 ([13969](https://github.com/civicrm/civicrm-core/pull/13969))**
950 - **[NFC] array format tricksie file CRM/Admin/Form/MessageTemplates
951 ([13970](https://github.com/civicrm/civicrm-core/pull/13970))**
953 - **[NFC] array format tricksie file CRM_Utils_Rest
954 ([13971](https://github.com/civicrm/civicrm-core/pull/13971))**
956 - **[NFC] array formatting tricksy tricksie file (another CRM/UF/Form/Group.php)
957 ([13972](https://github.com/civicrm/civicrm-core/pull/13972))**
959 - **[NFC] short array syntax Autoformat - just CRM/ACL dir
960 ([13968](https://github.com/civicrm/civicrm-core/pull/13968))**
962 - **[NFC] Short array syntax - auto-format CRM directory
963 ([13915](https://github.com/civicrm/civicrm-core/pull/13915))**
965 - **[REF] extract token functions
966 ([13967](https://github.com/civicrm/civicrm-core/pull/13967))**
968 - **Test fix ([13949](https://github.com/civicrm/civicrm-core/pull/13949))**
970 - **Payment test cleanup
971 ([13924](https://github.com/civicrm/civicrm-core/pull/13924))**
973 - **(NFC) Fix mode on files
974 ([13933](https://github.com/civicrm/civicrm-core/pull/13933))**
976 - **[NFC] Cleanup DAO factory classes for code standards
977 ([13922](https://github.com/civicrm/civicrm-core/pull/13922))**
979 - **NFC - Short array syntax - auto-convert ang dir
980 ([13912](https://github.com/civicrm/civicrm-core/pull/13912))**
982 - **NFC - Short array syntax - auto-convert Civi dir
983 ([13911](https://github.com/civicrm/civicrm-core/pull/13911))**
985 - **[NFC] Short array syntax - auto-convert api dir
986 ([13909](https://github.com/civicrm/civicrm-core/pull/13909))**
988 - **Minor code cleanup
989 ([13839](https://github.com/civicrm/civicrm-core/pull/13839))**
991 - **Minor code cleanup - remove unnecessary ids declaration
992 ([13838](https://github.com/civicrm/civicrm-core/pull/13838))**
994 - **Code cleanup on membership block loop
995 ([13851](https://github.com/civicrm/civicrm-core/pull/13851))**
997 - **[NFC] IDE formatting only
998 ([13896](https://github.com/civicrm/civicrm-core/pull/13896))**
1000 - **Minor code cleanups around invoicing assignment
1001 ([13857](https://github.com/civicrm/civicrm-core/pull/13857))**
1003 - **[nfc] Reset entire session object between tests
1004 ([13878](https://github.com/civicrm/civicrm-core/pull/13878))**
1006 - **Fixing formatting of contributors section
1007 ([13860](https://github.com/civicrm/civicrm-core/pull/13860))**
1009 - **[NFC] code formatting only
1010 ([13846](https://github.com/civicrm/civicrm-core/pull/13846))**
1012 - **[NFC] Code reformatting
1013 ([13849](https://github.com/civicrm/civicrm-core/pull/13849))**
1015 - **Add comments about usage for doPayment() function
1016 ([13812](https://github.com/civicrm/civicrm-core/pull/13812))**
1018 - **[nfc] Attempt to improve false negatives on Logging test
1019 ([13829](https://github.com/civicrm/civicrm-core/pull/13829))**
1021 - **[NFC] remove unnecessary variable
1022 ([13836](https://github.com/civicrm/civicrm-core/pull/13836))**
1024 - **REF Extract case action links into a separate function to facilitate
1025 refactoring ([13793](https://github.com/civicrm/civicrm-core/pull/13793))**
1027 - **NFC Whitespace cleanup MembershipBlock.tpl
1028 ([13830](https://github.com/civicrm/civicrm-core/pull/13830))**
1030 - **Further cleanup on getRelatedMemberships - just get them with the api
1031 ([13797](https://github.com/civicrm/civicrm-core/pull/13797))**
1033 - **[REF] small cleanups on payment.create flow.
1034 ([13778](https://github.com/civicrm/civicrm-core/pull/13778))**
1036 - **[NFC] reformat Contact api file to switch to new array formatting
1037 ([13806](https://github.com/civicrm/civicrm-core/pull/13806))**
1039 - **[REF] minor code simplification - remove over-handling of amount comp with
1040 zero ([13783](https://github.com/civicrm/civicrm-core/pull/13783))**
1042 - **Attempted test fix
1043 ([13791](https://github.com/civicrm/civicrm-core/pull/13791))**
1045 - **Remove reference to google checkout
1046 ([13784](https://github.com/civicrm/civicrm-core/pull/13784))**
1048 - **[NFC] template whitespace cleanup
1049 ([13782](https://github.com/civicrm/civicrm-core/pull/13782))**
1051 - **(NFC) Update for compliance with next phpcs standard
1052 ([577](https://github.com/civicrm/civicrm-drupal/pull/577))**
1054 - **Lint .inc files in Drupal module folder to match newer coder standard
1055 ([574](https://github.com/civicrm/civicrm-drupal/pull/574))**
1057 - **(NFC) Get phpcs to ignore the use of eval in this file as it is required
1058 ([575](https://github.com/civicrm/civicrm-drupal/pull/575))**
1060 - **(NFC) Update for compliance with next phpcs standard
1061 ([72](https://github.com/civicrm/civicrm-backdrop/pull/72))**
1063 - **(NFC) Lint .inc files and ensure that the eval usage in tests/phpunit…
1064 ([71](https://github.com/civicrm/civicrm-backdrop/pull/71))**
1066 ## <a name="credits"></a>Credits
1068 This release was developed by the following code authors:
1070 AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck; Agileware - Alok Patel,
1071 Francis Whittle; Australian Greens - Seamus Lee; calibrate - Wouter Hechtermans;
1072 Christian Wach; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
1073 CompuCorp - Omar Abu Hussein; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic
1074 Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool;
1075 Fuzion - Jitendra Purohit; GreenPeace Central and Eastern Europe - Patrick
1076 Figel; JMA Consulting - Monish Deb; Megaphone Technology Consulting - Jon
1077 Goldberg; MJW Consulting - Matthew Wire; Pradeep Nayak; Skvare - Mark Hanna;
1078 Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Timbsoft Technologies -
1079 Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
1081 Most authors also reviewed code for this release; in addition, the following
1082 reviewers contributed their comments:
1084 Agileware - Justin Freeman; Aniessh Sethh; Artful Robot - Rich Lott; British
1085 Humanist Association - Andrew West; Circle Interactive - Dave Jenkins; Shitij
1086 Gugnani; Coop SymbioTIC - Samuel Vanhove; GValFr35; JMA Consulting - Joe Murray;
1087 Joinery - Allen Shaw; Aivars; Korlon - Stuart Gaston; Lighthouse Design and
1088 Consulting - Brian Shaughnessy; mcuradoc; Onyemenam Ndubuisi; Tadpole
1089 Collective - Kevin Cristiano
1091 ## <a name="feedback"></a>Feedback
1093 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
1094 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1095 and contact `@agh1`.