mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2025-02-25 13:54:59 -05:00
Merge remote-tracking branch 'upstream/develop' into develop
This commit is contained in:
commit
71196886ad
17 changed files with 632 additions and 203 deletions
|
@ -7,7 +7,7 @@
|
|||
}
|
||||
|
||||
select {
|
||||
transition: all .5s ease;
|
||||
transition: border .5s ease;
|
||||
margin-bottom: .75rem;
|
||||
border: 1px solid $active-gray;
|
||||
border-radius: 5px;
|
||||
|
@ -16,6 +16,7 @@
|
|||
width: 100%;
|
||||
height: 3rem;
|
||||
text-indent: 1rem;
|
||||
color: $type-gray;
|
||||
font-size: .875rem;
|
||||
appearance: none;
|
||||
|
||||
|
@ -30,11 +31,15 @@
|
|||
}
|
||||
|
||||
&:focus {
|
||||
transition: all .5s ease;
|
||||
outline: none;
|
||||
border: 1px solid $ui-blue;
|
||||
}
|
||||
|
||||
&:-moz-focusring {
|
||||
text-shadow: 0 0 0 $type-gray;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
background: $ui-light-gray url("../../../static/svgs/forms/carot-hover.svg") no-repeat right center;
|
||||
|
|
|
@ -8,17 +8,48 @@ const Navigation = () => (
|
|||
<NavigationBox>
|
||||
<ul className="ul mod-2018">
|
||||
<li className="li-left mod-logo mod-2018">
|
||||
<a
|
||||
className="logo-a"
|
||||
href="/"
|
||||
>
|
||||
<img
|
||||
alt="Scratch Logo"
|
||||
className="logo-a-image"
|
||||
src="/images/logo_sm.png"
|
||||
/>
|
||||
<p className="logo-a-title">Conferences</p>
|
||||
</a>
|
||||
<ul className="li-left-ul mod-2018">
|
||||
<li>
|
||||
<a
|
||||
className="logo-a"
|
||||
href="/"
|
||||
>
|
||||
<img
|
||||
alt="Scratch Logo"
|
||||
className="logo-a-image"
|
||||
src="/images/logo_sm.png"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
className="link-a"
|
||||
href="/conference"
|
||||
>
|
||||
<span className="logo-a-title">Conference</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li className="li-right mod-2018">
|
||||
<ul className="li-right-ul mod-2018">
|
||||
<li className="link info">
|
||||
<a
|
||||
className="link-a"
|
||||
href="#info"
|
||||
>
|
||||
Registration Info
|
||||
</a>
|
||||
</li>
|
||||
<li className="link questions">
|
||||
<a
|
||||
className="link-a"
|
||||
href="#questions"
|
||||
>
|
||||
Questions
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</NavigationBox>
|
||||
|
|
|
@ -2,15 +2,23 @@
|
|||
@import "../../../../frameless";
|
||||
|
||||
#navigation {
|
||||
.ul.mod-2018 {
|
||||
.ul.mod-2018,
|
||||
.li-right-ul.mod-2018,
|
||||
.li-left-ul.mod-2018 {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-flow: row nowrap;
|
||||
align-items: center;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.li-left-ul.mod-2018 {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.li-left.mod-2018 {
|
||||
.li-left,
|
||||
.li-right,
|
||||
.link {
|
||||
margin-top: 0;
|
||||
margin-right: 10px;
|
||||
color: $type-white;
|
||||
|
@ -36,4 +44,47 @@
|
|||
font-size: .85rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: $mobile - 1) {
|
||||
.li-right-ul.mod-2018 {
|
||||
flex-flow: row nowrap;
|
||||
}
|
||||
|
||||
.link {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.link-a {
|
||||
font-size: .75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: $tablet - 1) {
|
||||
height: 100px;
|
||||
|
||||
.ul.mod-2018 {
|
||||
justify-content: center;
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
|
||||
.li-left,
|
||||
.li-right,
|
||||
.link {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.li-right {
|
||||
margin-left: 0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.logo-a {
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
.logo-a-image {
|
||||
padding-left: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -787,7 +787,7 @@ class OrganizationStep extends React.Component {
|
|||
<intl.FormattedMessage id="teacherRegistration.organization" />
|
||||
</h2>
|
||||
<p className="description">
|
||||
<intl.FormattedMessage id="teacherRegistration.orgStepDescription" />
|
||||
<intl.FormattedMessage id="teacherRegistration.privacyDescription" />
|
||||
<Tooltip
|
||||
tipContent={
|
||||
this.props.intl.formatMessage({id: 'registration.nameStepTooltip'})
|
||||
|
@ -944,7 +944,7 @@ class AddressStep extends React.Component {
|
|||
<intl.FormattedMessage id="teacherRegistration.addressStepTitle" />
|
||||
</h2>
|
||||
<p className="description">
|
||||
<intl.FormattedMessage id="teacherRegistration.addressStepDescription" />
|
||||
<intl.FormattedMessage id="teacherRegistration.privacyDescription" />
|
||||
<Tooltip
|
||||
tipContent={
|
||||
this.props.intl.formatMessage({id: 'registration.nameStepTooltip'})
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
"general.scratchJr": "ScratchJr",
|
||||
"general.scratchStore": "Scratch Store",
|
||||
"general.search": "Search",
|
||||
"general.searchEmpty": "Nothing found",
|
||||
"general.signIn": "Sign in",
|
||||
"general.statistics": "Statistics",
|
||||
"general.studios": "Studios",
|
||||
|
|
|
@ -101,7 +101,7 @@ const About = () => (
|
|||
id="about.quotesDescription"
|
||||
values={{
|
||||
quotesLink: (
|
||||
<a href="http://wiki.scratch.mit.edu/wiki/How_to_Translate_Scratch">
|
||||
<a href="/info/quotes/">
|
||||
<FormattedMessage id="about.quotesLinkText" />
|
||||
</a>
|
||||
)
|
||||
|
|
|
@ -12,137 +12,236 @@ require('./index.scss');
|
|||
|
||||
const ConferenceSplash = () => (
|
||||
<div className="index mod-2018">
|
||||
<TitleBanner className="mod-conference mod-2018">
|
||||
<div className="title-banner-image mod-2018" />
|
||||
<h1 className="title-banner-h1 mod-2018">
|
||||
<center>
|
||||
<FormattedMessage id="conference-2018.title" />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.subtitle" />
|
||||
</center>
|
||||
<TitleBanner className="mod-conference">
|
||||
<h1>
|
||||
<FormattedMessage id="conference-2018.subtitle" />
|
||||
</h1>
|
||||
<h3 className="title-banner-h3 mod-2018">
|
||||
<h3>
|
||||
<FormattedMessage id="conference-2018.dateDesc" />
|
||||
</h3>
|
||||
<h3>
|
||||
<FormattedMessage id="conference-2018.registrationDate" />
|
||||
</h3>
|
||||
</TitleBanner>
|
||||
<div className="inner">
|
||||
<section className="conf2018-panel mod-desc">
|
||||
<p className="conf2018-panel-desc">
|
||||
<FormattedMessage id="conference-2018.desc1" />
|
||||
<br />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.desc2" />
|
||||
</p>
|
||||
<table className="conf2018-panel-details">
|
||||
<tbody>
|
||||
<tr className="conf2018-panel-row">
|
||||
<td className="conf2018-panel-row-icon">
|
||||
<img
|
||||
alt="Calendar Icon"
|
||||
className="conf2018-panel-row-icon-image"
|
||||
src="/svgs/conference/index/calendar-icon.svg"
|
||||
/>
|
||||
</td>
|
||||
<td><FormattedMessage id="conference-2018.date" /></td>
|
||||
<td>
|
||||
<FormattedDate
|
||||
day="2-digit"
|
||||
month="long"
|
||||
value={new Date(2018, 6, 26)}
|
||||
year="numeric"
|
||||
/>
|
||||
{' - '}
|
||||
<FormattedDate
|
||||
day="2-digit"
|
||||
month="long"
|
||||
value={new Date(2018, 6, 28)}
|
||||
year="numeric"
|
||||
/>
|
||||
<FormattedMessage id="conference-2018.dateDescMore" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr className="conf2018-panel-row">
|
||||
<td className="conf2018-panel-row-icon">
|
||||
<img
|
||||
alt="Map Icon"
|
||||
className="conf2018-panel-row-icon-image"
|
||||
src="/svgs/conference/index/map-icon.svg"
|
||||
/>
|
||||
</td>
|
||||
<td><FormattedMessage id="conference-2018.location" /></td>
|
||||
<td><FormattedMessage id="conference-2018.locationDetails" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
<FormattedMessage id="conference-2018.registrationDate" />
|
||||
</p>
|
||||
</section>
|
||||
<section className="conf2018-panel">
|
||||
<p className="conf2018-panel-desc">
|
||||
<FormattedMessage id="conference-2018.sessionDesc" />
|
||||
</p>
|
||||
<p className="conf2018-panel-session">
|
||||
<p className="conf2018-panel-session">
|
||||
<b>
|
||||
<FormattedMessage id="conference-2018.sessionItem1Title" />
|
||||
</b>{' '}
|
||||
<FormattedMessage id="conference-2018.sessionItem1Desc" />
|
||||
</p>
|
||||
<p className="conf2018-panel-session">
|
||||
<b>
|
||||
<FormattedMessage id="conference-2018.sessionItem2Title" />
|
||||
</b>{' '}
|
||||
<FormattedMessage id="conference-2018.sessionItem2Desc" />
|
||||
</p>
|
||||
<p className="conf2018-panel-session">
|
||||
<b>
|
||||
<FormattedMessage id="conference-2018.sessionItem3Title" />
|
||||
</b>{' '}
|
||||
<FormattedMessage id="conference-2018.sessionItem3Desc" />
|
||||
</p>
|
||||
<p className="conf2018-panel-session">
|
||||
<b>
|
||||
<FormattedMessage id="conference-2018.sessionItem4Title" />
|
||||
</b>{' '}
|
||||
<FormattedMessage id="conference-2018.sessionItem4Desc" />
|
||||
</p>
|
||||
<p className="conf2018-panel-deadline">
|
||||
<FormattedMessage id="conference-2018.deadline" />
|
||||
</p>
|
||||
</p>
|
||||
<a
|
||||
className="button mod-2018-panel"
|
||||
href="https://docs.google.com/forms/d/e/1FAIpQLSd7SkuQ-dfW-P3aArSQokK9GkKAUKufTVBHod_ElNIiFE9iBQ/viewform?usp=sf_link"
|
||||
>
|
||||
<FormattedMessage id="conference-2018.proposal" />
|
||||
</a>
|
||||
</section>
|
||||
<section className="conf2018-panel mod-registration">
|
||||
<FlexRow className="conf2018-panel-title">
|
||||
<div className="conf2018-panel-title-text">
|
||||
<h3><FormattedMessage id="conference-2018.registrationTitle" /></h3>
|
||||
<section className="info">
|
||||
<FlexRow className="uneven">
|
||||
<div className="long">
|
||||
<p>
|
||||
<FormattedMessage id="conference-2018.desc1" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<FormattedMessage id="conference-2018.desc2" />
|
||||
</p>
|
||||
</div>
|
||||
<div className="short">
|
||||
<p>
|
||||
<b><FormattedMessage id="conference-2018.date" /></b>{' '}
|
||||
{/* eslint-disable react/jsx-sort-props */}
|
||||
<FormattedDate
|
||||
value={new Date(2018, 6, 26)}
|
||||
year="numeric"
|
||||
month="long"
|
||||
day="2-digit"
|
||||
/>
|
||||
{' - '}
|
||||
<FormattedDate
|
||||
value={new Date(2018, 6, 28)}
|
||||
year="numeric"
|
||||
month="long"
|
||||
day="2-digit"
|
||||
/>
|
||||
{/* eslint-enable react/jsx-sort-props */}
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.dateDescMore" />
|
||||
<br />
|
||||
<b><FormattedMessage id="conference-2018.location" /></b>{' '}
|
||||
<FormattedMessage id="conference-2018.locationDetails" />
|
||||
</p>
|
||||
</div>
|
||||
</FlexRow>
|
||||
<p className="conf2018-panel-desc">
|
||||
<FormattedMessage id="conference-2018.registrationEarly" />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.registrationStandard" />
|
||||
</p>
|
||||
</section>
|
||||
<section className="conf2018-panel mod-questions">
|
||||
<p className="conf2018-panel-desc">
|
||||
<FormattedMessage
|
||||
id="conference-2018.questions"
|
||||
values={{
|
||||
emailLink: (
|
||||
<a href="mailto:conference@scratch.mit.edu">
|
||||
conference@scratch.mit.edu
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
<FlexRow className="uneven">
|
||||
<div className="long">
|
||||
<h3 id="info"><FormattedMessage id="conference-2018.registrationTitle" /></h3>
|
||||
<p className="conf2018-panel-desc">
|
||||
<b><FormattedMessage id="conference-2018.registrationEarly" /></b>
|
||||
<br />
|
||||
<b><FormattedMessage id="conference-2018.registrationStandard" /></b>
|
||||
</p>
|
||||
<p><FormattedMessage id="conference-2018.registrationDate" /></p>
|
||||
<h3 id="questions"><FormattedMessage id="conference-2018.questionsTitle" /></h3>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.submissionQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.submissionAns" />
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.regQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.regAns" />
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.accommodationsQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.accommodationsAns1"
|
||||
values={{
|
||||
marriottLink: (
|
||||
<a href="http://www.marriott.com/hotels/travel/boscb-boston-marriott-cambridge/">
|
||||
Boston Marriott Cambridge
|
||||
</a>
|
||||
),
|
||||
holidayinnLink: (
|
||||
<a href="http://www.hiexpress.com/hotels/us/en/reservation/searchresult?qAdlt=1&qBrs=6c.hi.ex.rs.ic.cp.in.sb.cw.cv.ul.vn&qChld=0&qDest=CAMBRIDGE%2CMA%2CUnited+States&qFRA=1&qGRM=0&qIta=99504425&qPSt=0&qRRSrt=rt&qRef=df&qRms=1&qRpn=1&qRpp=12&qSHp=1&qSmP=3&qSrt=sBR&qWch=0&srb_u=1&icdv=99504425&dp=true">
|
||||
Holiday Inn Express and Suites
|
||||
</a>
|
||||
),
|
||||
residenceinnLink: (
|
||||
<a href="http://www.marriott.com/hotels/travel/boscm-residence-inn-boston-cambridge/">
|
||||
Residence Inn
|
||||
</a>
|
||||
),
|
||||
lemeridienLink: (
|
||||
<a href="http://www.starwoodhotels.com/lemeridien/property/overview/index.html?propertyID=3253&language=en_US">
|
||||
Le Meridien
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.accommodationsAns2"
|
||||
values={{
|
||||
acLink: (
|
||||
<a href="http://www.marriott.com/meeting-event-hotels/group-corporate-travel/groupCorp.mi?resLinkData=Scratch%20Conference%5EBOSAR%60sccscca%7Csccsccb%60229%60USD%60false%604%607/25/18%607/28/18%607/4/18&app=resvlink&stop_mobi=yes">
|
||||
AC Hotel Boston Cambridge
|
||||
</a>
|
||||
),
|
||||
hotelbostonLink: (
|
||||
<a href="https://www.hotelboston.com/">
|
||||
Hotel Boston
|
||||
</a>
|
||||
),
|
||||
mitLink: (
|
||||
<a href="http://www.media.mit.edu/contact/accommodations">
|
||||
<FormattedMessage id="conference-2018.here" />
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.accommodationsAns3"
|
||||
values={{
|
||||
neuLink: (
|
||||
<a href="http://www.northeastern.edu/">
|
||||
Northeastern University
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.apartment" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.single" />
|
||||
{' - $90.00'}
|
||||
<FormattedMessage id="conference-2018.pp" />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.double" />
|
||||
{' - $65.00'}
|
||||
<FormattedMessage id="conference-2018.pp" />
|
||||
</p>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.suite" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.single" />
|
||||
{' - $80.00'}
|
||||
<FormattedMessage id="conference-2018.pp" />
|
||||
<br />
|
||||
<FormattedMessage id="conference-2018.double" />
|
||||
{' - $65.00'}
|
||||
<FormattedMessage id="conference-2018.pp" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.accommodationsAns4"
|
||||
values={{
|
||||
emailLink: (
|
||||
<a href="mailto:conference@scratch.mit.edu">
|
||||
conference@scratch.mit.edu
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.letterQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.letterAns"
|
||||
values={{
|
||||
emailLink: (
|
||||
<a href="mailto:conference@scratch.mit.edu">
|
||||
conference@scratch.mit.edu
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.preConfQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.preConfAns" />
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.bringQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage id="conference-2018.bringAns" />
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="conf2018-question">
|
||||
<FormattedMessage id="conference-2018.moreQ" />
|
||||
</p>
|
||||
<p className="conf2018-answer">
|
||||
<FormattedMessage
|
||||
id="conference-2018.moreAns"
|
||||
values={{
|
||||
emailLink: (
|
||||
<a href="mailto:conference@scratch.mit.edu">
|
||||
conference@scratch.mit.edu
|
||||
</a>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</FlexRow>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,33 +1,123 @@
|
|||
@import "../../../../colors";
|
||||
@import "../../../../frameless";
|
||||
|
||||
.title-banner.mod-conference.mod-2018 {
|
||||
padding-top: 0;
|
||||
.index {
|
||||
.title-banner {
|
||||
margin-bottom: 0;
|
||||
background-image: url("/images/conference/index/2018/title-banner.jpg");
|
||||
background-position: top;
|
||||
padding: 48px 0;
|
||||
|
||||
h1,
|
||||
h3,
|
||||
h4,
|
||||
p {
|
||||
margin: 0 auto;
|
||||
padding: 5px 0;
|
||||
text-align: center;
|
||||
color: $type-white;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 3rem;
|
||||
|
||||
&.sub-button {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
b {
|
||||
margin-top: 2rem;
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: $type-white;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.flex-row {
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
|
||||
&.uneven {
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@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%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
text-align: left;
|
||||
|
||||
.conf2018-question {
|
||||
margin-bottom: 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.conf2018-answer {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: $desktop - 1) {
|
||||
.uneven {
|
||||
.short {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title-banner-image.mod-2018 {
|
||||
opacity: .75;
|
||||
margin-bottom: 1.75rem;
|
||||
background-image: url("/images/conference/index/2018/title-banner.jpg");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
width: 100%;
|
||||
height: 20rem;
|
||||
}
|
||||
|
||||
.title-banner-h1.mod-2018 {
|
||||
line-height: 1.25em;
|
||||
}
|
||||
|
||||
.conf2018-panel,
|
||||
.title-banner-h3.mod-2018 {
|
||||
margin: auto;
|
||||
width: 48.75rem;
|
||||
}
|
||||
|
||||
.title-banner-h3.mod-2018 {
|
||||
text-align: center;
|
||||
color: $type-white;
|
||||
@media only screen and (max-width: $tablet - 1) {
|
||||
.index {
|
||||
.flex-row {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.conf2018-panel {
|
||||
|
|
|
@ -32,5 +32,29 @@
|
|||
"conference-2018.registrationEarly": "Early Bird Registration (March 1-May 1): $200",
|
||||
"conference-2018.registrationStandard": "Standard Registration (after May 1): $300",
|
||||
|
||||
"conference-2018.questions": "Questions? Contact the Scratch Team at {emailLink}"
|
||||
"conference-2018.questions": "Questions? Contact the Scratch Team at {emailLink}",
|
||||
"conference-2018.questionsTitle": "Questions:",
|
||||
"conference-2018.submissionQ": "I missed the submission deadline. Can I still submit a proposal for the conference?",
|
||||
"conference-2018.submissionAns": "We are no longer accepting proposal submissions. We will send out proposal acceptance notifications on February 28.",
|
||||
"conference-2018.regQ": "I can only attend one day of the conference. Do you offer single-day registration?",
|
||||
"conference-2018.regAns": "Sorry, we are not offering single-day tickets.",
|
||||
"conference-2018.accommodationsQ": "I want to plan my visit. Do you have suggestions for accommodations?",
|
||||
"conference-2018.accommodationsAns1": "Yes, MIT partners with several hotels in the area who offer discounts to participants attending MIT events, including: {marriottLink} (0.4 miles from the MIT Media Lab), {holidayinnLink} (1.6 miles), {residenceinnLink} (0.3 miles), and {lemeridienLink} (0.9 miles). To reserve a room at one of these hotels, call the hotel and request the MIT discount. Advance booking is strongly recommended, as summer is a busy time in Boston. All MIT rates are subject to availability.",
|
||||
"conference-2018.accommodationsAns2": "If you are looking for lower-cost accommodations, we also recommend the {acLink} (7.1 miles). You might also consider home-share options such as Airbnb. Find an extended list of accommodations {mitLink}.",
|
||||
"conference-2018.here": "here",
|
||||
"conference-2018.accommodationsAns3": "Limited lodging is available in {neuLink} dorms rooms at the following rates:",
|
||||
"conference-2018.apartment": "Apartment",
|
||||
"conference-2018.suite": "Suite",
|
||||
"conference-2018.single": "Single",
|
||||
"conference-2018.double": "Double",
|
||||
"conference-2018.pp": "/person/night",
|
||||
"conference-2018.accommodationsAns4": "To request a dorm room, please email us at {emailLink} with the subject line “Dorm room.” Please note that Northeastern is located in Boston, two miles from the conference site at MIT. It is a half-hour commute via public transportation, accessible by subway via the Green Line (the Northeastern stop on the E line) or the Orange Line (Ruggles Station stop).",
|
||||
"conference-2018.letterQ": "Can I get a visa letter?",
|
||||
"conference-2018.letterAns": "Yes. Contact us at {emailLink}, and we can email you a letter.",
|
||||
"conference-2018.preConfQ": "In previous years, there was an event on Wednesday evening before the conference. Will you be hosting something similar this year?",
|
||||
"conference-2018.preConfAns": "There will be an informal, optional reception the evening of Wednesday, July 25. Participants may register early at this time as well.",
|
||||
"conference-2018.bringQ": "What should I bring?",
|
||||
"conference-2018.bringAns": "Plan to bring your personal device (laptops are preferred) and power cord. Presenters should plan to bring all additional presentation materials (we will provide projectors and screens). Snacks and beverages will be available throughout the day.",
|
||||
"conference-2018.moreQ": "Have additional questions?",
|
||||
"conference-2018.moreAns": "Contact the Scratch Team at {emailLink}."
|
||||
}
|
||||
|
|
|
@ -372,6 +372,7 @@ const Credits = () => (
|
|||
<p>
|
||||
<a href="http://www.nsf.gov/">National Science Foundation</a>,
|
||||
<a href="http://www.scratchfoundation.org/"> Scratch Foundation</a>,
|
||||
<a href="http:/www.siegelendowment.org"> Siegel Family Endowment</a>,
|
||||
<a href="http://www.google.org/"> Google</a>,
|
||||
<a href="http://www.legofoundation.com/"> LEGO Foundation</a>,
|
||||
<a href="http://www.intel.com/"> Intel</a>,
|
||||
|
@ -429,5 +430,6 @@ const Credits = () => (
|
|||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
render(<Page><Credits /></Page>, document.getElementById('app'));
|
||||
|
|
|
@ -35,6 +35,22 @@ const Jobs = () => (
|
|||
MIT Media Lab, Cambridge, MA
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.media.mit.edu/about/job-opportunities/full-stack-engineer-lifelong-kindergarten/">
|
||||
Full Stack Engineer
|
||||
</a>
|
||||
<span>
|
||||
MIT Media Lab, Cambridge, MA
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.media.mit.edu/about/job-opportunities/learning-resources/">
|
||||
Learning Resource Designer
|
||||
</a>
|
||||
<span>
|
||||
MIT Media Lab, Cambridge, MA
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.media.mit.edu/about/job-opportunities/qa-engineer-scratch/">
|
||||
QA Engineer
|
||||
|
@ -51,14 +67,6 @@ const Jobs = () => (
|
|||
MIT Media Lab, Cambridge, MA
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.media.mit.edu/about/job-opportunities/learning-resources/">
|
||||
Learning Resource Designer
|
||||
</a>
|
||||
<span>
|
||||
MIT Media Lab, Cambridge, MA
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -30,6 +30,7 @@ class Search extends React.Component {
|
|||
this.state.loaded = [];
|
||||
this.state.loadNumber = 16;
|
||||
this.state.offset = 0;
|
||||
this.state.loadMore = false;
|
||||
}
|
||||
componentDidMount () {
|
||||
const query = window.location.search;
|
||||
|
@ -80,10 +81,12 @@ class Search extends React.Component {
|
|||
const loadedSoFar = this.state.loaded;
|
||||
Array.prototype.push.apply(loadedSoFar, body);
|
||||
const currentOffset = this.state.offset + this.state.loadNumber;
|
||||
const willLoadMore = body.length === this.state.loadNumber;
|
||||
|
||||
this.setState({
|
||||
loaded: loadedSoFar,
|
||||
offset: currentOffset
|
||||
offset: currentOffset,
|
||||
loadMore: willLoadMore
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -100,7 +103,7 @@ class Search extends React.Component {
|
|||
</li>
|
||||
</a>
|
||||
);
|
||||
if (this.props.tab === type) {
|
||||
if (this.state.tab === type) {
|
||||
allTab = (
|
||||
<a href={`/search/${type}?q=${term}/`}>
|
||||
<li className="active">
|
||||
|
@ -115,6 +118,41 @@ class Search extends React.Component {
|
|||
}
|
||||
return allTab;
|
||||
}
|
||||
getProjectBox () {
|
||||
const results = (
|
||||
<Grid
|
||||
cards
|
||||
showAvatar
|
||||
itemType={this.state.tab}
|
||||
items={this.state.loaded}
|
||||
showFavorites={false}
|
||||
showLoves={false}
|
||||
showViews={false}
|
||||
/>
|
||||
);
|
||||
let searchAction = null;
|
||||
if (this.state.loaded.length === 0 && this.state.offset !== 0) {
|
||||
searchAction = <h2 className="search-prompt"><FormattedMessage id="general.searchEmpty" /></h2>;
|
||||
} else if (this.state.loadMore) {
|
||||
searchAction = (
|
||||
<Button
|
||||
className="white"
|
||||
onClick={this.handleGetSearchMore}
|
||||
>
|
||||
<FormattedMessage id="general.loadMore" />
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<div
|
||||
id="projectBox"
|
||||
key="projectBox"
|
||||
>
|
||||
{results}
|
||||
{searchAction}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
render () {
|
||||
return (
|
||||
<div>
|
||||
|
@ -130,26 +168,7 @@ class Search extends React.Component {
|
|||
{this.getTab('projects')}
|
||||
{this.getTab('studios')}
|
||||
</Tabs>
|
||||
<div
|
||||
id="projectBox"
|
||||
key="projectBox"
|
||||
>
|
||||
<Grid
|
||||
cards
|
||||
showAvatar
|
||||
itemType={this.props.tab}
|
||||
items={this.state.loaded}
|
||||
showFavorites={false}
|
||||
showLoves={false}
|
||||
showViews={false}
|
||||
/>
|
||||
<Button
|
||||
className="white"
|
||||
onClick={this.handleGetSearchMore}
|
||||
>
|
||||
<FormattedMessage id="general.loadMore" />
|
||||
</Button>
|
||||
</div>
|
||||
{this.getProjectBox()}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -159,8 +178,7 @@ class Search extends React.Component {
|
|||
Search.propTypes = {
|
||||
dispatch: PropTypes.func,
|
||||
intl: intlShape,
|
||||
searchTerm: PropTypes.string,
|
||||
tab: PropTypes.string
|
||||
searchTerm: PropTypes.string
|
||||
};
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
|
|
|
@ -132,6 +132,13 @@ $base-bg: $ui-white;
|
|||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.search-prompt {
|
||||
margin: 0 auto;
|
||||
padding: 30px;
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"teacherRegistration.phoneConsent": "Yes, the Scratch Team may call me to verify my Teacher Account if needed",
|
||||
"teacherRegistration.validationPhoneNumber": "Please enter a valid phone number",
|
||||
"teacherRegistration.validationPhoneConsent": "You must consent to verification of your Teacher Account",
|
||||
"teacherRegistration.orgStepDescription": "Your information will not be displayed publicly, and will be kept confidential and secure",
|
||||
"teacherRegistration.privacyDescription": "Your information will not be displayed publicly, and will be kept confidential and secure.",
|
||||
"teacherRegistration.organization": "Organization",
|
||||
"teacherRegistration.orgTitle": "Your Role",
|
||||
"teacherRegistration.orgType": "Type of Organization",
|
||||
|
@ -28,7 +28,6 @@
|
|||
"teacherRegistration.stateProvince": "State",
|
||||
"teacherRegistration.city": "City",
|
||||
"teacherRegistration.addressStepTitle": "Address",
|
||||
"teacherRegistration.addressStepDescription": "Your information will not be displayed publicly, and will be kept confidential and secure.",
|
||||
"teacherRegistration.useScratchStepTitle": "How you plan to use Scratch",
|
||||
"teacherRegistration.useScratchStepDescription": "Tell us a little about how you plan to use Scratch. Why do we ask for this information",
|
||||
"teacherRegistration.useScratchMaxLength": "Description must be at most 300 characters",
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 331 KiB After Width: | Height: | Size: 884 KiB |
94
static/js/polyfill.min.js
vendored
94
static/js/polyfill.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -67,7 +67,7 @@ routes.forEach(function (route) {
|
|||
// Config
|
||||
module.exports = {
|
||||
entry: entry,
|
||||
devtool: 'eval',
|
||||
devtool: process.env.NODE_ENV === 'production' ? 'none' : 'eval',
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'build'),
|
||||
filename: 'js/[name].bundle.js'
|
||||
|
|
Loading…
Reference in a new issue