Skip to content

Commit

Permalink
Merge pull request #54 from localgovdrupal/1.x
Browse files Browse the repository at this point in the history
1.0.0-beta3 release
  • Loading branch information
finnlewis committed Dec 4, 2023
2 parents 95560d0 + 64da889 commit 95df143
Show file tree
Hide file tree
Showing 10 changed files with 636 additions and 100 deletions.
21 changes: 8 additions & 13 deletions js/address_select.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@
/**
* Hide manual address form.
*
* @param {jQuery} centralHubElement
* @param {jQuery} centralHubElement
* Central hub address lookup element.
* @param {String} type
* @param {String} type
* 'soft' = Do not clear the address values.
* (used when an address is selected)
* 'hard' = Clear the address values.
Expand Down Expand Up @@ -87,7 +87,8 @@

/**
* Check if a manual address has been entered.
* @param {jQuery} centralHubElement
*
* @param {jQuery} centralHubElement
* Centralhub address element.
* @return {Boolean}
* True if the a manual address is present and the search box is empty.
Expand All @@ -110,7 +111,8 @@

/**
* Hide errors on an element
* @param {jQuery} indvElement
*
* @param {jQuery} indvElement
* The individual form input element to hide errors.
*/
function hideErrorsOnElement(indvElement) {
Expand Down Expand Up @@ -165,12 +167,9 @@
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--town-city').val(addressSelected.town);
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--postcode').val(addressSelected.postcode);

// add UPRN
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--uprn').val(addressSelected.uprn);

// Add any extra fields from centrahub for Twig access.
// @See DRUP-1287.
var extra_elements = ['lat', 'lng', 'ward'];
var extra_elements = ['lat', 'lng', 'uprn', 'ward'];
$.each(extra_elements, function (index, value) {
central_hub_webform_address_container.find('input.js-localgov-forms-webform-uk-address--' + value).val(addressSelected[value]);
});
Expand All @@ -191,14 +190,10 @@
*/
var localgov_forms_webform_manual_address_change_handler = function () {
var central_hub_webform_address_container = $(this).closest('.js-webform-type-localgov-webform-uk-address');
var central_hub_webfrom_address_entry = $(this).closest('.js-address-entry-container');

// Clear UPRN.
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--uprn').val('');

// Clear any extra fields from centrahub for Twig access.
// @See DRUP-1287.
var extra_elements = ['lat', 'lng', 'ward'];
var extra_elements = ['lat', 'lng', 'uprn', 'ward'];
$.each(extra_elements, function (index, value) {
central_hub_webform_address_container.find('input.js-localgov-forms-webform-uk-address--' + value).val('');
});
Expand Down
39 changes: 30 additions & 9 deletions localgov_forms.module
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,52 @@
* Hook implementations.
*/

use Drupal\Core\Render\Element;

/**
* Implements hook_theme().
*/
function localgov_forms_theme() {
return [
// Form element: localgov_webform_uk_address.
'localgov_forms_uk_address_lookup' => [
'render element' => 'element',
],
// Form element: webform_uk_address.
'localgov_forms_uk_address' => [
'render element' => 'element',
],
];
}

/**
* Prepares variables for BHCC Webform templates.
* Implements hook_preprocess_localgov_forms_uk_address_lookup().
*
* Default template: localgov-forms-uk-address.html.twig.
* Prepares variables for the Address lookup element template.
*
* Makes sub-elements available within the `content` variable. Mostly lifted
* from _template_preprocess_webform_composite().
*/
function localgov_forms_preprocess_localgov_forms_uk_address_lookup(array &$variables) {

$element = $variables['element'];
foreach (Element::children($element) as $key) {
if (!isset($element[$key]['#access']) || $element[$key]['#access']) {
$variables['content'][$key] = $element[$key];
}
}

$variables['flexbox'] = $element['#flexbox'] ?? FALSE;
}

/**
* Implements hook_preprocess_localgov_forms_uk_address().
*
* @param array $variables
* An associative array containing:
* - element: An associative array containing the properties of the element.
* Prepares variables for the UK address element template.
*/
function template_preprocess_localgov_forms_uk_address(array &$variables) {
// Here you can get the composite element and alter it.
Drupal::moduleHandler()->loadInclude('webform', 'inc', 'includes/webform.theme.template');
function localgov_forms_preprocess_localgov_forms_uk_address(array &$variables) {

_template_preprocess_webform_composite($variables);
localgov_forms_preprocess_localgov_webform_uk_address($variables);
}

/**
Expand Down

0 comments on commit 95df143

Please sign in to comment.