* Add blurhash
* Use fallback color for spoiler when blurhash missing
* Federate the blurhash and accept it as long as it's at most 5x5
* Display unknown media attachments as blurhash placeholders
* Improve style of embed actions and spoiler button
* Change blurhash resolution from 3x3 to 4x4
* Improve dependency definitions
* Fix code style issues
Conflicts:
- app/services/remove_status_service.rb
Conflict because we still handle the direct timeline.
Took upstream changes, with that one extra function call.
- config/locales/ca.yml
Conflict because theme names were updated.
Decided to *keep* the theme names even if they are useless
to avoid future conflicts.
- config/locales/oc.yml
Decided to *keep* the theme names even if they are useless
to avoid future conflicts.
- config/locales/pl.yml
Decided to *keep* the theme names even if they are useless
to avoid future conflicts.
Conflicts:
- app/controllers/settings/follower_domains_controller.rb
Removed upstream. Did the same here. Maybe we should not have?
- config/locales/en.yml
Upstream removed the “Authorized followers” page and associated
translations. This is too close in the file to our glitch-soc-specific
“flavour” string. No actual conflict.
- config/locales/ja.yml
Same as above.
- config/locales/pl.yml
Same as above.
- config/navigation.rb
No real conflict. New route added too close to the glitch-soc-specific
“flavours” one.
- config/webpack/configuration.js
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
- config/webpack/loaders/babel.js
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
The contents of this file have been moved to package.json.
- config/webpack/shared.js
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
- config/webpacker.yml
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
- jest.config.js
The contents of this file have been moved to package.json.
- package.json
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
- yarn.lock
Upstream refactored the webpack(er) configuration quite a bit.
Tried to keep up.
Conflicts:
- .eslintrc.yml
Removed, as upstream removed it.
- app/controllers/admin/statuses_controller.rb
Minor code cleanup when porting one of our features.
- app/models/account.rb
Note length validation has changed upstream.
We now use upstream's validation (dropped legacy glitch-soc
account metadata stuff) but with configurable limit.
- app/services/post_status_service.rb
Upstream has added support for scheduled toots, refactoring
the code a bit. Adapted our changes to this refactoring.
- app/views/stream_entries/_detailed_status.html.haml
Not a real conflict, changes too close.
- app/views/stream_entries/_simple_status.html.haml
Not a real conflict, changes too close.
* Nascent tag menu on frontend
* Hook up frontend to search
* Tag intersection backend first pass
* Update yarnlock
* WIP
* Fix for tags not searching correctly
* Make radio buttons function
* Simplify radio buttons with modeOption
* Better naming
* Rearrange options
* Add all/any/none functionality on backend
* Small PR cleanup
* Move to service from scope
* Small cleanup, add proper service tests
* Don't use send with user input :D
* Set appropriate column header
* Handle auto updating timeline
* Fix up toggle function
* Use tag value correctly
* A bit more correct to use 'self' rather than 'all' in status scope
* Fix some style issues
* Fix more code style issues
* Style select dropdown more better
* Only use to_id'ed value to ensure no SQL injection
* Revamp frontend to allow for multiple selects
* Update backend / col header to account for more flexible tagging
* Update brakeman ignore
* Codeclimate suggestions
* Fix presenter tag_url
* Implement initial PR feedback
* Handle additional tag streaming
* CodeClimate tweak
* Revert "Fix some icon names changed by the Font Awesome 5. (#8796)"
This reverts commit 3f9ec3de82.
* Revert "Migrate to font-awesome 5.0. (#8799)"
This reverts commit 8bae14591b.
* Revert "Fix some icons names, unavailable in fontawesome5 (free license). (#8792)"
This reverts commit b9c727a945.
* Revert "Update the icon name changed by the Font Awesome 5. (#8776)"
This reverts commit 17af4d27da.
* Revert "Add bot icon to bot avatars and migrate to newer version of Font Awesome (#8484)"
This reverts commit 4b794e134d.
Manually-resolved conflicts:
.circleci/config.yml
app/controllers/accounts_controller.rb
app/controllers/auth/passwords_controller.rb
app/controllers/statuses_controller.rb
app/javascript/packs/public.js
app/models/media_attachment.rb
app/views/stream_entries/_content_spoiler.html.haml
app/views/stream_entries/_media.html.haml
config/locales/en.yml
config/locales/ja.yml
config/locales/pl.yml
lib/mastodon/version.rb
Some content from app/javascript/packs/public.js has been split to
app/javascript/core/settings.js.
Translation strings for glitch-soc's keyword mutes were dropped.
Everything else was mostly “take both”.
Conflicts:
Dockerfile
app/javascript/packs/common.js
config/webpack/loaders/sass.js
config/webpack/shared.js
db/schema.rb
package.json
yarn.lock
A lot of the conflicts come from updating webpack.
Even though upstream deleted app/javascript/packs/common.js, I kept
glitch-soc's version as it unifies JS/CSS packs behavior across flavours.
Ported glitch changes to webpack 4.x
Conflicts:
app/javascript/mastodon/locales/en.json
app/javascript/mastodon/locales/ja.json
app/javascript/mastodon/locales/pl.json
The above conflicts appear to be a text conflict introduced by
glitch-soc's additional level of columns (i.e. moving a bunch of columns
under the Misc option). They were resolved via accept-ours.
* Update babel-eslint to version 8.2.3
* Update eslint to version 4.19.1
* Update eslint-plugin-promise to version 3.8.0
* Update eslint-plugin-react to version 7.8.2
* Upgrade eslint-plugin-jsx-a11y to version 6.0.3
* yarn test:lint --fix
* Track trending tags
- Half-life of 1 day
- Historical usage in daily buckets (last 7 days stored)
- GET /api/v1/trends
Fix#271
* Add trends to web UI
* Don't render compose form on search route, adjust search results header
* Disqualify tag from trends if it's in disallowed hashtags setting
* Count distinct accounts using tag, ignore silenced accounts
Unfortunately the new hammer.js functionality wasn't correctly tested and didn't work across devices and browsers, as such, it's best to revert PR #6944 until we can revisit this functionality and make it work across all devices and browsers that are supported by Mastodon.
This reverts commit 5021c4e9ca.
* Add eslint-plugin-promise to detect uncaught rejections
* Move alert generation for errors to actions/alert
* Add missing rejection handling for Promises
* Use catch() instead of onReject on then()
Then it will catches rejection from onFulfilled. This detection can be
disabled by `allowThen` option, though.
add <div.zoomable-image__margin/> to keep margin of the image on zooming
move setting `scrollLeft` and `scrollTop` of container from callback of
`setState` to `componentDidUpdate`
add 'hammerjs' package for touch gesture detection
rewrite `ZoomableImage` using 'hammerjs'
Both of yarn and npm are used in Mastodon, but the combined usage requires
a redundant dependency and may lead to data inconsistency.
Considering that yarn has autoclean feature which npm does not have,
this change replaces all npm usage with yarn.
This change requires documentation update. Most notably, the following
command must be executed before assets precompilation if any system
dependency of node-sass has changed:
yarn install --force --pure-lockfile
* Specify AGPLv3+
Since the documentation doesn't specify you can use Mastodon as AGPLv3 or any later version.
* Use newest version of SPDX AGPLv3+ identifier
* Update babel-plugin-lodash to version 3.3.2
* Update enzyme to version 3.2.0
* Update enzyme-adapter-react-16 to version 1.1.0
* Update intersection-observer to version 0.5.0
* Update intl-messageformat to version 2.2.0
* Update node-sass to version 4.7.2
* Update postcss-loader to version 2.0.9
* Update React to version 16.2.0
* Update react-textarea-autosize to version 5.2.1
* Update stringz to version 0.3.0
* Update webpack to version 3.9.1
* Update webpack-bundle-analyzer to version 2.9.1
* Update webpack-dev-server to version 2.9.5
* Update webpack-merge to version 4.1.1
* Update fsevents to version 1.1.3
* yarn upgrade
* Update autoprefixer to version 7.1.6
* Update babel-plugin-preval to version 1.6.1
* Update babel-plugin-transform-react-remove-prop-types to version 0.4.10
* Update babel-preset-env to version 1.6.1
* Update cross-env to version 5.1.1
* Update enzyme-adapter-react-16 to version 1.0.2
* Update eslint-plugin-import to version 2.8.0
* Update immutable to version 3.8.2
* Update express to 4.16.2
* Update intl-relativeformat to version 2.1.0
* Update postcss-loader to version 2.0.8
* Update react-immutable-pure-component to version 1.1.1
* Update react-motion to version 0.5.2
* Update react-notification to version 6.8.2
* Update react-overlays to version 0.8.3
* Update react-redux-loading-bar to version 2.9.3
* Update resolve-url-loader to version 2.2.0
* Update style-loader to version 0.19.0
* Update webpack to version 3.8.1
* Update webpack-dev-server to version 2.9.3
* yarn upgrade
* Track frequently used emojis in web UI
* Persist emoji usage, but debounce commits to the settings API
* Fix#5144 - Add tooltips to picker
* Display only 2 lines of frequently used emojis
* Fix#2102 - Implement hotkeys
Hotkeys on status list:
- r to reply
- m to mention author
- f to favourite
- b to boost
- enter to open status
- p to open author's profile
- up or k to move up in the list
- down or j to move down in the list
- 1-9 to focus a status in one of the columns
- n to focus the compose textarea
- alt+n to start a brand new toot
- backspace to navigate back
* Add navigational hotkeys
The key g followed by:
- s: start
- h: home
- n: notifications
- l: local timeline
- t: federated timeline
- f: favourites
- u: own profile
- p: pinned toots
- b: blocked users
- m: muted users
* Add hotkey for focusing search, make escape un-focus compose/search
* Fix focusing notifications column, fix hotkeys in compose textarea
* chore(yarn): Install babel-plugin-preval as development dependency
* feat(babel): Add preval as a plugin
* feat(emojione_light): Prevaled module what tree-shaked emojione
* refactor(emoji): Use emojione_light
* feat: Preload emojione_picker bundle
* fix(emojione_light): Do not use Object.entries
* fix(emojify): Update tests
* chore(emojione_light): Remove silly ascii art
* Update @storybook/addon-actions to version 3.1.8
* Update @storybook/react to version 3.1.8
* Update autoprefixer to version 7.1.2
* Update babel-loader to version 7.1.1
* Update babel-preset-env to version 1.6.0
* Update chai to version 4.1.0
* Update js-yaml to version 3.9.0
* Update jsdom to version 11.1.0
* Update postcss-smart-import to version 0.7.5
* Update sinon to version 2.3.7
* Update substring-trie to version 1.0.1
* Update webpack to version 3.2.0
* Update webpack-manifest-plugin to version 1.1.2
* yarn upgrade
* Upgrade extract-text-webpack-plugin to version 3.0.0
* Upgrade intl-relativeformat to version 2.0.0
Setting ASSET_HOST to `http://0.0.0.0:8080` makes urls in manifest.json to
be invalid, e.g. `http://0.0.0.0:8080/packs/application.js`.
Anyway, we don't need set this on build:development because assets would
be delivered from same origin in development (and w/o dev-server).
* Update @storybook/addon-actions to v3.1.2
* Update @storybook/react to v3.1.2
* Update babel-core to v6.25.0
* Update babel-preset-env to v1.5.2
* Update chai to version v4.0.2
* Update extract-text-webpack-plugin to v2.1.2
* Update file-loader to v0.11.2
* Update intersection-observer to v0.3.0
* Update pg to v6.2.4
* Update sinon to v2.3.4
* Update style-loader to v0.18.2
* Update websocket.js to v0.1.10
* Update react-redux-loading-bar to v2.9.2
* yarn upgrade
* Update axios to version 0.16.2
* Update css-loader to version 0.28.4
* Update postcss-smart-import to version 0.7.4
* Update react-immutable-pure-component to version 0.0.5
* Update stringz to version 0.2.1
* Update style-loader to version 0.18.1
* Update websocket.js to version 0.1.9
* yarn upgrade
* Update autoprefixer to version 7.1.0
* Update axios to version 0.16.1
* Update babel-cli to version 6.24.1
* Update babel-eslint to version 7.2.3
* Update babel-preset-react to version 6.24.1
* Update coffee-script to version 1.12.6
* Update css-loader to version 0.28.1
* Update express to version 4.15.2
* Update js-yaml to version 3.8.4
* Update mocha to version 3.4.1
* Update jsdom to version 10.1.0
* Update npmlog to version 4.1.0
* Update postcss-smart-import to version 0.7.0
* Update postcss-loader to version 2.0.5
* Update pg to version 6.1.5
* Update prop-types to version 15.5.10
* Update rails-ujs to version 5.1.1
* Update redis to version 2.7.1
* Update sass-loader to version 6.0.5
* Update stringz to version 0.2.0
* Update webpack to version 2.5.1
* Update style-loader to version 0.17.0
* Update sinon to version 2.2.0
* Update react-motion to version 0.5.0
* Update react-notification to version 6.7.0
* Update react-redux-loading-bar to version 2.9.0
* Update react-intl to version 2.3.0
* Update redux-immutable to version 4.0.0
* Update reselect to version 3.0.1
* Update react-toggle to version 3.0.1
* Update react-simple-dropdown to version 3.0.0
* Update react-router to version 3.0.5
* Update react-router-scroll to version 0.4.2
* Update react-toggle to version 4.0.1
* yarn upgrade
* Improve streaming API cluster logging
* Less verbose error middleware logging (stack trace useless there)
* Fix error logging
* Prevent potential issue
* Add missing "done()" in catch of Promise.all, websocket heartbeat re-implemented like in example
* I actually forgot a done(), the absolute madman
* Only load Intl data for current language
* Extract common chunk only from application.js and public.js
* Generate locale packs, avoid caching on window object
* Use babel-preset-env on Streaming Server
Change the streaming server to use babel-preset-env as well as asset compilation.
This shortens the load time at first boot.
* remove babel-plugin-lodash
Got an error in asset precompile on Heroku:
Module build failed: Error: ENOENT: no such file or directory, scandir '/tmp/.../node_modules/node-sass/vendor'
ref: https://github.com/rails/webpacker#troubleshooting
Use ES Class Fields & Static Properties (currently stage 2) for improve class outlook.
Added babel-plugin-transform-class-properties as a Babel plugin.
There are some dependencies that are no longer needed anymore.
As a result, it took more time to install the package than necessary.
I want to delete them and shorten the installation time.
* eslintrc: adapt changes in eslint-plugin-jsx-a11y
* Replace 'jsx-a11y/img-has-alt' with 'jsx-a11y/alt-text'.
Reference: evcohen/eslint-plugin-jsx-a11y@24b6193
* Replace 'jsx-a11y/onclick-has-focus' with 'jsx-a11y/interactive-supports-focus'
Reference: evcohen/eslint-plugin-jsx-a11y@cbdfeb8
* Replace 'jsx-a11y/onclick-has-role' with 'jsx-a11y/no-noninteractive-element-interactions'
Reference: evcohen/eslint-plugin-jsx-a11y@18c9b71
* Update eslint-plugin-jsx-a11y to 5.0.0
Follow the change in Code Climate. Make sure the same eslintrc
can be executed locally and in Code Climate.
* Convert .eslintrc.json to equivlant .eslintrc.yml
* Less quotes and commas, more readability, allow comment.
* package.json: Add "build:*" targets
* Improve react-intl-translations-manager workflow.
* Added "build:production" to build production bundle.
* Added "build:development" to build development bundle.
* Fix json translation files
* Run `yarn manage:translations` to fix translation files.
* Fix `pl.json` for syntax error.
* translationRunner: auto detect existing languages
* Auto detect existing rfc5646 language tag in *.json filenames
in `app/javascript/mastodon/locale` folder. No need to manually
define every new language in the languages array here.
* translationRunner: add more functionality
* Allow script user to specify language code to check.
* Added available language check.
* Added --force flag to force creation of unexists language.
* Added --help flag and help messages.
* gitignore: ignore npm-debug.log
* Fix webpack error if NODE_ENV is not defined
Default to use 'development' in config/webpack/configuration.js
* Replace browserify with webpack
* Add react-intl-translations-manager
* Do not minify in development, add offline-plugin for ServiceWorker background cache updates
* Adjust tests and dependencies
* Fix production deployments
* Fix tests
* More optimizations
* Improve travis cache for npm stuff
* Re-run travis
* Add back support for custom.scss as before
* Remove offline-plugin and babili
* Fix issue with Immutable.List().unshift(...values) not working as expected
* Make travis load schema instead of running all migrations in sequence
* Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of
React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in
<UI />
* Add react definitions to places that use JSX
* Add Procfile.dev for running rails, webpack and streaming API at the same time
* Use new ESLint filename (.json)
Codeclimate's ESLint 3 is complaining about the old filename. Let me try changing it.
* point eslint to new rc
(squash this)
* Add eslint-plugin-jsx-a11y.
* Fix npm script.
* Adjust npm scripts so test also runs lint.
* Fix existing lint errors.
* Don't break on a11y issues.
* Add role and tabIndex.
* Add vim and Mac files to .gitignore and .dockerignore.
* Handle htmlFor (partially), a that's actually a button.
* Fix missing tabIndex.
* Add cursor:pointer to load-more
* Revert change to load_more.
* Fixes based on review.
* Update yarn.lock.
* Don't try to install fsevents on Linux (hides warning noise).
* Add eslint to dev dependancies so it gets installed for the repo
yarn add --dev eslint babel-eslint eslint-plugin-reac
project specific version of eslint, you can globally install eslint-cli
if you want the global runtime, or add .bin to your path
* fix eslint errors about inconsitent returns
* eslint ignore the same as git ignore. allows for eslint .
* Add editorconfig file so everyones editor will be setup to follow the same standards
work flawlessly was a nightmare). WARNING: This commit makes the web UI connect to the streaming API instead
of ActionCable like before. This means that if you are upgrading, you should set that up beforehand.