start to depend on `scratch-l10n`
So far only the supported locales is used.
There is one small difference between scratch-l10n and the `languages.json` that was removed.
languages was:
`{locale: ‘languagename’, …}` key value pairs.
l10n exports:
`{locale: {name: ‘languagename’},…}
That required an additional change to the language chooser.
Note this _will not_ work until the page uses a template that does not include these meta tags. That is because react-helmet does not override any existing info in the head.
Thus, this was tested by removing that info from the template and seeing it work, then putting the template back.
This does not implement any further design, like showing a confirmation popover, but just makes sure the button works. I used a very slim package to implement copy that does not include any fallbacks for IE, since we do not need to support that here.
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
* Update for newer version of API - remix count in stats
* create projectShape to remove duplication
* add approximate-number to limit the size of the stats row.
* Handle See inside button
Import GUI reducers, initial state and middleware (throttle).
Update render to handle state and middleware.
Remove preview mode state and use scratchGui.mode from redux instead.
URL is getting updated, and mode will be updated based on URL. However, the history needs work - it doesn’t work with the modal back.
* Update to latest GUI
This is the minimum version of GUI that is needed for see-inside
* Really remove cruft.
- `/preview/editor` will load GUI with an empty project
- `/preview/:id/editor` will load GUI with a project from the projects server (not local data)
- passes intl object to GUI
- `/preview/:id` with show the project page with an embedded player
- `/preview/:id/fullscreen` will load the project page with the player in fullscreen mode.
* Note that we needed to Increase memory for the build to avoid running out of heap space, and build time increases by about 2 minutes
* 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)
This fixes an issue in compilation by upgrading node-sass to v4.6, and also upgrades express in the process.
Callback added to `writeFile` in `get-localized-urls` in order to avoid a deprecation warning during `make translations`.
FIxes problem where webpack wasn’t copying static or intl to the build directory.
Gory details:
node-dir is a dependency of copy-webpack-plugin. If you don’t already have it installed, the latest version (0.1.17) gets installed and that one breaks copy-webpack (https://github.com/fshost/node-dir/issues/50). Webpack build will complete. but there will be an error `ERROR in this is not a typed array.` We didn’t see it earlier because node-modules are cached.
* remove selenium from package.json
* Add package.json & README for the integration directory
* add newline at end of file
* add chromedriver dependency
* automated tests for footer links
* renamed navbar test file and removed footer links to separate file
* run with make smoke
* added tests for join scratch and sign in in navbar
* fix linter errors & update www links
* addressed some of ray's comments
* fix failing test - projects row link
* maybe fix error?
* continue switching to click, convert so it runs with disabled selenium promise manager, and refactor to be less location dependent
* finish switching off of implicit reliance on selenium promise manager
Added tx-import, expects TX_TOKEN environment variable to be set to an API token for Transifex. If no API token exists it’ll just use the default English strings for everything.
Removed the localization spot checks because they were checking tha json got built from po files. With Tx-import the files are already json, and may possibly be missing.
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
Most problems were due to strings being duplicated and overwriting each other. Updated the build-locales script to keep track of duplicates.
Project Curated by on the splash page was just missing the formatMessage call.
This should allow us to define and update our dependencies more easily (via npm) as well as reducing the number of requests.
Additionally, when we add common packages this will avoid the issue after deploys where a user may get a cached HTML page, but new Javascript, leading to the dreaded blank page because the browser didn't download all dependencies.
Using mangle with UglifyJS also made the total file size for the common chunk bundle smaller than the current total for all of our external/polyfill scripts (1.18MB vs 1.55MB).
* Builds the Pass condition based on the static directory and view routes.
* Updates Fastly with new header and conditions based on the view routes.
* Uses a nice module for interacting with fastly :)
Needs some major cleanup but it works. Hopefully Travis will work too.
These depended on postcss < 5, which caused the errors like
Container#eachAtRule is deprecated. Use Container#walkAtRules instead.
Container#eachRule is deprecated. Use Container#walkRules instead.
Container#eachDecl is deprecated. Use Container#walkDecls instead.
Node#style() is deprecated. Use Node#raw()
Node#_value was deprecated. Use Node#raws.value
Container#remove is deprecated. Use Container#removeChild
The autoprefixer-loader package is deprecated now and recommends using postcss-loader + autoprefixer itself.
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
Assumes the session cookie is stored as JSON which may or may not have been compressed via zlib (indicated by a leading `.`), which is then base64-encoded, and made URL-safe by replacing all `+` and `/` characters with `-` and `_` respectively.
This moves all locale/translation building to a dependency, `scratch-www-intl-loader`, as well as tests associated with it. Also gets rid of the `make translations` step.
1. Load locale strings into `window._messages` in a separate file added to `template.html`, which contains view-specific and general strings
2. Update build-locales to compile separate files
This makes it more sane, and consistent with the way the react-modal `Modal` works. The old way made multiple modals on the page have the same `style` prop.
They're not 0.14 compatible completely yet, so use forks that make use of outstanding PRs for 0.14 compatibility until they release an npm module with support