civicrm-core.git
3 years agodev/core#2141 - Basic UI for CRUD'ing clients
Tim Otten [Mon, 2 Nov 2020 06:17:06 +0000 (22:17 -0800)]
dev/core#2141 - Basic UI for CRUD'ing clients

3 years agooauth-client - Mark extension as hidden
Tim Otten [Mon, 2 Nov 2020 22:44:49 +0000 (14:44 -0800)]
oauth-client - Mark extension as hidden

3 years agodev/core#2141 - Set prompt=select_account whenever using MailSetup
Tim Otten [Mon, 2 Nov 2020 09:41:13 +0000 (01:41 -0800)]
dev/core#2141 - Set prompt=select_account whenever using MailSetup

If you're an admin setting up an email return-channel, then you may not
intend to use your normal email account.  It makes sense to always prompt
for the preferred account.

3 years agodev/core#2141 - If a mail-store has an OAuth2 token, then use it
Tim Otten [Sat, 31 Oct 2020 01:39:21 +0000 (18:39 -0700)]
dev/core#2141 - If a mail-store has an OAuth2 token, then use it

3 years agodev/core#2141 - Allow OAuth2 services to define mail setup routine
Tim Otten [Fri, 30 Oct 2020 08:39:58 +0000 (01:39 -0700)]
dev/core#2141 - Allow OAuth2 services to define mail setup routine

Overview
--------

For certain types of mail accounts -- such as Google Mail and Microsoft
Exchange Online -- the setup process may require interaction with a remote
web-service.

If you have OAuth2 enabled for one of these services, then this will create
an option for "Add Mail Account".

Before
------

There is no setup procedure.

After
-----

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a select2 box for "Add Mail Account".
* If "Microsoft Exchange Online" is configured, then it will appear in the dropdown. Choose it.
* It redirects to MS to get authorization from the user (OAuth2 Authorization Code).
* The user comes back.
* We initialize a new mail account (`MailSettings` / `civicrm_mail_settings`)
* We accept the code and save the token (`OAuthSysToken`) with the account.
* We redirect to the account configuration form.

Technical Details
-----------------

The new mail account will have some details, such as `server`, `protocol`,
and `username` pre-filled.  This uses a template -- see e.g.
`providers/ms-exchange.dist.json` (`mailSettingsTemplate`).

3 years agodev/core#2141 - AuthorizationGrant - Upon return, emit hook & possible redirect
Tim Otten [Fri, 30 Oct 2020 07:13:35 +0000 (00:13 -0700)]
dev/core#2141 - AuthorizationGrant - Upon return, emit hook & possible redirect

3 years agodev/core#2141 - Add support for token-tagging to all grant flows
Tim Otten [Fri, 30 Oct 2020 00:58:01 +0000 (17:58 -0700)]
dev/core#2141 - Add support for token-tagging to all grant flows

Suppose you have a downstream app/module -- such as the Civi-IMAP app/module.  It needs to store a notation which says
"this thing in our data" (e.g.  `civicrm_mail_settings`) "corresponds to that token in the OAuth data".

It can put a tag on the token (`tag=civicrm_mail_settings:123`) and use that for lookup

```
$tag = `OAuthSysToken.refresh +w tag=civicrm_mail_settings:123`
```

The advantage of this is that it's simple, flexible, and doesn't require new schema.

Of course, it's not end-all/be-all.  It's OK for 1:1 relationship.  But if
you want 1:M or M:M, then you'll have to model that as something else.  But
for basic usage, tags are simple and moderately flexible.

3 years agodev/core#2141 - Add "local-redir" stub for use as OAuth2 "Redirect URL"
Tim Otten [Thu, 29 Oct 2020 01:47:42 +0000 (18:47 -0700)]
dev/core#2141 - Add "local-redir" stub for use as OAuth2 "Redirect URL"

If you are developing on a local HTTP system with virtual hosts, then many
OAuth2 services won't recognize it as a local/dev URL.

The "local-redir.sh" script runs a stub service that will be accepted as
a local/dev "Redirect URL".

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.clientCredential` authentication
Tim Otten [Wed, 28 Oct 2020 22:32:05 +0000 (15:32 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.clientCredential` authentication

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.userPassword` authentication
Tim Otten [Wed, 28 Oct 2020 21:05:03 +0000 (14:05 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.userPassword` authentication

3 years agodev/core#2141 - APIv4 - Add OAuthSysToken.refresh action
Tim Otten [Wed, 28 Oct 2020 08:39:15 +0000 (01:39 -0700)]
dev/core#2141 - APIv4 - Add OAuthSysToken.refresh action

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.authorizationCode` authentication
Tim Otten [Wed, 28 Oct 2020 09:28:24 +0000 (02:28 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.authorizationCode` authentication

3 years agodev/core#2141 - Update 'oauth2.league' to respect setting 'oauthClientRedirectUrl'
Tim Otten [Thu, 29 Oct 2020 00:08:29 +0000 (17:08 -0700)]
dev/core#2141 - Update 'oauth2.league' to respect setting 'oauthClientRedirectUrl'

3 years agodev/core#2141 - Add services 'oauth2.league' and 'oauth2.token'
Tim Otten [Tue, 27 Oct 2020 13:15:43 +0000 (06:15 -0700)]
dev/core#2141 - Add services 'oauth2.league' and 'oauth2.token'

3 years agodev/core#2141 - APIv4 - Expands tests for OAuthSysToken
Tim Otten [Tue, 27 Oct 2020 12:20:38 +0000 (05:20 -0700)]
dev/core#2141 - APIv4 - Expands tests for OAuthSysToken

3 years agodev/core#2141 - APIv4 - Validate OAuthClient.provider property
Tim Otten [Tue, 27 Oct 2020 11:16:10 +0000 (04:16 -0700)]
dev/core#2141 - APIv4 - Validate OAuthClient.provider property

3 years agodev/core#2141 - APIv4 - Add OAuthClient & OAuthSysToken with unit-test
Tim Otten [Tue, 27 Oct 2020 00:34:12 +0000 (17:34 -0700)]
dev/core#2141 - APIv4 - Add OAuthClient & OAuthSysToken with unit-test

3 years agodev/core#2141 - Schema - Add OAuthClient and OAuthSysToken
Tim Otten [Fri, 23 Oct 2020 05:46:03 +0000 (22:46 -0700)]
dev/core#2141 - Schema - Add OAuthClient and OAuthSysToken

Depends on OAuthProvider and permissions ('manage OAuth client' and 'manage OAuth client secrets')

3 years agodev/core#2141 - Split OAuthProvider files into subdirs. Use long cache.
Tim Otten [Fri, 30 Oct 2020 09:04:37 +0000 (02:04 -0700)]
dev/core#2141 - Split OAuthProvider files into subdirs. Use long cache.

3 years agodev/core#2141 - APIv4 - Add OAuthProvider.get w/test. Split dist/local/test lists.
Tim Otten [Tue, 27 Oct 2020 10:02:28 +0000 (03:02 -0700)]
dev/core#2141 - APIv4 - Add OAuthProvider.get w/test. Split dist/local/test lists.

3 years agodev/core#2141 - Permissions - Define 'manage OAuth client' and 'manage OAuth client...
Tim Otten [Mon, 26 Oct 2020 23:28:36 +0000 (16:28 -0700)]
dev/core#2141 - Permissions - Define 'manage OAuth client' and 'manage OAuth client secrets'

3 years agodev/core#2141 - Add upgrader to skeletal ext/oauth-client
Tim Otten [Fri, 30 Oct 2020 00:41:48 +0000 (17:41 -0700)]
dev/core#2141 - Add upgrader to skeletal ext/oauth-client

3 years agodev/core#2141 - Generate skeletal ext/oauth-client
Tim Otten [Sat, 24 Oct 2020 00:15:25 +0000 (17:15 -0700)]
dev/core#2141 - Generate skeletal ext/oauth-client

3 years ago(dev/core#2153) BUG: when changing a custom group option value CiviCRM does not updat...
yashodha [Tue, 3 Nov 2020 10:18:09 +0000 (15:48 +0530)]
(dev/core#2153) BUG: when changing a custom group option value CiviCRM does not update existing records

3 years agoMake civicrm-setup work with unix-socket as database connection
lasse [Tue, 3 Nov 2020 09:42:35 +0000 (10:42 +0100)]
Make civicrm-setup work with unix-socket as database connection

3 years agoMailSettings - Add button+API for testing a connection
Tim Otten [Tue, 3 Nov 2020 06:02:02 +0000 (22:02 -0800)]
MailSettings - Add button+API for testing a connection

3 years ago(NFC) CRM_Mailing_MailStore - Clarify return type
Tim Otten [Tue, 3 Nov 2020 06:01:22 +0000 (22:01 -0800)]
(NFC) CRM_Mailing_MailStore - Clarify return type

3 years agoCRM_Core_Error::formatFooException - Don't bomb on 'Error'
Tim Otten [Tue, 3 Nov 2020 05:54:45 +0000 (21:54 -0800)]
CRM_Core_Error::formatFooException - Don't bomb on 'Error'

PHP 7 updated the class hierarchy for exceptions. The top-level types for exceptions are now:

* class Throwable
* class Error extends Throwable
* class Exception extends Throwable

This patch fixes a problem when logging `Error`s, as in

```php
Civi::log()->warning('There was a problem', [
  'exception' => $e
]);
```

Before
------

If `$e` is an `Error`, it fails to log.

After
-----

It works whether `$e` is an `Error` or `Exception`.

See also: https://www.php.net/manual/en/language.errors.php7.php

3 years agoSearch ext: Add links to search admin and improve links in displays
Coleman Watts [Tue, 3 Nov 2020 02:16:17 +0000 (21:16 -0500)]
Search ext: Add links to search admin and improve links in displays

3 years agoMerge pull request #18908 from totten/master-composer-oauth
Seamus Lee [Tue, 3 Nov 2020 01:09:06 +0000 (12:09 +1100)]
Merge pull request #18908 from totten/master-composer-oauth

dev/core#2141 - composer.json - Require league/oauth2-{client,google}

3 years agoa couple problems
demeritcowboy [Tue, 27 Oct 2020 19:11:02 +0000 (15:11 -0400)]
a couple problems

3 years agocomposer.lock - Require league/oauth2-{client,google}
Tim Otten [Wed, 21 Oct 2020 22:15:43 +0000 (15:15 -0700)]
composer.lock - Require league/oauth2-{client,google}

3 years agocomposer.json - Require league/oauth2-{client,google}
Tim Otten [Wed, 21 Oct 2020 22:13:31 +0000 (15:13 -0700)]
composer.json - Require league/oauth2-{client,google}

Note: This oauth2-client matches the constraint that's declared in civixero, which (in my
local copy of `universe`) is the only published extension that uses the same library.

The oauth2-google is included because has special requirements around
'prompt' which conflict with `GenericProvider`. We could potentially resolve that other
ways (eg rework `CiviGenericProvider`), but this seems easier right now.

3 years agoMerge pull request #18904 from civicrm/5.31
Seamus Lee [Mon, 2 Nov 2020 20:03:49 +0000 (07:03 +1100)]
Merge pull request #18904 from civicrm/5.31

5.31

3 years agodev/core#2139 fix defaulting for multi-select custom fields
Alice Frumin [Mon, 2 Nov 2020 18:56:51 +0000 (12:56 -0600)]
dev/core#2139 fix defaulting for multi-select custom fields

3 years agoMerge pull request #18802 from eileenmcnaughton/refs
Matthew Wire [Mon, 2 Nov 2020 11:02:46 +0000 (11:02 +0000)]
Merge pull request #18802 from eileenmcnaughton/refs

dev/core#2043 Remove instance of pass-by-ref

3 years agoMerge pull request #18894 from eileenmcnaughton/cancel
Matthew Wire [Mon, 2 Nov 2020 11:01:55 +0000 (11:01 +0000)]
Merge pull request #18894 from eileenmcnaughton/cancel

Move call to update related pledges on contribution cancel to extension

3 years agoMerge pull request #18895 from eileenmcnaughton/ipn
Matthew Wire [Mon, 2 Nov 2020 11:00:40 +0000 (11:00 +0000)]
Merge pull request #18895 from eileenmcnaughton/ipn

Remove IPN reference to _relatedObjects, deprecate property

3 years agoMerge pull request #18896 from eileenmcnaughton/ipn2
Matthew Wire [Mon, 2 Nov 2020 11:00:07 +0000 (11:00 +0000)]
Merge pull request #18896 from eileenmcnaughton/ipn2

[Ref] Simplify params

3 years agoMerge pull request #18900 from eileenmcnaughton/entry
Matthew Wire [Mon, 2 Nov 2020 10:59:39 +0000 (10:59 +0000)]
Merge pull request #18900 from eileenmcnaughton/entry

[REF] Simplify use of shared code.

3 years agoMerge pull request #18903 from eileenmcnaughton/aip2
Matthew Wire [Mon, 2 Nov 2020 10:58:10 +0000 (10:58 +0000)]
Merge pull request #18903 from eileenmcnaughton/aip2

Remove deprecated code

3 years agoMerge pull request #18807 from jvos/postProcess-MessageTemplates
Matthew Wire [Mon, 2 Nov 2020 10:55:38 +0000 (10:55 +0000)]
Merge pull request #18807 from jvos/postProcess-MessageTemplates

Add postProcess hook to MessageTemplates

3 years agoMerge pull request #18899 from seamuslee001/composer_2x
Seamus Lee [Mon, 2 Nov 2020 08:41:37 +0000 (19:41 +1100)]
Merge pull request #18899 from seamuslee001/composer_2x

Update composer-download-plugin to v3.0.0 to support usage of compose…

3 years agoMerge pull request #18901 from alifrumin/5.31rn
Seamus Lee [Mon, 2 Nov 2020 07:20:35 +0000 (18:20 +1100)]
Merge pull request #18901 from alifrumin/5.31rn

[NFC] 5.31 Release Notes - First Pass

3 years agoMerge pull request #18897 from eileenmcnaughton/ip3
Seamus Lee [Mon, 2 Nov 2020 06:50:56 +0000 (17:50 +1100)]
Merge pull request #18897 from eileenmcnaughton/ip3

[REF] Remove silly if

3 years agoMerge pull request #18902 from totten/master-altermailstore
Seamus Lee [Mon, 2 Nov 2020 06:50:10 +0000 (17:50 +1100)]
Merge pull request #18902 from totten/master-altermailstore

dev/core#2141 - Add hook_civicrm_alterMailStore

3 years agoMerge pull request #18898 from seamuslee001/dev_core_2147
Seamus Lee [Mon, 2 Nov 2020 05:40:22 +0000 (16:40 +1100)]
Merge pull request #18898 from seamuslee001/dev_core_2147

dev/core#2147 Switch the groups search field on Simple search back fr…

3 years agoUpdate composer-download-plugin to v3.0.0 to support usage of composer 2.x
Seamus Lee [Mon, 2 Nov 2020 02:07:15 +0000 (13:07 +1100)]
Update composer-download-plugin to v3.0.0 to support usage of composer 2.x

3 years agoRemove deprecated code
eileen [Mon, 2 Nov 2020 04:18:54 +0000 (17:18 +1300)]
Remove deprecated code

These few lines have had any meaning removed already....

3 years agoMerge pull request #18852 from eileenmcnaughton/aip
Seamus Lee [Mon, 2 Nov 2020 04:08:25 +0000 (15:08 +1100)]
Merge pull request #18852 from eileenmcnaughton/aip

[Ref] Move sending the email back out of the recur function

3 years agodev/core#2141 - Add hook_civicrm_alterMailStore
Tim Otten [Fri, 30 Oct 2020 23:01:42 +0000 (16:01 -0700)]
dev/core#2141 - Add hook_civicrm_alterMailStore

Overview
--------

The CiviCRM "MailStore" layer is used for importing email messages from
various sources (IMAP, POP3, Maildir, etc).  There is a built-in list with a
handful of drivers (`CRM_Mailing_MailStore_Imap`, etc).

This patch adds a hook for manipulating those drivers.

Before
------

It's not possible for an extension to add a driver, modify a driver, etc.

After
-----

It is now possible to add/modify/replace drivers. Here are two examples.

(1) To supplement the IMAP authentication with a dynamic token for XOAuth2:

```php
function hook_civicrm_alterMailStore(&$mailSettings) {
  if (...$mailSettings requires oauth...) {
    $mailSettings['auth'] = 'XOAuth2';
    $mailSettings['password'] = $myOauthSystem->getToken(...);
  }
}
```

(2) To add a new protocol `FIZZBUZZ`, you would:

1. Register a value in the OptionGroup `mail_protocol`.
2. Create a driver class (eg `CRM_Mailing_MailStore_FizzBuzz` extends `CRM_Mailing_MailStore`)
3. Use the hook to activate the class:

  ```php
  function hook_civicrm_alterMailStore(&$mailSettings) {
    if ($mailSettings['protocol'] === 'FIZZBUZZ') {
      $mailSettings['factory'] = function ($mailSettings) {
        return new CRM_Mailing_MailStore_FizzBuzz(...);
      };
    }
  }
  ```

Technical Details
-----------------

This adds a unit-test with examples of basic/non-hook behavior and hooked behavior.

In reading the diff for `getStore()`, note that it  previously had a long
'switch()' to handle instantiation.  I tried to make the change in a way that
you could see some continuity - e.g. it's still the same basic `switch()`.

The change is to basically wrap the bits inside a function:

* Before: `case 'FOO': return new Foo(...)`
* After: `case 'FOO': return ['factory' => function(...) { return new Foo(...); }]`

3 years ago5.31 release notes first pass
Alice Frumin [Fri, 23 Oct 2020 01:04:04 +0000 (20:04 -0500)]
5.31 release notes first pass

3 years ago[REF] Simplify use of shared code.
eileen [Mon, 2 Nov 2020 02:24:27 +0000 (15:24 +1300)]
[REF] Simplify use of shared code.

This function has been sharing 'transitionComponentWithStatusMessage' but in
fact it throws away the status message and the preliminary checks are silly.

This simplifies it so it calls the part of the function it actually does share

3 years agoMove call to update related pledges on contribution cancel to extension
eileen [Sun, 1 Nov 2020 23:16:31 +0000 (12:16 +1300)]
Move call to update related pledges on contribution cancel to extension

This moves the functionality over & switches Order api to be entirely relying on the
hook rather than a call to the deprecated transitionComponents function.

3 years ago[REF] Remove silly if
eileen [Mon, 2 Nov 2020 00:03:28 +0000 (13:03 +1300)]
[REF] Remove silly if

Checking component AND contributionRecur is silly - the latter will only
be set if relevant so remove the extra if

3 years agodev/core#2147 Switch the groups search field on Simple search back from select2 to...
Seamus Lee [Mon, 2 Nov 2020 01:31:09 +0000 (12:31 +1100)]
dev/core#2147 Switch the groups search field on Simple search back from select2 to normal select

3 years ago[Ref] Simplify params
eileen [Sun, 1 Nov 2020 23:45:36 +0000 (12:45 +1300)]
[Ref] Simplify params

As with
https://github.com/civicrm/civicrm-core/commit/0d74d91cd340b9f1ea2224119c748e372dffe245

pass the retrieved parameters to the single function rather than the id of the
object retrieved based on them

3 years agoRemove IPN reference to _relatedObjects, deprecate property
eileen [Sun, 1 Nov 2020 23:36:10 +0000 (12:36 +1300)]
Remove IPN reference to _relatedObjects, deprecate property

3 years agoMerge pull request #18893 from civicrm/5.31
Eileen McNaughton [Sun, 1 Nov 2020 20:51:57 +0000 (09:51 +1300)]
Merge pull request #18893 from civicrm/5.31

5.31 to master

3 years agoMerge pull request #18877 from seamuslee001/dev_core_2149
Eileen McNaughton [Sun, 1 Nov 2020 20:51:02 +0000 (09:51 +1300)]
Merge pull request #18877 from seamuslee001/dev_core_2149

dev/core#2149 Ensure that if a chained select field is required and t…

3 years agoMerge pull request #18881 from eileenmcnaughton/cancelb
Matthew Wire [Sun, 1 Nov 2020 18:25:18 +0000 (18:25 +0000)]
Merge pull request #18881 from eileenmcnaughton/cancelb

dev/core#927 Move handling of participant.cancel from BaseIPN to  contributioncancelactions

3 years agoMerge pull request #18882 from eileenmcnaughton/pps
Matthew Wire [Sun, 1 Nov 2020 18:22:12 +0000 (18:22 +0000)]
Merge pull request #18882 from eileenmcnaughton/pps

[Ref] Use direct version of participant id

3 years agoMerge pull request #18892 from eileenmcnaughton/uf
colemanw [Sat, 31 Oct 2020 13:44:15 +0000 (09:44 -0400)]
Merge pull request #18892 from eileenmcnaughton/uf

Hack away at false negative test fails

3 years agoMerge pull request #18891 from civicrm/5.31
Seamus Lee [Sat, 31 Oct 2020 03:02:07 +0000 (14:02 +1100)]
Merge pull request #18891 from civicrm/5.31

5.31

3 years agoMerge pull request #18890 from seamuslee001/dev_core_2154
Seamus Lee [Sat, 31 Oct 2020 00:53:04 +0000 (11:53 +1100)]
Merge pull request #18890 from seamuslee001/dev_core_2154

dev/core#2154 Fix the output of the full text custom search form

3 years agoMerge pull request #18887 from colemanw/entityPaths
Eileen McNaughton [Fri, 30 Oct 2020 23:48:37 +0000 (12:48 +1300)]
Merge pull request #18887 from colemanw/entityPaths

Add entity paths to schema & APIv4

3 years agoHack away at false negative test fails
eileen [Fri, 30 Oct 2020 23:23:00 +0000 (12:23 +1300)]
Hack away at false negative test fails

3 years agoMerge pull request #18889 from demeritcowboy/fulltext-attributes
colemanw [Fri, 30 Oct 2020 23:10:09 +0000 (19:10 -0400)]
Merge pull request #18889 from demeritcowboy/fulltext-attributes

dev/core#2154 - Pass correct parameters to CRM_Core_Form::add() in fulltext custom search

3 years agoMerge pull request #18876 from colemanw/searchDisplay
Seamus Lee [Fri, 30 Oct 2020 22:58:09 +0000 (09:58 +1100)]
Merge pull request #18876 from colemanw/searchDisplay

Lotsa new features for the Search Kit extension

3 years agodev/core#2154 Fix the output of the full text custom search form
Seamus Lee [Fri, 30 Oct 2020 22:44:19 +0000 (09:44 +1100)]
dev/core#2154 Fix the output of the full text custom search form

3 years agoMerge pull request #18888 from colemanw/deprecateCrudLink
Eileen McNaughton [Fri, 30 Oct 2020 22:25:30 +0000 (11:25 +1300)]
Merge pull request #18888 from colemanw/deprecateCrudLink

Deprecate hook_civicrm_crudLink

3 years agoMerge pull request #18885 from totten/master-add-mail
Eileen McNaughton [Fri, 30 Oct 2020 22:18:34 +0000 (11:18 +1300)]
Merge pull request #18885 from totten/master-add-mail

dev/core#2141 - "Add Mail Account" - Allow hookable listing of setup links

3 years agopass correct parameters
demeritcowboy [Fri, 30 Oct 2020 21:33:03 +0000 (17:33 -0400)]
pass correct parameters

3 years agoMove handling of participant.cancel to contributioncancelactions extension
eileen [Fri, 30 Oct 2020 05:54:01 +0000 (18:54 +1300)]
Move handling of participant.cancel to contributioncancelactions extension

3 years agoDeprecate hook_civicrm_crudLink
Coleman Watts [Fri, 30 Oct 2020 19:55:28 +0000 (15:55 -0400)]
Deprecate hook_civicrm_crudLink

The hook is not used anywhere in civicrm_universe, and the function calling it is only used in 1 place,
full-text search for generating links to file entities.

3 years agoMerge pull request #18886 from mlutfy/moneyTypo
Seamus Lee [Fri, 30 Oct 2020 19:53:13 +0000 (06:53 +1100)]
Merge pull request #18886 from mlutfy/moneyTypo

(NFC) Fix typo in Money valueFormat depretation warning

3 years agoMark version beta2 & add upgrade script
Coleman Watts [Fri, 30 Oct 2020 19:38:10 +0000 (15:38 -0400)]
Mark version beta2 & add upgrade script

3 years agoAdd entity paths to schema & APIv4
Coleman Watts [Fri, 30 Oct 2020 18:32:03 +0000 (14:32 -0400)]
Add entity paths to schema & APIv4

Entity paths can be used to construct a url to create/view/edit/update a given entity.
The paths are local and contain tokens which would need to be replace, e.g. [id] or [contact_id].
The token name corresponds to the field name whos value is requred.

3 years agoMerge pull request #18884 from jaapjansma/dev_2152_master_2
colemanw [Fri, 30 Oct 2020 14:46:41 +0000 (10:46 -0400)]
Merge pull request #18884 from jaapjansma/dev_2152_master_2

/dev/core#2152: Merge contacts keep case roles

3 years agoMerge pull request #18883 from eileenmcnaughton/ppp
colemanw [Fri, 30 Oct 2020 13:23:24 +0000 (09:23 -0400)]
Merge pull request #18883 from eileenmcnaughton/ppp

Remove always-true & otherwise silly if

3 years ago(NFC) Fix typo in Money valueFormat depretation warning
Mathieu Lutfy [Fri, 30 Oct 2020 13:08:00 +0000 (09:08 -0400)]
(NFC) Fix typo in Money valueFormat depretation warning

3 years agodev/core#2141 - "Add Mail Account" - Allow hookable listing of setup links
Tim Otten [Fri, 30 Oct 2020 06:59:51 +0000 (23:59 -0700)]
dev/core#2141 - "Add Mail Account" - Allow hookable listing of setup links

Overview
--------

For certain types of mail accounts -- such as Google Mail and Microsoft
Exchange Online -- the setup process may require interaction with a remote
web-service.  The web-service provides some critical details (like
authentication tokens) and some handy details (like their username / email
address).

If the supports one of these services, then this revision will enable a
setup process.  It alters the "Add Mail Account" action to use a more
fine-tuned procedure.

Before
------

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a singular button "Add Mail Account".
* Click the button.
* It opens an empty form for configuring the account.

After
-----

By default, the UX is the same.  However, if you have an extension like
`oauth-client`, then it changes:

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a select box for "Add Mail Account". It lists different account types.
* Choose one of the options from the dropbox. The step depends on...
    * If you choose "Standard Mail Account", it opens the empty config form.
    * If you choose "Microsoft Exchange Online", it redirects to MS to get authorization
      from the user. Then, it redirects and prefills the config form.

3 years agoFix for dev/core#2152
Jaap Jansma [Fri, 30 Oct 2020 10:08:42 +0000 (11:08 +0100)]
Fix for dev/core#2152

3 years agoRemove always-true & otherwise silly if
eileen [Fri, 30 Oct 2020 07:23:47 +0000 (20:23 +1300)]
Remove always-true & otherwise silly if

3 years ago[Ref] Use direct version of participant id
eileen [Fri, 30 Oct 2020 07:19:29 +0000 (20:19 +1300)]
[Ref] Use direct version of participant id

ids['Participant'] is taken from the url. It is then passed to loadRelatedObjects
where
https://github.com/civicrm/civicrm-core/blob/0bd5e6bfbe8f339dbe066e3e96e00760c93a57e2/CRM/Contribute/BAO/Contribution.php#L2890
loads an object based on it. We then set ids too the object's id - which is a long way around to
using the paramter we started from. This does that

3 years agoMerge pull request #18879 from colemanw/fixDAOStyle
Seamus Lee [Fri, 30 Oct 2020 02:13:36 +0000 (13:13 +1100)]
Merge pull request #18879 from colemanw/fixDAOStyle

Fix extension generated DAO files to pass civilint

3 years agoFix extension generated DAO files to pass civilint
Coleman Watts [Fri, 30 Oct 2020 00:25:52 +0000 (20:25 -0400)]
Fix extension generated DAO files to pass civilint

3 years agoSearch ext: Add option to format table cell as link in search display
Coleman Watts [Thu, 29 Oct 2020 20:58:29 +0000 (16:58 -0400)]
Search ext: Add option to format table cell as link in search display

3 years agoSearch ext: decouple actions, add searchKit base module, rename searchAdmin module...
Coleman Watts [Thu, 29 Oct 2020 17:18:48 +0000 (13:18 -0400)]
Search ext: decouple actions, add searchKit base module, rename searchAdmin module to crmSearchAdmin

3 years agoSearch ext: Improve styling
Coleman Watts [Wed, 28 Oct 2020 20:15:34 +0000 (16:15 -0400)]
Search ext: Improve styling

3 years agoSearch ext: Dynamic templates and a preview button for displays
Coleman Watts [Wed, 28 Oct 2020 18:02:36 +0000 (14:02 -0400)]
Search ext: Dynamic templates and a preview button for displays

3 years agoSearch ext: Support for embedding search displays in afforms
Coleman Watts [Tue, 27 Oct 2020 20:18:41 +0000 (16:18 -0400)]
Search ext: Support for embedding search displays in afforms

3 years agoSearch ext: Link to displays from admin screen
Coleman Watts [Tue, 27 Oct 2020 14:36:07 +0000 (10:36 -0400)]
Search ext: Link to displays from admin screen

3 years agoSearch ext: Exclude settings from being html-encoded in db
Coleman Watts [Tue, 27 Oct 2020 01:35:09 +0000 (21:35 -0400)]
Search ext: Exclude settings from being html-encoded in db

3 years agoSearch ext: Add searchDisplay and searchPage modules
Coleman Watts [Tue, 20 Oct 2020 19:55:00 +0000 (15:55 -0400)]
Search ext: Add searchDisplay and searchPage modules

3 years agoSearch ext: group tab
Coleman Watts [Sun, 18 Oct 2020 23:52:28 +0000 (19:52 -0400)]
Search ext: group tab

3 years agoSearch ext: Rename component crmSearch to crmSearchAdmin
Coleman Watts [Sun, 18 Oct 2020 04:15:29 +0000 (00:15 -0400)]
Search ext: Rename component crmSearch to crmSearchAdmin

3 years agoSearch ext: Add vertical tabs
Coleman Watts [Sun, 18 Oct 2020 04:03:39 +0000 (00:03 -0400)]
Search ext: Add vertical tabs

3 years agoSearch ext: Rework URL routing in preparation for search display management
Coleman Watts [Fri, 16 Oct 2020 18:42:27 +0000 (14:42 -0400)]
Search ext: Rework URL routing in preparation for search display management

Having the API params in the URL bar (like the API Explorer) was kinda neat but isn't going to work
with more complex management of multiple displays on the same screen.
This simplifies the routing to standard CRUD routes of /list, /create/:type, & /edit/:id

3 years agoSearch ext: Improve wording of update & delete actions
Coleman Watts [Fri, 16 Oct 2020 18:39:37 +0000 (14:39 -0400)]
Search ext: Improve wording of update & delete actions