diff --git a/README.md b/README.md
index 722d54b..813c582 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
This project is built using [react-admin](https://marmelab.com/react-admin/).
-It needs at least Synapse v1.23.0 for all functions to work as expected!
+It needs at least Synapse v1.27.0 for all functions to work as expected!
You get your server version with the request `/_synapse/admin/v1/server_version`.
See also [Synapse version API](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/version_api.rst).
diff --git a/src/App.js b/src/App.js
index ec240a5..2304ee9 100644
--- a/src/App.js
+++ b/src/App.js
@@ -63,6 +63,7 @@ const App = () => (
+
);
diff --git a/src/components/rooms.js b/src/components/rooms.js
index efef5cb..e4145c8 100644
--- a/src/components/rooms.js
+++ b/src/components/rooms.js
@@ -4,9 +4,11 @@ import {
BooleanField,
BulkDeleteWithConfirmButton,
Datagrid,
+ DateField,
DeleteButton,
Filter,
List,
+ NumberField,
Pagination,
ReferenceField,
ReferenceManyField,
@@ -21,6 +23,7 @@ import {
} from "react-admin";
import get from "lodash/get";
import { Tooltip, Typography, Chip } from "@material-ui/core";
+import FastForwardIcon from "@material-ui/icons/FastForward";
import HttpsIcon from "@material-ui/icons/Https";
import NoEncryptionIcon from "@material-ui/icons/NoEncryption";
import PageviewIcon from "@material-ui/icons/Pageview";
@@ -197,6 +200,36 @@ export const RoomShow = props => {
]}
/>
+ }
+ path="forward_extremities"
+ >
+
+
+
+
+
+
+
+
+
);
diff --git a/src/i18n/de.js b/src/i18n/de.js
index f20ef18..27b7231 100644
--- a/src/i18n/de.js
+++ b/src/i18n/de.js
@@ -273,6 +273,15 @@ export default {
media_length: "Größe der Dateien",
},
},
+ forward_extremities: {
+ name: "Vorderextremitäten",
+ fields: {
+ id: "Event-ID",
+ received_ts: "Zeitstempel",
+ depth: "Tiefe",
+ state_group: "Zustandsgruppe",
+ },
+ },
},
ra: {
...germanMessages.ra,
diff --git a/src/i18n/en.js b/src/i18n/en.js
index bb3ac3b..cf0b1ef 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -270,5 +270,14 @@ export default {
media_length: "Media length",
},
},
+ forward_extremities: {
+ name: "Forward Extremities",
+ fields: {
+ id: "Event ID",
+ received_ts: "Timestamp",
+ depth: "Depth",
+ state_group: "State group",
+ },
+ },
},
};
diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js
index d928462..bc3be01 100644
--- a/src/synapse/dataProvider.js
+++ b/src/synapse/dataProvider.js
@@ -185,6 +185,22 @@ const resourceMap = {
return json.total;
},
},
+ forward_extremities: {
+ map: fe => ({
+ ...fe,
+ id: fe.event_id,
+ }),
+ reference: id => ({
+ endpoint: `/_synapse/admin/v1/rooms/${id}/forward_extremities`,
+ }),
+ data: "results",
+ total: json => {
+ return json.count;
+ },
+ delete: params => ({
+ endpoint: `/_synapse/admin/v1/rooms/${params.id}/forward_extremities`,
+ }),
+ },
};
function filterNullValues(key, value) {