diff options
author | Matthew Somerville <matthew@mysociety.org> | 2019-07-17 17:11:27 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2019-08-16 14:25:12 +0100 |
commit | d5238a53c64c72ed83112875721d56f8c279798c (patch) | |
tree | cb847bb0276966a714ae5db71be1d0a9e2a466d3 | |
parent | e53daddcfb0b664fb8b74a537a84a17677872678 (diff) |
[Westminster] Ask for parent/child UPRN separately
-rw-r--r-- | web/cobrands/westminster/assets.js | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/web/cobrands/westminster/assets.js b/web/cobrands/westminster/assets.js index fe804644a..639ae0c11 100644 --- a/web/cobrands/westminster/assets.js +++ b/web/cobrands/westminster/assets.js @@ -37,7 +37,6 @@ OpenLayers.Layer.VectorAssetWestminsterSubcat = OpenLayers.Class(OpenLayers.Laye // select and pin move rather than just on asset select/not select. function uprn_init(name, options) { OpenLayers.Layer.VectorAsset.prototype.initialize.apply(this, arguments); - $(fixmystreet).on('maps:update_pin', this.checkSelected.bind(this)); $(fixmystreet).on('report_new:category_change', this.checkSelected.bind(this)); } OpenLayers.Layer.VectorAssetWestminsterUPRN = OpenLayers.Class(OpenLayers.Layer.VectorAsset, { @@ -157,12 +156,12 @@ function add_to_uprn_select($select, assets) { } } -function construct_uprn_select(assets) { +function construct_uprn_select(assets, has_children) { old_uprn = $('#uprn').val(); $("#uprn_select").remove(); $('.category_meta_message').html(''); var $div = $('<div class="extra-category-questions" id="uprn_select">'); - if (assets.length > 1) { + if (assets.length > 1 || has_children) { $div.append('<label for="uprn">Please choose a property:</label>'); var $select = $('<select id="uprn" class="form-control" name="UPRN" required>'); $select.append('<option value="">---</option>'); @@ -182,8 +181,8 @@ $.each(layer_data, function(i, o) { http_options: { url: url_base + '25/query?', params: { - where: "PROPERTYTYPE NOT IN ('Pay Phone','Street Record')", - outFields: 'UPRN,address' + where: "PARENTUPRN='XXXX' AND PROPERTYTYPE NOT IN ('Pay Phone','Street Record')", + outFields: 'UPRN,Address,ParentChild' } }, max_resolution: 0.5971642833948135, @@ -202,7 +201,31 @@ $.each(layer_data, function(i, o) { new OpenLayers.Geometry.Point(lonlat.lon, lonlat.lat), overlap_threshold ); - construct_uprn_select(overlapping_features); + + var parent_uprns = []; + $.each(overlapping_features, function(i, f) { + if (f.attributes.PARENTCHILD === 'Parent') { + parent_uprns.push("PARENTUPRN='" + f.attributes.UPRN + "'"); + } + }); + parent_uprns = parent_uprns.join(' OR '); + + if (parent_uprns) { + var url = url_base + '25/query?' + OpenLayers.Util.getParameterString({ + inSR: 4326, + f: 'geojson', + outFields: 'UPRN,Address', + where: parent_uprns + }); + $.getJSON(url, function(data) { + var features = []; + $.each(data.features, function(i, f) { + features.push({ attributes: f.properties }); + }); + add_to_uprn_select($('#uprn'), features); + }); + } + construct_uprn_select(overlapping_features, parent_uprns); }, asset_not_found: function() { $('.category_meta_message').html('You can pick a <b class="asset-spot">' + this.fixmystreet.asset_item + '</b> from the map »'); |