mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-23 23:57:55 -05:00
Merge remote-tracking branch 'origin/develop' into release/2022-10-26
This commit is contained in:
commit
057f27c701
15 changed files with 1729 additions and 126 deletions
1687
package-lock.json
generated
1687
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -134,8 +134,8 @@
|
|||
"regenerator-runtime": "0.13.9",
|
||||
"sass": "1.49.7",
|
||||
"sass-loader": "10.2.1",
|
||||
"scratch-gui": "0.1.0-prerelease.20220928050448",
|
||||
"scratch-l10n": "3.15.20220927031631",
|
||||
"scratch-gui": "1.0.48",
|
||||
"scratch-l10n": "3.15.20221026032051",
|
||||
"selenium-webdriver": "4.1.0",
|
||||
"slick-carousel": "1.6.0",
|
||||
"style-loader": "0.12.3",
|
||||
|
|
|
@ -96,7 +96,7 @@ const Footer = props => (
|
|||
</a>
|
||||
</dd>
|
||||
<dd>
|
||||
<a href="https://secure.donationpay.org/scratchfoundation/">
|
||||
<a href="https://www.scratchfoundation.org/donate">
|
||||
<FormattedMessage id="general.donate" />
|
||||
</a>
|
||||
</dd>
|
||||
|
|
|
@ -446,13 +446,13 @@
|
|||
"name": "donate-redirect",
|
||||
"pattern": "^/info/donate/?",
|
||||
"routeAlias": "/info/(cards|credits|faq|donate)/?$",
|
||||
"redirect": "https://secure.donationpay.org/scratchfoundation/"
|
||||
"redirect": "https://www.scratchfoundation.org/donate"
|
||||
},
|
||||
{
|
||||
"name": "donate-redirect2",
|
||||
"pattern": "^/donate/?$",
|
||||
"routeAlias": "/donate/?$",
|
||||
"redirect": "https://secure.donationpay.org/scratchfoundation/"
|
||||
"redirect": "https://www.scratchfoundation.org/donate"
|
||||
},
|
||||
{
|
||||
"name": "download-redirect",
|
||||
|
|
|
@ -219,7 +219,7 @@ const About = () => (
|
|||
),
|
||||
donateLink: (
|
||||
<a
|
||||
href="//secure.donationpay.org/scratchfoundation/"
|
||||
href="https://www.scratchfoundation.org/donate"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
@ -229,7 +229,7 @@ const About = () => (
|
|||
}}
|
||||
/></p>
|
||||
<a
|
||||
href="//secure.donationpay.org/scratchfoundation/"
|
||||
href="https://www.scratchfoundation.org/donate"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
|
@ -2220,7 +2220,7 @@ class AnnualReport extends React.Component {
|
|||
<FormattedMessage id="annualReport.donateMessage" />
|
||||
</p>
|
||||
<a
|
||||
href="https://secure.donationpay.org/scratchfoundation/"
|
||||
href="https://www.scratchfoundation.org/donate"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
|
@ -2529,7 +2529,7 @@ class AnnualReport extends React.Component {
|
|||
<FormattedMessage id="annualReport.2020.donateMessage" />
|
||||
</p>
|
||||
<a
|
||||
href="https://secure.donationpay.org/scratchfoundation/"
|
||||
href="https://www.scratchfoundation.org/donate"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
|
@ -2318,7 +2318,7 @@ class AnnualReport extends React.Component {
|
|||
<FormattedMessage id="annualReport.2021.donateMessage2" />
|
||||
</p>
|
||||
<a
|
||||
href="https://secure.donationpay.org/scratchfoundation/"
|
||||
href="https://www.scratchfoundation.org/donate"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
|
@ -250,7 +250,7 @@ const Developers = () => (
|
|||
id="developers.donateIntro"
|
||||
values={{
|
||||
donateLink: (
|
||||
<a href="https://secure.donationpay.org/scratchfoundation/">
|
||||
<a href="https://www.scratchfoundation.org/donate">
|
||||
<FormattedMessage id="developers.donateIntroLinkText" />
|
||||
</a>
|
||||
)
|
||||
|
|
|
@ -87,7 +87,7 @@ const Faq = injectIntl(props => (
|
|||
<dd><FormattedMessage
|
||||
id="faq.scratchCostBody"
|
||||
values={{donateLink: (
|
||||
<a href="https://secure.donationpay.org/scratchfoundation/">
|
||||
<a href="https://www.scratchfoundation.org/donate">
|
||||
<FormattedMessage id="faq.donateLinkText" />
|
||||
</a>
|
||||
)}}
|
||||
|
|
|
@ -8,7 +8,7 @@ const Button = require('../../../components/forms/button.jsx');
|
|||
|
||||
require('./donate-banner.scss');
|
||||
|
||||
const donateURL = 'https://secure.donationpay.org/scratchfoundation';
|
||||
const donateURL = 'https://www.scratchfoundation.org/donate';
|
||||
|
||||
const navigateToDonatePage = () => {
|
||||
window.location = donateURL;
|
||||
|
|
37
src/views/studentregistration/student-registration-meta.jsx
Normal file
37
src/views/studentregistration/student-registration-meta.jsx
Normal file
|
@ -0,0 +1,37 @@
|
|||
import React from 'react';
|
||||
import Helmet from 'react-helmet';
|
||||
|
||||
// tag comments:
|
||||
// * robots: important to set to "noindex", instructing crawlers to NOT include
|
||||
// these secret pages in their indexes
|
||||
// * description/og:description: other content values for these tags have
|
||||
// already been provided elsewhere, so the page ends up with two of each; one
|
||||
// very generic to Scratch, and then this more specific version.
|
||||
// We anticipate that some renderers and browsers may use one, some the other.
|
||||
// * link: consider all these signup pages to be one, in the hopes of further
|
||||
// discouraging search engines from listing multiple secret links
|
||||
const StudentRegistrationMeta = () => (
|
||||
<Helmet>
|
||||
<title>Class Registration</title>
|
||||
<meta
|
||||
name="robots"
|
||||
content="noindex"
|
||||
/>
|
||||
<meta
|
||||
content="Scratch registration page for a particular class"
|
||||
name="description"
|
||||
/>
|
||||
<meta
|
||||
content="Scratch registration page for a particular class"
|
||||
name="og:description"
|
||||
/>
|
||||
<link
|
||||
rel="canonical"
|
||||
href="https://scratch.mit.edu/signup"
|
||||
/>
|
||||
</Helmet>
|
||||
);
|
||||
|
||||
StudentRegistrationMeta.propTypes = {};
|
||||
|
||||
export default StudentRegistrationMeta;
|
|
@ -11,6 +11,7 @@ const route = require('../../lib/route');
|
|||
const Deck = require('../../components/deck/deck.jsx');
|
||||
const Progression = require('../../components/progression/progression.jsx');
|
||||
const Steps = require('../../components/registration/steps.jsx');
|
||||
import StudentRegistrationMeta from './student-registration-meta.jsx';
|
||||
|
||||
const render = require('../../lib/render.jsx');
|
||||
|
||||
|
@ -106,6 +107,8 @@ class StudentRegistration extends React.Component {
|
|||
const usernameDescription = this.props.intl.formatMessage({id: 'registration.studentUsernameStepDescription'});
|
||||
const usernameHelp = this.props.intl.formatMessage({id: 'registration.studentUsernameStepHelpText'});
|
||||
return (
|
||||
<div className="student-registration-shell">
|
||||
<StudentRegistrationMeta />
|
||||
<Deck className="student-registration">
|
||||
{this.state.registrationError ?
|
||||
<Steps.RegistrationError>
|
||||
|
@ -133,7 +136,8 @@ class StudentRegistration extends React.Component {
|
|||
/>
|
||||
<Steps.DemographicsStep
|
||||
countryName={this.state.classroom && this.state.classroom.educator &&
|
||||
this.state.classroom.educator.profile && this.state.classroom.educator.profile.country}
|
||||
this.state.classroom.educator.profile &&
|
||||
this.state.classroom.educator.profile.country}
|
||||
description={this.props.intl.formatMessage({
|
||||
id: 'registration.studentPersonalStepDescription'
|
||||
})}
|
||||
|
@ -148,6 +152,7 @@ class StudentRegistration extends React.Component {
|
|||
</Progression>
|
||||
}
|
||||
</Deck>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,9 +62,14 @@ const TeacherFaq = props => (
|
|||
scratchEdLink: (
|
||||
<a href="http://scratched.gse.harvard.edu/">ScratchEd</a>
|
||||
),
|
||||
forumsLink: (
|
||||
<a href="http://scratched.gse.harvard.edu/discussions.html">
|
||||
<FormattedMessage id="teacherfaq.forums" />
|
||||
facebookGroupLink: (
|
||||
<a href="https://www.facebook.com/groups/TeachingwithScratch">
|
||||
<FormattedMessage id="teacherfaq.facebookGroup" />
|
||||
</a>
|
||||
),
|
||||
creativeComputingLabLink: (
|
||||
<a href="https://creativecomputing.gse.harvard.edu">
|
||||
<FormattedMessage id="teacherfaq.creativeComputingLab" />
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
|
|
|
@ -43,8 +43,9 @@
|
|||
"teacherfaq.studentMultipleTitle": "Can a student be in multiple classes? ",
|
||||
"teacherfaq.studentMultipleBody": "A student can only be a part of one class.",
|
||||
"teacherfaq.studentDiscussTitle": "Is there a space to discuss Teacher Accounts with other teachers?",
|
||||
"teacherfaq.studentDiscussionBody": "Yes, you can engage in discussions with other teachers at {scratchEdLink}, an online community for Scratch educators. Check out their {forumsLink} to join conversations about a number of topics, including but not limited to Teacher Accounts. ScratchEd is developed and supported by the Harvard Graduate School of Education.",
|
||||
"teacherfaq.forums": "forums",
|
||||
"teacherfaq.studentDiscussionBody": "You can engage in discussions with other teachers by joining the {facebookGroupLink}, where you will find conversations about a number of topics, including Teacher Accounts. This group was established by the {creativeComputingLabLink} at the Harvard Graduate School of Education. You can also browse {scratchEdLink}, which is now an archived site, but includes extensive forums and resources related to Scratch in educational settings.",
|
||||
"teacherfaq.creativeComputingLab": "Creative Computing Lab",
|
||||
"teacherfaq.facebookGroup": "Teaching with Scratch Facebook group",
|
||||
"teacherfaq.privacyPolicy": "Scratch Privacy Policy",
|
||||
"teacherfaq.studentDataTitle": "What data does Scratch collect about students?",
|
||||
"teacherfaq.studentDataBody": "When a student first signs up on Scratch, we ask for basic demographic data including gender, age (birth month and year), country, and an email address for verification. This data is used (in aggregated form) in research studies intended to improve our understanding of how people learn with Scratch.",
|
||||
|
|
Loading…
Reference in a new issue