Eileen McNaughton [Mon, 28 Sep 2020 23:55:33 +0000 (12:55 +1300)]
Merge pull request #18570 from mlutfy/pcpLinksHook
dev/core#2061 PCP: call the hook_civicrm_links hook for PCP page user actions
Eileen McNaughton [Mon, 28 Sep 2020 22:40:14 +0000 (11:40 +1300)]
Merge pull request #18626 from demeritcowboy/why-no-id
[Test framework] Wrong group id in mailing test setup
Eileen McNaughton [Mon, 28 Sep 2020 22:39:46 +0000 (11:39 +1300)]
Merge pull request #18627 from civicrm/5.30
5.30
Seamus Lee [Mon, 28 Sep 2020 22:39:02 +0000 (08:39 +1000)]
Merge pull request #18628 from seamuslee001/dev_core_2035
dev/core#2035 Add in upgrade step to fix the template copy on current…
Eileen McNaughton [Mon, 28 Sep 2020 20:42:10 +0000 (09:42 +1300)]
Merge pull request #18613 from mattwire/moveloadrelatedobjects
Simplify call to loadRelatedObjects in repeat/completetransaction
Seamus Lee [Mon, 28 Sep 2020 20:15:09 +0000 (06:15 +1000)]
dev/core#2035 Add in upgrade step to fix the template copy on current installs
Seamus Lee [Mon, 28 Sep 2020 20:11:24 +0000 (06:11 +1000)]
Merge pull request #18602 from eileenmcnaughton/msg
dev/core#2035 Invoice template - show Amount paid even when it is fully paid
Mathieu Lutfy [Wed, 23 Sep 2020 20:07:39 +0000 (16:07 -0400)]
dev/core#2061 PCP: call the hook_civicrm_links hook for PCP page user actions
demeritcowboy [Mon, 28 Sep 2020 19:25:53 +0000 (15:25 -0400)]
missing id
Seamus Lee [Mon, 28 Sep 2020 10:50:11 +0000 (20:50 +1000)]
Merge pull request #18559 from agileware/CIVICRM-1567
Update the post-upgrade thank you message to include URLs to CiviCRM contributors, CiviCRM members and minor rewrite
Matthew Wire [Sat, 26 Sep 2020 18:40:26 +0000 (19:40 +0100)]
Simplify call to loadRelationObjects in repeat/completetransaction
Matthew Wire [Mon, 28 Sep 2020 10:30:52 +0000 (11:30 +0100)]
Merge pull request #18590 from eileenmcnaughton/taskname
[REF] Remove unused taskName variable
Matthew Wire [Mon, 28 Sep 2020 10:29:24 +0000 (11:29 +0100)]
Merge pull request #18600 from eileenmcnaughton/aipn
[REF] IPN - move unshared chunk of code out of shared function
Matthew Wire [Mon, 28 Sep 2020 10:28:51 +0000 (11:28 +0100)]
Merge pull request #18536 from eileenmcnaughton/main
[REF] Paypal std ipn Move not-actually shared-code out of shared code function
Matthew Wire [Mon, 28 Sep 2020 10:28:18 +0000 (11:28 +0100)]
Merge pull request #18614 from eileenmcnaughton/mem
[REF] Remove some unused params, move one to where it is used
eileen [Sun, 27 Sep 2020 00:32:49 +0000 (13:32 +1300)]
[REF] Remove some unused params, move one to where it is used
Matthew Wire [Mon, 28 Sep 2020 08:29:44 +0000 (09:29 +0100)]
Merge pull request #18617 from eileenmcnaughton/ord
[Ref] Extract getOrderParams
Eileen McNaughton [Mon, 28 Sep 2020 01:29:33 +0000 (14:29 +1300)]
Merge pull request #18620 from eileenmcnaughton/notice
Enotice fix
Eileen McNaughton [Mon, 28 Sep 2020 00:54:29 +0000 (13:54 +1300)]
Merge pull request #18622 from civicrm/5.30
5.30
Seamus Lee [Mon, 28 Sep 2020 00:31:39 +0000 (10:31 +1000)]
Merge pull request #18615 from eileenmcnaughton/530
Fix regression on back-office membership renewal by credit card
eileen [Sun, 27 Sep 2020 22:02:23 +0000 (11:02 +1300)]
Enotice fix
Seamus Lee [Sun, 27 Sep 2020 20:35:50 +0000 (06:35 +1000)]
Merge pull request #18609 from eileenmcnaughton/act2
dev/core#2057 Reduce queries when calling activity.create
eileen [Sun, 27 Sep 2020 01:14:25 +0000 (14:14 +1300)]
Fix regression or back-office membership renewal by credit card
Looking at the code I realised a mistake was made in https://github.com/civicrm/civicrm-core/pull/17398 whereby
the actual membership id would not be passed through correctly
eileen [Sun, 27 Sep 2020 05:34:09 +0000 (18:34 +1300)]
[Ref] Extract getOrderParams
Overview
----------------------------------------
Minor extraction
Before
----------------------------------------
Code not re-usable
After
----------------------------------------
Code is re-useable, basis for further fix
Technical Details
----------------------------------------
Comments
----------------------------------------
Note this ties into https://lab.civicrm.org/dev/membership/-/issues/28
Seamus Lee [Sat, 26 Sep 2020 22:19:25 +0000 (08:19 +1000)]
Merge pull request #18593 from mattwire/joblog
Add an 'Execute Now' button to the job log
eileen [Sat, 26 Sep 2020 07:58:57 +0000 (19:58 +1200)]
dev/core#2057 Reduce queries when calling activity.create
This reduces queries in 2 ways
1) if the action is 'create' then existing activity contacts cannot exist, so do not try to delete them
2) if the action is 'edit' then look for & delete for all 3 record types at once.
There are still questions about how we can improve this further but it should remove up to 3 queries per
Activity.create call
Matthew Wire [Sat, 26 Sep 2020 18:31:28 +0000 (19:31 +0100)]
Merge pull request #18604 from eileenmcnaughton/act_cont
[REF] Very minor cleanup
Matthew Wire [Fri, 17 Jan 2020 19:04:00 +0000 (19:04 +0000)]
Add an 'Execute Now' button to the job log
Eileen McNaughton [Sat, 26 Sep 2020 06:43:00 +0000 (18:43 +1200)]
Merge pull request #18605 from totten/master-pscss
dev/core#1393 - distmaker - Skip new file "vendor/bin/pscss"
colemanw [Sat, 26 Sep 2020 03:04:00 +0000 (23:04 -0400)]
Merge pull request #18586 from eileenmcnaughton/blok
[REF] Fix Event location to create it's locations directly rather than via shared methods
eileen [Sat, 26 Sep 2020 00:43:38 +0000 (12:43 +1200)]
dev/core#2035 Invoice template - show Amount paid even when it is fully paid
In https://github.com/civicrm/civicrm-core/pull/16680/files?w=1#diff-b211e0dac858fdad5d480c118d645e0bR129 there was a change from
'show amount paid & due depending on pay-later status' to 'show amount paid & due depending on whether payment is due'
This has been experienced as a regression and, being an invoice, there seems no reason to only change it sometimes.
This change just alters the template that new installs will receive. If approved another step is needed to update existing
installs (unless they have customised the template)
colemanw [Sat, 26 Sep 2020 02:32:19 +0000 (22:32 -0400)]
Merge pull request #18598 from eileenmcnaughton/prim
Fix bug in primary handling where TRUE rather than 1 used
Eileen McNaughton [Sat, 26 Sep 2020 02:25:37 +0000 (14:25 +1200)]
Merge pull request #18601 from eileenmcnaughton/apiv3activity
Test cleanup fix
Tim Otten [Sat, 26 Sep 2020 00:46:23 +0000 (17:46 -0700)]
dev/core#1393 - distmaker - Skip new file "vendor/bin/pscss"
This file was recently added by way of `scssphp`. We don't use it, and
trying to bundle the symlink into the tarball breaks some consumers.
* Before (last release): `vendor/bin/pscss` does not exist
* Before (current master): `vendor/bin/pscss` is created as symlink, copied to tarball
* After (this commit): `vendor/bin/pscss` is created on dev-builds but omitted from tarball
eileen [Wed, 23 Sep 2020 03:33:39 +0000 (15:33 +1200)]
Minor code cleanup
eileen [Wed, 23 Sep 2020 03:31:07 +0000 (15:31 +1200)]
Remove unused variable
eileen [Sat, 26 Sep 2020 00:23:33 +0000 (12:23 +1200)]
Test cleanup fix
Note it's better practice to clean up in the tear down but it looks like someone
tried & failed before so let's see....
Eileen McNaughton [Sat, 26 Sep 2020 00:17:16 +0000 (12:17 +1200)]
Merge pull request #18447 from mlutfy/inheritLocaleRegression
dev/translation#51 Fix inheritLocale regression
Seamus Lee [Fri, 25 Sep 2020 23:57:25 +0000 (09:57 +1000)]
Merge pull request #18567 from eileenmcnaughton/apiv3activity
dev/core#2057 Fix 'sleeper-bug' in apiv4, BAO activity.create
eileen [Fri, 25 Sep 2020 21:54:54 +0000 (09:54 +1200)]
[REF] IPN - move unshared chunk of code out of shared function
We are passing a lot of variables into recur (& going to a lot of work to construct them) when they are not
actually processed in a common way - returning them to the calling functions makes it clear we are
a skip & a jump from not needing to instantiate objects at all
colemanw [Fri, 25 Sep 2020 22:59:54 +0000 (18:59 -0400)]
Merge pull request #18591 from eileenmcnaughton/search
[REF] Consolidate retrieval of searchFormValues
Eileen McNaughton [Fri, 25 Sep 2020 21:42:50 +0000 (09:42 +1200)]
Merge pull request #18597 from seamuslee001/core_exts_distmaker
[REF] Include recently added core extensions into distmaker
eileen [Fri, 25 Sep 2020 20:49:18 +0000 (08:49 +1200)]
Fix bug inn primary handling where TRUE rather than 1 used
colemanw [Fri, 25 Sep 2020 20:48:44 +0000 (16:48 -0400)]
Merge pull request #18571 from eileenmcnaughton/aipn
dev/financial#148 Duplicate validateData onto A.net
Seamus Lee [Fri, 25 Sep 2020 20:41:28 +0000 (06:41 +1000)]
[REF] Include recently added core extensions into distmaker
Eileen McNaughton [Fri, 25 Sep 2020 20:22:30 +0000 (08:22 +1200)]
Merge pull request #18594 from mattwire/repeattransactiondoubleexception
Remove double exception handling in repeattransaction
eileen [Fri, 25 Sep 2020 02:46:31 +0000 (14:46 +1200)]
[REF] Consolidate retrieval of searchFormValues
Currently there are 3 ways in which the values from the searchForm are retrieved
1) the search form sets a value 'searchFormName' on the form during search which can
be later retrieved
2) the search task has an action that reflects the form it came from
3) as per 2 but there is additional handling for the fact it might be
the contact search (knowable because the entity has been set to 'Contact'
I'm not 100% sure at this stage that the selected method (3) in this PR is the best -
but it seems 'as good' as 1 with less form-state stuff and this PR consolidates it
into 1 place so it is handled consistently
Eileen McNaughton [Fri, 25 Sep 2020 20:14:58 +0000 (08:14 +1200)]
Merge pull request #18587 from eileenmcnaughton/prevnext
dev/core#2029 E2E.Core.PrevNextTest.testDeleteByCacheKey More debug attempts
Eileen McNaughton [Fri, 25 Sep 2020 20:11:08 +0000 (08:11 +1200)]
Merge pull request #18595 from adixon/preferred-language-1883
pass in "required" value when building preferred_language form element
Alan Dixon [Fri, 25 Sep 2020 16:11:04 +0000 (12:11 -0400)]
pass in "required" value when building preferred_language form element
Matthew Wire [Fri, 25 Sep 2020 15:18:20 +0000 (16:18 +0100)]
Remove double exception handling in repeattransaction
eileen [Fri, 25 Sep 2020 08:45:25 +0000 (20:45 +1200)]
Fix MailingJob::writeToDB to handle it's own activityTarget wrangling
Per https://github.com/civicrm/civicrm-core/pull/18567 it makes sense for activity to have basic support for activity targets
but form more nuance the function can DIY
eileen [Wed, 23 Sep 2020 02:22:07 +0000 (14:22 +1200)]
Fix 'sleeper-bug' in api.
It turns out that the Activity.create BAO
- deletes the existing source contact for an activity if the param 'source_contact_id' is set
- deletes existing assignee contacts for an activity if the param 'assignee_contact_id' is empty
- deletes existing target contacts for an activity if the param 'target_contact_id' is empty
The v3 api provides some fairly convoluted wrapping to effectively convert is empty
to isset (via 2 params deleteActivityAssignment, deleteActivityTarget which would only
be anything other than true if the relevant value key is not set or we are operating from
the one place in universe that passes in this param (well actually it's true then too
https://github.com/eileenmcnaughton/civicrm_entity/commit/
bd779c19bbf82ca22260615b4f7667d02eee1200
)
The v4 api does no handling and we can expect that on update activity contact records are
likely being lost - ditto with direct BAO calls that were probably QAd at some point but
may have changed over time.
This changes the BAO to treat the assignee & target params the same way as source
- ie do nothing if not set, but empty means to delete them
Remove support for api param deleteActivityAssignment, deleteActivityTarget
I did a universe search & it was only called from one place which
I fixed
https://github.com/eileenmcnaughton/civicrm_entity/commit/
bd779c19bbf82ca22260615b4f7667d02eee1200
- it's never been a tested param so technically not supported
This is part of my effort to fix redundant queries in Activity.create regarding
activity contacts
eileen [Thu, 24 Sep 2020 23:01:09 +0000 (11:01 +1200)]
[REF] Fix Event location to create it's locations directly rather than via shared methods
This form does extra work in order to call CRM_Core_BAO_Block::create and CRM_Core_BAO_Address::create - but they have
extra handling that only exists for this code place. So, we are making 2 functions more complex in order to inter-relate them.
This simplifies the CRM_Event_Form_ManageEvent_Location and I will do follow on cleanup once merged. Note I previously
added tests to CRM_Event_Form_ManageEvent_LocationTest specifically to cover this (in a recent previous refactor
Eileen McNaughton [Fri, 25 Sep 2020 04:23:40 +0000 (16:23 +1200)]
Merge pull request #18588 from eileenmcnaughton/phone
dev/core#2046 Fix Phone:add to be a pseudonym for Phone.create
eileen [Fri, 25 Sep 2020 02:07:58 +0000 (14:07 +1200)]
[REF] Remove unused taskName variable
This variable is only used at the tpl layer in export - there is a separate PR
to change that usage to something more meaningful
https://github.com/civicrm/civicrm-core/pull/18589
Other than that all this task assignment appears to be just cruft
It's likely that it precedes other ways of setting the page title
eileen [Thu, 24 Sep 2020 23:31:39 +0000 (11:31 +1200)]
dev/core#2046 Fix Phone:add to be a pseudonym for Phone.create
Per https://lab.civicrm.org/dev/core/-/issues/2046 we have discussed rationalising add vs create
In the case of phone making this change only affects one place - a place that currently has a
bug that relates specifically to the handling of is_primary & which is more solvable by
calling create with it's extra is_primary handling.
(the related bug is that the is_primary handling in Block::create is unreliable &
to mitigate that we are doing an additional 10 queries on every contact create - so
handling is_primary right in the first place helps address that)
colemanw [Fri, 25 Sep 2020 00:06:00 +0000 (20:06 -0400)]
Merge pull request #18510 from eileenmcnaughton/preprocess
[Ref] Extract getFormValues
eileen [Thu, 24 Sep 2020 23:17:47 +0000 (11:17 +1200)]
dev/core#2029 More debug attempts
Eileen McNaughton [Thu, 24 Sep 2020 22:40:33 +0000 (10:40 +1200)]
Merge pull request #18583 from colemanw/afformGui
Afform GUI: add bootstrap3
Seamus Lee [Thu, 24 Sep 2020 22:08:27 +0000 (08:08 +1000)]
Merge pull request #18397 from swastikpareek/issue-1987-fix-isFrontPage-function
dev/core#1987: Fix Drupal Base 'isFrontEndPage' function to consider Drupal public page for FE theme
Eileen McNaughton [Thu, 24 Sep 2020 21:40:29 +0000 (09:40 +1200)]
Merge pull request #18584 from demeritcowboy/schedmail-targets
[NFC/Test] Unit test for target contacts on Bulk Email when mailing in batches
Justin Freeman [Thu, 24 Sep 2020 21:08:05 +0000 (07:08 +1000)]
CIVICRM-1567 Update the post-upgrade thank you message to include URLs to CiviCRM contributors, CiviCRM members and minor rewrite
Eileen McNaughton [Thu, 24 Sep 2020 20:51:24 +0000 (08:51 +1200)]
Merge pull request #18572 from colemanw/concat
APIv4 Search: Improve GROUP_CONCAT with :label prefix
Coleman Watts [Thu, 24 Sep 2020 18:27:45 +0000 (14:27 -0400)]
Afform: add bootstrap3 bundle
colemanw [Thu, 24 Sep 2020 19:28:49 +0000 (15:28 -0400)]
Merge pull request #18569 from eileenmcnaughton/synt
SyntaxConformance::testSqlOperators cleanup fix - ensure entities are deleted
colemanw [Thu, 24 Sep 2020 19:28:09 +0000 (15:28 -0400)]
Merge pull request #18538 from eileenmcnaughton/name
[REF] Remove checks as to whether entityShortName is in the component array
colemanw [Thu, 24 Sep 2020 18:58:58 +0000 (14:58 -0400)]
Merge pull request #18512 from eileenmcnaughton/export_classes
Separate export into separate classes to allow unravelling of component handling (Member)
Coleman Watts [Thu, 24 Sep 2020 18:27:20 +0000 (14:27 -0400)]
Afform: code cleanup & remove unused menu item
demeritcowboy [Thu, 24 Sep 2020 18:23:45 +0000 (14:23 -0400)]
test for target contacts on Bulk Email for mailing in batches
colemanw [Thu, 24 Sep 2020 15:21:55 +0000 (11:21 -0400)]
Merge pull request #18562 from eileenmcnaughton/locit
[Ref] Merge code - Move determination about location type to the getDAOForLocation…
colemanw [Thu, 24 Sep 2020 15:19:01 +0000 (11:19 -0400)]
Merge pull request #18578 from eileenmcnaughton/api42
Simplify CRM_Core_BAO_Location::createLocBlock by moving eventLocation specific handling back to the class
colemanw [Thu, 24 Sep 2020 14:58:09 +0000 (10:58 -0400)]
Merge pull request #18566 from eileenmcnaughton/act_contact
dev/core#2057 ActivityContact.create Remove select query that never or almost never finds something.
colemanw [Thu, 24 Sep 2020 14:43:46 +0000 (10:43 -0400)]
Merge pull request #18579 from colemanw/select2-bootstrap
Add select2-bootstrap to greenwich theme
Coleman Watts [Thu, 24 Sep 2020 14:31:09 +0000 (10:31 -0400)]
Search ext: Expose DISTINCT modifier
Coleman Watts [Wed, 23 Sep 2020 18:35:40 +0000 (14:35 -0400)]
APIv4 Search: Improve GROUP_CONCAT with :label prefix
This moves handing of pseudoconstant suffix replacement from the UI level to the API level,
which allows APIv4 to return GROUP_CONCAT results as an array (by default, if no separator specified).
It also improves post-query formatting in general, with finer-grained formating callbacks for sql functions.
Tim Otten [Thu, 24 Sep 2020 12:03:07 +0000 (05:03 -0700)]
ext/greenwich - Improve portability. Consolidate tasks.
1. Using 'php-eval' instead of 'shell' should make it safer to run on Windows.
2. The two steps are very closesly related. Putting them into the same 'task'
means that it's a bit easier to understand the 'watch' behavior.
Tim Otten [Thu, 24 Sep 2020 11:57:44 +0000 (04:57 -0700)]
composer.lock - Update compile plugin
Tim Otten [Thu, 24 Sep 2020 11:57:33 +0000 (04:57 -0700)]
composer.json - Update compile plugin
colemanw [Thu, 24 Sep 2020 12:01:50 +0000 (08:01 -0400)]
Merge pull request #18573 from eileenmcnaughton/nnfc
[NFC] Minor cleanup - use strict comparison where possible
colemanw [Thu, 24 Sep 2020 11:57:10 +0000 (07:57 -0400)]
ext/greenwich - Coerce `select2-bootstrap.css` to be handled as SCSS (#9)
Co-authored-by: Tim Otten <totten@civicrm.org>
Seamus Lee [Thu, 24 Sep 2020 11:02:01 +0000 (21:02 +1000)]
Merge pull request #18568 from mattwire/membershipdeprecated
Switch to non-deprecated/cached functions for membership pricesets
Seamus Lee [Thu, 24 Sep 2020 07:19:11 +0000 (17:19 +1000)]
Merge pull request #18580 from eileenmcnaughton/matt
Unit test for https://github.com/civicrm/civicrm-core/pull/18568
eileen [Thu, 24 Sep 2020 00:49:11 +0000 (12:49 +1200)]
Simplify CRM_Core_BAO_Location::createLocBlock by moving eventLocation specific handling back to the class
On grepping universe we find entity is only passed into
CRM_Core_BAO_Location::createLocBlock from this one place in the code - ergo we can
do the handling for it on that class & not in the shared code
Test cover added in preparation for this to CRM_Event_Form_ManageEvent_LocationTest
eileen [Thu, 24 Sep 2020 03:25:38 +0000 (15:25 +1200)]
Unit test for https://github.com/civicrm/civicrm-core/pull/18568
eileen [Wed, 23 Sep 2020 02:06:46 +0000 (14:06 +1200)]
dev/core#2057 Remove select query that never or almost never finds something.
When it comes to quey efficiency it's good to do an extra select if it saves an update/insert
but not if it never does. To test the theory that this 'never does' I put
removing this select through the entire test suite. No tests failed, meaning
it was unnecessary 100% of the time. Adding the catch ensures
it will still succeed if it the row exists but we have moved our query conservation
from doing an extraneous select in 99.9% of cases to an extraneous update in .1% of cases
https://lab.civicrm.org/dev/core/-/issues/2057
Eileen McNaughton [Thu, 24 Sep 2020 01:47:40 +0000 (13:47 +1200)]
Merge pull request #18576 from eileenmcnaughton/iso
dev/core#1921 Remove handling for Civi4.2 date bug from paypalProIPN
Coleman Watts [Thu, 24 Sep 2020 01:10:51 +0000 (21:10 -0400)]
Add select2-bootstrap to greenwich theme
eileen [Thu, 24 Sep 2020 00:36:52 +0000 (12:36 +1200)]
dev/core#2043 Remove pass by reference
Eileen McNaughton [Thu, 24 Sep 2020 00:40:32 +0000 (12:40 +1200)]
Merge pull request #18575 from eileenmcnaughton/api42
dev/core#2044 Make contact_id optional on v4 api for Address, phone, email
eileen [Wed, 23 Sep 2020 23:45:23 +0000 (11:45 +1200)]
dev/core#1921 Remove handling fo Civi4.2 from paypalProIPN
All the tests in
CRM_Core_Payment_PayPalProIPNTest pass through this line
It used to be necessary to reformat dates on a DAO before resaving
- up until 2014
eileen [Wed, 23 Sep 2020 23:23:20 +0000 (11:23 +1200)]
dev/core#2044 Make contact_id optional on v4 api for Address, phone, email
It's optional in the schema for events etc
eileen [Wed, 23 Sep 2020 22:38:51 +0000 (10:38 +1200)]
[NFC] Minor cleanup - use strict comparison where possible
colemanw [Wed, 23 Sep 2020 21:34:19 +0000 (17:34 -0400)]
Merge pull request #18550 from eileenmcnaughton/search
Add bootstrap bundle to search
eileen [Wed, 23 Sep 2020 20:25:46 +0000 (08:25 +1200)]
dev/financial#148 Duplicate validateData onto A.net
eileen [Wed, 23 Sep 2020 18:50:37 +0000 (06:50 +1200)]
Test cleanup fix
Eileen McNaughton [Wed, 23 Sep 2020 18:45:49 +0000 (06:45 +1200)]
Merge pull request #18528 from mattwire/inputpaymentprocessorid
Switch to passing payment_processor_id as input param to completeOrder
Matthew Wire [Sat, 19 Sep 2020 19:35:34 +0000 (20:35 +0100)]
Switch to passing payment_processor_id as input param to completeOrder
Matthew Wire [Mon, 7 Sep 2020 15:32:40 +0000 (16:32 +0100)]
Switch to non-deprecated/cached functions for membership pricesets
Seamus Lee [Wed, 23 Sep 2020 09:30:32 +0000 (19:30 +1000)]
Merge pull request #18515 from mattwire/membershipbaodeprecated
Switch membership BAO to use non-deprecated cached functions to get membershipType details