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) {