From 4c53a9a406eccdf9dd41186e2f1c3626e8f68ffc Mon Sep 17 00:00:00 2001
From: Aurora Lahtela <24460436+AuroraLS3@users.noreply.github.com>
Date: Sat, 27 Aug 2022 22:26:30 +0300
Subject: [PATCH] Enabled React server page in Frontend BETA
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
---
.../datatransfer/extension/TableCellDto.java | 71 +++++++++++++++++
.../datatransfer/extension/TableDto.java | 14 ++--
.../html/structure/DynamicHtmlTable.java | 1 +
.../rendering/html/structure/HtmlTable.java | 15 ++--
.../structure/HtmlTableWithColoredHeader.java | 16 ++--
.../delivery/rendering/pages/PageFactory.java | 6 ++
Plan/react/dashboard/package.json | 1 +
.../components/accordion/SessionAccordion.js | 3 +-
.../components/extensions/ExtensionCard.js | 29 +------
.../components/extensions/ExtensionIcon.js | 4 +
.../components/extensions/ExtensionTable.js | 77 +++++++++++++++++++
.../src/components/graphs/LineGraph.js | 6 +-
.../src/components/graphs/PlayerPingGraph.js | 11 ++-
.../src/components/graphs/PunchCard.js | 7 +-
.../src/components/graphs/TimeByTimeGraph.js | 9 ++-
.../graphs/performance/AllPerformanceGraph.js | 4 +-
.../performance/CpuRamPerformanceGraph.js | 4 +-
.../performance/DiskPerformanceGraph.js | 8 +-
.../graphs/performance/TpsPerformanceGraph.js | 4 +-
.../performance/WorldPerformanceGraph.js | 4 +-
.../components/modal/ColorSelectorModal.js | 2 +-
.../src/components/table/DataTablesTable.js | 5 +-
Plan/react/dashboard/src/style/style.css | 24 ++++++
Plan/react/dashboard/src/util/colors.js | 2 +-
.../dashboard/src/views/layout/LoginPage.js | 2 +-
25 files changed, 251 insertions(+), 78 deletions(-)
create mode 100644 Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableCellDto.java
create mode 100644 Plan/react/dashboard/src/components/extensions/ExtensionTable.js
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableCellDto.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableCellDto.java
new file mode 100644
index 000000000..440e6e149
--- /dev/null
+++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableCellDto.java
@@ -0,0 +1,71 @@
+/*
+ * This file is part of Player Analytics (Plan).
+ *
+ * Plan is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License v3 as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Plan is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Plan. If not, see .
+ */
+package com.djrapitops.plan.delivery.domain.datatransfer.extension;
+
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Objects;
+
+/**
+ * @author AuroraLS3
+ */
+public class TableCellDto {
+
+ private final String value;
+ @Nullable
+ private final Object valueUnformatted;
+
+ public TableCellDto(String value) {
+ this.value = value;
+ this.valueUnformatted = null;
+ }
+
+ public TableCellDto(String value, @Nullable Object valueUnformatted) {
+ this.value = value;
+ this.valueUnformatted = valueUnformatted;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Nullable
+ public Object getValueUnformatted() {
+ return valueUnformatted;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ TableCellDto that = (TableCellDto) o;
+ return Objects.equals(getValue(), that.getValue()) && Objects.equals(getValueUnformatted(), that.getValueUnformatted());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getValue(), getValueUnformatted());
+ }
+
+ @Override
+ public String toString() {
+ return "TableCellDto{" +
+ "value='" + value + '\'' +
+ ", valueUnformatted=" + valueUnformatted +
+ '}';
+ }
+}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableDto.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableDto.java
index 050e8bc21..d2b099500 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableDto.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/extension/TableDto.java
@@ -30,7 +30,7 @@ public class TableDto {
private final List columns;
private final List icons;
- private final List> rows;
+ private final List> rows;
public TableDto(Table table) {
columns = Arrays.stream(table.getColumns())
@@ -46,17 +46,17 @@ public class TableDto {
.collect(Collectors.toList());
}
- private List