Skip to content

Commit 95df143

Browse files
authored
Merge pull request #54 from localgovdrupal/1.x
1.0.0-beta3 release
2 parents 95560d0 + 64da889 commit 95df143

File tree

10 files changed

+636
-100
lines changed

10 files changed

+636
-100
lines changed

js/address_select.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
/**
3333
* Hide manual address form.
3434
*
35-
* @param {jQuery} centralHubElement
35+
* @param {jQuery} centralHubElement
3636
* Central hub address lookup element.
37-
* @param {String} type
37+
* @param {String} type
3838
* 'soft' = Do not clear the address values.
3939
* (used when an address is selected)
4040
* 'hard' = Clear the address values.
@@ -87,7 +87,8 @@
8787

8888
/**
8989
* Check if a manual address has been entered.
90-
* @param {jQuery} centralHubElement
90+
*
91+
* @param {jQuery} centralHubElement
9192
* Centralhub address element.
9293
* @return {Boolean}
9394
* True if the a manual address is present and the search box is empty.
@@ -110,7 +111,8 @@
110111

111112
/**
112113
* Hide errors on an element
113-
* @param {jQuery} indvElement
114+
*
115+
* @param {jQuery} indvElement
114116
* The individual form input element to hide errors.
115117
*/
116118
function hideErrorsOnElement(indvElement) {
@@ -165,12 +167,9 @@
165167
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--town-city').val(addressSelected.town);
166168
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--postcode').val(addressSelected.postcode);
167169

168-
// add UPRN
169-
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--uprn').val(addressSelected.uprn);
170-
171170
// Add any extra fields from centrahub for Twig access.
172171
// @See DRUP-1287.
173-
var extra_elements = ['lat', 'lng', 'ward'];
172+
var extra_elements = ['lat', 'lng', 'uprn', 'ward'];
174173
$.each(extra_elements, function (index, value) {
175174
central_hub_webform_address_container.find('input.js-localgov-forms-webform-uk-address--' + value).val(addressSelected[value]);
176175
});
@@ -191,14 +190,10 @@
191190
*/
192191
var localgov_forms_webform_manual_address_change_handler = function () {
193192
var central_hub_webform_address_container = $(this).closest('.js-webform-type-localgov-webform-uk-address');
194-
var central_hub_webfrom_address_entry = $(this).closest('.js-address-entry-container');
195-
196-
// Clear UPRN.
197-
central_hub_webfrom_address_entry.find('input.js-localgov-forms-webform-uk-address--uprn').val('');
198193

199194
// Clear any extra fields from centrahub for Twig access.
200195
// @See DRUP-1287.
201-
var extra_elements = ['lat', 'lng', 'ward'];
196+
var extra_elements = ['lat', 'lng', 'uprn', 'ward'];
202197
$.each(extra_elements, function (index, value) {
203198
central_hub_webform_address_container.find('input.js-localgov-forms-webform-uk-address--' + value).val('');
204199
});

localgov_forms.module

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,52 @@
55
* Hook implementations.
66
*/
77

8+
use Drupal\Core\Render\Element;
9+
810
/**
911
* Implements hook_theme().
1012
*/
1113
function localgov_forms_theme() {
1214
return [
15+
// Form element: localgov_webform_uk_address.
16+
'localgov_forms_uk_address_lookup' => [
17+
'render element' => 'element',
18+
],
19+
// Form element: webform_uk_address.
1320
'localgov_forms_uk_address' => [
1421
'render element' => 'element',
1522
],
1623
];
1724
}
1825

1926
/**
20-
* Prepares variables for BHCC Webform templates.
27+
* Implements hook_preprocess_localgov_forms_uk_address_lookup().
2128
*
22-
* Default template: localgov-forms-uk-address.html.twig.
29+
* Prepares variables for the Address lookup element template.
30+
*
31+
* Makes sub-elements available within the `content` variable. Mostly lifted
32+
* from _template_preprocess_webform_composite().
33+
*/
34+
function localgov_forms_preprocess_localgov_forms_uk_address_lookup(array &$variables) {
35+
36+
$element = $variables['element'];
37+
foreach (Element::children($element) as $key) {
38+
if (!isset($element[$key]['#access']) || $element[$key]['#access']) {
39+
$variables['content'][$key] = $element[$key];
40+
}
41+
}
42+
43+
$variables['flexbox'] = $element['#flexbox'] ?? FALSE;
44+
}
45+
46+
/**
47+
* Implements hook_preprocess_localgov_forms_uk_address().
2348
*
24-
* @param array $variables
25-
* An associative array containing:
26-
* - element: An associative array containing the properties of the element.
49+
* Prepares variables for the UK address element template.
2750
*/
28-
function template_preprocess_localgov_forms_uk_address(array &$variables) {
29-
// Here you can get the composite element and alter it.
30-
Drupal::moduleHandler()->loadInclude('webform', 'inc', 'includes/webform.theme.template');
51+
function localgov_forms_preprocess_localgov_forms_uk_address(array &$variables) {
3152

32-
_template_preprocess_webform_composite($variables);
53+
localgov_forms_preprocess_localgov_webform_uk_address($variables);
3354
}
3455

3556
/**

0 commit comments

Comments
 (0)