civicrm-core.git
2 years agoConformanceTest - Demonstrate entity APIs with non-conformant deletion
Tim Otten [Thu, 2 Dec 2021 04:17:22 +0000 (20:17 -0800)]
ConformanceTest - Demonstrate entity APIs with non-conformant deletion

2 years agoMerge pull request #22176 from eileenmcnaughton/smarty4
Eileen McNaughton [Wed, 1 Dec 2021 23:34:49 +0000 (12:34 +1300)]
Merge pull request #22176 from eileenmcnaughton/smarty4

[Smarty variables] [CiviCase] remove isset from case dashboard

2 years agoMerge pull request #22198 from totten/master-mix-dec-first
colemanw [Wed, 1 Dec 2021 23:26:59 +0000 (18:26 -0500)]
Merge pull request #22198 from totten/master-mix-dec-first

civix#175 - Add support for mixins. Switch core extensions to mixin/setting-php

2 years agoMerge pull request #22173 from colemanw/domainStuff
Eileen McNaughton [Wed, 1 Dec 2021 21:23:42 +0000 (10:23 +1300)]
Merge pull request #22173 from colemanw/domainStuff

APIv4 - Add fixes & tests for domain-specific managed entities

2 years agoMerge pull request #21751 from mlutfy/fixCurrencies
Eileen McNaughton [Wed, 1 Dec 2021 19:37:26 +0000 (08:37 +1300)]
Merge pull request #21751 from mlutfy/fixCurrencies

dev/financial#184 Fix currency name for Ghana and Belarus

2 years ago[Smarty variables] remove isset from case dashboard
Eileen McNaughton [Tue, 30 Nov 2021 20:09:49 +0000 (09:09 +1300)]
[Smarty variables] remove isset from case dashboard

2 years agoMerge pull request #22185 from eileenmcnaughton/smarty11
Eileen McNaughton [Wed, 1 Dec 2021 19:25:40 +0000 (08:25 +1300)]
Merge pull request #22185 from eileenmcnaughton/smarty11

[Smarty variables] - remove isset

2 years agodev/financial#184 Fix currency name for Ghana and Belarus
Mathieu Lutfy [Mon, 11 Oct 2021 13:04:09 +0000 (09:04 -0400)]
dev/financial#184 Fix currency name for Ghana and Belarus

2 years agoMerge pull request #22179 from eileenmcnaughton/smarty6
Eileen McNaughton [Wed, 1 Dec 2021 09:42:06 +0000 (22:42 +1300)]
Merge pull request #22179 from eileenmcnaughton/smarty6

[Smarty variables]  Fix contribution tab to work with escape by default

2 years agoMerge pull request #22196 from eileenmcnaughton/smarty21
Eileen McNaughton [Wed, 1 Dec 2021 09:26:29 +0000 (22:26 +1300)]
Merge pull request #22196 from eileenmcnaughton/smarty21

[Smarty variables] The last isset....

2 years agomixin/setting-php - Remove unused boilerplate
Tim Otten [Wed, 1 Dec 2021 01:27:28 +0000 (17:27 -0800)]
mixin/setting-php - Remove unused boilerplate

2 years agomixin/setting-php - Convert live settings from `hook_alterSettingsFolder` to `<mixin>`
Tim Otten [Wed, 1 Dec 2021 00:43:26 +0000 (16:43 -0800)]
mixin/setting-php - Convert live settings from `hook_alterSettingsFolder` to `<mixin>`

2 years agomixin/setting-php - Import
Tim Otten [Tue, 30 Nov 2021 22:26:42 +0000 (14:26 -0800)]
mixin/setting-php - Import

2 years agomixin/polyfill.php - Import. Update comments.
Tim Otten [Tue, 30 Nov 2021 22:25:50 +0000 (14:25 -0800)]
mixin/polyfill.php - Import. Update comments.

2 years agotools/mixin - Import. Also, update to run within civicrm-core, and add JUnit output.
Tim Otten [Tue, 30 Nov 2021 20:14:10 +0000 (12:14 -0800)]
tools/mixin - Import. Also, update to run within civicrm-core, and add JUnit output.

2 years agotests/extensions/shimmy/ - Import. Also, update comments for LifecycleTest.
Tim Otten [Sat, 27 Nov 2021 23:13:58 +0000 (17:13 -0600)]
tests/extensions/shimmy/ - Import. Also, update comments for LifecycleTest.

2 years agodistmaker - Include `mixin/*` files
Tim Otten [Tue, 30 Nov 2021 22:33:28 +0000 (14:33 -0800)]
distmaker - Include `mixin/*` files

2 years agocivix#175 - Add support for mixins. Use MixinScanner/MixinLoader and boot-cache.
Tim Otten [Tue, 14 Jul 2020 07:29:07 +0000 (00:29 -0700)]
civix#175 - Add support for mixins. Use MixinScanner/MixinLoader and boot-cache.

Overview
--------

(NOTE: For this description, I reference the term "API" in the general sense of a programmatic interface -- such as
a hook or file-naming convention. It is not specifically about CRUD/DB APIs.)

The `civix` code-generator provides support for additional coding-conventions -- ones which are more amenable to
code-generation.  For example, it autoloads files from `xml/Menu/*.xml` and `**/*.mgd.php`.  The technique for
implementing this traditionally relies on generating a lot of boilerplate.

This patch introduces a new construct ("mixin") which allows boilerplate to be maintained more easily.  A mixin
inspects an extension programmatically, registering new hooks as needed.  A mixin may start out as a file in `civix`
(or even as a bespoke file in some module) - and then be migrated into `civicrm-core`. Each mixin has a name and
version, which means that (at runtime) it will only load the mixin once (ie the best-available version).

See: https://github.com/totten/civix/issues/175

Before
------

The civix templates generate a few files, such as `mymod.php` and `mymod.civix.php`.
A typical example looks like this:

```php
// mymod.php - Implement hook_civicrm_xmlMenu
require_once 'mymod.civix.php';
function mymod_civicrm_xmlMenu(&$all, $the, $params) {
  _mymod_civix_civicrm_xmlMenu($all, $the, $params);
}
```

and

```php
// mymod.civix.php - Implement hook_civicrm_xmlMenu
function _mymod_civix_civicrm_xmlMenu(&$all, $the, $params) {
  foreach (_mosaico_civix_glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
    $files[] = $file;
  }
}
```

These two files are managed differently: `mymod.php` is owned by the developer, and they may add/remove/manage the
hooks in this file.  `mymod.civix.php` is owned by `civix` and must be autogenerated.

This structure allows `civix` (and any `civix`-based extension) to take advantage of new coding-convention
immediately. However, it comes with a few pain-points:

* If you want to write a patch for `_mymod_civix_civicrm_xmlMenu`, the dev-test-loop requires several steps.
* If `civix` needs to add a new `hook_civicrm_foo`, then the author must manually create the stub
  function in `mymod.php`. `civix` has documentation (`UPGRADE.md`) which keeps a long list of stubs that must
  be manually added.
* If `civix` has an update for `_mymod_civix_civicrm_xmlMenu`, then the author must regenerate `mymod.civix.php`.
* If `mymod_civix_xmlMenu` needs a change, then the author must apply it manually.
* If `civix`'s spin on `hook_civicrm_xmlMenu` becomes widespread, then the `xmlMenu` boilerplate is duplicated
  across many extensions.

After
-----

An extension may enable a mixin in `info.xml`, eg:

```xml
<mixins>
  <mixin>civix-register-files@2.0</mixin>
</mixins>
```

Civi will look for a file `mixin/civicrm-register-files@2.0.0.mixin.php` (either in the extension or core). The file follows this pattern:

```php
return function(\CRM_Extension_MixInfo $mixInfo, \CRM_Extension_BootCache $bootCache) {
  // echo "This is " . $mixInfo->longName . "!\n";
  \Civi::dispatcher()->addListener("hook_civicrm_xmlMenu", function($e) use ($mixInfo) {
    ...
  });
}
```

The mixin file is a plain PHP file that can be debugged/copied/edited verbatim, and it can register for hooks on its
own.  The code is no longer a "template", and it doesn't need to be interwoven between `mymod.php` and
`mymod.civix.php`.

It is expected that a system may have multiple copies of a mixin.  It will choose the newest compatible copy.
Hypothetically, if there were a security update or internal API change, core might ship a newer version to supplant the
old copy in any extensions.

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

Mixins may define internal classes/interfaces/functions. However, each major-version
must have a distinct prefix (e.g. `\V2\Mymixin\FooInterface`). Minor-versions may be
provide incremental revisions over the same symbol (but it's imperative for newer
increments to provide the backward-compatibility).

MixinScanner - Make it easier to instantiate and pay with instances

Ex: cv ev '$o=new CRM_Extension_MixinScanner(); var_export($o->createLoader());'

MixinScanner - Enable scanning of `[civicrm.root]/mixin`

2 years agoMerge pull request #22165 from eileenmcnaughton/no_escape
colemanw [Wed, 1 Dec 2021 03:07:21 +0000 (22:07 -0500)]
Merge pull request #22165 from eileenmcnaughton/no_escape

Smarty variables]  Prevent settings form assigned html from being escaped

2 years agoMerge pull request #22197 from totten/master-xdebug3
Tim Otten [Wed, 1 Dec 2021 03:05:52 +0000 (19:05 -0800)]
Merge pull request #22197 from totten/master-xdebug3

DebugSubscriber - Fix test-suite compatibility with XDebug 3

2 years agoMerge pull request #22188 from totten/master-uninstall
Tim Otten [Wed, 1 Dec 2021 03:04:32 +0000 (19:04 -0800)]
Merge pull request #22188 from totten/master-uninstall

ManagedEntities - Fix permission error during uninstallation (regression-fix)

2 years agoMerge pull request #22175 from eileenmcnaughton/smarty3
colemanw [Wed, 1 Dec 2021 01:24:56 +0000 (20:24 -0500)]
Merge pull request #22175 from eileenmcnaughton/smarty3

[Smarty variable][Civicase] remove isset

2 years agoMerge pull request #22180 from eileenmcnaughton/smarty7
colemanw [Wed, 1 Dec 2021 01:24:20 +0000 (20:24 -0500)]
Merge pull request #22180 from eileenmcnaughton/smarty7

Remove issets from Activity search screen

2 years agoMerge pull request #22172 from eileenmcnaughton/smarty
colemanw [Wed, 1 Dec 2021 01:22:30 +0000 (20:22 -0500)]
Merge pull request #22172 from eileenmcnaughton/smarty

Avoid default escaping for blog titles

2 years agoMerge pull request #22174 from eileenmcnaughton/smarty2
colemanw [Wed, 1 Dec 2021 01:20:22 +0000 (20:20 -0500)]
Merge pull request #22174 from eileenmcnaughton/smarty2

Remove isset checks on isForm

2 years agoMerge pull request #22184 from eileenmcnaughton/smarty10
colemanw [Wed, 1 Dec 2021 01:19:44 +0000 (20:19 -0500)]
Merge pull request #22184 from eileenmcnaughton/smarty10

[Smarty variables] Remove isset from add new group form

2 years agoFix contribution tab to work with escape by default
Eileen McNaughton [Tue, 30 Nov 2021 20:36:28 +0000 (09:36 +1300)]
Fix contribution tab to work with escape by default

This removes some isset that affect contact contribution tab if escape on output is enabled.

This might regress some smarty e-notices. I think if tests pass that is OK at this stage
as we never eliminted them & getting to security enablable seems like a higher priority

2 years agoMerge pull request #22164 from eileenmcnaughton/parent
colemanw [Wed, 1 Dec 2021 00:04:00 +0000 (19:04 -0500)]
Merge pull request #22164 from eileenmcnaughton/parent

Remove empty check previously commented to be meaningless

2 years agoDebugSubscriber - Fix compatibility with XDebug 2/3
Tim Otten [Tue, 30 Nov 2021 23:54:41 +0000 (15:54 -0800)]
DebugSubscriber - Fix compatibility with XDebug 2/3

2 years agoMerge pull request #22178 from demeritcowboy/custom-null
Eileen McNaughton [Tue, 30 Nov 2021 23:27:55 +0000 (12:27 +1300)]
Merge pull request #22178 from demeritcowboy/custom-null

dev/core#2973 - All custom fields broken on edit forms

2 years ago[Smarty variables] The last isset....
Eileen McNaughton [Tue, 30 Nov 2021 23:22:20 +0000 (12:22 +1300)]
[Smarty variables] The last isset....

civicrm/report/list?reset=1

2 years agoMerge pull request #22081 from colemanw/searchKitSortable
demeritcowboy [Tue, 30 Nov 2021 22:30:25 +0000 (17:30 -0500)]
Merge pull request #22081 from colemanw/searchKitSortable

SearchKit - Add drag-sortable weight functionality

2 years ago[Smarty variables - remove isset
Eileen McNaughton [Tue, 30 Nov 2021 21:30:50 +0000 (10:30 +1300)]
[Smarty variables - remove isset

2 years agoManagedEntities - Fix permission error during uninstallation (regression-fix)
Tim Otten [Tue, 30 Nov 2021 21:47:17 +0000 (13:47 -0800)]
ManagedEntities - Fix permission error during uninstallation (regression-fix)

Overview
--------

Fixes a recent regression that prevents you from uninstalling extensions via
CLI.  This specifically affects extensions which use managed entities.

Steps to reproduce
------------------

```
cv en afform
cv dis afform
cv ext:uninstall afform
```

Before
-------

```
[bknix-max:~/bknix/build/dmaster/web/sites/all/modules/civicrm] cv en afform && cv dis afform && cv ext:uninstall afform
Enabling extension "org.civicrm.afform"
Disabling extension "org.civicrm.afform"
Uninstalling extension "org.civicrm.afform"
Error: API Call Failed: Array
(
    [entity] => Extension
    [action] => uninstall
    [params] => Array
        (
            [keys] => Array
                (
                    [0] => org.civicrm.afform
                )

            [debug] => 1
            [version] => 3
        )

    [result] => Array
        (
            [error_code] => unauthorized
            [entity] => Extension
            [action] => uninstall
            [trace] => #0 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/API/Kernel.php(147): Civi\API\Kernel->authorize(Object(Civi\Api4\Provider\ActionObjectProvider), Object(Civi\Api4\Generic\DAODeleteAction))
 #1 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/Api4/Generic/AbstractAction.php(234): Civi\API\Kernel->runRequest(Object(Civi\Api4\Generic\DAODeleteAction))
 #2 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/api/api.php(85): Civi\Api4\Generic\AbstractAction->execute()
 #3 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/ManagedEntities.php(467): civicrm_api4('OptionValue', 'delete', Array)
 #4 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/ManagedEntities.php(303): CRM_Core_ManagedEntities->removeStaleEntity(Object(CRM_Core_DAO_Managed))
 #5 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/ManagedEntities.php(134): CRM_Core_ManagedEntities->reconcileUnknownModules()
 #6 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php(409): CRM_Core_ManagedEntities->reconcile()
 #7 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/CRM/Extension/Manager.php(483): CRM_Core_Invoke::rebuildMenuAndCaches(true)
 #8 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/api/v3/Extension.php(183): CRM_Extension_Manager->uninstall(Array)
 #9 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_extension_uninstall(Array)
 #10 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke(Array)
 #11 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest(Array)
 #12 /home/me/bknix/build/dmaster/web/sites/all/modules/civicrm/api/api.php(22): Civi\API\Kernel->runSafe('Extension', 'uninstall', Array)
 #13 phar:///home/me/bknix/bin/cv/src/Command/BaseCommand.php(49): civicrm_api('Extension', 'uninstall', Array)
 #14 phar:///home/me/bknix/bin/cv/src/Command/ExtensionUninstallCommand.php(63): Civi\Cv\Command\BaseCommand->callApiSuccess(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput), 'Extension', 'uninstall', Array)
 #15 phar:///home/me/bknix/bin/cv/vendor/symfony/console/Command/Command.php(257): Civi\Cv\Command\ExtensionUninstallCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
 #16 phar:///home/me/bknix/bin/cv/vendor/symfony/console/Application.php(850): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
 #17 phar:///home/me/bknix/bin/cv/vendor/symfony/console/Application.php(193): Symfony\Component\Console\Application->doRunCommand(Object(Civi\Cv\Command\ExtensionUninstallCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
 #18 phar:///home/me/bknix/bin/cv/src/Application.php(46): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
 #19 phar:///home/me/bknix/bin/cv/vendor/symfony/console/Application.php(124): Civi\Cv\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
 #20 phar:///home/me/bknix/bin/cv/src/Application.php(15): Symfony\Component\Console\Application->run()
 #21 phar:///home/me/bknix/bin/cv/bin/cv(27): Civi\Cv\Application::main('phar:///Users/t...')
 #22 /home/me/bknix/bin/cv(14): require('phar:///Users/t...')
 #23 {main}
            [is_error] => 1
            [error_message] => Authorization failed
        )

)
```

After
-----

Works

Comment
-------

I encountered this while working on E2E test-coverage for other changes.
The E2E test coverage had worked on a previous iteration of 5.45.alpha1 but
failed when I rebased. Consequently, this means

You can see a prior draft of the E2E test [here](https://github.com/totten/shimmy/blob/master-reorg/shimmy/tests/phpunit/E2E/Shimmy/LifecycleTest.php#L56-L77).
However, it's being reworked as a core patch.

I'd suggest accepting this without a test - because (a) it's a regression and (b) there will be coverage from the pending change.

2 years agoRemove isset from add new group form
Eileen McNaughton [Tue, 30 Nov 2021 21:27:26 +0000 (10:27 +1300)]
Remove isset from add new group form

civicrm/group/add?reset=1

2 years agoRemove issets from Activity search screen
Eileen McNaughton [Tue, 30 Nov 2021 20:41:39 +0000 (09:41 +1300)]
Remove issets from Activity search screen

This will regress enotices - but I think it's an OK trade off at this stage to try to squeeze out a few more issets
while most people can't see those notices anyway

2 years agofix custom fields
demeritcowboy [Tue, 30 Nov 2021 20:26:11 +0000 (15:26 -0500)]
fix custom fields

2 years ago[Smarty variable][Civicase] remove isset
Eileen McNaughton [Tue, 30 Nov 2021 20:03:42 +0000 (09:03 +1300)]
[Smarty variable][Civicase] remove isset

Affects civicrm/case?reset=1 when cases exist

2 years agoRemove isset checks on isForm
Eileen McNaughton [Tue, 30 Nov 2021 19:59:18 +0000 (08:59 +1300)]
Remove isset checks on isForm

We are now assigning these from Core_Page so they should be set. If we do get
an enotice back from this then as long as it passes tests it will
be the lesser evil & picked up later

2 years agoAPIv4 - Add fixes & tests for domain-specific managed entities
Coleman Watts [Tue, 30 Nov 2021 19:53:04 +0000 (14:53 -0500)]
APIv4 - Add fixes & tests for domain-specific managed entities

2 years agoAvoid default escaping for blog titles
Eileen McNaughton [Tue, 30 Nov 2021 19:48:58 +0000 (08:48 +1300)]
Avoid default escaping for blog titles

These have escaping - but we dont want the html to be escaped because it messed with Karin's emojis :-)

2 years agoMerge pull request #21232 from colemanw/APIDelete
Eileen McNaughton [Tue, 30 Nov 2021 19:40:13 +0000 (08:40 +1300)]
Merge pull request #21232 from colemanw/APIDelete

APIv4 - Use correct BAO delete function (fixes dev/core#2757)

2 years agoMerge pull request #22171 from civicrm/5.44
colemanw [Tue, 30 Nov 2021 18:56:44 +0000 (13:56 -0500)]
Merge pull request #22171 from civicrm/5.44

5.44

2 years agoMerge pull request #22170 from colemanw/fixSearchKitOptions
colemanw [Tue, 30 Nov 2021 18:55:42 +0000 (13:55 -0500)]
Merge pull request #22170 from colemanw/fixSearchKitOptions

SearchKit - Fix regression for pseudoconstant selection

2 years agoAPIv4 - Add useTrash option to soft-delete contacts
Coleman Watts [Sun, 29 Aug 2021 16:17:05 +0000 (12:17 -0400)]
APIv4 - Add useTrash option to soft-delete contacts

This sets Contact::delete to move contacts to the trash by default.

2 years agoAPIv4 - Use correct BAO delete function
Coleman Watts [Mon, 23 Aug 2021 21:40:35 +0000 (17:40 -0400)]
APIv4 - Use correct BAO delete function

Uses BAO::del() only if it isn't deprecated.

2 years agoSearchKit - Fix regression for pseudoconstant selection
Coleman Watts [Tue, 30 Nov 2021 17:02:47 +0000 (12:02 -0500)]
SearchKit - Fix regression for pseudoconstant selection

Fixes dev/report#83

2 years agoSearchKit - Add drag-sortable weight functionality
Coleman Watts [Mon, 15 Nov 2021 14:47:37 +0000 (09:47 -0500)]
SearchKit - Add drag-sortable weight functionality

Drag-sortable weights are similar to in-place edit in that it uses the API
to update records in the table. In this case it updates the "weight" column when
the user drags a row into a different position.

2 years agoMerge pull request #22169 from demeritcowboy/oauth-dropdown
colemanw [Tue, 30 Nov 2021 14:28:28 +0000 (09:28 -0500)]
Merge pull request #22169 from demeritcowboy/oauth-dropdown

dev/mail#105 - Oauth dropdown missing on mail settings form

2 years agoMerge pull request #22161 from eileenmcnaughton/pay_test2
demeritcowboy [Tue, 30 Nov 2021 13:26:04 +0000 (08:26 -0500)]
Merge pull request #22161 from eileenmcnaughton/pay_test2

Fix more tests to use full flow

2 years agoMerge pull request #22143 from mattwire/statuspagehigherfirst
demeritcowboy [Tue, 30 Nov 2021 13:21:31 +0000 (08:21 -0500)]
Merge pull request #22143 from mattwire/statuspagehigherfirst

Display higher severity status checks first

2 years agoMerge pull request #22142 from mattwire/envokextensionsnatcase
Yashodha Chaku [Tue, 30 Nov 2021 07:52:59 +0000 (13:22 +0530)]
Merge pull request #22142 from mattwire/envokextensionsnatcase

Sort list of extensions alphabetically in 'Extensions ok' check

2 years agoMerge pull request #22168 from demeritcowboy/useajax
Seamus Lee [Tue, 30 Nov 2021 04:28:26 +0000 (15:28 +1100)]
Merge pull request #22168 from demeritcowboy/useajax

Fix broken extension page smarty assignment

2 years agoMerge pull request #22167 from eileenmcnaughton/location_tpl
Seamus Lee [Tue, 30 Nov 2021 04:28:16 +0000 (15:28 +1100)]
Merge pull request #22167 from eileenmcnaughton/location_tpl

[Smarty Variables] Remove isset from location type form

2 years agoMerge pull request #22166 from eileenmcnaughton/isset
colemanw [Tue, 30 Nov 2021 03:15:21 +0000 (22:15 -0500)]
Merge pull request #22166 from eileenmcnaughton/isset

[Smarty variables] Remove issets from scheduled job screen

2 years ago[Smarty Variables] Remove isset from location type form
Eileen McNaughton [Tue, 30 Nov 2021 00:02:43 +0000 (13:02 +1300)]
[Smarty Variables] Remove isset from location type form

https://dmaster.localhost:32353/civicrm/admin/locationType?reset=1

2 years agoMerge pull request #22162 from eileenmcnaughton/pay_test
Eileen McNaughton [Tue, 30 Nov 2021 01:24:35 +0000 (14:24 +1300)]
Merge pull request #22162 from eileenmcnaughton/pay_test

Fix membership test to use full flow

2 years agooauth dropdown missing on mail settings form
demeritcowboy [Tue, 30 Nov 2021 01:22:03 +0000 (20:22 -0500)]
oauth dropdown missing on mail settings form

2 years agofix smarty
demeritcowboy [Tue, 30 Nov 2021 00:47:43 +0000 (19:47 -0500)]
fix smarty

2 years agoPrevent settings form assigned html from being escapted
Eileen McNaughton [Mon, 29 Nov 2021 23:41:34 +0000 (12:41 +1300)]
Prevent settings form assigned html from being escapted

2 years ago[Smarty variables] Remove issets from scheduled job screen
Eileen McNaughton [Mon, 29 Nov 2021 23:36:49 +0000 (12:36 +1300)]
[Smarty variables] Remove issets from scheduled job screen

2 years agoRemove isset previously commented to be meaningless
Eileen McNaughton [Mon, 29 Nov 2021 23:30:30 +0000 (12:30 +1300)]
Remove isset previously commented to be meaningless

2 years agoMerge pull request #22074 from eileenmcnaughton/tags
colemanw [Mon, 29 Nov 2021 23:09:03 +0000 (18:09 -0500)]
Merge pull request #22074 from eileenmcnaughton/tags

[Smarty variables] Ensure groupElementType is always set

2 years agoMerge pull request #22132 from eileenmcnaughton/test_con
colemanw [Mon, 29 Nov 2021 23:08:07 +0000 (18:08 -0500)]
Merge pull request #22132 from eileenmcnaughton/test_con

[Smarty variables] [contact summary]  Assign variable to determine whether to show email signature field

2 years agoMerge pull request #22138 from eileenmcnaughton/cust_edit
colemanw [Mon, 29 Nov 2021 23:07:39 +0000 (18:07 -0500)]
Merge pull request #22138 from eileenmcnaughton/cust_edit

[Smarty variables] [custom data form] Template notice cleanup - make sane

2 years agoFix more tests to use full flow
Eileen McNaughton [Mon, 29 Nov 2021 23:05:47 +0000 (12:05 +1300)]
Fix more tests to use full flow

2 years agoFix membership test to use full flow
Eileen McNaughton [Mon, 29 Nov 2021 23:06:05 +0000 (12:06 +1300)]
Fix membership test to use full flow

2 years agoMerge pull request #22147 from eileenmcnaughton/pager
colemanw [Mon, 29 Nov 2021 23:06:10 +0000 (18:06 -0500)]
Merge pull request #22147 from eileenmcnaughton/pager

[Smarty variables] [report test]Ensure smarty variables are consistently assigned in report

2 years agoMerge pull request #22152 from eileenmcnaughton/n1
colemanw [Mon, 29 Nov 2021 23:05:43 +0000 (18:05 -0500)]
Merge pull request #22152 from eileenmcnaughton/n1

[Smarty variables] [Activity form] Ensure separation,tag are assigned to the template

2 years agoMerge pull request #22155 from eileenmcnaughton/n4
colemanw [Mon, 29 Nov 2021 23:04:36 +0000 (18:04 -0500)]
Merge pull request #22155 from eileenmcnaughton/n4

[Smarty variables] Specify isRepeatingEntity when including ConfirmRepeatMode.tpl

2 years agoMerge pull request #22160 from colemanw/navigationPermission
colemanw [Mon, 29 Nov 2021 23:02:02 +0000 (18:02 -0500)]
Merge pull request #22160 from colemanw/navigationPermission

APIv4 - Treat navigation permissions as array, add pseudoconstant for operator

2 years agoMerge pull request #22137 from colemanw/api4SortableEntity
Eileen McNaughton [Mon, 29 Nov 2021 21:46:08 +0000 (10:46 +1300)]
Merge pull request #22137 from colemanw/api4SortableEntity

APIv4 - Add SortableEntity type which auto-adjusts weights

2 years agoAPIv4 - Treat navigation permissions as array, add pseudoconstant for operator
Coleman Watts [Mon, 29 Nov 2021 19:26:35 +0000 (14:26 -0500)]
APIv4 - Treat navigation permissions as array, add pseudoconstant for operator

This gives consistency in how the fields are handled in the Navigation and Dashboard entities

2 years agoMerge pull request #22121 from colemanw/bridgeEntitiesGoneWild
colemanw [Mon, 29 Nov 2021 21:12:42 +0000 (16:12 -0500)]
Merge pull request #22121 from colemanw/bridgeEntitiesGoneWild

SearchKit - enable search by case role

2 years agoEnsure groupElementType is always set
Eileen McNaughton [Sun, 14 Nov 2021 18:23:31 +0000 (07:23 +1300)]
Ensure groupElementType is always set

2 years agoEnsure smarty variables are consistently assigned in report
Eileen McNaughton [Sun, 28 Nov 2021 06:26:38 +0000 (19:26 +1300)]
Ensure smarty variables are consistently assigned in report

2 years agoMerge pull request #22158 from colemanw/api4DeleteOptionList
Eileen McNaughton [Mon, 29 Nov 2021 19:08:35 +0000 (08:08 +1300)]
Merge pull request #22158 from colemanw/api4DeleteOptionList

APIv4 - Delete unused OptionList trait

2 years agoMerge pull request #22118 from eileenmcnaughton/notices
colemanw [Mon, 29 Nov 2021 17:20:58 +0000 (12:20 -0500)]
Merge pull request #22118 from eileenmcnaughton/notices

Fix message templates screen to work with escape enabled by default

2 years agoMerge pull request #22154 from eileenmcnaughton/n3
colemanw [Mon, 29 Nov 2021 15:13:51 +0000 (10:13 -0500)]
Merge pull request #22154 from eileenmcnaughton/n3

[Smarty variables] Use always-assigned isTagSet to determine if is tagset

2 years agoMerge pull request #22153 from eileenmcnaughton/n2
colemanw [Mon, 29 Nov 2021 15:13:35 +0000 (10:13 -0500)]
Merge pull request #22153 from eileenmcnaughton/n2

[Smarty variables] [Activity form] Ensure activityTypeFile is always assigned

2 years agoMerge pull request #22157 from eileenmcnaughton/testit
colemanw [Mon, 29 Nov 2021 15:12:25 +0000 (10:12 -0500)]
Merge pull request #22157 from eileenmcnaughton/testit

[Test] Fix tests to use form helper

2 years agoMerge pull request #22156 from eileenmcnaughton/cont_tests
colemanw [Mon, 29 Nov 2021 15:12:14 +0000 (10:12 -0500)]
Merge pull request #22156 from eileenmcnaughton/cont_tests

[Test] Test cleanup to use full-form methods

2 years agoAPIv4 - Delete unused OptionList trait
Coleman Watts [Mon, 29 Nov 2021 13:50:03 +0000 (08:50 -0500)]
APIv4 - Delete unused OptionList trait

This trait had been added for the sake of SearchKit to determine which entities should be
searchable and which were merely supplying option lists for other entities.

However, this logic broke down quickly as some option lists *should* be searchable,
so that path was abandoned in favor of the `@searchable` annotation.

The trait now does nothing and is just taking up space and adding unnecessary complexity.

2 years agoAPIv4 - Limit SortableEntity exports by domain
Coleman Watts [Sun, 28 Nov 2021 21:14:42 +0000 (16:14 -0500)]
APIv4 - Limit SortableEntity exports by domain

2 years agoAPIv4 - Add SortableEntity and ManagedEntity traits to Navigation menu entity
Coleman Watts [Sun, 28 Nov 2021 16:06:21 +0000 (11:06 -0500)]
APIv4 - Add SortableEntity and ManagedEntity traits to Navigation menu entity

Excludes 'weight' from managed entity calculations for references,
adds unit tests for the interaction of managed entities and sortable entities

2 years agoFix test for compatability with auto-weights
Coleman Watts [Sat, 27 Nov 2021 00:27:24 +0000 (19:27 -0500)]
Fix test for compatability with auto-weights

2 years agoFix unit tests to enable components before using them
Coleman Watts [Fri, 26 Nov 2021 21:48:57 +0000 (16:48 -0500)]
Fix unit tests to enable components before using them

2 years agoSearchKit - Use order_by from metadata to supply default sort for searchDisplays
Coleman Watts [Fri, 26 Nov 2021 01:12:32 +0000 (20:12 -0500)]
SearchKit - Use order_by from metadata to supply default sort for searchDisplays

2 years agoAPIv4 - Add SortableEntity type which auto-adjusts weights
Coleman Watts [Fri, 26 Nov 2021 00:28:56 +0000 (19:28 -0500)]
APIv4 - Add SortableEntity type which auto-adjusts weights

This entity type will manage weight columns automatically, allowing items to be
re-ordered easily.
Simply by updating the weight of one record, others will auto-adjust to make room for it.

2 years agoFix tests to use form helper
Eileen McNaughton [Mon, 29 Nov 2021 04:03:41 +0000 (17:03 +1300)]
Fix tests to use form helper

2 years agoMerge pull request #22151 from colemanw/optionValueSearch
Eileen McNaughton [Mon, 29 Nov 2021 03:59:40 +0000 (16:59 +1300)]
Merge pull request #22151 from colemanw/optionValueSearch

SearchKit - Allow searches of OptionValues, LocationTypes, CustomFields

2 years agoTest cleanup to use full-form methods
Eileen McNaughton [Mon, 29 Nov 2021 02:52:25 +0000 (15:52 +1300)]
Test cleanup to use full-form methods

Uses full form flow  - via a helper

2 years agoSpecify isRepeatingEntity when including ConfirmRepeatMode.tpl
Eileen McNaughton [Mon, 29 Nov 2021 01:49:05 +0000 (14:49 +1300)]
Specify isRepeatingEntity when including ConfirmRepeatMode.tpl

2 years agoUse always-assigned isTagSet to determine if is tagset
Eileen McNaughton [Mon, 29 Nov 2021 01:42:40 +0000 (14:42 +1300)]
Use always-assigned isTagSet to determine if is tagset

2 years agoEnsure activityTypeFile is always assigned
Eileen McNaughton [Mon, 29 Nov 2021 01:43:10 +0000 (14:43 +1300)]
Ensure activityTypeFile is always assigned

2 years agoEnsure separation,tag are assigned to the template
Eileen McNaughton [Mon, 29 Nov 2021 01:30:24 +0000 (14:30 +1300)]
Ensure separation,tag are assigned to the template

2 years agoSearchKit - Enable for CustomField, CustomGroup & LocationType
Coleman Watts [Mon, 29 Nov 2021 01:27:17 +0000 (20:27 -0500)]
SearchKit - Enable for CustomField, CustomGroup & LocationType

2 years agoFix message templates screen to work with escape enabled by default
Eileen McNaughton [Tue, 23 Nov 2021 22:02:30 +0000 (11:02 +1300)]
Fix message templates screen to work with escape enabled by default

2 years agoSearchKit - Allow searches of OptionGroups and OptionValues
Coleman Watts [Mon, 15 Nov 2021 14:47:08 +0000 (09:47 -0500)]
SearchKit - Allow searches of OptionGroups and OptionValues

Marks the entities searchable, and adds view/edit links for OptionValues

2 years agoMerge pull request #22148 from eileenmcnaughton/link
colemanw [Sun, 28 Nov 2021 23:36:09 +0000 (18:36 -0500)]
Merge pull request #22148 from eileenmcnaughton/link

Enotice fixes - ensure a couple more variables are consistently assigned