* 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 7551951094.
* 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.