diff --git a/civicrm.php b/civicrm.php index 493058e4276b6a72cddab1eeffa83773af4ccab1..a901ea74f5dbfae0a3cb02a9d93625d3a9886164 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /** * Plugin Name: CiviCRM * Description: CiviCRM - Growing and Sustaining Relationships - * Version: 5.69.3 + * Version: 5.69.4 * Requires at least: 4.9 * Requires PHP: 7.3 * Author: CiviCRM LLC @@ -36,7 +36,7 @@ if (!defined('ABSPATH')) { } // Set version here: changing it forces Javascript and CSS to reload. -define('CIVICRM_PLUGIN_VERSION', '5.69.3'); +define('CIVICRM_PLUGIN_VERSION', '5.69.4'); // Store reference to this file. if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Contribute/Form/Contribution/Main.php b/civicrm/CRM/Contribute/Form/Contribution/Main.php index a39d1b06656e5b7229d272cd3cb86b4fc93d7cb7..cd5fe3c026cad453e3b73860cc6cb4f2e8cb4b55 100644 --- a/civicrm/CRM/Contribute/Form/Contribution/Main.php +++ b/civicrm/CRM/Contribute/Form/Contribution/Main.php @@ -629,12 +629,11 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu * @throws \CRM_Core_Exception */ private function buildMembershipBlock(): ?bool { - $cid = $this->_membershipContactID; $separateMembershipPayment = FALSE; $this->addOptionalQuickFormElement('auto_renew'); $this->addExpectedSmartyVariable('renewal_mode'); if ($this->_membershipBlock) { - $membershipTypeIds = $membershipTypes = $radio = []; + $membershipTypes = $radio = []; // This is always true if this line is reachable - remove along with the upcoming if. $membershipPriceset = TRUE; @@ -643,69 +642,56 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu $separateMembershipPayment = $this->_membershipBlock['is_separate_payment'] ?? NULL; - foreach ($this->getPriceFieldMetaData() as $pField) { - if (empty($pField['options'])) { - continue; - } - foreach ($pField['options'] as $opId => $opValues) { - if (empty($opValues['membership_type_id'])) { - continue; - } - $membershipTypeIds[$opValues['membership_type_id']] = $opValues['membership_type_id']; - } - } + $membershipTypeIds = $this->getAvailableMembershipTypeIDs(); //because we take first membership record id for renewal - $memberships = $this->getExistingMemberships(); if (!empty($membershipTypeIds)) { + // @todo = this hook should be called when loading the priceFieldMetadata in preProcess & incorporated + // There should be function to retrieve rather than property access. $membershipTypeValues = CRM_Member_BAO_Membership::buildMembershipTypeValues($this, $membershipTypeIds); $this->_membershipTypeValues = $membershipTypeValues; - $endDate = NULL; - - $allowAutoRenewOpt = $this->isPageHasPaymentProcessorSupportForRecurring(); - foreach ($membershipTypeIds as $value) { - $memType = $membershipTypeValues[$value]; - if ($memType['is_active']) { - $autoRenewMembershipTypeOptions["autoRenewMembershipType_{$value}"] = $this->getConfiguredAutoRenewOptionForMembershipType($value); - if ($allowAutoRenewOpt) { - $allowAutoRenewMembership = TRUE; + } + $endDate = NULL; + + foreach ($membershipTypeIds as $membershipTypeID) { + $memType = $membershipTypeValues[$membershipTypeID]; + if ($memType['is_active']) { + $autoRenewMembershipTypeOptions["autoRenewMembershipType_{$membershipTypeID}"] = $this->getConfiguredAutoRenewOptionForMembershipType($membershipTypeID); + if ($this->isPageHasPaymentProcessorSupportForRecurring()) { + $allowAutoRenewMembership = TRUE; + } + else { + $javascriptMethod = NULL; + } + + //add membership type. + $radio[$memType['id']] = NULL; + //show current membership, skip pending and cancelled membership records, + $membership = $this->getExistingMembership($membershipTypeID); + if ($membership) { + if ($membership["membership_type_id.duration_unit:name"] === 'lifetime') { + unset($radio[$memType['id']]); + $this->assign('hasExistingLifetimeMembership', TRUE); + continue; } - else { - $javascriptMethod = NULL; + $this->define('Membership', 'CurrentMembership', $membership); + $memType['current_membership'] = $membership['end_date']; + if (!$endDate) { + $endDate = $memType['current_membership']; + $this->_defaultMemTypeId = $memType['id']; } - - //add membership type. - $radio[$memType['id']] = NULL; - if ($cid) { - //show current membership, skip pending and cancelled membership records, - $membership = $memberships[$memType['id']] ?? NULL; - if ($membership) { - if ($membership["membership_type_id.duration_unit:name"] === 'lifetime') { - unset($radio[$memType['id']]); - $this->assign('hasExistingLifetimeMembership', TRUE); - unset($memberships[$memType['id']]); - continue; - } - $this->define('Membership', 'CurrentMembership', $membership); - $memType['current_membership'] = $membership['end_date']; - if (!$endDate) { - $endDate = $memType['current_membership']; - $this->_defaultMemTypeId = $memType['id']; - } - if ($memType['current_membership'] < $endDate) { - $endDate = $memType['current_membership']; - $this->_defaultMemTypeId = $memType['id']; - } - } + if ($memType['current_membership'] < $endDate) { + $endDate = $memType['current_membership']; + $this->_defaultMemTypeId = $memType['id']; } - $membershipTypes[] = $memType; } + $membershipTypes[] = $memType; } } $this->assign('membershipBlock', $this->_membershipBlock); $this->assign('showRadio', TRUE); - $this->assign('renewal_mode', !empty($memberships)); + $this->assign('renewal_mode', $this->contactHasRenewableMembership()); $this->assign('membershipTypes', $membershipTypes); $this->assign('allowAutoRenewMembership', $allowAutoRenewMembership); $this->assign('autoRenewMembershipTypeOptions', json_encode($autoRenewMembershipTypeOptions)); @@ -1799,6 +1785,32 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu return $this->existingMemberships ?? []; } + /** + * Get the first existing membership of the given type. + * + * @param int $membershipTypeID + * @return array|null + * + * @throws \CRM_Core_Exception + */ + private function getExistingMembership(int $membershipTypeID): ?array { + foreach ($this->getExistingMemberships() as $membership) { + if ($membership['membership_type_id'] === $membershipTypeID) { + return $membership; + } + } + return NULL; + } + + private function contactHasRenewableMembership(): bool { + foreach ($this->getExistingMemberships() as $membership) { + if ($membership['membership_type_id.duration_unit:name'] !== 'lifetime') { + return TRUE; + } + } + return FALSE; + } + /** * Get the membership type IDs available in the price set. * @@ -1807,8 +1819,12 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu */ private function getAvailableMembershipTypeIDs(): array { $membershipTypeIDs = []; - foreach ($this->getMembershipLineItems() as $lineItem) { - $membershipTypeIDs[$lineItem['membership_type_id']] = $lineItem['membership_type_id']; + foreach ($this->getPriceFieldMetaData() as $priceField) { + foreach ($priceField['options'] ?? [] as $option) { + if (!empty($option['membership_type_id'])) { + $membershipTypeIDs[$option['membership_type_id']] = $option['membership_type_id']; + } + } } return $membershipTypeIDs; } diff --git a/civicrm/CRM/Price/BAO/PriceField.php b/civicrm/CRM/Price/BAO/PriceField.php index a161fae72659c69566b4909ea0cc8576b6ac2556..38629f0f03d5e24551ce95f3e4671a7ef6f8bd8b 100644 --- a/civicrm/CRM/Price/BAO/PriceField.php +++ b/civicrm/CRM/Price/BAO/PriceField.php @@ -389,6 +389,8 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { 'price' => json_encode([$elementName, '0|0']), 'data-currency' => $currencyName, 'onclick' => 'clearAmountOther();', + 'data-amount' => 0, + 'data-is-null-option' => TRUE, ]; } @@ -408,6 +410,8 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $choiceAttrs['0'] = [ 'price' => json_encode([$elementName, '0']), 'data-membership-type-id' => NULL, + 'data-amount' => 0, + 'data-is-null-option' => TRUE, ] + $incomingExtra; } diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index 362820b04172039adb00f8ca1ee019cab0f8b701..e997f80511f5abc6f66e39a3a139c38b965cac41 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.69.3', + return array( 'version' => '5.69.4', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml index 3762b1ff97e1827a48d491a46801f78b58c0702d..d348ae83c50ebe9a2c106fdb55e1bca82d8812c3 100644 --- a/civicrm/ext/afform/admin/info.xml +++ b/civicrm/ext/afform/admin/info.xml @@ -12,8 +12,8 @@ <url desc="Chat">https://chat.civicrm.org/civicrm/channels/dev-afform</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>beta</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/afform/core/ang/af/afField.component.js b/civicrm/ext/afform/core/ang/af/afField.component.js index c8c56c6e72148d6eb537551fcad79404be07b4ba..80d1d1ed050e6ac6b9558cdafb132ddce112de39 100644 --- a/civicrm/ext/afform/core/ang/af/afField.component.js +++ b/civicrm/ext/afform/core/ang/af/afField.component.js @@ -256,8 +256,12 @@ }; }; - ctrl.getAutocompleteFieldName = function() { - return ctrl.afFieldset.modelName + (ctrl.afJoin ? ('+' + ctrl.afJoin.entity) : '') + ':' + ctrl.fieldName; + ctrl.getAutocompleteParams = function() { + return { + formName: 'afform:' + ctrl.afFieldset.getFormName(), + fieldName: ctrl.afFieldset.getName() + ':' + ctrl.fieldName, + values: $scope.dataProvider.getFieldData() + }; }; $scope.getOptions = function () { diff --git a/civicrm/ext/afform/core/ang/af/fields/EntityRef.html b/civicrm/ext/afform/core/ang/af/fields/EntityRef.html index 28bd70cf829121b0053eca8167b4abde99b79938..57b830dc694754796a377e39198a36fa3c44a16c 100644 --- a/civicrm/ext/afform/core/ang/af/fields/EntityRef.html +++ b/civicrm/ext/afform/core/ang/af/fields/EntityRef.html @@ -5,7 +5,7 @@ ng-model="getSetSelect" ng-model-options="{getterSetter: true}" crm-autocomplete="$ctrl.defn.fk_entity" - crm-autocomplete-params="{formName: 'afform:' + $ctrl.afFieldset.getFormName(), fieldName: $ctrl.afFieldset.getName() + ':' + $ctrl.fieldName, values: dataProvider.getFieldData()}" + crm-autocomplete-params="$ctrl.getAutocompleteParams" multi="$ctrl.defn.input_attrs.multiple" auto-open="$ctrl.defn.input_attrs.autoOpen" quick-add="$ctrl.defn.input_attrs.quickAdd" diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml index fcf0b28f5ebbadc4df4d89aea5aad1e20c94fe8a..e4ad7d26cafa36c6cb112745ba1898e93dacd42c 100644 --- a/civicrm/ext/afform/core/info.xml +++ b/civicrm/ext/afform/core/info.xml @@ -12,8 +12,8 @@ <url desc="Chat">https://chat.civicrm.org/civicrm/channels/dev-afform</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <compatibility> <ver>5.69</ver> </compatibility> diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml index dada7a31a770efe0f6c684bc12a3e53d89d2f8ca..0daf5d41e7b037f014b30cf6549b74bee4fe2854 100644 --- a/civicrm/ext/afform/html/info.xml +++ b/civicrm/ext/afform/html/info.xml @@ -12,8 +12,8 @@ <url desc="Chat">https://chat.civicrm.org/civicrm/channels/dev-afform</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml index 795b1781026ab27757cf4848419cc08e6e572a96..870bcec37d0632c9d8380bd03ef5c47632593654 100644 --- a/civicrm/ext/afform/mock/info.xml +++ b/civicrm/ext/afform/mock/info.xml @@ -11,8 +11,8 @@ <urls> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml index 5f0ef54f69408e956af8017ff2bafb1dcb54449e..0710e14f5d0a032775a909208f137488b614e848 100644 --- a/civicrm/ext/authx/info.xml +++ b/civicrm/ext/authx/info.xml @@ -14,8 +14,8 @@ <url desc="Issues">https://lab.civicrm.org/dev/core/-/issues</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/civi_campaign/info.xml b/civicrm/ext/civi_campaign/info.xml index 355cf41c727f8fd2fde067ce714ee3e247b5e8c7..f475c91923bddbc54042058285974666a2f5447e 100644 --- a/civicrm/ext/civi_campaign/info.xml +++ b/civicrm/ext/civi_campaign/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/campaign/what-is-civicampaign/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_case/info.xml b/civicrm/ext/civi_case/info.xml index f2a0fff4c2bbc8981efbc8431055ddc5fd96cf83..c4e96c16ce8e7b4ecd3da4865be47b539e283377 100644 --- a/civicrm/ext/civi_case/info.xml +++ b/civicrm/ext/civi_case/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/case-management/what-is-civicase/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_contribute/info.xml b/civicrm/ext/civi_contribute/info.xml index f01beb69249a1a8034286b15e62624fbe05046f3..5683d01adbef6ce6709932bb36ce4070c4e83a61 100644 --- a/civicrm/ext/civi_contribute/info.xml +++ b/civicrm/ext/civi_contribute/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/contributions/what-is-civicontribute/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_event/info.xml b/civicrm/ext/civi_event/info.xml index ffcd3900c57d05b76e27b4be03af792a803f4bd9..830280d698699d2f1ee4b6dd2eb9a9ceedbc90a6 100644 --- a/civicrm/ext/civi_event/info.xml +++ b/civicrm/ext/civi_event/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/events/what-is-civievent</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_mail/info.xml b/civicrm/ext/civi_mail/info.xml index aa0114e164495c6661b4f29dd317ec0caea0dc1e..75e62746f9131c61db85ccac3b76da6e4093b67c 100644 --- a/civicrm/ext/civi_mail/info.xml +++ b/civicrm/ext/civi_mail/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/email/what-is-civimail/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_member/info.xml b/civicrm/ext/civi_member/info.xml index 4499c7671b4fe5c20c819dd33164502d94ba188d..41cbf6656cb8207dfb3228df964583dc959b857a 100644 --- a/civicrm/ext/civi_member/info.xml +++ b/civicrm/ext/civi_member/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/membership/what-is-civimember/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_pledge/info.xml b/civicrm/ext/civi_pledge/info.xml index bb400f8b5f3645272388806c921ce14305efe9fe..ec90bd33f699f6763b42f06600d54cfbc1b91eb1 100644 --- a/civicrm/ext/civi_pledge/info.xml +++ b/civicrm/ext/civi_pledge/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/pledges/what-is-civipledge/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_report/info.xml b/civicrm/ext/civi_report/info.xml index b9fa72fcf4a486bae8e6642c73bd3a5036737f11..441a60ee83252c677f11a5113e1a3c5f973c19fd 100644 --- a/civicrm/ext/civi_report/info.xml +++ b/civicrm/ext/civi_report/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/reporting/what-is-civireport/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml index df1c2c867cd14805f1909978036919e1017b9753..ffac3021427a152a21a18bf633f2de19c22aad1e 100644 --- a/civicrm/ext/civicrm_admin_ui/info.xml +++ b/civicrm/ext/civicrm_admin_ui/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org/dev/core/-/issues</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>beta</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/civicrm_search_ui/info.xml b/civicrm/ext/civicrm_search_ui/info.xml index f025e92455e19da58143d855dab9a8bf798a0c73..f11e9875e502eea2e2a509100bc0b2b1fd6c715c 100644 --- a/civicrm/ext/civicrm_search_ui/info.xml +++ b/civicrm/ext/civicrm_search_ui/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org/dev/core/-/issues</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <requires> <ext>org.civicrm.search_kit</ext> diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml index f66d8f9941fe73685b14186388f0d1c8bc12883e..90b59d83189ce68c56aee5649990d1aaf5ab9115 100644 --- a/civicrm/ext/civigrant/info.xml +++ b/civicrm/ext/civigrant/info.xml @@ -12,8 +12,8 @@ <url desc="Documentation">https://docs.civicrm.org/user/en/latest/grants/what-is-civigrant/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/civiimport/info.xml b/civicrm/ext/civiimport/info.xml index 968163f3726ad5ac0dad63b048627936f1c20874..cb27f39157c7fd76e9e5348ed01ba2ffc0855c26 100644 --- a/civicrm/ext/civiimport/info.xml +++ b/civicrm/ext/civiimport/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml index b1a57717b6b2329586c7b62e4353b0f82a8d3a0f..466f3a700e5e4a8f0dc6c0b950da5877479ede7c 100644 --- a/civicrm/ext/ckeditor4/info.xml +++ b/civicrm/ext/ckeditor4/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://github.com/civicrm/civicrm-core/</url> <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml index 25113898e1edb953826f1d23cdd909829d8b6fed..ff383a0753dc310a1c4c6db98a156059e0d4cd07 100644 --- a/civicrm/ext/contributioncancelactions/info.xml +++ b/civicrm/ext/contributioncancelactions/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/elavon/info.xml b/civicrm/ext/elavon/info.xml index b1c63a816a575fccfc6435a2d920f49337397c85..3d72126b028d2ceb83f2e18d53f38654ad25fa2c 100644 --- a/civicrm/ext/elavon/info.xml +++ b/civicrm/ext/elavon/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml index 7df0d6a3b48b5cbdff5e135e021ecefa46f4da90..842f1b76b5575c5128e3d72e491c2de2687a3609 100644 --- a/civicrm/ext/eventcart/info.xml +++ b/civicrm/ext/eventcart/info.xml @@ -12,8 +12,8 @@ <url desc="Main Extension Page">https://github.com/civicrm/civicrm-core/tree/master/ext/eventcart</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml index 99447186b4e1122786307320dcb862a2938ac0ae..8a22ea3da7f7621383fce3b33a7a47ea12eae61e 100644 --- a/civicrm/ext/ewaysingle/info.xml +++ b/civicrm/ext/ewaysingle/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://github.com/civicrm/civicrm-core/blob/master/ext/ewaysingle</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml index e2d4b8dfab796da2bdd22bad928b8a320938044f..3c2745b6fee09eeb1f6fec22b6ac3ee148283565 100644 --- a/civicrm/ext/financialacls/info.xml +++ b/civicrm/ext/financialacls/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://FIXME</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml index 036f9bb28d766e2f72489d3244cc5a520b87e1a4..62cdc7985705ff033efff54244ac575c76bee14a 100644 --- a/civicrm/ext/flexmailer/info.xml +++ b/civicrm/ext/flexmailer/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://civicrm.stackexchange.com/</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <comments> FlexMailer is an email delivery engine which replaces the internal guts diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml index 15b35f61e5b5e9d9b8bc18dd2aeca6f87bf6e17c..b2d25e8e548bb18b25a2ecb99f65ef81451356f6 100644 --- a/civicrm/ext/greenwich/info.xml +++ b/civicrm/ext/greenwich/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml index 3948283af235948dcd8de6e5422222bdbb441ac1..bbb4a50b02aa8d672b1a78f8e176788d7422ccf9 100644 --- a/civicrm/ext/legacycustomsearches/info.xml +++ b/civicrm/ext/legacycustomsearches/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://FIXME</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml index b8bd023d17f463336f1d482f63164293b216987c..eeacdb52a8dd4f1ab6a38e09ed604c3d7a2dc18b 100644 --- a/civicrm/ext/message_admin/info.xml +++ b/civicrm/ext/message_admin/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml index e8e73931d51b412ca20bf91727f718aa741b056e..8ff12cd5974d24007708f68c1325eda0678cf3de 100644 --- a/civicrm/ext/oauth-client/info.xml +++ b/civicrm/ext/oauth-client/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org/dev/core/-/issues</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml index 5d9b36d5cb45c6a115df0b7d158faf51524cb00a..34ac80c3e1707a62404db95ecd118c04b6614f2a 100644 --- a/civicrm/ext/payflowpro/info.xml +++ b/civicrm/ext/payflowpro/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml index 548b52d5f030c199ba75a82f5a763641cdab73ed..6dc337bc5fe0212de2678f78906dd27213cda8d4 100644 --- a/civicrm/ext/recaptcha/info.xml +++ b/civicrm/ext/recaptcha/info.xml @@ -12,8 +12,8 @@ <url desc="Main Extension Page">https://github.com/civicrm/civicrm-core/tree/master/ext/recaptcha</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/scheduled_communications/info.xml b/civicrm/ext/scheduled_communications/info.xml index 4659c4d5f7ab75cab2e726b3a79d808eb11585b4..247f4b11355919ddda67ceb2f80be93e9925437f 100644 --- a/civicrm/ext/scheduled_communications/info.xml +++ b/civicrm/ext/scheduled_communications/info.xml @@ -12,8 +12,8 @@ <url desc="Chat">https://chat.civicrm.org/civicrm/channels/search-improvements</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>beta</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml index b64fb79767f781c585ea24b274e8cbec2ffbb53d..eb596f7c583413d663840ac3f43b117b5b3ae2ab 100644 --- a/civicrm/ext/search_kit/info.xml +++ b/civicrm/ext/search_kit/info.xml @@ -14,8 +14,8 @@ <url desc="Issues">https://lab.civicrm.org/dev/report/-/issues</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml index b64cbf4cfe22cd6776b59cc0d6c08ab0c16546d0..741fdef45ddcf993d267868b4d8f01f7389e7eb2 100644 --- a/civicrm/ext/sequentialcreditnotes/info.xml +++ b/civicrm/ext/sequentialcreditnotes/info.xml @@ -14,8 +14,8 @@ <url desc="Support">https://lab.civicrm.org/extensions/sequentialcreditnotes</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/standaloneusers/info.xml b/civicrm/ext/standaloneusers/info.xml index 083bf03bab1cee115ba4aecc4c0bff698388efa2..f3bdec8bae07d091912ca1a0c769837759a0a120 100644 --- a/civicrm/ext/standaloneusers/info.xml +++ b/civicrm/ext/standaloneusers/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://FIXME</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/ext/user_dashboard/info.xml b/civicrm/ext/user_dashboard/info.xml index 20b53aa576cdb73397a36dd1fd9596f7c8395a2d..6965e257d167479c4eb6c80fa6e8092a25d591f7 100644 --- a/civicrm/ext/user_dashboard/info.xml +++ b/civicrm/ext/user_dashboard/info.xml @@ -14,8 +14,8 @@ <url desc="Support">http://FIXME</url> <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> - <releaseDate>2024-01-25</releaseDate> - <version>5.69.3</version> + <releaseDate>2024-01-30</releaseDate> + <version>5.69.4</version> <develStage>alpha</develStage> <compatibility> <ver>5.69</ver> diff --git a/civicrm/js/Common.js b/civicrm/js/Common.js index 1b5c08f9d1a661150cf293996e30e30982c496cf..dd084d11e1ec30aabb4942ed1b5ddc209a90999c 100644 --- a/civicrm/js/Common.js +++ b/civicrm/js/Common.js @@ -570,6 +570,12 @@ if (!CRM.vars) CRM.vars = {}; // Autocomplete based on APIv4 and Select2. $.fn.crmAutocomplete = function(entityName, apiParams, select2Options) { + function getApiParams() { + if (typeof apiParams === 'function') { + return apiParams(); + } + return apiParams || {}; + } if (entityName === 'destroy') { return $(this).off('.crmEntity').crmSelect2('destroy'); } @@ -578,8 +584,7 @@ if (!CRM.vars) CRM.vars = {}; const $el = $(this).off('.crmEntity'); let staticItems = getStaticOptions(select2Options.static), quickAddLinks = select2Options.quickAdd, - multiple = !!select2Options.multiple, - key = apiParams.key || 'id'; + multiple = !!select2Options.multiple; $el.crmSelect2(_.extend({ ajax: { @@ -589,7 +594,7 @@ if (!CRM.vars) CRM.vars = {}; return {params: JSON.stringify(_.assign({ input: input, page: pageNum || 1 - }, apiParams))}; + }, getApiParams()))}; }, results: function(data) { return { @@ -615,7 +620,7 @@ if (!CRM.vars) CRM.vars = {}; if (!idsNeeded.length) { callback(multiple ? existing : existing[0]); } else { - var params = $.extend({}, apiParams || {}, {ids: idsNeeded}); + var params = $.extend({}, getApiParams(), {ids: idsNeeded}); CRM.api4(entityName, 'autocomplete', params).then(function (result) { callback(multiple ? result.concat(existing) : result[0]); }); @@ -663,6 +668,7 @@ if (!CRM.vars) CRM.vars = {}; const response = data.submissionResponse && data.submissionResponse[0]; let createdId; if (typeof response === 'object') { + let key = getApiParams().key || 'id'; // Loop through entities created by the afform (there should be only one) Object.keys(response).forEach((entity) => { if (Array.isArray(response[entity]) && response[entity][0] && response[entity][0][key]) { diff --git a/civicrm/js/version.json b/civicrm/js/version.json index ff623e264c167a92b79857667496a47307dd555a..0d71536118b4dfed674d853db96136b9e51acd92 100644 --- a/civicrm/js/version.json +++ b/civicrm/js/version.json @@ -1 +1 @@ -"5.69.3" +"5.69.4" diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index 75fc12be419f11576c2206c87f1cdfad817668dd..1252ff831a51fac8fcfd4f7c20091e7b7be70092 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,15 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.69.4 + +Released January 31, 2024 + +- **[Synopsis](release-notes/5.69.4.md#synopsis)** +- **[Bugs resolved](release-notes/5.69.4.md#bugs)** +- **[Credits](release-notes/5.69.4.md#credits)** +- **[Feedback](release-notes/5.69.4.md#feedback)** + ## CiviCRM 5.69.3 Released January 26, 2024 diff --git a/civicrm/release-notes/5.69.4.md b/civicrm/release-notes/5.69.4.md new file mode 100644 index 0000000000000000000000000000000000000000..1ee031bfec579691414e8c41aebd7ea129eb14d3 --- /dev/null +++ b/civicrm/release-notes/5.69.4.md @@ -0,0 +1,47 @@ +# CiviCRM 5.69.4 + +Released January 31, 2024 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | +| Fix security vulnerabilities? | no | + +## <a name="bugs"></a>Bugs resolved + +* **_CiviContribute_: On a contribution page with the "Other" option, there may be Javascript error ([dev/core#4912](https://lab.civicrm.org/dev/core/-/issues/4912): [#29113](https://github.com/civicrm/civicrm-core/pull/29113))** +* **_CiviContribute_: On a contribution page with the "Other" option, the total may show incorrectly ([dev/core#4917](https://lab.civicrm.org/dev/core/-/issues/4917): [#29115](https://github.com/civicrm/civicrm-core/pull/29115))** +* **_CiviMember_: On a membership page with an "Auto Renew" option, the checkbox may not initially appear ([#29118](https://github.com/civicrm/civicrm-core/pull/29118))** +* **_CiviMember_: Informative alert for existing members is not displayed ([dev/core#4939](https://lab.civicrm.org/dev/core/-/issues/4939): [#29112](https://github.com/civicrm/civicrm-core/pull/29112))** +* **_Form Builder_: Forms with "Yes/No" and autocomplete fail in Firefox ([dev/core#4937](https://lab.civicrm.org/dev/core/-/issues/4937): [#29092](https://github.com/civicrm/civicrm-core/pull/29092))** +* **_Smarty v3_: Remove inert code that causes fatal ([#29107](https://github.com/civicrm/civicrm-core/pull/29107))** +* **_View Contact_: Custom fields are incorrectly collapsed by default ([#29091](https://github.com/civicrm/civicrm-core/pull/29091))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; University of Waterloo - Patrick Lam; tresero; +Third Sector Design - William Mortada; Tadpole Collective - Kevin Cristiano; Nicol +Wistreich; Megaphone Technology Consulting - Jon Goldberg; JMA Consulting - Seamus Lee; +Humanists UK - Andrew West; Fuzion - Peter Davis; Francesc Bassas i Bullich; Dave D; +CiviCRM - Tim Otten, Coleman Watts; Christian Wach; Chabadrichmond; Botanical Society of +America - Rob Brandt; Artful Robot - Rich Lott + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andie Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index d77cb76bf3a90867f4c0cd44e3e913bc30e4fd2e..9830b28a5618f860f317019469c7eb54554dae43 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -21703,4 +21703,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.69.3'; +UPDATE civicrm_domain SET version = '5.69.4'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 0246c63aed56e2cb1de3b541c5a8138f8dfaa048..f1659b6aa0e6190f9b437ce20977e42d3b496f92 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -2976,7 +2976,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES - (1,'Default Domain Name',NULL,'5.69.3',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); + (1,'Default Domain Name',NULL,'5.69.4',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/templates/CRM/ACL/Header.tpl b/civicrm/templates/CRM/ACL/Header.tpl index fa94c0ae3a6cd51006286a520cb31fb14ef31c10..c97015b726cdb1c8311493c4dcba380b6949a447 100644 --- a/civicrm/templates/CRM/ACL/Header.tpl +++ b/civicrm/templates/CRM/ACL/Header.tpl @@ -13,40 +13,3 @@ <div class="help"> <p>{ts 1=$docLink}ACLs allow you to control access to CiviCRM data. An ACL consists of an <strong>Operation</strong> (e.g. 'View' or 'Edit'), a <strong>set of data</strong> that the operation can be performed on (e.g. a group of contacts), and a <strong>Role</strong> that has permission to do this operation. Refer to the %1 for more info.{/ts}</p> </div> - -{php} - $currentStep = $this->get_template_vars('step'); - $wizard = [ - 'style' => ['barClass' => '', 'showTitle' => FALSE], - 'currentStepNumber' => $currentStep, - 'steps' => [ - [ - 'title' => ts('Manage Roles'), - 'link' => CRM_Utils_System::url('civicrm/admin/options/acl_role', 'reset=1'), - 'collapsed' => FALSE, - 'name' => '', - ], - [ - 'title' => ts('Assign Users'), - 'link' => CRM_Utils_System::url('civicrm/acl/entityrole', 'reset=1'), - 'collapsed' => FALSE, - 'name' => '', - ], - [ - 'title' => ts('Manage ACLs'), - 'link' => CRM_Utils_System::url('civicrm/acl', 'reset=1'), - 'collapsed' => FALSE, - 'name' => '', - ], - ], - ]; - foreach ($wizard['steps'] as $num => &$step) { - $step['step'] = $step['valid'] = $step['stepNumber'] = $num + 1; - if ($step['stepNumber'] == $currentStep) { - $step['link'] = NULL; - } - } - $this->assign('wizard', $wizard); -{/php} - -{include file="CRM/common/WizardHeader.tpl"} diff --git a/civicrm/templates/CRM/Contact/Page/View/CustomDataView.tpl b/civicrm/templates/CRM/Contact/Page/View/CustomDataView.tpl index e3b17525165d2c4e9142d8538be5282ce1f5f664..48608878c832e156801353ea5ee61b7f2ee7ad86 100644 --- a/civicrm/templates/CRM/Contact/Page/View/CustomDataView.tpl +++ b/civicrm/templates/CRM/Contact/Page/View/CustomDataView.tpl @@ -14,7 +14,7 @@ {assign var="count" value=$customGroupCount%2} {if ($count eq $side) or $skipTitle} {foreach from=$customValues item=cd_edit key=cvID} - <details class="customFieldGroup crm-accordion-wrapper ui-corner-all {$cd_edit.name} crm-custom-set-block-{$customGroupId}" {if !empty($cd_edit.collapse_display)} open{/if}> + <details class="customFieldGroup crm-accordion-wrapper ui-corner-all {$cd_edit.name} crm-custom-set-block-{$customGroupId}" {if empty($cd_edit.collapse_display)} open{/if}> <summary class="crm-accordion-header crm-master-accordion-header"> {$cd_edit.title} </summary> diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl index d44bd2b60028e7763084cab804f3d15ac7708f06..b516313aea5ea2cf0a5c7644d2e3f1f40800152f 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl @@ -16,28 +16,29 @@ {literal} <script type="text/javascript"> - // Putting these functions directly in template so they are available for standalone forms + // Putting these functions directly in template for historical reasons. function useAmountOther(mainPriceFieldName) { - for( i=0; i < document.Main.elements.length; i++ ) { - element = document.Main.elements[i]; - if ( element.type == 'radio' && element.name === mainPriceFieldName ) { - if (element.value == '0' ) { - element.checked = true; - } - else { - element.checked = false; + var currentFocus = CRM.$(':focus'); + CRM.$('input[name=' + mainPriceFieldName + ']:radio:unchecked').each( + function () { + if (CRM.$(this).data('is-null-option') !== undefined) { + // Triggering this click here because over in Calculate.tpl + // a blur action is attached + CRM.$(this).prop('checked', true).trigger('click'); } } - } + ); + // Copied from `updatePriceSetHighlight()` below which isn't available here. + // @todo - consider adding this to the actions assigned in Calculate.tpl + CRM.$('#priceset .price-set-row span').removeClass('highlight'); + CRM.$('#priceset .price-set-row input:checked').parent().addClass('highlight'); + // Return the focus we blurred earlier. + currentFocus.trigger('focus'); + } function clearAmountOther(otherPriceFieldName) { - cj('#' + otherPriceFieldName).val(''); - cj('#' + otherPriceFieldName).blur(); - // @todo - remove the next 2 lines - they seems to relate to a field that is never present - // as amount_other will be (e.g) price_4 - if (document.Main.amount_other == null) return; // other_amt field not present; do nothing - document.Main.amount_other.value = ""; + cj('#' + otherPriceFieldName).val('').trigger('blur'); } </script> @@ -321,7 +322,7 @@ var isRecur = cj('input[id="is_recur"]:checked'); var quickConfig = {/literal}'{$quickConfig}'{literal}; - if (cj("#auto_renew") && quickConfig) { + if (cj("#auto_renew").length && quickConfig) { showHideAutoRenew(null); } diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/MainMembershipBlock.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/MainMembershipBlock.tpl index c4aca6522042f35a366ee11e6a5cc8cba82e2021..ecad3a4821d47cdf4ef10d1937224f42316ef973 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/MainMembershipBlock.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/MainMembershipBlock.tpl @@ -134,7 +134,7 @@ var priceSetName = "price_"+{/literal}'{$membershipFieldID}'{literal}; var considerUserInput = {/literal}'{$takeUserSubmittedAutoRenew}'{literal}; if ( memTypeId ) considerUserInput = false; - if ( !memTypeId ) memTypeId = cj('input:radio[name='+priceSetName+']:checked').attr('membership-type'); + if ( !memTypeId ) memTypeId = cj('input:radio[name='+priceSetName+']:checked').data('membership-type-id'); //does this page has only one membership type. var renewOptions = {/literal}{$autoRenewMembershipTypeOptions}{literal}; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 4d99ded32f55c1e2a6ccef146f48b5d57d6e542b..28d164a6de7cfd90577bba8e058cf9550640213c 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072::getLoader(); +return ComposerAutoloaderInite054b4f8fdcc4ecf2e44fd3dfbe06356::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 9ba5ef25b59ca049337e1463ad199af3ef4129ef..c821f4ffbd427de03cc8ede7271617c609ed9f7b 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072 +class ComposerAutoloaderInite054b4f8fdcc4ecf2e44fd3dfbe06356 { private static $loader; @@ -24,22 +24,22 @@ class ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072 require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInite054b4f8fdcc4ecf2e44fd3dfbe06356', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInite054b4f8fdcc4ecf2e44fd3dfbe06356', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); set_include_path(implode(PATH_SEPARATOR, $includePaths)); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInite36d44b412c906747bbbe03020d7d072::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::getInitializer($loader)); $loader->register(true); - $includeFiles = \Composer\Autoload\ComposerStaticInite36d44b412c906747bbbe03020d7d072::$files; + $includeFiles = \Composer\Autoload\ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$files; foreach ($includeFiles as $fileIdentifier => $file) { - composerRequiree36d44b412c906747bbbe03020d7d072($fileIdentifier, $file); + composerRequiree054b4f8fdcc4ecf2e44fd3dfbe06356($fileIdentifier, $file); } return $loader; @@ -51,7 +51,7 @@ class ComposerAutoloaderInite36d44b412c906747bbbe03020d7d072 * @param string $file * @return void */ -function composerRequiree36d44b412c906747bbbe03020d7d072($fileIdentifier, $file) +function composerRequiree054b4f8fdcc4ecf2e44fd3dfbe06356($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index e75a9e1d8e293bdc654ce55810ca464a80aeaf5f..476fdac9746bcb51c855918e4e519a27a700fd45 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInite36d44b412c906747bbbe03020d7d072 +class ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356 { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -713,11 +713,11 @@ class ComposerStaticInite36d44b412c906747bbbe03020d7d072 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInite36d44b412c906747bbbe03020d7d072::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInite36d44b412c906747bbbe03020d7d072::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInite36d44b412c906747bbbe03020d7d072::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInite36d44b412c906747bbbe03020d7d072::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInite36d44b412c906747bbbe03020d7d072::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInite054b4f8fdcc4ecf2e44fd3dfbe06356::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/vendor/composer/installed.php b/civicrm/vendor/composer/installed.php index 52232eb15b982368a8f5edc8dc3b15521bc029a1..b36a8b136237f6a0109a6faa7a2045bdc12eabc5 100644 --- a/civicrm/vendor/composer/installed.php +++ b/civicrm/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => 'civicrm/civicrm-core', 'pretty_version' => '5.69.x-dev', 'version' => '5.69.9999999.9999999-dev', - 'reference' => 'c3f742eff3a4248f26ed499e5ea61b2deee461e9', + 'reference' => '4c4fcf6f73d8568b321f5ea40dfba2ce494055b9', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -40,7 +40,7 @@ 'civicrm/civicrm-core' => array( 'pretty_version' => '5.69.x-dev', 'version' => '5.69.9999999.9999999-dev', - 'reference' => 'c3f742eff3a4248f26ed499e5ea61b2deee461e9', + 'reference' => '4c4fcf6f73d8568b321f5ea40dfba2ce494055b9', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index 36efda8d5e96b1b306b18596cf7b037d5bcf7eb7..739101bfbb5ec8d1e1e47c22f76cde9060314116 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.69.3</version_no> + <version_no>5.69.4</version_no> </version>