feat(cookie policy): basic table styling; start bringing in cookie info

This commit is contained in:
cori hudson 2023-04-05 17:20:53 -04:00
parent d238aa8201
commit 0076113d8a
4 changed files with 210 additions and 2 deletions

View file

@ -138,6 +138,13 @@
"title": "Contact Us", "title": "Contact Us",
"viewportWidth": "device-width" "viewportWidth": "device-width"
}, },
{
"name": "cookies",
"pattern": "^/cookies/?$",
"routeAlias": "/cookies/?",
"view": "cookies/cookies",
"title": "Cookie Policy"
},
{ {
"name": "credits", "name": "credits",
"pattern": "^/credits/?$", "pattern": "^/credits/?$",

View file

@ -0,0 +1,175 @@
const React = require('react');
const injectIntl = require('react-intl').injectIntl;
const FormattedMessage = require('react-intl').FormattedMessage;
const Page = require('../../components/page/www/page.jsx');
const render = require('../../lib/render.jsx');
const InformationPage = require('../../components/informationpage/informationpage.jsx');
const bold = chunks => <b>{chunks}</b>;
const privacyPolicyLink = chunks => <a href="/privacy_policy">{chunks}</a>;
const manageLink = chunks => <a href="http://www.allaboutcookies.org/manage-cookies">{chunks}</a>;
const googlePoliciesLink = chunks => <a href="https://www.google.com/policies/privacy/partners">{chunks}</a>;
const optOutLink = chunks => <a href="https://tools.google.com/dlpage/gaoptout">{chunks}</a>;
require('./cookies.scss');
const Cookies = injectIntl(() => (
<InformationPage
title={
<FormattedMessage id="cookies.title" />
}
>
<div className="inner info-inner">
<section>
<p className="lastupdate">
<i>
<FormattedMessage id="cookies.lastUpdated" />
</i>
</p>
<p className="intro">
<FormattedMessage
id="cookies.intro1"
values={{
b: bold,
privacy: privacyPolicyLink
}}
/>
</p>
<p className="intro">
<FormattedMessage
id="cookies.intro2"
values={{
b: bold
}}
/>
</p>
</section>
<section id="types">
<dl>
<span className="nav-spacer" />
<h2><FormattedMessage id="cookies.types.title" /></h2>
<dt><FormattedMessage id="cookies.types.essentialTitle" /></dt>
<dd><FormattedMessage id="cookies.types.essentialIntro" /></dd>
<dd>
<table className="cookies-table">
<thead>
<tr>
<th><FormattedMessage id="cookies.table.name" /></th>
<th><FormattedMessage id="cookies.table.provider" /></th>
<th><FormattedMessage id="cookies.table.purpose" /></th>
<th><FormattedMessage id="cookies.table.expiration" /></th>
</tr>
</thead>
<tbody>
<tr>
<td>scratchcsrftoken</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.essential.csrf" /></td>
<td>1 year</td>
{/* how to get this localized? */}
</tr>
<tr>
<td>scratchsessionid</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.essential.sessionID" /></td>
<td>Session</td>
</tr>
</tbody>
</table>
</dd>
<dt><FormattedMessage id="cookies.types.functionalTitle" /></dt>
<dd><FormattedMessage id="cookies.types.functionalIntro" /></dd>
<dd>
<table className="cookies-table">
<thead>
<tr>
<th><FormattedMessage id="cookies.table.name" /></th>
<th><FormattedMessage id="cookies.table.provider" /></th>
<th><FormattedMessage id="cookies.table.purpose" /></th>
<th><FormattedMessage id="cookies.table.expiration" /></th>
</tr>
</thead>
<tbody>
<tr>
<td>permissions</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.functional.permissions" /></td>
<td>1 year</td>
</tr>
<tr>
<td>explore_by</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.functional.exploreBy" /></td>
<td>Session</td>
</tr>
<tr>
<td>minilogSettings</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.functional.minilogSettings" /></td>
<td>Persistent</td>
</tr>
<tr>
<td>scratchlanguage</td>
<td><a href="/privacy_policy">Scratch</a></td>
<td><FormattedMessage id="cookies.functional.scratchLanguage" /></td>
<td>1 year</td>
</tr>
<tr>
<td>wistia-video-progress-#</td>
<td><a href="https://wistia.com/privacy">Wistia</a></td>
<td><FormattedMessage id="cookies.functional.wistia" /></td>
<td>Persistent</td>
</tr>
</tbody>
</table>
</dd>
<dt><FormattedMessage id="cookies.types.analyticsTitle" /></dt>
<dd>
<FormattedMessage
id="cookies.types.analyticsIntro"
values={{
policies: googlePoliciesLink,
optout: optOutLink
}}
/>
</dd>
</dl>
</section>
<section id="manage">
<span className="nav-spacer" />
<h2><FormattedMessage id="cookies.manageTitle" /></h2>
<p>
<FormattedMessage
id="cookies.manageBody"
values={{
a: manageLink
}}
/>
</p>
</section>
<section id="contact">
<span className="nav-spacer" />
<h2><FormattedMessage id="cookies.contactTitle" /></h2>
<p><FormattedMessage id="cookies.contactIntro" /></p>
<p>
Scratch Foundation<br />
ATTN: Cookie Policy<br />
201 South Street<br />
Suite 102<br />
Boston, MA 02111<br />
</p>
</section>
</div>
<nav>
<ol>
<li><a href="#types"><FormattedMessage id="cookies.nav.types" /></a></li>
<li><a href="#manage"><FormattedMessage id="cookies.nav.manage" /></a></li>
<li><a href="#contact"><FormattedMessage id="cookies.nav.contact" /></a></li>
</ol>
</nav>
</InformationPage>
));
render(<Page><Cookies /></Page>, document.getElementById('app'));

View file

@ -0,0 +1,12 @@
@import "../../colors";
.cookies-table {
border: 1px solid $ui-border;
border-collapse: collapse;
td, th {
padding: .7 5rem;
border: 1px solid $ui-border;
text-align: left;
}
}

View file

@ -1,16 +1,30 @@
{ {
"cookies.title": "Cookie Policy", "cookies.title": "Cookie Policy",
"cookies.nav.types": "Types of Cookies",
"cookies.nav.manage": "Manage Cookies",
"cookies.nav.contact": "Contact Us",
"cookies.lastUpdated": "The Scratch Cookie Policy was last updated April 5, 2023",
"cookies.intro1": "This Cookie Policy (the <b>“Cookie Policy”</b>) is provided by Scratch Foundation (<b>“Scratch”</b>, <b>“we”</b> or <b>“us”</b>). It supplements the information and disclosures included in our <privacy>Privacy Policy</privacy>, and explains how Scratch uses Cookies on its website scratch.mit.edu (the <b>“Scratch Website”</b>) to its visitors (<b>“you”</b>, <b>“user”</b>). For the purpose of this Cookie Policy, <b>“Personal Information”</b> means any information relating to an identified or identifiable individual.", "cookies.intro1": "This Cookie Policy (the <b>“Cookie Policy”</b>) is provided by Scratch Foundation (<b>“Scratch”</b>, <b>“we”</b> or <b>“us”</b>). It supplements the information and disclosures included in our <privacy>Privacy Policy</privacy>, and explains how Scratch uses Cookies on its website scratch.mit.edu (the <b>“Scratch Website”</b>) to its visitors (<b>“you”</b>, <b>“user”</b>). For the purpose of this Cookie Policy, <b>“Personal Information”</b> means any information relating to an identified or identifiable individual.",
"cookies.intro2": "When you use the Scratch Website, we use cookies, beacons, invisible tags, unique IDs and similar technologies (collectively <b>“Cookies”</b>) to automatically record certain Personal Information from your browser or device.", "cookies.intro2": "When you use the Scratch Website, we use cookies, beacons, invisible tags, unique IDs and similar technologies (collectively <b>“Cookies”</b>) to automatically record certain Personal Information from your browser or device.",
"cookies.table.name": "Name",
"cookies.table.provider": "Provider",
"cookies.table.purpose": "Purpose",
"cookies.table.expiration": "Expiration",
"cookies.types.title": "What types of Cookies are used on the Scratch Website?", "cookies.types.title": "What types of Cookies are used on the Scratch Website?",
"cookies.types.essentialTitle": "Essential Cookies", "cookies.types.essentialTitle": "Essential Cookies",
"cookies.types.essentialIntro": "These are Cookies that are necessary to make the Scratch Website available to the user or ensure security. We use this Personal Information, for example, to ensure that the Scratch Website functions properly, or to prevent fraud. We use the following essential Cookies:", "cookies.types.essentialIntro": "These are Cookies that are necessary to make the Scratch Website available to the user or ensure security. We use this Personal Information, for example, to ensure that the Scratch Website functions properly, or to prevent fraud. We use the following essential Cookies:",
"cookies.essential.csrf": "Used as a security measure to prevent cross site request forgery.",
"cookies.essential.sessionID": "Used for authenticating you on the Scratch Website so we can provide you the services you requested.",
"cookies.types.functionalTitle": "Functional Cookies", "cookies.types.functionalTitle": "Functional Cookies",
"cookies.types.functionalIntro": "We use these cookies to recognize the user when they return to the Scratch Website, and for beneficial, but non-essential functionality. For example, Cookies to remember users settings (e.g., retaining language settings) and content preferences when they return to the Scratch Website, or that allow videos to play. Disabling functional Cookies will typically result in limited functionality of the site and a less personalized experience, but the user will still be able to use the site as such. We use the following functional Cookies:", "cookies.types.functionalIntro": "We use these cookies to recognize the user when they return to the Scratch Website, and for beneficial, but non-essential functionality. For example, Cookies to remember users settings (e.g., retaining language settings) and content preferences when they return to the Scratch Website, or that allow videos to play. Disabling functional Cookies will typically result in limited functionality of the site and a less personalized experience, but the user will still be able to use the site as such. We use the following functional Cookies:",
"cookies.functional.permissions": "Used to track which features of the service a logged in user is able to access.",
"cookies.functional.exploreBy": "Used to save the users current search preference.",
"cookies.functional.scratchLanguage": "Used to save information about the users preferred language.",
"cookies.functional.wistia": "Contains a timestamp for the Scratch Websites video-content. This allows the user to resume watching without having to start over, if the user leaves the video or Scratch Website.",
"cookies.types.analyticsTitle": "Analytical or Performance Cookies", "cookies.types.analyticsTitle": "Analytical or Performance Cookies",
"cookies.types.analyticsIntro": "We use Cookies to generally help us better understand how the Scratch Website is being used (e.g., determining which pages are popular based on how many users have visited certain pages). We also work with analytics providers, such as Google Analytics, which use Cookies to collect and analyze information about use of the Scratch Website and report on activities and trends. You can learn more about Googles practices by going to https://www.google.com/policies/privacy/partners/ and opt out of them by downloading the Google Analytics opt-out browser add-on, available at <optout>https://tools.google.com/dlpage/gaoptout</optout>. We use the following analytical and performance Cookies:", "cookies.types.analyticsIntro": "We use Cookies to generally help us better understand how the Scratch Website is being used (e.g., determining which pages are popular based on how many users have visited certain pages). We also work with analytics providers, such as Google Analytics, which use Cookies to collect and analyze information about use of the Scratch Website and report on activities and trends. You can learn more about Googles practices by going to <policies>https://www.google.com/policies/privacy/partners</policies> and opt out of them by downloading the Google Analytics opt-out browser add-on, available at <optout>https://tools.google.com/dlpage/gaoptout</optout>. We use the following analytical and performance Cookies:",
"cookies.manageTitle": "How can you manage Cookies?", "cookies.manageTitle": "How can you manage Cookies?",
"cookies.manageBody": "If you do not want your Personal Information to be collected through the use of Cookies, most browsers allow you to manage your Cookie preferences. You can set your browser to automatically decline Cookies or to request you to accept or decline Cookies for each site. You can find more information about Cookies at <a>http://www.allaboutcookies.org/manage-cookies/index.html</a>.", "cookies.manageBody": "If you do not want your Personal Information to be collected through the use of Cookies, most browsers allow you to manage your Cookie preferences. You can set your browser to automatically decline Cookies or to request you to accept or decline Cookies for each site. You can find more information about Cookies at <a>http://www.allaboutcookies.org/manage-cookies</a>.",
"cookies.contactTitle": "Contact Us", "cookies.contactTitle": "Contact Us",
"cookies.contactIntro": "If you have any questions about this Cookie Policy please contact us at privacy@scratch.mit.edu or via mail at:" "cookies.contactIntro": "If you have any questions about this Cookie Policy please contact us at privacy@scratch.mit.edu or via mail at:"
} }