* Add extension-landing generalized styles, install scratch link component
* Make EV3 page use generalized stuff
* Use OS_ENUM file instead of class variable
* use extension-landing/os-enum in os chooser
* Use extension-landing class in extension-landing.scss
* Use extension-landing styles and components on microbit page
* Add view-specific styles
* Move install scratch link l10n strings to src/l10n.json
* Start moving steps display to its own components
* Finish initial pass at Step, Steps components for extension landing pages
* Create ProjectCard component
* Use new components on InstallScratchLInk component
* Use new components on EV3 page
* allow className prop in Steps component
* Use new components on micro:bit landing page
* imageUrl -> imageSrc in ProjectCard
* Create ExtensionHeader component and use it on micro:bit and EV3 pages
* Fix a spacing issue in the InstallScratchLink component
* Add ExtensionRequirements component
* Use ExtensionRequirements component on landing pages
* Remove requirements l10n string for ev3 page
* Move project card styles out of things-to-try section
* Don't render the number row in a step if compact and number props are not set
* Add ExtensionSection component
* Use ExtensionSection on ev3 and microbit pages
* Move state configuration to ExtensionLanding class
* Move tip box, screenshot styles outside of specific section
* Add TipBox component and use it on the EV3 page
* Use hr element instead of section-separator div
* Remove refactor TODO comments :)
* Add extension-landing generalized styles, install scratch link component
* Make EV3 page use generalized stuff
* Use OS_ENUM file instead of class variable
* use extension-landing/os-enum in os chooser
* Use extension-landing class in extension-landing.scss
* Use extension-landing styles and components on microbit page
* Add view-specific styles
* Move install scratch link l10n strings to src/l10n.json
* Start moving steps display to its own components
* Finish initial pass at Step, Steps components for extension landing pages
* Create ProjectCard component
* Use new components on InstallScratchLInk component
* Use new components on EV3 page
* allow className prop in Steps component
* Use new components on micro:bit landing page
* imageUrl -> imageSrc in ProjectCard
* Create ExtensionHeader component and use it on micro:bit and EV3 pages
* Fix a spacing issue in the InstallScratchLink component
* Add ExtensionRequirements component
* Use ExtensionRequirements component on landing pages
* Remove requirements l10n string for ev3 page
* Move project card styles out of things-to-try section
* Don't render the number row in a step if compact and number props are not set
* Add ExtensionSection component
* Use ExtensionSection on ev3 and microbit pages
* Move state configuration to ExtensionLanding class
* Move tip box, screenshot styles outside of specific section
* Add TipBox component and use it on the EV3 page
* Use hr element instead of section-separator div
* Remove refactor TODO comments :)
Updated all the places in the SCSS where we use Darken and Lighten properties.
These properties have been problematic in the past and caused some state issues, e.g. New message(s) hightlight (which was fixed seperately from this issue)
* start building ev3 landing page structure
* Inject translations, add more content and structure to ev3 landing page
* Add ev3 route
* add active styles for os chooser buttons
* Add ev3 assets
* Add content and intial styles for everything down to "Sample Projects"
* Add correct padding to all sections on ev3 page
* Add more margins to match the mockup
* Create os chooser component for reuse on other landing pages
* Make EV3 page stateful, add OS logic, change step styles, fix images on Chrome
* Add sample project cards and styles
* Add fixed ev3 icon svg
* Add app store badges (no href on links yet)
* Add section separator, fix sample project card margins
* Add border to project cards, make project cards clickable links
* Add FAQ boilerplate and styling from InformationPage component
* Add indented ol style, example
* Add link style with underline
* Add EV3 retail link
* Content updates
* Fix some z-index issues with os chooser
* micro:bit page mega-commit
* os chooser should not have a higher z-index than nav
* Update starter projects
* Localize OS chooser
* Add localization configuration for EV3 page
* Localize section titles on ev3 page
* Add starter project images and descriptions
* Add link to microbit.org
* Fix tip box width on microbit and ev3 pages
* add l10n strings up to things to try on ev3 page
* Fix lint error in ev3.scss
* Add download link style to ev3
* microbit getting started text and images
* Remove tip about microbit name
* Hex file and starter project download links
* microbit wording updates
* update images
* Fix issues with download link style
* text fix
* Add ev3 starter project downloads
* Add microbit l10n file and config
* Add l10n strings for microbit header and scratch link sections
* Add l10n strings for microbit page up to faq
* content updates
* Fix some page overflow issues
* microbit faq content and style
* Use zipped version of microbit hex file
* Add platform name to scratch link download button
* Add EV3 faq to l10n.json
* Add final strings from micro:bit and EV3 pages to l10n.json files
* Add white download asset
* Tweak styles for ev3 and microbit
* Add some final tweaks to the EV3 page styles
* Add TODO comments about refactoring duplicate code
Updates maintain WWW color variable naming conventions, but replaces values with 3.0 colors.
Colors have the commented HEX and GUI variable name.
More work to do auditing but it’s a start.
* addresses comments for https://github.com/LLK/scratch-www/pull/1900
* renames report fields to match scratchr2 expectations
* restyle modal to allow display of validation messages
* removed cruft
addresses most comments except modal refactor, and error response from sumitting report.
* restore gui as a dev dependency
* better separation of view container/presentation
* replace absolute heights for textareas with making all sub components `display: flex`
* start to make presentation more modular added subcomponents to the view folder:
* share-banner (moved from components)
* remix-credit
* remix-list
* studio-list
* move all the report modal presentation into the component
* add strings to general l10n file because we don’t handle l10n files in components
* Add current project id and username to the data before submitting
Report button opens a modal with the report project form. All the content is currently in `preview/presentation` because components cannot have their own l10n files.
First pass at project page design using actual assets from Carl, and matching styles with current design.
Includes a (negative margin) hack to line up the stage. see https://github.com/LLK/scratch-gui/issues/2132
* Add user-session awareness
- only show remix button if user is logged in (TBD: probably will want to hide if project creator == user)
* decorate text with @mentions and #hashtags
* Add studios, loves, favs
* In-place editing of title and description if current user is author and project shared (with validation)
* checkbox needed a default value
* general-error is passed a ref by formsy - cannot be stateless function
* add missing `label` prop to input field
* add missing proptypes to phoneinput.
- Moved preview state into redux
- Gets remix credit if the project is a remix
- Shows up to 5 remixes (direct children?)
- handles empty remixes result (it’s not an array)
- Added Column component - based on Grid, but doesn’t use frameless to set width.
- allows trailing ‘/‘ on the URL
- cleaned up conditional content
Setting onClick to onNextStep directly caused click event data to be passed in handleAdvanceStep, which then merged it with the formData state in student registration. This caused issues.
See this StackOverflow answer: https://stackoverflow.com/a/18853002/4633828
This isn't a perfect fix - we have to set `color` explicitly, rather
than use `inherit`, because we want the text color to be the same when
the select element is focused. That means both `color` and
`text-shadow`'s color have to be explicitly set to the same thing
(otherwise they might not match). Yay, hacks!
..since it's the only property which actually animates. (The background
image also changes on hover/focus, but that isn't visually effected by
transition, so we ignore it.)
This is for the next commit. Without this, the focus ring slowly
disappears, and the text slowly becomes the color it's meant to be;
neither of those are good.
This incorporates a fallback image into the thumbnail component for all of project, studio and avatar thumbnails using the `onerror` property of img elements (which is supported across all browsers).
/cc @thisandagain @rschamp
* add 2018 conference page (new subdirectory and index page)
* Redirect /conference route to 2018, and add new route for /conference/2017 for last year's conferences.
* Update mailto link in the footer
* add 2018 conference page (new subdirectory and index page)
* Redirect /conference route to 2018, and add new route for /conference/2017 for last year's conferences.
* Update mailto link in the footer
Css animated top banner
Middle banner of activities - responsive
https://github.com/LLK/scratchr2/issues/4869
Also updated ttt see-more/open- modal link to be consistent with the new icon from Carl.
* start work on www page
committing out of paranoia.
including changing splash page endpoints
* updates from feedback
thanks @rschamp! This includes:
1. splitting out messages list into a separate component (for clarity)
2. some comment/formatting adjustments for the api calls
3. removal of an extraneous property in emoji-text
* remove duplicate string declaration
* use object.assign instead of defaults deep
we don’t need deep defaults
* fix react warnings
1. Moves carousel to `LegacyCarousel` since it currently is designed to handle JSON from proxy endpoints
2. Add separate `Carousel` endpoint to handle data from project models in scratch’s new api, the standard moving forward.
New of tips page, uses cards from new resources server (s3)
* added get-localized-urls script to get the generated json from the s3 bucket
* added /tips route
* correct localized-urls for other pages
* remove thingstotry
* redirect /go
* fix up /info/cards view to use resources (s3).
* redirect /go to /tips
* change /hoc redirect from /go to /tips
* Add full set of cards pdf download to tips localization
* removed cards and guides from static PDFs, they are all coming from resources.scratch.mit.edu now.
* removed things to try view
Corrections for reviews:
* decided to pretty print the localized URLs
* replaced console.errors with process.stdout and fail with exit(1)
* formatted localized-urls to make it easier to read
* moved link outside `<Button…` makes whole button clickable instead of just text
* fixed up css styles, removed unnecessary classes
* corrected “unused” resource links
* Don’t allow duplicate strings in a single l10n file
Added check_duplicate_strings to test for duplicates in a single file.
removed duplicates - tried to keep the more generic ‘key’
* revised test case for safer file reads
Fixes#1097 by not making the server-side username validation call if the client side validations have failed. This is not the ideal way to do this, since it’s getting the input from an array. However, to make this different would require significant refactor.
fixes#1101. I wanted to apply a custom class to the input, however that is unfortunately obscured and unreachable with our current implementation of `formsy-react-components`
Fixes#966. I was trying, if possible, to not introduce localization at the component level in order to keep it in the views – but that seemed a bit too involved given that the fix in this way is only a few lines long.
This fixes#962 – the margin was causing flex to overflow the radio buttons when the text was long, causing the male and other options to render on top of each other. This fixes that by giving the radio buttons a fixed with relative to the parent container, and by ensuring that languages with long localizations will still be visible in overflow text.
ttt.subtitle:
- ‘try theTutorial’ instead of ‘try a Tutorial’
- Hide and Seek instead of Hide-and-Seek Game
- change <b> to <strong>
title-banner.scss
- add explicit rule to bold <strong> within title-banner for windows browsers
integrated modal and added guide pdfs.
Catch and Pet Guides are still missing. We may need to remove them from the TTT list. Wanted to get this committed in any case to start review.
based on feedback from @rschamp, thanks!
1. make `ref` into method
2. remove accidental inclusion of prototype modal
3. use `omit` for props so that we don’t need a separate object for wrapped component properties
1. Split out base modal stylings from iframe modal stylings
2. Move iframe-specific stylings into a separate copmonent
3. Move width/height iframe stylings to scss
4. Change global stylings for modals to match #980
5. Update styles to use trello style guide
Went over styles with Carl. Some notes:
renamed tutorial button tutorial tag as it’s not really a button and is unique to ttt.
Found out why cols4 wasn’t working - if your browser default font isn’t 16px, rem isn’t 16px. Opening a separate issue and using cols4 where it should be.
Includes new SVGs for banner and resources link
MasonryGrid does the reordering of items
Using react-responsive MediaQuery to change columns
Brought in ../forms/button.scss for button styling, and then modified for TTT
Still needs Modal
Final styling pass with Carl
the `//` for an empty username that gets sent to the backend causes a 500 error. This is an edge case in formsy, as it has not detected a change value yet, so handle it in the username validation method. Fixes#872
Since we only check for the US, only require for that country. Other countries have zip codes, but it seems better to do it this way than codify which countries do/do not have zip codes (in case local practices are not the same as international information). Fixes#825
- Remove temp "open in Scratch" button, now that we have a permanent one.
- Fix microworld pages to work with new changes to environment.
- Fix alignment issues.
- Connect routes to microworld pages.
- Add soccer microworld.
- Comment out videos and tips from arts microworls, so it can be shown publicly.
Because the `input` field is already to the right, they were being transformed too far over. This overrides the transform to be correct, and also scopes some css in more detail
`option` throws an error in React if it’s not a string. `FormattedMessage` returns a `span` around strings, so any time this function was loaded/called, it was throwing >100 warnings in the console. use `intl` to return a string instead.
1. Phone too long validation occurs before submit now.
2. Organization “other” type is now being required
3. Organization type required now shows up at the same time as other organization validation errors
4. Username check now occurs earlier, on blur rather than on submit
I believe this will keep the misalignment from happening across browsers. Sets the top left corner to the top left corner of the input block.
Resolves#770
Fixes#757. Note: Because we are getting this info from the session, the redirect may not happen until the page is rendered first in cases where the connection is slow, or the db is slow.
and make use of the FRC `elementWrapperClassName`, since they way we did it before – custom `className` strings on the element – was not working. Fixes#749.
It appears that the `required` field is not applied in the way we'd like it to be for the custom checkbox group and custom phone input fields, so do a `required` check on form submission. Additionally, this adds in a few style fixes. Fixes#695, #694, #693, #691
From review of the style with @carljbowman
Requires a bit of magic, where the Form component manually adds the "all" value. But without a major overhaul of the validation system, I don't see how else to put the general error among the other fields.
I don't like that the state is being set to a calculation of existing props. When I did that calculation in `render`, it didn't update when fields were changed.
Fixes#645
Looks as if the having one of these objects as the default causes overwriting in some way, as opposed to augmentation. Have the source object be an empty one, so that it gets the attributes of both defaults and props. Fixes#642.
/cc @carljbowman
One issue we ran into is that our `frameless` configuration is in `em` rather than `rem`, making it difficult to have an aboslute grid applied uniformly at all hierarchies. For now, we're using straight `rem` calculations instead of `$cols{1,8}` in the styling until we can refactor `frameless` to use `em`.
* 'feature/teacher-registration-flow' of https://github.com/rschamp/scratch-www: (46 commits)
Add serverside email validation
Clean up
Move registration step to main component
Submit the rest of the fields when registering
This help text is redundant now
Fix organization "other" field enablement
Get the form creating regular accounts
Add method to api for submitting forms
Update language chooser for formsy
Add missing string
Add progress indicators
Style pass
Remove unused label component
Remove unused mixin factory
Fixup api refactor
Add serverside username validation
L10n pass
Explain the GeneralError component
Add help text when a field is not required
L10n WIP
...
# Conflicts:
# src/l10n.json
# src/views/splash/splash.jsx
* 'develop' of https://github.com/LLK/scratch-www: (29 commits)
Add explore redirects
Allow access to 2014 and 2015 pages
use route aliases for generalizable route patterns
remove `/components` from `routes.json`
Remove Make it Fly banner
Fix issues in FAQ of /developers page.
move shuffle to utility module
fix error with shuffleArray function
add shuffleArray function, shuffle most loved and most remixed
use `image` to get studio thumbnail
quick formatting fix for box header on search
Fix merge issue
Add localizations, minor style changes
Removed rows from grid, changed explore tabs
Removed extraneous image file
Whitespace added
Small fix
Support for studios
Refactoring, new grid component
Style changes
...
# Conflicts:
# src/views/splash/splash.jsx
# src/views/splash/splash.scss
* 'develop' of https://github.com/rthorn/scratch-www:
Removed rows from grid, changed explore tabs
Removed extraneous image file
Whitespace added
Small fix
Support for studios
Refactoring, new grid component
Style changes
Changed path of search page to allow for studio tabs
Changes to path for search results
Removed unnecessary files
Search page functions
Starting mock of search page
Fixed problem with loading
Load button and tabs functioning
Merge remote-tracking branch 'LLK/develop' into develop
Early Explore Page
# Conflicts:
# src/components/navigation/www/navigation.jsx
Update search form submit button from an input[type=submit] to a button. React 15 omits the value prop if it's blank, so the `<input type="submit" value="">` was rendered as `<input type="submit">`. This caused the input to display the default value of "Submit". The button element is more appropriate for this behavior and doesn't have the missing value issue.
1. split `auth.js` up so it's 1 reducer per file
2. consolidate the conference schedule reducers
3. make conference reducer names more descriptive
4. add error handling for `body === 'undefined'`
Thanks @rschamp for all the help!
* 'develop' of https://github.com/LLK/scratch-www: (32 commits)
Lint
Bundle all locale data
Don't bundle polyfills
Set up Raven within init.js
Prefix privacyPolicy message string
Exclude minified javascript from linting
One space more
Changes "interfacesto" to "interfaces to"
Remove tag target
Filter before mapping to avoid returning undefined
Fix Pass condition for "static" routes
Spacing2
Mangling is the default
Spacing
Update for typography fixes
Cherry pick PR #476 into master
Add invisible spacer to anchored sections
For Developers
Lint JSON, expand and simplify lint step
Fix banned user redirect
...
# Conflicts:
# src/redux/actions.js
# src/redux/reducer.js
Use a model of reducer/action files for each component that has them, and make `reducer.js` be the one that imports and configures all of them. This modeling is based on a few examples I've seen which seemed to work for our current case, but I'm totally fine with splitting actions and reducers into separate directories if we'd like too.
Grid component now no longer uses row concept, and changed tabs in the
Explore page to projects/studios, with categories in a new picker above
the tabs. Also compressed svg files.
formerly presentation components such as `navigation` and `footer` have been nested, and renamed to `container` inside their respective component subdirs
1. Put formatting-specific components into the `presentation` subdir of `components`
2. Put content-specific components into the `container` subdir of `components`
3. Put views that are sub-urls of the site into a subdir of `views` (i.e. `microworlds`, and eventually `conference`)
These warnings were annoying me because the noise makes it easy to miss real issues.
The `no-mergeable-selectors` rule is one that we do want to have, but right now it asks that you merge selectors in different `@media` blocks. When the next release happens we should put that back.
https://github.com/sasstools/sass-lint/issues/307
Similarly, we want `force-element-nesting` but there is a problem with that because there's no easy way to have a nested selector in a list of selectors.
https://github.com/sasstools/sass-lint/issues/575
Finally, until they implement per-line overrides, we have to silence `class-name-format` because we don't have control over the ReactModal class names. It's a useful rule to keep class names consistent though. Per-line ignores should be coming soon: https://github.com/sasstools/sass-lint/issues/70
`toLocaleString()` is not supported in Safari, but react-intl has a polyfill, and so it is. This also localized the intro description string, which wasn't previously. This also fixes#366 by doing as @rschamp suggested and checking if the count is the default count before setting the value.
1. changes intl filenames to `[view].intl.js`
2. Move nav/footer rendering to `render.jsx`
3. Set locale cookie before submitting language change form
Thanks @thisandagain !
Handle localization and string loading in views only. Components should just of default text, but not the actual text for the page itself – all text handling should be at the view level.