Merge branch 'MNTOR-723/use-eslint-standard' into MNTOR-30/replace-gulp

This commit is contained in:
Amri Toufali 2022-06-01 21:09:07 -07:00
Родитель 776f59cd72 abc5cfcd30
Коммит 79e8980dd5
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 75269D7487754F5D
22 изменённых файлов: 110 добавлений и 518 удалений

Просмотреть файл

@ -1,4 +1,6 @@
# conform to ESLint "Standard" style guide: autofix quotes, semicolons, etc
344e394bb0e47f86c3b6e1ab923a48aa427ba442
c5f42d31b30efec6eef60ce9328a5d3c1b4e2dfe
ed4ecc5a57bf248075af82b8238baf121d513b79
# update esbuild, js and css files
7a16c1810755a6dafeed3ca83dd5c7071829966e
7a16c1810755a6dafeed3ca83dd5c7071829966e

Просмотреть файл

@ -8,7 +8,6 @@ const {
generatePageToken,
getExperimentFlags,
getUTMContents,
hasUserSignedUpForWaitlist,
setAdUnitCookie
} = require('./utils')
@ -89,15 +88,6 @@ async function home (req, res) {
})
}
function removeMyData (req, res) {
const user = req.user
const userHasSignedUpForRemoveData = hasUserSignedUpForWaitlist(user, 'remove_data')
return res.render('remove-data', {
title: req.fluentFormat('home-title'),
userHasSignedUpForRemoveData
})
}
function getAllBreaches (req, res) {
return res.render('top-level-page', {
title: 'Firefox Monitor',
@ -167,6 +157,5 @@ module.exports = {
getBentoStrings,
getSecurityTips,
home,
notFound,
removeMyData
notFound
}

Просмотреть файл

@ -15,7 +15,6 @@ const EXPERIMENTS_ENABLED = (AppConstants.EXPERIMENT_ACTIVE === '1')
const {
getExperimentFlags,
getUTMContents,
hasUserSignedUpForWaitlist,
setAdUnitCookie
} = require('./utils')
@ -227,8 +226,6 @@ async function getDashboard (req, res) {
const { verifiedEmails, unverifiedEmails } = await getAllEmailsAndBreaches(user, allBreaches)
const utmOverrides = getUTMContents(req)
const supportedLocalesIncludesEnglish = req.supportedLocales.includes('en')
const userHasSignedUpForRemoveData = hasUserSignedUpForWaitlist(user, 'remove_data')
const experimentFlags = getExperimentFlags(req, EXPERIMENTS_ENABLED)
let lastAddedEmail = null
@ -247,7 +244,6 @@ async function getDashboard (req, res) {
lastAddedEmail,
verifiedEmails,
unverifiedEmails,
userHasSignedUpForRemoveData,
supportedLocalesIncludesEnglish,
whichPartial: 'dashboards/breaches-dash',
experimentFlags,

Просмотреть файл

@ -0,0 +1,13 @@
'use strict'
exports.up = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.integer('kid')
})
}
exports.down = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.dropColumn('kid')
})
}

Просмотреть файл

@ -0,0 +1,15 @@
'use strict'
exports.up = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.boolean('removal_would_pay')
table.timestamp('removal_enrolled_time')
})
}
exports.down = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.dropColumn('removal_would_pay')
table.dropColumn('removal_enrolled_time')
})
}

Просмотреть файл

@ -0,0 +1,13 @@
'use strict'
exports.up = (knex) => {
return knex.schema.createTable('removal_pilot', (table) => {
table.increments('id').primary()
table.string('name').unique()
table.integer('enrolled_users').defaultTo(0)
})
}
exports.down = (knex) => {
return knex.schema.dropTableIfExists('removal_pilot')
}

Просмотреть файл

@ -0,0 +1,16 @@
'use strict'
exports.up = function (knex) {
return knex('removal_pilot')
.del()
.then(function () {
// Inserts seed entries
return knex('removal_pilot').insert([
{ id: 1, name: 'round_01', enrolled_users: 0 }
])
})
}
exports.down = function (knex) {
return knex('removal_pilot').del()
}

Просмотреть файл

@ -0,0 +1,13 @@
'use strict'
exports.up = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.boolean('removal_optout').defaultTo(false)
})
}
exports.down = function (knex) {
return knex.schema.table('subscribers', (table) => {
table.dropColumn('removal_optout')
})
}

Просмотреть файл

@ -48,7 +48,7 @@ rec-cc =
Cadwch lygad ar daliadau annisgwyl ar eich cerdyn credyd. Efallai y bydd angen
gofyn am gerdyn newydd gyda rhif newydd gan gyhoeddwr eich cerdyn credyd.
# Recommendation subhead
rec-email-subhead = Defnyddiwch arallenwau e-bost
rec-email-mask-subhead = Defnyddiwch enwarall e-bost
rec-email-cta = Rhowch gynnig ar { -brand-relay }
rec-email =
Mae rhoi eich cyfeiriad e-bost go iawn yn ei gwneud hi'n haws i hacwyr neu dracwyr ddod o hyd i'ch cyfrineiriau neu eich targedu ar-lein. Mae gwasanaeth fel { -brand-relay }

Просмотреть файл

@ -50,7 +50,7 @@ rec-cc =
Look out for strange charges on your credit card. You may want
to request a new card with a new number from your credit card issuer.
# Recommendation subhead
rec-email-subhead = Use email aliases
rec-email-mask-subhead = Use an email mask
rec-email-cta = Try { -brand-relay }
rec-email = Giving out your real email address makes it easier for hackers or trackers to find your passwords or target you online. A service like { -brand-relay } hides your real email address while forwarding emails to your real inbox.
# Recommendation subhead

Просмотреть файл

@ -618,11 +618,38 @@ vpn-banner-cta-close = Sulje
## Relay and VPN educational/ad units
ad-unit-relay-cta = Lisätietoja { -brand-relay }sta
ad-unit-vpn-cta = Lisätietoja { -brand-mozilla-vpn }:stä
# ad 1 heading
ad-unit-1-how-do-you-keep = Miten pidät sähköpostiosoitteesi salassa?
# ad 2 heading
ad-unit-2-do-you-worry = Oletko huolissasi julkisen wifi-verkon turvallisuudesta?
# ad 3 heading
ad-unit-3-stay-in-the-game = Pysy pelissä mukana!
ad-unit-3-lets-you-keep = { -brand-mozilla-vpn } mahdollistaa vakaan ja turvallisen yhteyden, kun pelaat verkkopelejä tai suoratoistat elokuvia.
# ad 3 list item 1
ad-unit-3-prevent-throttling = Estä rajoituksia
# ad 3 list item 2
ad-unit-3-be-anywhere = Ole missä päin maailmaa tahansa
# ad 3 list item 3
ad-unit-3-access-more = Enemmän käytössäsi
# ad 4 heading
ad-unit-4-shopping-with = Ostoksia sähköpostimaskeilla
ad-unit-4-want-to-buy = Haluatko ostaa jotain verkosta, mutta et tunne kauppaa entuudestaan tai luota siihen täysin?
ad-unit-4-shop-online = Käytä sähköpostimaskia, kun teet ostoksia verkossa. Saat vahvistuksen oikeaan sähköpostiosoitteeseesi ja voit lopettaa maskin käytön vaivatta milloin tahansa.
# ad 5 heading
ad-unit-5-on-the-go = { -brand-relay } mukana matkassa
ad-unit-5-instantly-make = Luo heti mukautettu sähköpostimaski missä tahansa oletkin!
# ad 5 subheading 1
ad-unit-5-connect-on-the-go = Yhdistä liikkeellä ollessasi
ad-unit-5-privately-sign-in = Käytä sähköpostimaskia, kun haluat kirjautua yksityisesti suosikkikahvilaasi tai muuhun julkiseen wifi-verkkoon
# ad 5 subheading 2
ad-unit-5-email-receipts = Vastaanota kuitit sähköpostitse
ad-unit-5-share-custom-email = Jaa mukautettu sähköpostimaski ostosten kuitteja varten jakamatta oikeaa sähköpostiosoitettasi
# ad 5 subheading 3
ad-unit-5-use-on-phone = Käytä puhelimessasi
ad-unit-5-no-matter-where = Missä tahansa oletkin, luo mukautettu sähköpostimaski haluamaasi asiaa varten sekunneissa
# ad 6 heading
ad-unit-6-worry-free = Huolettomat ilmoittautumiset
ad-unit-6-want-to-start = Haluatko aloittaa uuden tilauksen, vastata kutsuun tai saada tarjouskoodin ilman, että postilaatikkosi tulvii roskapostia?
ad-unit-6-before-you-complete = Ennen kuin suoritat seuraavan rekisteröitymisen, käytä sähköpostimaskia oikean sähköpostiosoitteesi sijaan tietojesi suojaamiseksi ja postilaatikkosi hallitsemiseksi.

Просмотреть файл

@ -560,6 +560,8 @@ ad-unit-vpn-cta = En savoir plus sur { -brand-mozilla-vpn }
ad-unit-1-how-do-you-keep = Comment garder votre adresse e-mail secrète ?
# ad 2 heading
ad-unit-2-do-you-worry = Vous souciez-vous de la sécurité des Wi-Fi publics ?
# ad 3 heading
ad-unit-3-stay-in-the-game = Restez dans la partie !
ad-unit-3-lets-you-keep = { -brand-mozilla-vpn } vous permet de maintenir une connexion stable en toute sécurité pendant que vous jouez à des jeux ou regardez des films en streaming.
# ad 3 list item 1
ad-unit-3-prevent-throttling = Évitez la limitation de la bande passante

Просмотреть файл

@ -36,7 +36,7 @@ rec-bank-acc = Vérifiez labsence de dépenses suspectes ou inhabituelles sur
rec-cc-subhead = Surveillez vos relevés de carte bancaire
rec-cc = Vérifiez labsence de dépenses inhabituelles effectuées avec votre carte. Pensez à demander une nouvelle carte avec un nouveau numéro à lémetteur de votre carte bancaire en cas de doute.
# Recommendation subhead
rec-email-subhead = Utilisez des alias de messagerie
rec-email-mask-subhead = Utilisez un alias de messagerie
rec-email-cta = Essayer { -brand-relay }
rec-email = Fournir votre adresse électronique réelle permet aux pirates informatiques ou aux traqueurs de trouver vos mots de passe ou de vous cibler en ligne plus facilement. Un service comme { -brand-relay } masque votre adresse électronique réelle tout en transmettant les messages à votre boîte de réception réelle.
# Recommendation subhead

Просмотреть файл

@ -50,7 +50,7 @@ rec-cc =
Let op frjemde kosten op jo creditcard. Jo wolle miskien
in nije kaart mei in nij nûmer oanfreegje by jo creditcardmaatskippij.
# Recommendation subhead
rec-email-subhead = E-mailaliassen brûke
rec-email-mask-subhead = In e-mailmasker brûke
rec-email-cta = { -brand-relay } probearje
rec-email =
Troch jo echte e-mailadres te jaan, meitsje jo it makliker foar hackers of trackers om

Просмотреть файл

@ -48,7 +48,7 @@ rec-cc =
Procure cobranças estranhas no seu cartão de crédito. Se precisar você pode
solicitar um novo cartão com outro número ao emissor do seu cartão de crédito.
# Recommendation subhead
rec-email-subhead = Use endereços de redirecionamento de email
rec-email-mask-subhead = Use uma máscara de email
rec-email-cta = Experimente o { -brand-relay }
rec-email =
Fornecer seu endereço de email real facilita aos hackers e rastreadores

Просмотреть файл

@ -18,7 +18,6 @@
@import "partials/latest-breach.css";
@import "partials/monitor.css";
@import "partials/product-promos.css";
@import "partials/remove-data.css";
@import "partials/research-recruitment.css";
@import "partials/scan-results.css";
@import "partials/security-tips.css";

Просмотреть файл

@ -1,422 +0,0 @@
.txt-light-grey {
color: rgb(237, 237, 240);
}
.txt-white {
color: rgba(255, 255, 255, 1);
}
.relay-hero {
margin: auto auto 60px auto;
max-width: 700px;
}
.relay-headline {
font-size: 44px;
line-height: 46px;
margin: 0 auto 12px auto;
}
.relay-headline::before {
content: "";
display: block;
height: 150px;
width: 100%;
background-image: url("../../img/svg/data-removal-large.svg");
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
margin: 60px auto 40px auto;
}
.relay-subhead {
font-weight: 500;
font-size: 18px;
line-height: 27px;
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Open Sans', 'Helvetica Neue', sans-serif;
margin: auto;
}
.relay-info {
margin: 40px;
}
.relay-info-subhead {
display: inline-block;
font-size: 24px;
line-height: 28px;
padding-right: 48px;
}
.relay-info-body {
line-height: 27px;
font-size: 18px;
margin: 0;
}
.relay-info-body.toggle-child {
padding-top: 16px;
}
.relay-sign-up {
background-color: rgba(255, 255, 255, 1);
border-radius: 8px;
padding: 40px;
width: 100%;
max-width: 720px;
margin: 20px auto;
position: relative;
opacity: 1;
overflow: hidden;
transition: all 0.3s ease;
}
.relay-sign-up-headline {
color: #393473;
font-size: 24px;
margin-bottom: 32px;
}
.relay-avatar {
border-radius: 50%;
height: 80px;
width: 80px;
margin-bottom: 16px;
}
.relay-sign-up-email {
color: #393473;
font-weight: 500;
font-size: 18px;
margin-bottom: 20px;
}
.relay-info.relay-bullets {
padding-top: 0;
}
.relay-list {
font-size: 18px;
line-height: 27px;
}
.relay-list li {
margin-bottom: 12px;
margin-left: 4px;
}
.relay-list li::before {
content: "\2022";
display: flex;
margin: 0 12px auto 0;
}
.relay-bullet-link {
color: rgba(255, 255, 255, 1);
border-bottom: 1px solid rgba(255, 255, 255, 0);
}
.relay-bullet-link:hover {
border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}
.private-relay-dashboard-card {
background: var(--monitorGradient);
border-radius: 8px;
margin: 0 auto 60px;
width: 100%;
}
.private-relay-dashboard-card-body {
margin: 0;
color: #42425a;
line-height: 24px;
font-size: 16px;
}
.private-relay-dashboard-card-subhead {
font-size: 20px;
line-height: 24px;
margin: 0 0 4px 0;
color: rgb(32, 18, 58);
}
.private-relay-join-waitlist {
margin: 4px 0 0 0;
line-height: 24px;
}
.private-relay-dashboard-card-content {
width: 100%;
}
.private-relay-dashboard-card-content::before {
background-image: url("../../img/svg/data-removal-small.svg");
background-repeat: no-repeat;
background-size: contain;
background-position: center center;
height: 100%;
width: 35%;
margin-right: 28px;
content: "";
display: inline-block;
align-self: center;
}
.private-relay-dashboard-card-border {
padding: 28px;
background-color: rgb(249, 247, 253);
margin: 0.15rem;
border-radius: 6px;
overflow: hidden;
cursor: pointer;
box-shadow: 0 2px 8px 0 rgba(14, 13, 26, 0), 0 3px 1px -2px rgba(7, 48, 114, 0), 0 2px 4px 0 rgba(34, 0, 51, 0), 0 0 0 1px rgba(32, 18, 58, 0);
transition: all 0.2s ease;
}
.private-relay-dashboard-card:hover {
box-shadow: 0 2px 8px 0 rgba(14, 13, 26, 0.12), 0 3px 1px -2px rgba(7, 48, 114, 0.12), 0 2px 4px 0 rgba(34, 0, 51, 0.04), 0 0 0 1px rgba(32, 18, 58, 0.04);
transition: all 0.2s ease;
}
.relay-toggle {
fill: #fff !important;
}
.masking-options {
margin: 0;
}
.toggle-parent.inactive .toggle-child.relay-info-body {
display: flex;
visibility: hidden;
max-height: 0;
opacity: 0;
transition: all 0.3s ease;
}
.relay-toggle-button {
background-color: rgba(255, 255, 255, 0);
pointer-events: none;
transition: all 0.2s ease;
}
.relay-sign-up-content {
transition: all 0.4s ease;
}
.sending-email {
transition: all 0.3s ease;
}
.sending-email .relay-sign-up-content {
filter: blur(0.3px);
opacity: 0.5;
transition: all 0.4s ease;
}
.relay-sign-up.sending-email {
background-color: #e9e9e9;
transition: all 0.3s ease;
}
.relay-sign-up.sending-email::after {
content: "";
position: absolute;
display: flex;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-image: url("../../img/svg/new-loader.svg");
background-position: center center;
background-repeat: no-repeat;
transition: all 0.3s ease;
}
.relay-sign-up-confirmation {
padding: 24px;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
.email-sent .relay-sign-up-content {
visibility: hidden;
}
.email-sent .relay-sign-up-confirmation {
visibility: visible;
opacity: 1;
background-color: rgba(255, 255, 255, 1);
transition: all 0.3s ease;
}
.email-sent {
opacity: 0.5;
background-color: rgba(255, 255, 255, 1);
transition: opacity 0.15s ease-in-out;
}
.email-sent::after {
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
.relay-confirmation-headline {
margin: auto auto 16px auto;
}
.relay-confirmation-body {
margin: 0 auto auto auto;
color: #393473;
font-size: 18px;
line-height: 27px;
max-width: 460px;
}
.relay-confirmation-headline::before {
content: "";
display: block;
background-color: #2ac3a2;
border: 3px solid #3fe1b0;
background-image: url("../../img/svg/white-check.svg");
background-size: 50px;
background-repeat: no-repeat;
background-position: center center;
height: 80px;
width: 80px;
margin: auto auto 16px auto;
border-radius: 50%;
}
@media screen and (max-width: 800px) {
.relay-sign-up {
flex: 1;
}
.relay-subhead {
max-width: 420px;
}
.relay-info {
margin: 40px 0;
}
.private-relay-dashboard-card {
margin: 12px auto;
}
.private-relay-dashboard-card-content {
flex-direction: column;
text-align: center;
max-width: 400px;
margin: auto;
}
.private-relay-dashboard-card-content::before {
min-height: 100px;
margin-bottom: 16px;
margin-right: 0;
width: 100%;
}
.private-relay-join-waitlist {
margin-top: 16px;
}
.relay-sign-up-wrapper {
padding: 44px 24px;
}
}
@media screen and (max-width: 600px) {
.relay-hero {
margin-bottom: 40px;
}
.relay-info {
padding: 20px 0;
margin: 0;
}
.relay-toggle-button {
padding-left: 16px;
pointer-events: all;
}
.relay-toggle-button:hover {
background-color: rgba(0, 0, 0, 0.1);
transition: all 0.2s ease;
}
.relay-info-body.toggle-child {
padding-top: 0;
}
.relay-info-body {
padding-left: 16px;
padding-right: 24px;
line-height: 26px;
font-size: 16px;
}
.relay-info.toggle-parent {
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.relay-info.toggle-parent.active .toggle-child {
visibility: visible;
max-height: 2000px;
opacity: 1;
padding-top: 12px;
transition: all 0.3s ease;
}
.relay-subhead {
max-width: 360px;
}
.relay-headline::before {
margin: 0 auto;
}
.relay-headline {
font-size: 32px;
line-height: 34px;
}
.relay-sign-up {
padding: 24px;
}
.email-sent.relay-sign-up {
padding-top: 56px;
padding-bottom: 56px;
}
.relay-info-subhead {
font-size: 18px;
}
.relay-sign-up-email {
font-size: 16px;
margin-bottom: 24px;
}
.relay-confirmation-headline::before,
.relay-avatar {
height: 60px;
width: 60px;
}
.relay-avatar {
margin-bottom: 8px;
}
}

Двоичные данные
public/img/logos/Wendys.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 4.2 KiB

Просмотреть файл

@ -6,7 +6,7 @@ const csrf = require('csurf')
const {
home, getAboutPage, getAllBreaches, getBentoStrings,
getSecurityTips, notFound, removeMyData, addEmailToWaitlist
getSecurityTips, notFound, addEmailToWaitlist
} = require('../controllers/home')
const { getIpLocation } = require('../controllers/ip-location')
@ -26,7 +26,6 @@ router.get('/about', getAboutPage)
router.get('/breaches', getAllBreaches)
router.get('/security-tips', getSecurityTips)
router.get('/getBentoStrings', getBentoStrings)
router.get('/remove-my-data', requireSessionUser, removeMyData)
router.post('/join-waitlist', jsonParser, requireSessionUser, addEmailToWaitlist)
router.get('/iplocation', getIpLocation)
router.use(notFound)

Просмотреть файл

@ -2,16 +2,11 @@
const { LocaleUtils } = require('./../locale-utils')
const { makeBreachCards } = require('./breaches')
const { hasUserSignedUpForRelay } = require('./../controllers/utils')
function enLocaleIsSupported (args) {
return args.data.root.req.headers['accept-language'].includes('en')
}
function userIsOnRelayWaitList (args) {
return hasUserSignedUpForRelay(args.data.root.req.user)
}
function getBreachesDashboard (args) {
const verifiedEmails = args.data.root.verifiedEmails
const locales = args.data.root.req.supportedLocales
@ -182,6 +177,5 @@ module.exports = {
getLastAddedEmailStrings,
makeEmailVerifiedString,
makeEmailAddedToSubscriptionString,
enLocaleIsSupported,
userIsOnRelayWaitList
enLocaleIsSupported
}

Просмотреть файл

@ -42,19 +42,6 @@
{{> email-card }}
{{/eachFromTo}}
{{#if ./../supportedLocalesIncludesEnglish}}
<div class="private-relay-dashboard-card">
<a href="/remove-my-data" class="private-relay-dashboard-card-border flx private-relay-cta" data-analytics-label="join-the-waitlist-link" data-user-is-signed-up="{{ ./../userHasSignedUpForRemoveData }}">
<div class="private-relay-dashboard-card-content flx">
<div class="private-relay-dashboard-card-copy">
<p class="bold ff-Met private-relay-dashboard-card-subhead">Remove your data from websites.</p>
<p class="private-relay-dashboard-card-body">Were piloting a new service to monitor and remove your name, physical address, phone number, and email from online databases.</p>
<p class="blue-link private-relay-join-waitlist">Join the waitlist</p>
</div>
</div>
</a>
</div>
{{/if}}
{{#eachFromTo this.verifiedEmails 1 this.verifiedEmails.length }}
{{> email-card }}
{{/eachFromTo}}

Просмотреть файл

@ -1,51 +0,0 @@
{{!< default}}
<main class="container monitor-homepage clear-header private-relay-landing flx jst-cntr">
<div class="mw-700">
<div class="relay-hero">
<h2 class="relay-headline txt-cntr txt-white">Remove your personal information and stop it from being shared online.</h2>
</div>
<section class="relay-info toggle-parent active">
<button class="toggle svg-wrap article-toggle relay-toggle-button" aria-label="show-content">
<span class="relay-info-subhead bold ff-Met txt-white">Why remove your personal information?</span>
<svg class="toggle-down" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path class="relay-toggle" fill="#ffffff" d="M8 12a1 1 0 0 1-.707-.293l-5-5a1 1 0 0 1 1.414-1.414L8 9.586l4.293-4.293a1 1 0 0 1 1.414 1.414l-5 5A1 1 0 0 1 8 12z"></path></svg>
</button>
<p class="relay-info-body txt-light-grey toggle-child">When your personal information is online, you might be an easier target for identity theft, fraud, or even cyberstalking. Advertisers, companies, and hackers can quickly figure out a lot of information about you, like your name, home address, family information, or even social security numbers and passwords.</p>
</section>
<section class="relay-info toggle-parent active">
<button class="toggle svg-wrap article-toggle relay-toggle-button" aria-label="show-content">
<span class="relay-info-subhead bold ff-Met txt-white">How do we remove it?</span>
<svg class="toggle-down" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path class="relay-toggle" fill="#ffffff" d="M8 12a1 1 0 0 1-.707-.293l-5-5a1 1 0 0 1 1.414-1.414L8 9.586l4.293-4.293a1 1 0 0 1 1.414 1.414l-5 5A1 1 0 0 1 8 12z"></path></svg>
</button>
<p class="relay-info-body txt-light-grey toggle-child">We are creating a privacy service to monitor websites for your personal information and remove it from sites that put you and your loved ones at risk. Its not available yet, but click below if you are interested in finding out more.</p>
</section>
</div>
<div class="row relay-sign-up-wrapper">
<div class="relay-sign-up txt-cntr {{#if userHasSignedUpForRemoveData}} email-sent {{/if}}">
<div class="relay-sign-up-content flx flx-col jst-cntr">
<h2 class="relay-sign-up-headline">Join the waitlist</h2>
<p>You will receive an email when the service is available. We are working hard to create a great experience. When you join the waitlist, you will also have opportunities to give us feedback along the way and let us know what is important to you.</p>
<img alt="{{ req.session.user.primary_email }}" class="relay-avatar" src="{{ req.session.user.fxa_profile_json.avatar }}"/>
<span class="relay-sign-up-email">{{ req.session.user.primary_email }}</span>
<button class="btn-blue-primary bold ff-Met relay-sign-up-btn private-relay-cta" data-analytics-label="join-the-waitlist-button" data-user-is-signed-up={{ userHasSignedUpForRemoveData }}>Join the Waitlist</button>
<p><a href="https://www.mozilla.org/en-US/privacy/" target="_blank">Privacy Policy</a></p>
</div>
<div class="relay-sign-up-confirmation flx flx-col jst-cntr al-cntr">
<h2 class="relay-sign-up-headline relay-confirmation-headline">You're on the list!</h2>
<p class="relay-confirmation-body"><span class="bold">{{ req.session.user.primary_email }}</span> has been added to the waitlist. Well let you know when we have more updates to share about this service.</p>
<p class="relay-confirmation-body">We'd also love for you to <span class="bold"><a href="https://survey.alchemer.com/s3/6275633/Data-Removal-Service-Waitlist" target="_blank">answer a few questions about this service</a></span>, so we can make it more relevant and useful to you.</p>
</div>
</div>
</div>
<div class="mw-700">
<section class="relay-info relay-bullets">
<h4 class="relay-info-subhead masking-options bold ff-Met txt-white">What can I do now?</h4>
<p class="relay-info-body txt-light-grey toggle-child">You can learn more by checking out <a class="relay-bullet-link bold" href="https://soundcloud.com/user-98066669/138-online-data-removal-updates" rel="noopener noreferrer" target="_blank">this Privacy, Security, and OSINT podcast episode about Online Data Removal</a>, and get their <a class="relay-bullet-link bold" href="https://gate.sc/?url=https%3A%2F%2Finteltechniques.com%2Fdata%2Fworkbook.pdf&token=1d9eb5-1-1616783838447" rel="noopener noreferrer" target="_blank">free personal data removal workbook and credit freeze guide</a>.</p>
</section>
</div>
</main>