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;