diff --git a/js/.eslintrc.json b/js/.eslintrc.json index d284e09..4ec15ff 100644 --- a/js/.eslintrc.json +++ b/js/.eslintrc.json @@ -61,7 +61,8 @@ "strict": "off", "valid-jsdoc": ["error", {"requireReturn": false, "requireParamDescription": false, "requireReturnDescription": false}], "vars-on-top": "off", - "operator_assignment": "off", + "operator-assignment": "off", + "no-else-return": "off", // Node.js and CommonJS "callback-return": "off", diff --git a/js/beestat/address.js b/js/beestat/address.js new file mode 100644 index 0000000..6f95640 --- /dev/null +++ b/js/beestat/address.js @@ -0,0 +1,47 @@ +beestat.address = {}; + +/** + * Get the parts of an address in two separate lines. + * + * @param {number} address_id + * + * @return {array} + */ +beestat.address.get_lines = function(address_id) { + const address = beestat.cache.address[address_id]; + + if (address.normalized === null) { + return null; + } + + console.log(address); + + // US Address + if (address.normalized.components.country_iso_3 === 'USA') { + return [ + address.normalized.delivery_line_1, + [ + address.normalized.components.city_name, + address.normalized.components.state_abbreviation + ',', + address.normalized.components.zipcode + ].join(' ') + ]; + } else { + return [ + address.normalized.address1, + address.normalized.address2 + ]; + } +}; + +/** + * Get whether or not this address was validated and thus has address components/metadata, is geocoded, etc. + * + * @param {number} address_id + * + * @return {boolean} + */ +beestat.address.is_valid = function(address_id) { + const address = beestat.cache.address[address_id]; + return address.normalized !== null; +}; diff --git a/js/beestat/comparisons.js b/js/beestat/comparisons.js index c9b1b83..953a3fd 100644 --- a/js/beestat/comparisons.js +++ b/js/beestat/comparisons.js @@ -81,12 +81,7 @@ beestat.comparisons.get_attributes = function() { } if ( - address.normalized !== null && - address.normalized.metadata !== undefined && - address.normalized.metadata.latitude !== undefined && - address.normalized.metadata.latitude !== null && - address.normalized.metadata.longitude !== undefined && - address.normalized.metadata.longitude !== null && + beestat.address.is_valid(address.address_id) === true && beestat.setting('comparison_region') !== 'global' ) { attributes.radius = { diff --git a/js/component/card/my_home.js b/js/component/card/my_home.js index ea177f2..3da7b63 100644 --- a/js/component/card/my_home.js +++ b/js/component/card/my_home.js @@ -102,10 +102,7 @@ beestat.component.card.my_home.prototype.decorate_region_ = function(parent) { (new beestat.component.title('Region')).render(parent); var region; - if ( - address.normalized !== null && - address.normalized.components !== undefined - ) { + if (beestat.address.is_valid(address.address_id) === true) { region = address.normalized.components.state_abbreviation || address.normalized.components.locality || diff --git a/js/component/modal/create_floor_plan.js b/js/component/modal/create_floor_plan.js index 4074a68..17b8414 100644 --- a/js/component/modal/create_floor_plan.js +++ b/js/component/modal/create_floor_plan.js @@ -122,26 +122,9 @@ beestat.component.modal.create_floor_plan.prototype.decorate_contents_ = functio const radio_group = new beestat.component.radio_group(); const addresses = Object.values(beestat.cache.address); addresses.forEach(function(address) { - if ( - address.normalized !== null && - address.normalized.metadata !== undefined && - address.normalized.metadata.latitude !== undefined && - address.normalized.metadata.latitude !== null && - address.normalized.metadata.longitude !== undefined && - address.normalized.metadata.longitude !== null - ) { - const address_parts = [ - address.normalized.components.primary_number, - address.normalized.components.street_predirection, - address.normalized.components.street_name, - address.normalized.components.street_suffix, - address.normalized.components.city_name + ',', - address.normalized.components.state_abbreviation, - address.normalized.components.zipcode - ]; - + if (beestat.address.is_valid(address.address_id) === true) { let radio = new beestat.component.input.radio() - .set_label(address_parts.join(' ')) + .set_label(beestat.address.get_lines(address.address_id)[0]) .set_value(address.address_id); if (addresses.length === 1) { diff --git a/js/component/modal/update_floor_plan.js b/js/component/modal/update_floor_plan.js index 56559b0..36e8cac 100644 --- a/js/component/modal/update_floor_plan.js +++ b/js/component/modal/update_floor_plan.js @@ -82,26 +82,9 @@ beestat.component.modal.update_floor_plan.prototype.decorate_contents_ = functio const radio_group = new beestat.component.radio_group(); const addresses = Object.values(beestat.cache.address); addresses.forEach(function(address) { - if ( - address.normalized !== null && - address.normalized.metadata !== undefined && - address.normalized.metadata.latitude !== undefined && - address.normalized.metadata.latitude !== null && - address.normalized.metadata.longitude !== undefined && - address.normalized.metadata.longitude !== null - ) { - const address_parts = [ - address.normalized.components.primary_number, - address.normalized.components.street_predirection, - address.normalized.components.street_name, - address.normalized.components.street_suffix, - address.normalized.components.city_name + ',', - address.normalized.components.state_abbreviation, - address.normalized.components.zipcode - ]; - + if (beestat.address.is_valid(address.address_id) === true) { let radio = new beestat.component.input.radio() - .set_label(address_parts.join(' ')) + .set_label(beestat.address.get_lines(address.address_id)[0]) .set_value(address.address_id); if (address.address_id === floor_plan.address_id) { diff --git a/js/js.php b/js/js.php index ae9e3cb..0edf9d4 100755 --- a/js/js.php +++ b/js/js.php @@ -43,6 +43,7 @@ if($setting->get('environment') === 'dev' || $setting->get('environment') === 'd echo '' . PHP_EOL; echo '' . PHP_EOL; echo '' . PHP_EOL; + echo '' . PHP_EOL; // Layer echo '' . PHP_EOL;