* Split "my library" into "video space (channels, videos...)" and "my library (playlists, history...)"
* Split "admin" into "overview (users, videos...)", "moderation (abuses, blocks, registrations...)" and "settings (configuration, runners...)"
* Reorganize the header and the left menu: account settings/notifications are now in the header
* Add instance information context in the left menu
* Merge dedicated videos pages for "recently added", "trending", "local videos" into a "browse videos" page that includes quick filters
* Clean up entire CSS
* Clean CSS variables so it's easier to theme PeerTube (some new variables fallback to old variables to limit currnet themes breakages)
* Replace the current light theme into a new one (beige)
* Add a dark (brown) theme (included in PeerTube core)
* Fix accessibility issues with old light theme colors (white on orange button for example)
* Redesign the left menu, the horizontal menu, form controls and buttons, "Discover videos" page and common video filters panel
* Replace/remove/add some global icon
Added angular2-hotkeys dependency inside PeerTube, to tweak some
settings
It will also allow us to support non latin keyboard in the future as we
can choose the "mouse trap" dependency
Sorry for the very big commit that may lead to git log issues and merge
conflicts, but it's a major step forward:
* Server can be faster at startup because imports() are async and we can
easily lazy import big modules
* Angular doesn't seem to support ES import (with .js extension), so we
had to correctly organize peertube into a monorepo:
* Use yarn workspace feature
* Use typescript reference projects for dependencies
* Shared projects have been moved into "packages", each one is now a
node module (with a dedicated package.json/tsconfig.json)
* server/tools have been moved into apps/ and is now a dedicated app
bundled and published on NPM so users don't have to build peertube
cli tools manually
* server/tests have been moved into packages/ so we don't compile
them every time we want to run the server
* Use isolatedModule option:
* Had to move from const enum to const
(https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums)
* Had to explictely specify "type" imports when used in decorators
* Prefer tsx (that uses esbuild under the hood) instead of ts-node to
load typescript files (tests with mocha or scripts):
* To reduce test complexity as esbuild doesn't support decorator
metadata, we only test server files that do not import server
models
* We still build tests files into js files for a faster CI
* Remove unmaintained peertube CLI import script
* Removed some barrels to speed up execution (less imports)