• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / blurts-server / 6c13fab2-b705-49eb-adb5-fd9d5c14a350

pending completion
6c13fab2-b705-49eb-adb5-fd9d5c14a350

push

circleci

Vincent
Separate page for scan results

282 of 1619 branches covered (17.42%)

Branch coverage included in aggregate %.

28 of 28 new or added lines in 5 files covered. (100.0%)

959 of 4370 relevant lines covered (21.95%)

3.66 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/views/partials/landing.js
1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
 * License, v. 2.0. If a copy of the MPL was not distributed with this
3
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4

5
import { getMessage } from '../../utils/fluent.js'
6

7
export const landing = data => `
×
8
${hero(data)}
9
<section class='why-use-monitor'>
10
  <h2>${getMessage('why-use-monitor')}</h2>
11
  <p>${getMessage('identifying-breaches')}</p>
12
  <ul>
13
    <li>
14
      <h3>${getMessage('protect-account')}</h3>
15
      <p>${getMessage('protect-account-prevent-hackers')}</p>
16
    </li>
17
    <li>
18
      <h3>${getMessage('prevent-fraud')}</h3>
19
      <p>${getMessage('prevent-fraud-keep-info')}</p>
20
    </li>
21
    <li>
22
      <h3>${getMessage('get-alerts')}</h3>
23
      <p>${getMessage('get-alerts-find-out')}</p>
24
    </li>
25
  </ul>
26
</section>
27
<section class='how-it-works'>
28
  <h2>${getMessage('how-it-works')}</h2>
29
  <ol>
30
    <li>
31
      <img srcset='images/landing-laptop.webp 250w, images/landing-laptop@2x.webp 500w' width='250' height='139' loading='lazy' alt=''>
32
      <h3>${getMessage('check-for-breaches')}</h3>
33
      <p>${getMessage('check-for-breaches-we-search')}</p>
34
    </li>
35
    <li>
36
      <img srcset='images/landing-lock.webp 204w, images/landing-lock@2x.webp 408w' width='204' height='148' loading='lazy' alt=''>
37
      <h3>${getMessage('protect-accounts')}</h3>
38
      <p>${getMessage('protect-accounts-clear-steps')}</p>
39
    </li>
40
    <li>
41
      <img srcset='images/landing-mail.webp 170w, images/landing-mail@2x.webp 340w' width='170' height='148' loading='lazy' alt=''>
42
      <h3>${getMessage('alerts-for-breaches')}</h3>
43
      <p>${getMessage('alerts-for-breaches-monitor-new')}</p>
44
    </li>
45
  </ol>
46
</section>
47
<section class='safe-with-us'>
48
  <div>
49
    <h2>${getMessage('safe-with-us')}</h2>
50
    <p>${getMessage('parent-company')}</p>
51
    <p>${getMessage('our-mission')}</p>
52
    <p><a href='https://www.mozilla.org/mission/' target='_blank'>${getMessage('learn-more-mission')}</a></p>
53
  </div>
54
  <figure>
55
    <img srcset='images/landing-nature-phone.webp 539w, images/landing-nature-phone@2x.webp 1078w' width='539' height='503' loading='lazy' alt=''>
56
  </figure>
57
</section>
58
<section class='top-questions-about-monitor'>
59
  <div>
60
    <h2>${getMessage('top-questions-about-monitor')}</h2>
61
    <a href='https://support.mozilla.org/kb/firefox-monitor-faq' target='_blank'>${getMessage('see-all-faq')}</a>
62
  </div>
63
  <div>
64
    <details>
65
      <summary>${getMessage('what-is-breach')}</summary>
66
      <p>${getMessage('when-info-exposed')}</p>
67
    </details>
68
    <details>
69
      <summary>${getMessage('what-do-i-do')}</summary>
70
      <p>${getMessage('visit-monitor-to-learn')}</p>
71
    </details>
72
    <details>
73
      <summary>${getMessage('what-gets-exposed')}</summary>
74
      <p>${getMessage('depends-on-hackers')}</p>
75
    </details>
76
  </div>
77
</section>
78
<section class='see-if-data-breach'>
79
  <h2>${getMessage('see-if-data-breach')}</h2>
80
  <a class='button primary' data-cta-id='landing-2' href='/user/breaches'>${getMessage('get-started')}</a>
81
</section>
82
`
83
const hero = data => data.countryCode === 'us' ? usHero(data) : defaultHero(data)
×
84

85
const defaultHero = data => `
×
86
  <section class='hero'>
87
    <div>
88
      <h1>${getMessage('find-out-if-breached')}</h1>
89
      <p>${getMessage('stay-safe-with-tool')}</p>
90
      <a class='button primary' data-cta-id='landing-1' href='/user/breaches'>${getMessage('get-started')}</a>
91
    </div>
92
    <figure>
93
      <img srcset='images/landing-hero.webp 530w, images/landing-hero@2x.webp 1059w' width='530' height='406' alt=''>
94
    </figure>
95
  </section>
96
`
97

98
const usHero = data => `
×
99
  <section class='hero'>
100
    <div>
101
      <h1>${getMessage('exposure-landing-hero-heading')}</h1>
102
      <p>${getMessage('exposure-landing-hero-lead')}</p>
103
      <form method="GET" action="/scan/" class="exposure-scan">
104
        <label for="scan-email-adddress" class="visually-hidden">
105
          ${getMessage('exposure-landing-hero-email-label')}
106
        </label>
107
        <input
108
          id="scan-email-address"
109
          name="email"
110
          type="email"
111
          placeholder="${getMessage('exposure-landing-hero-email-placeholder')}"
112
          required
113
        />
114
        <button
115
          type="submit"
116
          class='button primary'
117
          data-cta-id='exposure-landing-1'
118
        >
119
          ${getMessage('exposure-landing-hero-cta-label')}
120
        </button>
121
      </form>
122
    </div>
123
    <figure>
124
      <img srcset='images/landing-hero.webp 530w, images/landing-hero@2x.webp 1059w' width='530' height='406' alt=''>
125
    </figure>
126
  </section>
127
`
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc