When using ServerWidePluginData component for two different plugins that had a DataTablesTable
React reused the component, which lead to issues of DataTables trying to remount on the same
component with a different ID, with both jQuery and React trying to remove elements from DOM.
- Added div around table in DataTablesTable to allow React properly unmount the element after
jQuery already removed the table element
- Added extra layer in ServerWidePluginData that re-renders the tab when plugin changes
- Sorted extensions in the endpoints
- Added /v1/networkMetadata endpoint for implementing server list navigation later
- Added network page to App.js with plugins and players tabs already implemented
Sidebar items not being rendered caused the currentTab to be undefined,
until the sidebar is opened, and then currentTab is set - which then
caused a useEffect that closes sidebar to fire.
This lead to the sidebar closing right away on the first click.
To fix this the sidebar item state was moved to navigationHook,
and changing the list of items on a sidebar updates currentTab
at the same time to prevent sidebar rendering setting it again.
Various fixes to React frontend
- Implemented Extension DataTables table support
- Fixed colors in night mode
- Fixed DataTables night mode
- Fixed chart opacity in night mode (HighCharts doesn't like hsl values)
- Fixed color selector buttons in night mode
- Translated Login button
- Added license to package.json
- Changed Extension endpoint table representation to objects to allow value formatting
Adds all graphs and their respective tabs.
Extra:
- Zero baselined charts where it made sense
- Increased performance graph card height to improve readability
Affects issues:
- Close#2270
Server name came from metadata endpoint, but it is incorrect if viewing a server page on a network
Added a new endpoint /v1/serverIdentity?server=... to get the identifiable name of the server.
* Adds swagger dependencies and annotations for json endpoints for documentation
* Add swagger ui to react project
* Access control to swagger endpoints
* Include swagger.json in jars using custom configuration
Also:
* Reworked project shadow configurations to avoid shadowing shadow versions of modules
Why: Extra dependencies were being included when using shadow scope
What:
- modules no longer depend on shadow configurations,
which speeds up IDEA indexing after build considerably
(No need to index *-all.jars)
- 'shadow' scope is now used for artifacts that need to be included
- 'shadow' scope is also 'api' so that modules that depend on common
can import the libraries. This may cause issues in projects
depending on Plan so this may need to be reconsidered
- Relocations and exclusions were moved to plugin module
org.slf4j is now included in 2 locations which may cause issues.
Needs testing with servers
- Found out that all Extension dependencies include junit as compile
scope which caused it to be included.
Affects issues:
- Close#1890
* Add extension data to /v1/player endpoint
* Use node gradle plugin for building with yarn
* Add /v1/whoami endpoint
* Add back button to sidebar
* Selenium Tests for locale related js errors
* Convert locale system to use YAML-based storage
* Added a conversion process that runs on startup
* Replace cravatar.eu with crafatar.com for skins (more reliable)
* Add the Header made by Kopo to React
Co-authored-by: Antti Koponen <koponen942@outlook.com>
Affected issues:
- Resolve#1733
- Fixed#1092
- Resolve#1895
- Resolve#1965
- Partial #2260
- Partial #2099