From bf1b3f894dd67bfac0ac9f5cbc8cd310fedbb970 Mon Sep 17 00:00:00 2001
From: Matthew Taylor
Date: Thu, 12 May 2016 22:54:07 -0400
Subject: [PATCH 01/32] Some leftovers
Thanks @rschamp again!
---
src/views/conference/expect/expect.scss | 264 ++++++++++++------------
src/views/conference/index/index.scss | 89 ++++----
src/views/conference/plan/plan.scss | 184 +++++++++--------
src/views/splash/splash.jsx | 2 +-
4 files changed, 271 insertions(+), 268 deletions(-)
diff --git a/src/views/conference/expect/expect.scss b/src/views/conference/expect/expect.scss
index 5d2004b89..498b6a760 100644
--- a/src/views/conference/expect/expect.scss
+++ b/src/views/conference/expect/expect.scss
@@ -1,172 +1,174 @@
@import "../../../colors";
@import "../../../frameless";
-.flex-row {
- align-items: flex-start;
- justify-content: space-between;
+.expect {
+ .flex-row {
+ align-items: flex-start;
+ justify-content: space-between;
- .card {
- width: $cols4;
+ .card {
+ width: $cols4;
- p {
- text-align: left;
- }
- }
-}
-
-.profile {
- img {
- border-radius: 8em;
- width: 80%;
- }
-
- h4 {
- margin-top: 1.2rem;
- }
-
- @media only screen and (max-width: $tablet - 1) {
- img {
- width: 50%;
- }
-
- h2 {
- margin: 20px 0;
- text-align: center;
- font-size: 1.7rem;
- }
- }
-
- @media only screen and (max-width: $desktop - 1) {
- .uneven {
- flex-direction: column;
- align-items: center;
- }
- }
-}
-
-.keynote {
- background-color: $ui-purple;
- padding: 48px 0 64px 0;
- width: 100%;
-
- h2,
- h3,
- b,
- p {
- color: $ui-white;
- }
-
- h2 {
- margin-bottom: 32px;
- }
-
- h3 {
- margin: 15px 0;
- }
-
- img {
- width: 100%;
- }
-
- .date {
- b {
- border-radius: 20px;
- background-color: $ui-orange;
- padding: 5px 15px;
- font-size: .85rem;
- }
-
- margin: 15px 0;
- }
-
- @media only screen and (max-width: $desktop - 1) {
- .flex-row {
- flex-direction: column;
- align-items: center;
-
- .card {
- margin-top: 25px;
+ p {
text-align: left;
}
}
}
-}
-.schedule {
- .title {
- display: flex;
- justify-content: space-between;
- align-items: center;
+ .profile {
+ img {
+ border-radius: 8em;
+ width: 80%;
+ }
+
+ h4 {
+ margin-top: 1.2rem;
+ }
+
+ @media only screen and (max-width: $tablet - 1) {
+ img {
+ width: 50%;
+ }
+
+ h2 {
+ margin: 20px 0;
+ text-align: center;
+ font-size: 1.7rem;
+ }
+ }
+
+ @media only screen and (max-width: $desktop - 1) {
+ .uneven {
+ flex-direction: column;
+ align-items: center;
+ }
+ }
+ }
+
+ .keynote {
+ background-color: $ui-purple;
+ padding: 48px 0 64px 0;
+ width: 100%;
+
+ h2,
+ h3,
+ b,
+ p {
+ color: $ui-white;
+ }
h2 {
- margin: 0;
+ margin-bottom: 32px;
}
- }
- img {
- width: 30px;
- }
-
- .callout {
- display: flex;
- padding: .85rem;
- align-items: center;
+ h3 {
+ margin: 15px 0;
+ }
img {
- margin-right: 30px;
+ width: 100%;
+ }
+
+ .date {
+ b {
+ border-radius: 20px;
+ background-color: $ui-orange;
+ padding: 5px 15px;
+ font-size: .85rem;
+ }
+
+ margin: 15px 0;
+ }
+
+ @media only screen and (max-width: $desktop - 1) {
+ .flex-row {
+ flex-direction: column;
+ align-items: center;
+
+ .card {
+ margin-top: 25px;
+ text-align: left;
+ }
+ }
}
}
- table {
- width: $cols4;
-
- th {
+ .schedule {
+ .title {
display: flex;
- border-bottom: thin solid $ui-border;
- padding: 2.5%;
+ justify-content: space-between;
align-items: center;
- justify-content: flex-start;
- h3 {
+ h2 {
margin: 0;
}
+ }
+
+ img {
+ width: 30px;
+ }
+
+ .callout {
+ display: flex;
+ padding: .85rem;
+ align-items: center;
img {
margin-right: 30px;
}
}
- td {
- display: flex;
- border-bottom: thin solid $ui-border;
- padding: 2.5%;
- height: 60px;
- align-items: center;
+ table {
+ width: $cols4;
- b {
- width: 30%;
- line-height: 1.7em;
+ th {
+ display: flex;
+ border-bottom: thin solid $ui-border;
+ padding: 2.5%;
+ align-items: center;
+ justify-content: flex-start;
+
+ h3 {
+ margin: 0;
+ }
+
+ img {
+ margin-right: 30px;
+ }
}
- p {
- margin: 0;
- width: 70%;
+ td {
+ display: flex;
+ border-bottom: thin solid $ui-border;
+ padding: 2.5%;
+ height: 60px;
+ align-items: center;
+
+ b {
+ width: 30%;
+ line-height: 1.7em;
+ }
+
+ p {
+ margin: 0;
+ width: 70%;
+ }
}
}
- }
- @media only screen and (max-width: $desktop - 1) {
- .flex-row {
- flex-direction: column;
- align-items: center;
+ @media only screen and (max-width: $desktop - 1) {
+ .flex-row {
+ flex-direction: column;
+ align-items: center;
- table {
- margin-top: 50px;
- width: $cols6;
- text-align: left;
+ table {
+ margin-top: 50px;
+ width: $cols6;
+ text-align: left;
- th {
- justify-content: center;
+ th {
+ justify-content: center;
+ }
}
}
}
diff --git a/src/views/conference/index/index.scss b/src/views/conference/index/index.scss
index 759b25472..a0244cd78 100644
--- a/src/views/conference/index/index.scss
+++ b/src/views/conference/index/index.scss
@@ -6,57 +6,56 @@
min-height: initial;
}
-.title-banner {
- margin-bottom: 0;
- background-image: url("/images/conference/index/title-banner.jpg");
- padding: 48px 0;
+.index {
+ .title-banner {
+ margin-bottom: 0;
+ background-image: url("/images/conference/index/title-banner.jpg");
+ padding: 48px 0;
- h1,
- h3,
- h4,
- p {
- margin: 0 auto;
- padding: 5px 0;
- text-align: center;
- color: $type-white;
- }
+ h1,
+ h3,
+ h4,
+ p {
+ margin: 0 auto;
+ padding: 5px 0;
+ text-align: center;
+ color: $type-white;
+ }
- p {
- margin-top: 3rem;
+ p {
+ margin-top: 3rem;
- a {
-
- button {
- background-color: $ui-white;
- color: $ui-blue;
- font-size: 1rem;
+ a {
+
+ button {
+ background-color: $ui-white;
+ color: $ui-blue;
+ font-size: 1rem;
+ }
+ }
+ }
+
+ @media only screen and (max-width: $mobile - 1) {
+ h3 {
+ display: none;
+ margin-top: 0;
+ }
+
+ p {
+ margin-top: .25rem;
+ }
+ }
+
+ @media only screen and (max-width: $desktop - 1) {
+ h1 {
+ font-size: 2.5rem;
+ }
+
+ p {
+ margin-top: 1.5rem;
}
}
}
-
- @media only screen and (max-width: $mobile - 1) {
- h3 {
- display: none;
- margin-top: 0;
- }
-
- p {
- margin-top: .25rem;
- }
- }
-
- @media only screen and (max-width: $desktop - 1) {
- h1 {
- font-size: 2.5rem;
- }
-
- p {
- margin-top: 1.5rem;
- }
- }
-}
-
-.index {
.flex-row {
align-items: flex-start;
diff --git a/src/views/conference/plan/plan.scss b/src/views/conference/plan/plan.scss
index fec4598fc..bc00340b9 100644
--- a/src/views/conference/plan/plan.scss
+++ b/src/views/conference/plan/plan.scss
@@ -1,111 +1,113 @@
@import "../../../colors";
@import "../../../frameless";
-section {
- border-bottom: 2px solid $ui-border;
+.plan {
+ section {
+ border-bottom: 2px solid $ui-border;
- &.last {
- border-bottom: 0;
+ &.last {
+ border-bottom: 0;
+ }
}
-}
-.flex-row {
- align-items: flex-start;
- justify-content: space-between;
+ .flex-row {
+ align-items: flex-start;
+ justify-content: space-between;
- &.uneven {
- img {
- width: 100%;
- }
-
- @media only screen and (max-width: $tablet - 1) {
+ &.uneven {
img {
- width: 30%;
+ width: 100%;
}
- }
- @media only screen and (min-width: $tablet) and (max-width: $desktop - 1) {
- img {
- width: 70%;
+ @media only screen and (max-width: $tablet - 1) {
+ img {
+ width: 30%;
+ }
+ }
+
+ @media only screen and (min-width: $tablet) and (max-width: $desktop - 1) {
+ img {
+ width: 70%;
+ }
}
}
}
-}
-.lodging {
- text-align: left;
+ .lodging {
+ text-align: left;
- @media only screen and (max-width: $desktop - 1) {
+ @media only screen and (max-width: $desktop - 1) {
+ .uneven {
+ .short {
+ display: none;
+ }
+ }
+ }
+ }
+
+ .transportation {
.uneven {
- .short {
- display: none;
+ align-items: center;
+ }
+
+ @media only screen and (max-width: $desktop - 1) {
+ .flex-row {
+ flex-direction: column-reverse;
+ }
+ }
+ }
+
+ .explore {
+ div {
+ margin-top: 30px;
+ }
+
+ ul {
+ display: flex;
+ max-height: 23rem;
+ flex-flow: column wrap;
+ justify-content: flex-start;
+ }
+
+ @media only screen and (max-width: $tablet - 1) {
+ ul {
+ max-height: 100%;
+ }
+ }
+
+ @media only screen and (max-width: $desktop - 1) {
+ div {
+ text-align: left;
+ }
+ }
+ }
+
+ .faq {
+ dl {
+ dt {
+ font-weight: bold;
+ }
+
+ dd {
+ margin: 8px 0 32px 0;
+ }
+ }
+
+ .short {
+ margin-top: 64px;
+ border: 2px solid $ui-border;
+ border-radius: 4px;
+ background-color: $ui-white;
+ padding: 16px;
+ text-align: center;
+
+ h3 {
+ margin: 0;
+ }
+
+ @media only screen and (max-width: $tablet - 1) {
+ margin-top: 0;
}
}
}
}
-
-.transportation {
- .uneven {
- align-items: center;
- }
-
- @media only screen and (max-width: $desktop - 1) {
- .flex-row {
- flex-direction: column-reverse;
- }
- }
-}
-
-.explore {
- div {
- margin-top: 30px;
- }
-
- ul {
- display: flex;
- max-height: 23rem;
- flex-flow: column wrap;
- justify-content: flex-start;
- }
-
- @media only screen and (max-width: $tablet - 1) {
- ul {
- max-height: 100%;
- }
- }
-
- @media only screen and (max-width: $desktop - 1) {
- div {
- text-align: left;
- }
- }
-}
-
-.faq {
- dl {
- dt {
- font-weight: bold;
- }
-
- dd {
- margin: 8px 0 32px 0;
- }
- }
-
- .short {
- margin-top: 64px;
- border: 2px solid $ui-border;
- border-radius: 4px;
- background-color: $ui-white;
- padding: 16px;
- text-align: center;
-
- h3 {
- margin: 0;
- }
-
- @media only screen and (max-width: $tablet - 1) {
- margin-top: 0;
- }
- }
-}
diff --git a/src/views/splash/splash.jsx b/src/views/splash/splash.jsx
index 389d8f029..7dbce5ef6 100644
--- a/src/views/splash/splash.jsx
+++ b/src/views/splash/splash.jsx
@@ -4,7 +4,7 @@ var omit = require('lodash.omit');
var React = require('react');
var render = require('../../lib/render.jsx');
-var authActions = require('../../redux/auth.js');
+var authActions = require('../../redux/actions.js');
var Api = require('../../mixins/api.jsx');
From dfac0380dbd99000869b8469e0730a79ad105ee9 Mon Sep 17 00:00:00 2001
From: Ray Schamp
Date: Fri, 13 May 2016 14:39:16 -0400
Subject: [PATCH 02/32] Install devDependencies
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 6267fb4a6..0eef988bc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -58,7 +58,7 @@ addons:
- g++-4.8
install:
- sudo -H pip install -r requirements.txt
- - npm install
+ - npm --production=false install
deploy:
- provider: script
skip_cleanup: $SKIP_CLEANUP
From 0f33ec836c6ed41b31e947220340ace3f60886f5 Mon Sep 17 00:00:00 2001
From: Ray Schamp
Date: Fri, 13 May 2016 15:15:51 -0400
Subject: [PATCH 03/32] Use published version of po2icu
Version 0.0.2 has i18next-conv 2.2.5 which uses iconv-lite rather than iconv. So this means we don't have to patch gcc.
---
.travis.yml | 7 -------
package.json | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 0eef988bc..9e9b92f42 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,7 +21,6 @@ env:
- secure: EX1fyov+f6ytWN2ZSL4dLslwrVkp6Ho/uoSLO38/qNG3XdGmBN4VprxddcQiWfo+Mrg3GdWcfcM/VazhhStBi1uLfZiw3RHZaSGuWbiuD2EtzqtlC+OVvoajgy91QFajh9Zzuwa0rYbEPd/sw01R53NoWJYl0GSteWk7C8Wv6anl4FUJCqgvvTV2ZEcyTtGcVJgUhKi1MfNpTSM6JWBy0DWszcyxj7C8LSs1+l9ZjAtnlUBWY13HsrNu8G5d+FwqGHZLUAjdu2O602wxV897/xLARLduZ+01ALpVefNEEGMB1Wd+xMw4dm2B0Uk86a4TBRCeOgJZ1yoJoPpGPOHTo+dgNXcU8ReszGVoy7uOjFWwu82FQq8gzfcf75yzaRJgG8/BJ6BkJfa0EmFg3iO5CwixQyHR5+CqsedtoLAWVT8zlOfQ/Z6yx4Pm7jXQSOkyvo09YJ2QIn4IFGPvwOVS7Firzi+fLl8GYApeSV9G10e1IzA4pPrKdJMRA4qRMPt9zJGq7ZO1J/d9aW/5KIsJUDnodnl7yXJyDMOyNeljT9I82ciHZcURxRRY080vrW6dgNJE1V9jxBhWEvr2iCeWMMedWaGuC41I7K9L79eW8lmaE+cQ+OZrzpOJP4GbfmIiXrh+0M4ChL/xBpjtiFwpNdkCXXhzWMnjJ4wCrii4yuc=
- AWS_ACCESS_KEY_ID=$EB_AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$EB_AWS_SECRET_ACCESS_KEY
- - CXX=g++-4.8
- FASTLY_ACTIVATE_CHANGES=true
# FASTLY_API_KEY
- secure: XNWcCnqSAd4MpKg6FVe3WeFmdqfdH753+PBCOEkJrHS+AHmLMuWsjIQFJ3LUR9ylEQRVPR2OyXJW/R8NI9toStREgwE4fwIVo0l4fwYqLStxYpEKlcWfkJ3uNpRZhvcVmUBycelrnjJqXVdrtlxPCKX0tNkpcKH2b98We7A2/r7HxKv13upDxWTQ/qRUv0+SJCRTB4n/QInABi87Ef8Q2rNGrL0WQzQvVBeiEXOP0JSkyYK4+q65gswMKPehgiFagnYVgJN9J9Q1VrBDc06gidbznBcEpPaBAYvsTTY9dWTJxaaKNSrmOIe/OiuJUEHjb+8NL+j6Lp7wX8lzEjbr0FkVlFnxS9VbftS2KFkN7+c3RF57+tsq0xwJ6vgomIVS5FupHgl/oCJicnH/FLfynditOLZhmhF+Ed5GCAoIEamRRzcVHdjvglsEtYsDX1/z2t+HKYtPQuXYOywDRVTSPf88eEbu8ehfgNcYaIAuD6eedyDnKTOIv7owWs3Y7GsxQ2jBLGXq1YoUEkPtB0vfaHi72CeEhDQ53mEn2Ure47UMGMgUjKtiIhDBNTbECwP/ZDJv1accGRljKjDy93aCJeRi1T7Op7tDbHSl4ScieeOwOeKJMcD1U5JGdA/sRnjjgSKb24P2ys4NYr95dgqWNNGPGMxca+lGufzdEaTQT44=
@@ -50,12 +49,6 @@ env:
- SKIP_CLEANUP=true
- NODE_ENV=production
- WWW_VERSION=${TRAVIS_COMMIT:0:5}
-addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-4.8
install:
- sudo -H pip install -r requirements.txt
- npm --production=false install
diff --git a/package.json b/package.json
index 6f922e101..727df8d0c 100644
--- a/package.json
+++ b/package.json
@@ -56,7 +56,7 @@
"minilog": "2.0.8",
"node-sass": "3.3.3",
"pako": "0.2.8",
- "po2icu": "git://github.com/LLK/po2icu.git#develop",
+ "po2icu": "0.0.2",
"postcss-loader": "0.8.2",
"react-addons-test-utils": "0.14.7",
"react-modal": "0.6.1",
From 7bd5f8f6c9d7aadeb61906f0aee97cd263d3c0ec Mon Sep 17 00:00:00 2001
From: Ray Schamp
Date: Fri, 13 May 2016 15:16:11 -0400
Subject: [PATCH 04/32] Cache pip
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 9e9b92f42..f0faf2485 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,7 @@ node_js:
sudo: required
cache:
directories:
+ - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages
- node_modules
notifications:
slack:
From f3439eba5c00ae4a597ce8477fc62b57d2cbf525 Mon Sep 17 00:00:00 2001
From: The_Grits
Date: Fri, 13 May 2016 20:45:48 -0400
Subject: [PATCH 05/32] Add privacypolicy route
---
src/routes.json | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/routes.json b/src/routes.json
index 8dbe3f90f..9e7bc0c37 100644
--- a/src/routes.json
+++ b/src/routes.json
@@ -90,5 +90,11 @@
"pattern": "^/community_guidelines$",
"view": "guidelines/guidelines",
"title": "Scratch Community Guidelines"
+ },
+ {
+ "name": "privacypolicy",
+ "pattern": "^/privacy_policy/?$",
+ "view": "privacypolicy/privacypolicy",
+ "title": "Privacy Policy"
}
]
From c2fca9c4c666b682830a5c69b60048d975b69e77 Mon Sep 17 00:00:00 2001
From: The_Grits
Date: Sat, 14 May 2016 22:39:40 -0400
Subject: [PATCH 06/32] Squash and Merge
---
src/views/privacypolicy/privacypolicy.jsx | 193 ++++++++++++++++++++++
1 file changed, 193 insertions(+)
create mode 100644 src/views/privacypolicy/privacypolicy.jsx
diff --git a/src/views/privacypolicy/privacypolicy.jsx b/src/views/privacypolicy/privacypolicy.jsx
new file mode 100644
index 000000000..ce3268000
--- /dev/null
+++ b/src/views/privacypolicy/privacypolicy.jsx
@@ -0,0 +1,193 @@
+var React = require('react');
+var FormattedMessage = require('react-intl').FormattedMessage;
+var render = require('../../lib/render.jsx');
+var Page = require('../../components/page/www/page.jsx');
+var Box = require('../../components/box/box.jsx');
+
+var Privacypolicy = React.createClass({
+ type: 'Privacypolicy',
+ render: function () {
+ return (
+
+
+
+ We made Scratch so people like you could create projects,
+ share ideas, and build a community. To make this happen,
+ we collect some information for our users. The Scratch Team
+ understands how important privacy is to our community,
+ especially kids and parents. We wrote this privacy policy
+ to explain what information we collect, how we use it,
+ and what we're doing to keep it safe. If you have any
+ questions regarding this privacy policy, you can
+ contact us.
+
+
+ Please do not share personal contact information, such as
+ your name, physical address, email address, phone number,
+ or anything else that can be used to make contact outside
+ of the Scratch website. Please report projects, comments,
+ or forum posts that contain this kind of information so
+ the Scratch team can remove it, and please remind the
+ author of our policy.
+
+ What information does the Scratch Team collect about me?
+
+ Account Information:
+ In order to build projects or comment on other users' projects,
+ you need to make an account. During account creation, we ask you
+ for a username, your country, birth month and year, gender, and
+ your email address (or your parent or guardian's email address if
+ you are under 13 years old). We ask that you select a user name
+ that does not disclose your real name or other information that
+ could identify you. Other users can see your username and country,
+ but not your age, gender, or email address.
+
+
+ User-generated Content:
+ All of your Scratch projects, comments, and forum posts are stored
+ on the Scratch servers. Other users can see your shared projects,
+ comments, and forum posts, along with your username. Because the
+ Scratch Team is responsible for moderation, we have access to all
+ content stored on the Scratch website, including unshared projects.
+ If you prefer to work on projects in complete privacy, you can use
+ either the Scratch 2 offline editor
+ or Scratch 1.4.
+
+
+ Usage Information:
+ When you use Scratch, our servers will automatically store a limited
+ amount of information about how you use the website. This information
+ includes a number that identifies your computer (the IP address), which
+ pages you visited, and what browser you are using.
+
+
+ Google Analytics:
+ We also collect some data on where you click and which parts of the
+ site you visit using Google Analytics. This "click data" helps us figure
+ out ways to improve the website. Information collected and processed by
+ Google Analytics includes the user's IP address, network location, and
+ geographic location. Google Analytics acquires all its information
+ directly from the user, by installing a cookie (see below) on your
+ computer, if you have enabled JavaScript. Scratch does not share any
+ information it collects with Google, and Google does not collect any
+ personal identifying information about you.
+
+
+ Cookies:
+ When you log in, the Scratch website asks your browser to put an http
+ "cookie" on your computer. The cookie is actually a small text file
+ that our site can send to your browser for storage on your computer.
+ This allows the website to remember that you are logged in when you
+ go to a different page.
+
+ How does the Scratch Team use my information?
+
+ -
+ We collect age and gender data so that we know who is using our
+ website.
+
+ -
+ If you forget your password, we will ask you to disclose to us
+ your birth month and year so that we can verify your account, and
+ your email address so that we can send you a new password.
+
+ -
+ We will use your email address to respond to messages you send us
+ or to communicate with you about the Scratch service or your account.
+
+ -
+ We send out occasional email updates about Scratch to the confirmed
+ email address on your account. Scratch will never sell or share your
+ email address without your permission. You can unsubscribe from these
+ updates by clicking the unsubscribe link found at the bottom of the
+ email.
+
+ -
+ Parents and guardians who register their under-13 year olds for
+ Scratch may also receive additional updates from the
+ Scratch Foundation,
+ a non-profit that supports Scratch educational initiatives.
+ The Scratch Foundation will never sell or share your email
+ address without your permission. You can unsubscribe from these
+ updates by clicking the unsubscribe link found at the bottom of
+ the email.
+
+ -
+ If we detect repeated abusive behavior from your account, IP address,
+ or email address, we may share your account name, IP address, and the
+ time and content of the abusive behavior with the IP address owner
+ (such as a school or internet service provided).
+
+ -
+ We may use de-identified location, age, gender, and usage data
+ in research studies intended to improve our understanding of
+ how people learn with Scratch. The results of this research are
+ shared with educators and researchers through conferences,
+ journals, and other publications. You can find out more on our
+ Research page.
+
+ -
+ We may disclose some of the information we collect to third-party
+ service providers that help us manage communications to and from
+ the Scratch website and improve website performance. We are
+ satisfied that these service providers have privacy policies that
+ restrict them from further disclosing any of your information.
+
+ -
+ Other than as described above, we will never share personally
+ identifiable information about you with any other person,
+ company, or organization, except:
+
+ -
+ As required to comply with our obligations under the law.
+
+ -
+ For technical reasons, if we are required to transfer the
+ data on our servers to another location or organization.
+
+
+
+
+ How can I update my personal information?
+
+ You can update your password, email address, and country through
+ the Account Settings page.
+ You can also reset your password through the
+ Account Reset
+ page. You cannot change your username, but you can make a new
+ account and manually copy your projects to the new account.
+
+
+ If you want to delete your account entirely, log in to Scratch,
+ and then click your username in the top right-hand corner. Select
+ "Account Settings," then click the "I want to delete my account"
+ link at the bottom of the page.
+
+ How does the Scratch Team protect my information?
+
+ The Scratch Team has in place physical and electronic procedures
+ to protect the information we collect on the Scratch website. We
+ strictly limit individual access to the Scratch servers and the
+ data we store on them. However, as effective as these measures
+ are, no security system is impenetrable. We cannot completely
+ guarantee the security of our database, nor can we guarantee that
+ the information you supply will not be intercepted while being
+ transmitted to us over the Internet.
+
+ Notifications of Changes to the Privacy Policy
+
+ We review our security measures and Privacy Policy on a periodic
+ basis, and we may modify our policies as appropriate. We may also
+ change or update our Privacy Policy if we add new services or
+ features. If we make any changes to our privacy practices, we will
+ amend this Privacy Policy accordingly and post the amended policy
+ on the Scratch website. We encourage you to review our Privacy
+ Policy on a regular basis.
+
+
+
+ );
+ }
+});
+
+render(, document.getElementById('app'));
From 5d05d19566dd87de338de97a31f86786df37b574 Mon Sep 17 00:00:00 2001
From: The_Grits
Date: Sat, 14 May 2016 23:21:10 -0400
Subject: [PATCH 07/32] aha
Does this fix the lint error?
---
src/views/privacypolicy/privacypolicy.jsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/views/privacypolicy/privacypolicy.jsx b/src/views/privacypolicy/privacypolicy.jsx
index ce3268000..e8ff02fe4 100644
--- a/src/views/privacypolicy/privacypolicy.jsx
+++ b/src/views/privacypolicy/privacypolicy.jsx
@@ -152,8 +152,8 @@ var Privacypolicy = React.createClass({
You can update your password, email address, and country through
the Account Settings page.
- You can also reset your password through the
- Account Reset
+ You can also reset your password through the
+ Account Reset
page. You cannot change your username, but you can make a new
account and manually copy your projects to the new account.
From 5e9c87e9ebf947b311818b5dbe6d67b415a67f08 Mon Sep 17 00:00:00 2001
From: The_Grits
Date: Mon, 16 May 2016 06:44:01 -0400
Subject: [PATCH 08/32] Update Travis
---
.travis.yml | 10 ++--------
package.json | 2 +-
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 6267fb4a6..f0faf2485 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,7 @@ node_js:
sudo: required
cache:
directories:
+ - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages
- node_modules
notifications:
slack:
@@ -21,7 +22,6 @@ env:
- secure: EX1fyov+f6ytWN2ZSL4dLslwrVkp6Ho/uoSLO38/qNG3XdGmBN4VprxddcQiWfo+Mrg3GdWcfcM/VazhhStBi1uLfZiw3RHZaSGuWbiuD2EtzqtlC+OVvoajgy91QFajh9Zzuwa0rYbEPd/sw01R53NoWJYl0GSteWk7C8Wv6anl4FUJCqgvvTV2ZEcyTtGcVJgUhKi1MfNpTSM6JWBy0DWszcyxj7C8LSs1+l9ZjAtnlUBWY13HsrNu8G5d+FwqGHZLUAjdu2O602wxV897/xLARLduZ+01ALpVefNEEGMB1Wd+xMw4dm2B0Uk86a4TBRCeOgJZ1yoJoPpGPOHTo+dgNXcU8ReszGVoy7uOjFWwu82FQq8gzfcf75yzaRJgG8/BJ6BkJfa0EmFg3iO5CwixQyHR5+CqsedtoLAWVT8zlOfQ/Z6yx4Pm7jXQSOkyvo09YJ2QIn4IFGPvwOVS7Firzi+fLl8GYApeSV9G10e1IzA4pPrKdJMRA4qRMPt9zJGq7ZO1J/d9aW/5KIsJUDnodnl7yXJyDMOyNeljT9I82ciHZcURxRRY080vrW6dgNJE1V9jxBhWEvr2iCeWMMedWaGuC41I7K9L79eW8lmaE+cQ+OZrzpOJP4GbfmIiXrh+0M4ChL/xBpjtiFwpNdkCXXhzWMnjJ4wCrii4yuc=
- AWS_ACCESS_KEY_ID=$EB_AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$EB_AWS_SECRET_ACCESS_KEY
- - CXX=g++-4.8
- FASTLY_ACTIVATE_CHANGES=true
# FASTLY_API_KEY
- secure: XNWcCnqSAd4MpKg6FVe3WeFmdqfdH753+PBCOEkJrHS+AHmLMuWsjIQFJ3LUR9ylEQRVPR2OyXJW/R8NI9toStREgwE4fwIVo0l4fwYqLStxYpEKlcWfkJ3uNpRZhvcVmUBycelrnjJqXVdrtlxPCKX0tNkpcKH2b98We7A2/r7HxKv13upDxWTQ/qRUv0+SJCRTB4n/QInABi87Ef8Q2rNGrL0WQzQvVBeiEXOP0JSkyYK4+q65gswMKPehgiFagnYVgJN9J9Q1VrBDc06gidbznBcEpPaBAYvsTTY9dWTJxaaKNSrmOIe/OiuJUEHjb+8NL+j6Lp7wX8lzEjbr0FkVlFnxS9VbftS2KFkN7+c3RF57+tsq0xwJ6vgomIVS5FupHgl/oCJicnH/FLfynditOLZhmhF+Ed5GCAoIEamRRzcVHdjvglsEtYsDX1/z2t+HKYtPQuXYOywDRVTSPf88eEbu8ehfgNcYaIAuD6eedyDnKTOIv7owWs3Y7GsxQ2jBLGXq1YoUEkPtB0vfaHi72CeEhDQ53mEn2Ure47UMGMgUjKtiIhDBNTbECwP/ZDJv1accGRljKjDy93aCJeRi1T7Op7tDbHSl4ScieeOwOeKJMcD1U5JGdA/sRnjjgSKb24P2ys4NYr95dgqWNNGPGMxca+lGufzdEaTQT44=
@@ -50,15 +50,9 @@ env:
- SKIP_CLEANUP=true
- NODE_ENV=production
- WWW_VERSION=${TRAVIS_COMMIT:0:5}
-addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-4.8
install:
- sudo -H pip install -r requirements.txt
- - npm install
+ - npm --production=false install
deploy:
- provider: script
skip_cleanup: $SKIP_CLEANUP
diff --git a/package.json b/package.json
index 6f922e101..727df8d0c 100644
--- a/package.json
+++ b/package.json
@@ -56,7 +56,7 @@
"minilog": "2.0.8",
"node-sass": "3.3.3",
"pako": "0.2.8",
- "po2icu": "git://github.com/LLK/po2icu.git#develop",
+ "po2icu": "0.0.2",
"postcss-loader": "0.8.2",
"react-addons-test-utils": "0.14.7",
"react-modal": "0.6.1",
From 76c003d85408a44d12bc5f4dbf7440aadf425fb2 Mon Sep 17 00:00:00 2001
From: The_Grits
Date: Mon, 16 May 2016 06:45:06 -0400
Subject: [PATCH 09/32] Lint fixes
---
src/views/privacypolicy/privacypolicy.jsx | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/views/privacypolicy/privacypolicy.jsx b/src/views/privacypolicy/privacypolicy.jsx
index e8ff02fe4..057b553f1 100644
--- a/src/views/privacypolicy/privacypolicy.jsx
+++ b/src/views/privacypolicy/privacypolicy.jsx
@@ -1,5 +1,4 @@
var React = require('react');
-var FormattedMessage = require('react-intl').FormattedMessage;
var render = require('../../lib/render.jsx');
var Page = require('../../components/page/www/page.jsx');
var Box = require('../../components/box/box.jsx');
@@ -153,8 +152,8 @@ var Privacypolicy = React.createClass({
You can update your password, email address, and country through
the Account Settings page.
You can also reset your password through the
- Account Reset
- page. You cannot change your username, but you can make a new
+ Account Reset
+ page. You cannot change your username, but you can make a new
account and manually copy your projects to the new account.
@@ -184,7 +183,7 @@ var Privacypolicy = React.createClass({
on the Scratch website. We encourage you to review our Privacy
Policy on a regular basis.
-
+
);
}
From 4abebd81943cbee3e59f7e29c7948c227c7c47c4 Mon Sep 17 00:00:00 2001
From: Matthew Taylor
Date: Mon, 2 May 2016 13:34:38 -0400
Subject: [PATCH 10/32] Remove duplicate `About Scratch` entry
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Towards #419 – makes "About Scratch" work on the About page. Additionally, removes `defaultMessages` from the footer since we no longer use those.
---
src/components/footer/www/footer.jsx | 118 +++++++--------------------
src/l10n.json | 1 -
2 files changed, 29 insertions(+), 90 deletions(-)
diff --git a/src/components/footer/www/footer.jsx b/src/components/footer/www/footer.jsx
index 3b4cb2278..c588b6626 100644
--- a/src/components/footer/www/footer.jsx
+++ b/src/components/footer/www/footer.jsx
@@ -14,201 +14,145 @@ var Footer = React.createClass({
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
@@ -218,11 +162,7 @@ var Footer = React.createClass({
diff --git a/src/l10n.json b/src/l10n.json
index 9f2763296..e28c6e39a 100644
--- a/src/l10n.json
+++ b/src/l10n.json
@@ -49,7 +49,6 @@
"general.whatsHappening": "What's Happening?",
"general.wiki": "Scratch Wiki",
- "footer.about": "About Scratch",
"footer.discuss": "Discussion Forums",
"footer.help": "Help Page",
"footer.scratchFamily": "Scratch Family",
From 82942b988d4b4e19fb8e1c8f67638c8bd95c3a45 Mon Sep 17 00:00:00 2001
From: Matthew Taylor
Date: Mon, 16 May 2016 10:55:51 -0400
Subject: [PATCH 11/32] Localize title of page after strings load
This doesn't solve the issue of making it crawlable in other languages, but it does allow the title to be translatable for user parsing (and accessibility)
---
src/template.html | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/template.html b/src/template.html
index 91700e759..45804059a 100644
--- a/src/template.html
+++ b/src/template.html
@@ -75,5 +75,21 @@
});
ga('send', 'pageview');
+
+
+