Tim Otten [Wed, 15 Jul 2020 03:38:09 +0000 (20:38 -0700)]
Civi::dispatcher() - Extend protection against pre-boot hooks
Before: The protection extends up until `createLockManager()`
After: The protection extends up until `CRM_Extension_System...->register()`
Tim Otten [Tue, 14 Jul 2020 07:06:46 +0000 (00:06 -0700)]
Civi::dispatcher() - Close loopholes that occur during early boot
Before
------
* The event-dispatcher is fully instantiated as a container service (`Container::createEventDispatcher()`).
* It is not possible to add listeners to `Civi::dispatcher()` before the container is instantiated.
* It is not possible to add listeners to `Civi::dispatcher()` in the top-level logic of an extension file (`myext.php`)
* There is a distinction between "pre-boot" hooks (`hook_civicrm_container` or `hook_civicrm_entityType`) and
normal hooks. Pre-boot hooks do not work with `Civi::dispatcher()`.
After
-----
* The event-dispatcher is instantiated as boot service (ie very early during bootstrap).
* To preserve compatibility (with `RegisterListenersPass`, with any downstream modifications of `createEventDispatcher`,
and with any dependency-injection) the event-dispatcher will still use `createEventDispatcher()` for extra
intialization.
* It is possible to add listeners to `Civi::dispatcher()` in several more places, e.g.
at the top-level of an extension's `.php` file and in `CRM_Utils_System_*::initialize()`
* There is no distinction between "preboot" hooks and normal hooks. `Civi::dispatcher()` can
register listeners for all hooks.
* To ensure that we do not accidentally re-create "preboot" hooks, this patch enables a
"dispatch policy" => if any hook fires too early, it will throw an exception.
Tim Otten [Tue, 14 Jul 2020 10:13:19 +0000 (03:13 -0700)]
hook_civicrm_entityTypes - Remove superfluous early-stage invocation
Before
------
TLDR: There are superfluous queries+hooks in every bootstrap. Specifically:
* During early stages of bootstrap, the extension system loads the `CRM_Extension_Manager_*` classes.
* The constructors for these classes lookup the option-group IDs in anticipation that they'll beeded.
* The lookup uses a helper method which relies on `hook_entityTypes`.
* Since all this happens during early bootstrap, `hook_entityTypes` becomes a preboot hook.
* But it's silly - because we don't actually these groupIds. They're only used during installation/uninstallation
of obscure extensions.
After
-----
TLDR: Less superfluous queries+hooks.
* The `CRM_Extension_Manager_*` classes do not trigger any extraneous OG lookkups during bootstrap.
* The `CRM_Extension_Manager_*` will only do the query when it really needs to.
* `hook_entityTypes` fires later in bootstrap - when more services are available.
Coleman Watts [Fri, 10 Jul 2020 13:36:06 +0000 (09:36 -0400)]
Search extension - improve results display
Seamus Lee [Fri, 10 Jul 2020 01:05:01 +0000 (11:05 +1000)]
Merge pull request #17783 from pradpnayak/REF-1
getLoggedInContactID() is a static function
Eileen McNaughton [Fri, 10 Jul 2020 00:06:57 +0000 (12:06 +1200)]
Merge pull request #17782 from civicrm/5.28
5.28
Eileen McNaughton [Fri, 10 Jul 2020 00:05:11 +0000 (12:05 +1200)]
Merge pull request #17744 from eileenmcnaughton/repeat
dev/core#1679: Ensure Paypal IPN always updates the next scheduled payment date
Seamus Lee [Thu, 9 Jul 2020 21:52:44 +0000 (07:52 +1000)]
Merge pull request #17749 from totten/master-setup
Support for installing CiviCRM-Backdrop via "setup" UI
Pradeep Nayak [Thu, 9 Jul 2020 21:25:35 +0000 (22:25 +0100)]
getLoggedInContactID() is a static function
Seamus Lee [Thu, 9 Jul 2020 21:08:15 +0000 (07:08 +1000)]
Merge pull request #17779 from seamuslee001/nfc_php74_flexmailer
[NFC] Update flexmailer to be PHP7.4 compatible
Seamus Lee [Thu, 9 Jul 2020 21:01:57 +0000 (07:01 +1000)]
Merge pull request #17774 from civicrm/5.28
5.28
Coleman Watts [Thu, 9 Jul 2020 17:10:38 +0000 (13:10 -0400)]
Search extension - blur auto toggle on click
Coleman Watts [Thu, 9 Jul 2020 16:19:10 +0000 (12:19 -0400)]
Rename search base page class
colemanw [Thu, 9 Jul 2020 15:40:28 +0000 (11:40 -0400)]
Merge pull request #17765 from colemanw/dev/core#1853
dev/core#1853 - Fix validation errors when removing contact subtype
Coleman Watts [Thu, 9 Jul 2020 15:38:30 +0000 (11:38 -0400)]
Rename searchBuild to less ambiguous Create Search
Seamus Lee [Thu, 9 Jul 2020 03:25:36 +0000 (13:25 +1000)]
Merge pull request #17775 from colemanw/search
Add search extension
Seamus Lee [Thu, 9 Jul 2020 03:12:56 +0000 (13:12 +1000)]
[NFC] Update flexmailer to be PHP7.4 compatible
Coleman Watts [Wed, 8 Jul 2020 22:15:39 +0000 (18:15 -0400)]
Add search extension
Seamus Lee [Thu, 9 Jul 2020 00:07:40 +0000 (10:07 +1000)]
Merge pull request #17636 from MikeyMJCO/patch-5
[dev/core#750] Don't check server variables if we're running in CLI
Seamus Lee [Wed, 8 Jul 2020 23:45:25 +0000 (09:45 +1000)]
Merge pull request #17763 from eileenmcnaughton/dps
Remove PaymentExpress ipn class
Seamus Lee [Wed, 8 Jul 2020 23:19:13 +0000 (09:19 +1000)]
Merge pull request #17772 from seamuslee001/dev_core_1860
dev/core#1860 Fix installing on PHP7.3 Ubuntu 20.04 and MariaDB 10.3
Seamus Lee [Wed, 8 Jul 2020 23:17:27 +0000 (09:17 +1000)]
Merge pull request #17776 from totten/master-org-check
Status Checks - Use more specific label regarding "Domain"/"Organization" check
Tim Otten [Wed, 8 Jul 2020 22:01:24 +0000 (15:01 -0700)]
Status Checks - Use more specific label regarding "Domain"/"Organization" check
Before
------
Suppose you install CiviCRM anew. The installer shows a bulleted list of
things to do. One of those takes you to another, much longer list of things
to do. And *then* there's a popup on the sidebar which says you need to
"Complete Setup".
You say to yourself, "I thought that's what I was doing!" But you click it anyway.
That takes you to a page with another list of things to do, one of which is
to "Complete Setup". The text and link clarify that "Complete Setup"
actually means *set the name and address of the organization*.
After
-----
There are still several different pages telling you what to do after setup.
But at least the label is more precise. :)
Seamus Lee [Wed, 8 Jul 2020 22:08:35 +0000 (08:08 +1000)]
Merge pull request #17760 from seamuslee001/joomla_track_url
Ensure that when normal routing trackable urls and opens in Joomla go…
Seamus Lee [Wed, 8 Jul 2020 22:04:30 +0000 (08:04 +1000)]
dev/core#1860 Fix installing on PHP7.3 Ubuntu 20.04 and MariaDB 10.3
Eileen McNaughton [Wed, 8 Jul 2020 07:34:43 +0000 (19:34 +1200)]
Merge pull request #17770 from civicrm/5.28
5.28 to master
Eileen McNaughton [Wed, 8 Jul 2020 06:59:25 +0000 (18:59 +1200)]
Merge pull request #17768 from seamuslee001/flexmailer_distmaker
[NFC] Include flexmailer in distmaker
Seamus Lee [Wed, 8 Jul 2020 05:33:43 +0000 (15:33 +1000)]
[NFC] Include flexmailer in distmaker
Tim Otten [Wed, 8 Jul 2020 00:10:17 +0000 (17:10 -0700)]
Setup UI - Allow callers to wrap UI in their own page chrome. Clarify response format.
The general idiom for calling SetupController is like this:
```php
$ctrl = \Civi\Setup::instance()->createController()->getCtrl();
$ctrl->setUrls(...);
\Civi\Setup\BasicRunner::run($ctrl);
```
This changes the data exchanged between `BasicRunner` and `SetupController`
to allow more flexible runners. The `BasicRunner` is the only one currently
used by existing installers, so it's drop-in compatible.
Before
------
The `BasicRunner` calls `$ctrl->run(...)` and gets back an array with the response data
(`[0 => $headers, 1 => $body]`).
After
-----
The `BasicRunner` calls `$ctrl->run(...)` and gets back a `SetupResponse`. This
object provides the `[0]` and `[1]` keys (for backward compat), but it's better
to access the object properties (`$headers`, `$body`, etc).
It provides several additional properties - eg `$title`, `$assets`, `$code`.
Technical Details
------------------
This is a drop-in update for anything that uses `BasicRunner`.
Strictly speaking, if one wrote a different runner, it may or may not be
drop-in compatible. But since I don't think there are any others, it's not
really worth spending much energy on verifying.
The bump in `Setup::PROTOCOL` (`1.0` => `1.1`) indicates that old installers
should generally be forward compatible with this protocol. However, if one
writes a new installer and specifically uses the `SetupResponse` type,
then they should assert protocol `1.1`.
Tim Otten [Tue, 7 Jul 2020 21:59:37 +0000 (14:59 -0700)]
setup/ - Fix CSS loading on "finished" page. Split out "page.php".
The various `finished.*.php` files were outtputting the incorrect URL for
`template.css`. The code for outputting `template.css` is duplicated in a few files.
This commit fixes by extracting a helper (`renderPage()` / `page.php`) to encapsulate
that bit and reuse it for each page-view in the Setup UI.
Tim Otten [Tue, 7 Jul 2020 23:07:49 +0000 (16:07 -0700)]
Setup UI - Fix translation of post-install messages
Here's what happens:
- The "Setup" subsystem does its internal/partial bootstrap; it sets `$tsLocale` and uses `CRM_Core_I18n`. Hooray.
- The "Setup" initializes the database/settings and then does a full bootstrap. The full bootstrap step calls `applyLocale()`, which replaces the active `$tsLocale`... with the *unconfigured default*. Ooops.
- This step runs next - and it updates the DB setting. But we've already trampled `$tsLocale`. Calling `applyLocale()` a second time means we use the preferred `$tsLocale` again. Hooray.
colemanw [Tue, 7 Jul 2020 19:31:00 +0000 (15:31 -0400)]
Merge pull request #17754 from demeritcowboy/resourceurl-check
dev/drupal#114 and dev/core#1647 - Remove resource url status check
Seamus Lee [Tue, 7 Jul 2020 06:04:37 +0000 (16:04 +1000)]
Merge pull request #17750 from colemanw/upgradeBump
Bump minimum upgradable version to 4.4.7
Coleman Watts [Sat, 4 Jul 2020 20:43:29 +0000 (16:43 -0400)]
Bump minimum upgradable version to 4.4.7
Seamus Lee [Tue, 7 Jul 2020 02:17:51 +0000 (12:17 +1000)]
Only encode url if it is the front end in unit tests
Seamus Lee [Tue, 7 Jul 2020 02:07:38 +0000 (12:07 +1000)]
Merge pull request #17767 from demeritcowboy/loss-of-face
[REF] Unused interface CRM_Report_Interface
Seamus Lee [Tue, 7 Jul 2020 02:06:29 +0000 (12:06 +1000)]
Merge pull request #17256 from demeritcowboy/test-for-16559
[TEST] Failing test for PR 16559
demeritcowboy [Mon, 6 Jul 2020 23:56:07 +0000 (19:56 -0400)]
unused file
Seamus Lee [Mon, 6 Jul 2020 23:09:16 +0000 (09:09 +1000)]
Merge pull request #17764 from jaapjansma/caseActivity
update to pr 16559
Coleman Watts [Mon, 6 Jul 2020 18:56:02 +0000 (14:56 -0400)]
dev/core#1853 - Fix validation errors when removing contact subtype
Jaap Jansma [Mon, 6 Jul 2020 14:33:54 +0000 (16:33 +0200)]
update to pr 16559
colemanw [Mon, 6 Jul 2020 13:27:46 +0000 (09:27 -0400)]
Merge pull request #17761 from eileenmcnaughton/acl
Remove unused, deprecated functions
Matthew Wire [Mon, 6 Jul 2020 10:02:20 +0000 (11:02 +0100)]
Merge pull request #17745 from artfulrobot/artfulrobot-findfiles
Improve efficiency of findFiles
Tim Otten [Mon, 6 Jul 2020 08:46:37 +0000 (01:46 -0700)]
Drupal.civi-setup.php - Don't assume that `$language` is available
Tim Otten [Mon, 6 Jul 2020 08:31:35 +0000 (01:31 -0700)]
finished.Drupal.php - Let it work!
Tim Otten [Mon, 6 Jul 2020 08:18:49 +0000 (01:18 -0700)]
FlushDrupal.civi-setup.php - Update to work with setup UI
Tim Otten [Sat, 4 Jul 2020 04:44:14 +0000 (21:44 -0700)]
FlushBackdrop.civi-setup.php - Update to work with setup UI
Tim Otten [Sat, 4 Jul 2020 03:52:18 +0000 (20:52 -0700)]
finished.Backdrop.php - Fix the FIXMEs. Align closer to finished.Drupal.php
Tim Otten [Sat, 4 Jul 2020 05:34:50 +0000 (22:34 -0700)]
setup/res/template.css - Fix "Sample Data" alignment
This rule appears to be targetted at "Components" section, but it actually affects the entire document
Consequently, the "Localization" and "Sample Data" segments bleed together weirdly.
Tim Otten [Sat, 4 Jul 2020 04:03:19 +0000 (21:03 -0700)]
setup/res/template.css - Twiddle column width
The aim is to have 3 columns (each 1/3 of the screen width) and allow for
some padding in between. Unfortunately, the current formulation is futzy.
In my browser, when viewing on Backdrop, the columns are just slightly too
wide (causing them to wrap prematurely).
There must be a better way to do this, but it's not my main issue right now.
Twiddling is better than status quo.
Tim Otten [Sat, 4 Jul 2020 03:54:49 +0000 (20:54 -0700)]
SetupController - Need better bootstrap to support localization
While trying the setup UI on Backdrop, I found that changing the language
led to a crash. The problem: it needed to load the `l10n` files, which led
to more path resolution, which led to failures - because `civicrm.settings.php`
hasn't been loaded. (It doesn't exist yet!)
Fortunately, most of the needful information is available. The
`Setup::init()` should have found the info and put it into `$model`. We
just need to load the configuration into the right globals/constants.
Tim Otten [Sat, 4 Jul 2020 03:51:31 +0000 (20:51 -0700)]
SetupController - If you install and then reload the install screen, re-render the finish message.
eileen [Mon, 6 Jul 2020 04:56:55 +0000 (16:56 +1200)]
Payment express - remove all other traces, bar the main class (pending further discussion)
eileen [Mon, 6 Jul 2020 04:46:54 +0000 (16:46 +1200)]
Remove PaymentExpress ipn class
I was able to establish that this was accidentally broken five years ago with this commit
https://github.com/civicrm/civicrm-core/commit/
204c86d59f0cfc4c4d917cc245fb41633d36916e#diff-b00e65c9829c27da8b34e35f2e64d9b6L114
Resulting in the ipn url of
http://dmaster.local/sites/all/modules/civicrm/extern/pxIPN.php?result=
00003100032465271fc8c82d94ad434d&userid=Fuzion_Dev
dying with the fatal error
Uncaught Error: Call to undefined method CRM_Core_Payment_PaymentExpressIPN::singleton() in /Users/eileenmcnaughton/buildkit/build/dmaster/sites/all/modules/civicrm/CRM/Core/Payment/PaymentExpressIPN.php on line 391
This means we can be sure the ipn code does not work & hence can't be in use and can remove it.
Can we remove the main class too? My thinking is that there could be old instances of the payment processor in
people's installs and that if we remove or de-activate the payment processor instance it could cause
other breakage.
However, I think we could alter the processor type in the upgrade script to have
CRM_Core_Manual as the class_name in place of 'Payment_PaymentExpress'
Seamus Lee [Mon, 6 Jul 2020 02:39:15 +0000 (12:39 +1000)]
Fix function declaration to ensure that passing in frontend variable doesn't cause htmlizing by accident in unit tests
eileen [Mon, 6 Jul 2020 01:14:39 +0000 (13:14 +1200)]
Remove unused, deprecated functions
These functions were deemed unused in January and deprecation warnings were added at that point.
Time to go
Seamus Lee [Mon, 6 Jul 2020 00:08:15 +0000 (10:08 +1000)]
Ensure that when normal routing trackable urls and opens in Joomla go to the frontend not administrator site
Eileen McNaughton [Sun, 5 Jul 2020 22:53:53 +0000 (10:53 +1200)]
Merge pull request #17746 from colemanw/apiExpHaving
APIv4 Explorer: Improve selection of fields for HAVING
Eileen McNaughton [Sun, 5 Jul 2020 22:51:18 +0000 (10:51 +1200)]
Merge pull request #17756 from demeritcowboy/unused-gencode-2
More unused functions in GenCode
Eileen McNaughton [Sun, 5 Jul 2020 22:47:55 +0000 (10:47 +1200)]
Merge pull request #17758 from mattwire/wpaclpermsphpnotice
Fix PHP notice on wordpress permissions form
Eileen McNaughton [Sun, 5 Jul 2020 22:47:04 +0000 (10:47 +1200)]
Merge pull request #17645 from MegaphoneJon/core-1826
core#1826: Ignore location_type_id when deduping postal address
Matthew Wire [Sun, 5 Jul 2020 16:38:00 +0000 (17:38 +0100)]
Fix PHP notice on wordpress ACL permissions form
Seamus Lee [Sun, 5 Jul 2020 08:45:07 +0000 (18:45 +1000)]
Merge pull request #17755 from demeritcowboy/test-activity-tag-search
[Unit Test] dev/core#1173 and dev/core#1827 - Test for activity tag search - PR 17655
Seamus Lee [Sun, 5 Jul 2020 05:02:51 +0000 (15:02 +1000)]
Merge pull request #17757 from colemanw/karmaTime
Convert CRM.utils.formatDate tests to karma
Coleman Watts [Sun, 5 Jul 2020 03:29:57 +0000 (23:29 -0400)]
Convert CRM.utils.formatDate tests to karma
Eileen McNaughton [Sun, 5 Jul 2020 03:11:09 +0000 (15:11 +1200)]
Merge pull request #17655 from samuelsov/lab1827
dev/core#1827 activity search - fixing search by tags
demeritcowboy [Sun, 5 Jul 2020 02:55:57 +0000 (22:55 -0400)]
unused functions
demeritcowboy [Sun, 5 Jul 2020 02:43:39 +0000 (22:43 -0400)]
test for activity tag search
Eileen McNaughton [Sun, 5 Jul 2020 02:33:30 +0000 (14:33 +1200)]
Merge pull request #17753 from demeritcowboy/unused-gencode
Unused functions in GenCode
Eileen McNaughton [Sun, 5 Jul 2020 02:18:48 +0000 (14:18 +1200)]
Merge pull request #17751 from civicrm/5.28
5.28
colemanw [Sun, 5 Jul 2020 01:54:44 +0000 (21:54 -0400)]
Merge pull request #17684 from colemanw/time
Teach CRM.utils.formatDate to also show time
Coleman Watts [Wed, 24 Jun 2020 00:05:56 +0000 (20:05 -0400)]
Teach CRM.utils.formatDate to also show time
demeritcowboy [Sat, 4 Jul 2020 23:59:57 +0000 (19:59 -0400)]
remove resource url check
demeritcowboy [Sat, 4 Jul 2020 23:52:14 +0000 (19:52 -0400)]
unused functions
colemanw [Sat, 4 Jul 2020 19:45:47 +0000 (15:45 -0400)]
Merge pull request #17748 from demeritcowboy/double-vision
Pre-upgrade message for php-intl shows twice
Rich Lott / Artful Robot [Sat, 4 Jul 2020 07:10:30 +0000 (08:10 +0100)]
Improve efficiency of findFiles
demeritcowboy [Fri, 3 Jul 2020 23:27:57 +0000 (19:27 -0400)]
only show message once
Seamus Lee [Fri, 3 Jul 2020 22:25:16 +0000 (08:25 +1000)]
Merge pull request #17747 from mlutfy/fixReportGroupbyTpl
Fix typo in templates/CRM/Report/Form/Tabs/GroupBy.tpl
Jon Goldberg [Fri, 3 Jul 2020 22:02:43 +0000 (18:02 -0400)]
test for ignoring location_type_id on import
Jon Goldberg [Fri, 3 Jul 2020 21:56:54 +0000 (17:56 -0400)]
Ignore location_type_id for dedupe on import also
Mathieu Lutfy [Fri, 3 Jul 2020 18:28:04 +0000 (14:28 -0400)]
Fix typo in templates/CRM/Report/Form/Tabs/GroupBy.tpl
Coleman Watts [Fri, 3 Jul 2020 18:12:08 +0000 (14:12 -0400)]
APIv4 Explorer: Improve selection of fields for HAVING
eileen [Fri, 3 Jul 2020 08:41:29 +0000 (20:41 +1200)]
dev/core#1679: Ensure Paypal IPN always updates the next scheduled payment date
This is from https://github.com/civicrm/civicrm-core/pull/16952 and https://github.com/civicrm/civicrm-core/pull/17028
is to not change the scheduled date if it seems to have already been intentionally changed. However, per #16952
time stamps can lead to 'now' being a day in the future - so this loosens the check from equals today to
is less then now + 1 day
Seamus Lee [Fri, 3 Jul 2020 06:01:43 +0000 (16:01 +1000)]
Merge pull request #17741 from eileenmcnaughton/eventcart
Add eventcart shell
CiviCRM [Fri, 3 Jul 2020 05:55:14 +0000 (05:55 +0000)]
Set version to 5.29.alpha1
CiviCRM [Fri, 3 Jul 2020 05:22:47 +0000 (05:22 +0000)]
Set version to 5.28.beta1
Eileen McNaughton [Fri, 3 Jul 2020 04:04:08 +0000 (16:04 +1200)]
Merge pull request #17733 from eileenmcnaughton/pvv
Set locales for all domains when enabling multilingual
Eileen McNaughton [Fri, 3 Jul 2020 02:48:03 +0000 (14:48 +1200)]
Merge pull request #17721 from colemanw/isDeletedPerm
Add permission metadata to contact is_deleted field
eileen [Thu, 2 Jul 2020 22:14:54 +0000 (10:14 +1200)]
Add eventcart shell
Tim Otten [Fri, 3 Jul 2020 02:01:34 +0000 (19:01 -0700)]
Merge pull request #17738 from colemanw/upgradeLocales
dev/core#1852 Ensure all domains have the same value for locales
Seamus Lee [Fri, 3 Jul 2020 01:57:58 +0000 (11:57 +1000)]
Ensure that we are testing on multiple domains
Co-authored-by: colemanw <coleman@civicrm.org>
Seamus Lee [Thu, 2 Jul 2020 21:58:55 +0000 (07:58 +1000)]
Merge pull request #17739 from colemanw/byeByeWiki
[NFC] Fix some outdated wiki links
Coleman Watts [Thu, 2 Jul 2020 20:42:07 +0000 (16:42 -0400)]
Fix some outdated wiki links
Coleman Watts [Wed, 1 Jul 2020 02:16:49 +0000 (22:16 -0400)]
Add permission metadata to contact is_deleted field
colemanw [Thu, 2 Jul 2020 17:20:49 +0000 (13:20 -0400)]
Merge pull request #17737 from christianwach/lab-core-1851
Fix saving of State/Province Multi-select values
Coleman Watts [Thu, 2 Jul 2020 17:09:20 +0000 (13:09 -0400)]
Ensure all domains have the same value for locales
Christian Wach [Thu, 2 Jul 2020 14:39:24 +0000 (15:39 +0100)]
Fix saving of State/Province Multi-select values
Seamus Lee [Thu, 2 Jul 2020 04:02:24 +0000 (14:02 +1000)]
Merge pull request #17736 from civicrm/5.27
5.27
Seamus Lee [Thu, 2 Jul 2020 03:14:57 +0000 (13:14 +1000)]
Merge pull request #17731 from agh1/5.27.0-releasenotes-final
5.27.0 release notes: final edits
Eileen McNaughton [Thu, 2 Jul 2020 02:52:32 +0000 (14:52 +1200)]
Merge pull request #17735 from totten/master-field-ver
API/DAO Metadata - Retain versioning metadata for possible usage in runtime+tooling