From 58e10827531055d1d2643aa54aa73fda0c130efe Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Mon, 23 Dec 2024 14:18:18 -0500 Subject: [PATCH 1/9] feat: add cookie link and left align section --- es-ds-components/components/es-footer.vue | 4 ++-- es-ds-components/utils/get-es-footer-content.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/es-ds-components/components/es-footer.vue b/es-ds-components/components/es-footer.vue index c82926c7d..7c1b75d8d 100644 --- a/es-ds-components/components/es-footer.vue +++ b/es-ds-components/components/es-footer.vue @@ -120,11 +120,11 @@ export default {
-
+
+ class="col col-6 col-lg-auto font-size-75 font-weight-semibold font-size-md-50 font-weight-md-normal mt-25 mb-50 pr-lg-300"> diff --git a/es-ds-components/utils/get-es-footer-content.ts b/es-ds-components/utils/get-es-footer-content.ts index 2c790a5bb..bbf690ac8 100644 --- a/es-ds-components/utils/get-es-footer-content.ts +++ b/es-ds-components/utils/get-es-footer-content.ts @@ -76,6 +76,7 @@ export default ( { text: 'Privacy policy', url: `${ES_DOMAIN}/privacy-policy/` }, { text: 'Mobile terms of use', url: `${ES_DOMAIN}/mobile-terms-of-use/` }, { text: 'Non-discrimination policy', url: `${ES_DOMAIN}/nondiscrimination/` }, + { text: 'Cookie notice', url: `${ES_DOMAIN}/cookie-notice/` }, ], copyrightText: '© Copyright 2009-{currentYear} EnergySage, Inc. All rights reserved.', trademarkText: `ENERGYSAGE is a registered trademark and the EnergySage logo is a trademark of EnergySage, Inc. From 6306fedf164f1bbd3f417757fc62569ef2fa99c9 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Tue, 24 Dec 2024 09:34:45 -0500 Subject: [PATCH 2/9] feat: add privacy choices link --- es-ds-components/components/es-footer.vue | 37 ++++++- .../components/icon/ccpa-opt-out.vue | 102 ++++++++++++++++++ .../utils/get-es-footer-content.ts | 1 + 3 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 es-ds-components/components/icon/ccpa-opt-out.vue diff --git a/es-ds-components/components/es-footer.vue b/es-ds-components/components/es-footer.vue index 7c1b75d8d..0a695be1a 100644 --- a/es-ds-components/components/es-footer.vue +++ b/es-ds-components/components/es-footer.vue @@ -25,6 +25,29 @@ export default { return this.content.copyrightText.replace('{currentYear}', new Date().getFullYear()); }, }, + mounted() { + // TODO: update with GTM tag in prod once we've gone live + // See https://tagmanager.google.com/#/container/accounts/2920232696/containers/8806152/workspaces/126/tags + // for GTM script that triggers this event. + window.addEventListener('OneTrustLoadedCb', () => { + // @ts-ignore + window.OneTrust.OnConsentChanged(() => { + // OneTrust modal should modify cookie values, a hard-refresh will + // trigger re-loading GTM with updated cookie values, which in turn + // will only fire tags aligned with new preferences + window.location.reload(); + return false; + }); + document.querySelectorAll('.toggle-info-display').forEach((elem) => { + // Function closure to ensure event only fires on one elem + elem.addEventListener('click', (e) => { + e.stopImmediatePropagation(); + // @ts-ignore + window.OneTrust.ToggleInfoDisplay(); + }); + }); + }); + }, }; @@ -124,12 +147,22 @@ export default {
+ class="col col-6 col-lg-auto"> + class="text-reset font-weight-normal font-size-75 font-size-md-50 font-weight-md-normal mt-25 mb-50 pr-lg-300"> {{ link.text }} +
+ + + {{ link.text }} + +
diff --git a/es-ds-components/components/icon/ccpa-opt-out.vue b/es-ds-components/components/icon/ccpa-opt-out.vue new file mode 100644 index 000000000..90294dc50 --- /dev/null +++ b/es-ds-components/components/icon/ccpa-opt-out.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/es-ds-components/utils/get-es-footer-content.ts b/es-ds-components/utils/get-es-footer-content.ts index bbf690ac8..f1c37f9fc 100644 --- a/es-ds-components/utils/get-es-footer-content.ts +++ b/es-ds-components/utils/get-es-footer-content.ts @@ -77,6 +77,7 @@ export default ( { text: 'Mobile terms of use', url: `${ES_DOMAIN}/mobile-terms-of-use/` }, { text: 'Non-discrimination policy', url: `${ES_DOMAIN}/nondiscrimination/` }, { text: 'Cookie notice', url: `${ES_DOMAIN}/cookie-notice/` }, + { text: 'Your privacy choices' }, ], copyrightText: '© Copyright 2009-{currentYear} EnergySage, Inc. All rights reserved.', trademarkText: `ENERGYSAGE is a registered trademark and the EnergySage logo is a trademark of EnergySage, Inc. From c2cb22d9f56c9dbb15b9f7de153a37ad61449e9a Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Mon, 13 Jan 2025 15:08:51 -0500 Subject: [PATCH 3/9] chore: remove cookie notice link --- es-ds-components/utils/get-es-footer-content.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/es-ds-components/utils/get-es-footer-content.ts b/es-ds-components/utils/get-es-footer-content.ts index f1c37f9fc..2f20c3b1b 100644 --- a/es-ds-components/utils/get-es-footer-content.ts +++ b/es-ds-components/utils/get-es-footer-content.ts @@ -76,7 +76,6 @@ export default ( { text: 'Privacy policy', url: `${ES_DOMAIN}/privacy-policy/` }, { text: 'Mobile terms of use', url: `${ES_DOMAIN}/mobile-terms-of-use/` }, { text: 'Non-discrimination policy', url: `${ES_DOMAIN}/nondiscrimination/` }, - { text: 'Cookie notice', url: `${ES_DOMAIN}/cookie-notice/` }, { text: 'Your privacy choices' }, ], copyrightText: '© Copyright 2009-{currentYear} EnergySage, Inc. All rights reserved.', From c0d50b787031983b4b317d9dd424297ef9a8cef1 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Mon, 13 Jan 2025 17:00:53 -0500 Subject: [PATCH 4/9] fix: fix typescript error --- es-ds-components/components/es-footer.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/es-ds-components/components/es-footer.vue b/es-ds-components/components/es-footer.vue index 0a695be1a..a9b80b885 100644 --- a/es-ds-components/components/es-footer.vue +++ b/es-ds-components/components/es-footer.vue @@ -30,8 +30,7 @@ export default { // See https://tagmanager.google.com/#/container/accounts/2920232696/containers/8806152/workspaces/126/tags // for GTM script that triggers this event. window.addEventListener('OneTrustLoadedCb', () => { - // @ts-ignore - window.OneTrust.OnConsentChanged(() => { + (window as any).OneTrust.OnConsentChanged(() => { // OneTrust modal should modify cookie values, a hard-refresh will // trigger re-loading GTM with updated cookie values, which in turn // will only fire tags aligned with new preferences @@ -42,8 +41,7 @@ export default { // Function closure to ensure event only fires on one elem elem.addEventListener('click', (e) => { e.stopImmediatePropagation(); - // @ts-ignore - window.OneTrust.ToggleInfoDisplay(); + (window as any).OneTrust.ToggleInfoDisplay(); }); }); }); From 21a57ef53693a8c036df60c4e17388daba30f5a2 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Tue, 14 Jan 2025 14:43:09 -0500 Subject: [PATCH 5/9] chore: clean up styles --- .../components/icon/ccpa-opt-out.vue | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/es-ds-components/components/icon/ccpa-opt-out.vue b/es-ds-components/components/icon/ccpa-opt-out.vue index 90294dc50..0c874a614 100644 --- a/es-ds-components/components/icon/ccpa-opt-out.vue +++ b/es-ds-components/components/icon/ccpa-opt-out.vue @@ -83,20 +83,14 @@ export default { From 9db8a7ceeb79c672784b0ed1b0d4df8dcf6d48e5 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Tue, 14 Jan 2025 14:48:01 -0500 Subject: [PATCH 6/9] chore: run prettier --- es-ds-components/components/icon/ccpa-opt-out.vue | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/es-ds-components/components/icon/ccpa-opt-out.vue b/es-ds-components/components/icon/ccpa-opt-out.vue index 0c874a614..390eea599 100644 --- a/es-ds-components/components/icon/ccpa-opt-out.vue +++ b/es-ds-components/components/icon/ccpa-opt-out.vue @@ -83,14 +83,17 @@ export default { From 46dbbd37f98b07c93cf36b4758919e3cd9c27879 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Wed, 15 Jan 2025 16:03:47 -0500 Subject: [PATCH 7/9] fix: use aria-label --- es-ds-components/components/icon/ccpa-opt-out.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/es-ds-components/components/icon/ccpa-opt-out.vue b/es-ds-components/components/icon/ccpa-opt-out.vue index 390eea599..b82e3cc3d 100644 --- a/es-ds-components/components/icon/ccpa-opt-out.vue +++ b/es-ds-components/components/icon/ccpa-opt-out.vue @@ -29,7 +29,7 @@ export default { height: height, width: width, }" - aria-labelledby="California Consumer Privacy Act (CCPA) Opt-Out Icon" + aria-label="California Consumer Privacy Act (CCPA) Opt-Out Icon" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" From 95fd550dfb1659e23cbe411f8a5ee77b77df9e72 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Thu, 16 Jan 2025 13:49:40 -0500 Subject: [PATCH 8/9] refactor: update ccpa icon --- .../components/icon/ccpa-opt-out.vue | 88 ++++++------------- 1 file changed, 25 insertions(+), 63 deletions(-) diff --git a/es-ds-components/components/icon/ccpa-opt-out.vue b/es-ds-components/components/icon/ccpa-opt-out.vue index b82e3cc3d..2d4822693 100644 --- a/es-ds-components/components/icon/ccpa-opt-out.vue +++ b/es-ds-components/components/icon/ccpa-opt-out.vue @@ -7,7 +7,7 @@ export default { */ width: { type: String, - default: '29px', + default: '30px', required: false, }, /** @@ -24,6 +24,8 @@ export default { - - From 0858df3338fbe8e46b69363f97336f03a7f9ca52 Mon Sep 17 00:00:00 2001 From: Hannah Roth Date: Fri, 17 Jan 2025 16:00:54 -0500 Subject: [PATCH 9/9] fix: move margin and replace TODO --- es-ds-components/components/es-footer.vue | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/es-ds-components/components/es-footer.vue b/es-ds-components/components/es-footer.vue index a9b80b885..9acf03415 100644 --- a/es-ds-components/components/es-footer.vue +++ b/es-ds-components/components/es-footer.vue @@ -26,9 +26,7 @@ export default { }, }, mounted() { - // TODO: update with GTM tag in prod once we've gone live - // See https://tagmanager.google.com/#/container/accounts/2920232696/containers/8806152/workspaces/126/tags - // for GTM script that triggers this event. + // https://energysage.atlassian.net/wiki/spaces/FG/pages/1427865649/One-trust+Consent+Initialization+and+GTM window.addEventListener('OneTrustLoadedCb', () => { (window as any).OneTrust.OnConsentChanged(() => { // OneTrust modal should modify cookie values, a hard-refresh will @@ -145,11 +143,11 @@ export default {
+ class="col col-6 col-lg-auto mt-25 mb-50 pr-lg-300"> + class="text-reset font-weight-normal font-size-75 font-size-md-50 font-weight-md-normal"> {{ link.text }}