Commit Graph

37 Commits

Author SHA1 Message Date
Aurora Lahtela 5a2bdaf6ba
2360/plugin versions (#3249)
* Add methods to gather plugin versions from servers
* Gathering and storage for plugin version history
* Test plugin gathering
* Test plugin metadata storage
* /v1/pluginHistory endpoint
* Plugin history tab
* Plugin history to performance tab
* Possibly fix ConfigChange.MovedValue being applied all the time
* Updated locale files
* Export pluginHistory for server page
* Add plugin history to network page
* Access control and improvements
* Remove pluginHistory from export since it now requires auth
* Fix access visibility tests
* Fix VelocitySensor during test

Affects issues:
- Close #2360
2023-10-07 08:39:00 +03:00
Aurora Lahtela 01d904c7d1
2905/remove old web files (#3225)
* Removed Plugin.Use_Legacy_Frontend feature flag
* Remove version modal html generation in Java
* Remove contributor list html generation in Java
* Remove more html generation in Java
* Delete old web file bundle
* Removed locale html/js translation from backend
* Move Html#swapColorsToSpan to the React side
* Reimplement datatables and backend for preferences
* Load preferences from backend
* Usability fixes to the players table
* Delete WebAssetVersionCheckTask
* Add new locale to locale files
* Export defaultPreferences as json on react export

Affects issues:
- Close #2905
2023-09-23 22:24:34 +03:00
Aurora Lahtela 5061439d14
1623/access control (#3173)
* Add web authorization permission based on groups
  * Access and parts of website are limited by permissions
* Add group management in /manage page
  * Higher level permissions grant lower level permissions similar to Sponge
* Add command /plan setgroup, which uses plan.setgroup.other permission
* Add command /plan groups, which uses plan.setgroup.other permission
* Add more navigation based on permissions
* API modifications
  * User#hasPermission now returns true if user has parent permission in the tree
  * ResolverService#registerPermissions and ResolverService#registerPermission methods for adding new permissions
* Update locale with new lines
* Various unrelated fixes to CSS and code

Affects issues:
- Close #1623
2023-08-20 11:56:13 +03:00
Aurora Lahtela c20a746bd6
Add player retention analysis graph (#2917)
Adds a graph to network and server pages that has options to:
- Draw graphs at different time resolutions
- Limit input data by time
- Group players by register date or join address
- Visualize retention in different ways
  - Time since registration date
  - Playtime
  - Date
  - Cumulative player gain
  - Percentage / Player count / Stacked player count

Any and all combinations are allowed which allows extensive analysis of player retention. Help sections attempt to make the data understandable and show examples.

Affects issues:
- Close #2159
2023-03-17 18:25:38 +02:00
Aurora Lahtela d27af20774 Added help modal for new player retention 2023-03-05 09:06:14 +02:00
Aurora Lahtela 6b2486f80d Catch component level errors at high level 2023-02-27 17:41:32 +02:00
Aurora Lahtela b92e886a39
React PageExtension Javascript APIs (#2894)
* Page extension api javascript file
* Add support for extending rows with pageExtensionApi
Tested it
* Support javascript snippets in react index.html
* Add context to pageExtensionApi calls
* Fix redirect text overlapping with sidebar
* Add new API for registering custom javascript and css
2023-02-25 13:57:12 +02:00
Aurora Lahtela 413e087c4d Improved navigation significantly on mobile
Affects issues:
- Close #2228
2023-02-03 20:29:03 +02:00
Aurora Lahtela 362bb44aad Implement a page navigation button
Improve page loading and theme system
- The sidebar is visible while loading with css
  There was an apparent problem when switching pages with the new switcher
- css variables are now used
- Theme color is applied to several buttons and texts
  where previously Plan color was used

Affects issues:
- Implements #2357
2023-01-26 14:18:51 +02:00
Aurora Lahtela aa897fe8de Implemented support for reverse-proxy subdirectory addresses
Reverse proxied version of React website now works
when subdirectory address is used (eg. /plan/...)

The functionality was unit tested to ensure things work
2023-01-06 14:24:18 +02:00
Aurora Lahtela 5082f80030 Implemented support for subdirectory addresses
Export of React version of frontend now supports exporting to a subdirectory
So now you can access exported site at /plan/... if it is hosted there.

This might impact reverse proxy setups positively, but that has not yet been tested.
The hypothetical positive impact is the inclusion of subdirectory in the React-router
configuration, since now it can handle the reverse-proxy subdirectory in URL.
2023-01-06 12:12:45 +02:00
Aurora Lahtela 059d4553aa Implemented react side of export for frontend BETA 2022-11-27 09:48:55 +02:00
Aurora Lahtela f36ed678a3 Implemented register page in react 2022-11-25 16:49:06 +02:00
Aurora Lahtela 38774867f7 Made query page display some results
Fixed Activity group filter
2022-11-12 10:39:20 +02:00
Aurora Lahtela 428a0c5fde Began work on Query page
- Implemented the view time range selector input fields
- Fixed geolocation filter query returning more options than supposed to
2022-10-15 15:41:57 +03:00
Aurora Lahtela 8cdbebf191 Implemented Network performance tab in React
Affects issues:
- Implemented #2469
2022-09-11 19:30:57 +03:00
Aurora Lahtela 3d64e36159 Implemented Network PlayerBase overview in React 2022-09-11 09:42:03 +03:00
Aurora Lahtela cb7749d778 Implemented network geolocations tab in React
- Add Projection selector to geolocations visualization
2022-09-11 09:30:33 +03:00
Aurora Lahtela 7a51633690 Implemented network page join address tab
- Made it possible to toggle stack/side-by-side join addresses
2022-09-10 10:45:03 +03:00
Aurora Lahtela adc4162217 Network sessions tab implemented in React 2022-09-10 09:38:25 +03:00
Aurora Lahtela f4aaa72f4c Implemented network servers overview in React
- Changed the layout to use a table instead of custom elements for more efficient look.
- Added sorting options to the new table
- Added a total calculator at the table footer

Affects issues:
- Close #1205
2022-09-09 19:10:06 +03:00
Aurora Lahtela cb21c45ea9 Visualize join address / day in React server page
Join addresses were missing

- Implemented new group visualizer that allows viewing group data as column/bar/pie/table
- Implemented latest join address pie on server page (was missing)
- Implemented join addresses per day graph on new Join addresses tab
- Made playerbase overview use the group visualizer

Affects issues:
- Close #2362
2022-09-05 16:56:59 +03:00
Aurora Lahtela 6d9fcab656 Implement Network overview tab in React 2022-09-04 09:40:17 +03:00
Aurora Lahtela 38ee84af67 Fixed some issues with DataTables and unmounting extensions
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
2022-09-03 14:01:15 +03:00
Aurora Lahtela 1a8b7af2af Implement Lazy loading 2022-09-01 19:50:16 +03:00
Aurora Lahtela c607ef2869 Rewrite /errors page with React 2022-09-01 18:59:59 +03:00
Aurora Lahtela ea16adb13d Initial version of server extension cards
TODO: Extension DataTables mapping
2022-08-23 22:01:34 +03:00
Aurora Lahtela 5bd882036c Performance tab (no graphs yet) 2022-08-20 10:30:24 +03:00
Aurora Lahtela b5005afbc5 Implement Login page using react 2022-08-18 18:53:35 +03:00
Aurora Lahtela 8f239b010c
Add Swagger & Swagger UI (#2470)
* 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
2022-07-13 21:21:20 +03:00
Aurora Lahtela c7a7b60d91 Geolocations to React server page 2022-06-08 18:24:38 +03:00
Aurora Lahtela 56a3be1835 React players page and fix constant rerender 2022-06-05 22:09:46 +03:00
Aurora Lahtela df0c0fa8a5 Implemented player list to server page
Holy moly was it a big fight to get DataTables to cooperate
2022-06-05 21:38:12 +03:00
Aurora Lahtela 7e1bd7f4a6 Playerbase overview page layout
- Moved some files
2022-05-23 18:58:06 +03:00
Aurora Lahtela b942078485 Implemented more of the layout for server page
- Sessions accordion table headers
- PvP & Pve layout
- Playerbase graph layout
- Updated font awesome to 6.1.1
2022-05-22 10:57:06 +03:00
Aurora Lahtela 45baebfb01 Implemented some more structure for server page 2022-05-21 20:25:49 +03:00
Aurora Lahtela 3822155b40
Frontend BETA: Rewrite Player page with React (#2312)
* 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
2022-04-06 17:37:23 +03:00